计算器的程序代码文档格式.docx

上传人:b****3 文档编号:18474516 上传时间:2022-12-17 格式:DOCX 页数:21 大小:19.17KB
下载 相关 举报
计算器的程序代码文档格式.docx_第1页
第1页 / 共21页
计算器的程序代码文档格式.docx_第2页
第2页 / 共21页
计算器的程序代码文档格式.docx_第3页
第3页 / 共21页
计算器的程序代码文档格式.docx_第4页
第4页 / 共21页
计算器的程序代码文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算器的程序代码文档格式.docx

《计算器的程序代码文档格式.docx》由会员分享,可在线阅读,更多相关《计算器的程序代码文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

计算器的程序代码文档格式.docx

finalButtonbtn3=newButton("

3"

finalButtonbtn4=newButton("

4"

finalButtonbtn5=newButton("

5"

finalButtonbtn6=newButton("

6"

finalButtonbtn7=newButton("

7"

finalButtonbtn8=newButton("

8"

finalButtonbtn9=newButton("

9"

finalButtonbtn0=newButton("

0"

finalButtonbtn10=newButton("

+"

finalButtonbtn11=newButton("

-"

finalButtonbtn12=newButton("

*"

finalButtonbtn13=newButton("

/"

finalButtonbtn14=newButton("

("

finalButtonbtn15=newButton("

)"

finalButtonbtn16=newButton("

="

finalButtonbtn17=newButton("

C"

finalButtonbtn18=newButton("

+/-"

finalButtonbtn19=newButton("

."

publicCounter()

fr.setLayout(null);

//设置布局管理器设置为空

fr.setSize(330,360);

//设置计算器窗口的大小

fr.setVisible(true);

//设置不会随窗口大小变化而变化

jf=newTextArea("

300,20,TextArea.SCROLLBARS_NONE);

//设置文本区域的大小,不为文本区创建或显示任何滚动条

//设置命令按钮的坐标以及大小

btn1.setBounds(10,90,50,30);

btn2.setBounds(70,90,50,30);

btn3.setBounds(130,90,50,30);

btn4.setBounds(190,90,50,30);

btn5.setBounds(10,150,50,30);

btn6.setBounds(70,150,50,30);

btn7.setBounds(130,150,50,30);

btn8.setBounds(190,150,50,30);

btn9.setBounds(10,210,50,30);

btn0.setBounds(70,210,50,30);

btn19.setBounds(130,210,50,30);

btn18.setBounds(190,210,50,30);

btn10.setBounds(10,270,50,30);

btn11.setBounds(70,270,50,30);

btn12.setBounds(130,270,50,30);

btn13.setBounds(190,270,50,30);

btn17.setBounds(250,90,50,30);

btn14.setBounds(250,150,50,30);

btn15.setBounds(250,210,50,30);

btn16.setBounds(250,270,50,30);

jf.setBounds(10,20,300,20);

jf.setEditable(false);

//设置不能被编辑和修改

//将命令按钮以及文本框添加到面板中

fr.add(jf);

fr.add(btn1);

fr.add(btn2);

fr.add(btn3);

fr.add(btn4);

fr.add(btn5);

fr.add(btn6);

fr.add(btn7);

fr.add(btn8);

fr.add(btn9);

fr.add(btn0);

fr.add(btn10);

fr.add(btn11);

fr.add(btn12);

fr.add(btn13);

fr.add(btn14);

fr.add(btn15);

fr.add(btn16);

fr.add(btn17);

fr.add(btn18);

fr.add(btn19);

ActionListenerlistener=newButtonListener();

//创建新的监听事件listener

//将命令按钮添加到监听事件listener中

btn1.addActionListener(listener);

btn2.addActionListener(listener);

btn3.addActionListener(listener);

btn4.addActionListener(listener);

btn5.addActionListener(listener);

btn6.addActionListener(listener);

btn7.addActionListener(listener);

btn8.addActionListener(listener);

btn9.addActionListener(listener);

btn0.addActionListener(listener);

btn10.addActionListener(listener);

btn11.addActionListener(listener);

btn12.addActionListener(listener);

btn13.addActionListener(listener);

btn14.addActionListener(listener);

btn15.addActionListener(listener);

btn16.addActionListener(listener);

btn17.addActionListener(listener);

btn18.addActionListener(listener);

btn19.addActionListener(listener);

//设置关闭按钮

fr.addWindowListener(newWindowAdapter()//创建新的监听事件

{

publicvoidwindowClosing(WindowEvente)

System.exit(0);

}

});

fr.show();

//显示;

}

classButtonListenerimplementsActionListener//创建监听事件ButtonListener以ActionListener类为接口

{

publicvoidactionPerformed(ActionEvente)

{

Buttonsrc=(Button)e.getSource();

//对按钮状态进行跟踪,src记录点击命令按钮的响应

try

if(src==btn1)//如果点击btn1

{

if(n==0){jf.setText("

n=1;

}//如果在此之前没有输入,则设置文本框的值为点击的数字,设置n=1

elseif(n==1){jf.append("

}//如果在此之前有输入,则在字符串后面添加点击的数字

if(add1>

0)//设置可以输入运算符

{

--add1;

}

}

if(src==btn2)

{

}

elseif(n==1){jf.append("

}

0)

if(src==btn3)

if(src==btn4)

if(src==btn5)

--add1;

if(src==btn6)

if(src==btn7)

if(src==btn8)

if(src==btn9)

if(src==btn0)

}

if(src==btn10)//如果点击“+”

if(add1==0)//判断是否可以输入运算符

jf.append("

//在表达式后面点击添加运算符

++add1;

//设置不可输入运算符

if(add2>

0)//判断前面是否输入小数点

--add2;

//设置可以输入小数点

if(src==btn11)

if(add1==0)

if(src==btn12)

if(src==btn13)

if(src==btn14)//点击“(”时

if(add1!

=0)//如果前面有运算符则可以输入“(”

++add3;

//对“(”进行计数

++add5;

if(add4==1)//设置负号可用

--add4;

0)//设置小数点可用

if(src==btn15)

if(add3>

0)//判断是否可以输入“)”

--add3;

++add6;

if(src==btn16)//如果点击等号的按钮

try

Stringstr1;

Stringstr=jf.getText();

//设置str为文本框的内容

Calculatetmp=newCalculate();

doubleend;

end=tmp.result(str);

//将str的内容传递给result()函数进行计算

str1=Double.toString(end);

//将str转化为字符型

jf.setText(str1);

//设置文本框的值为str1

}catch(Exceptionex){//抛出异常

if(add1!

=0)//如果以运算符结尾

{

JOptionPane.showMessageDialog(null,"

表达式错误!

"

//弹出窗口“表达式错误!

}

if(add5!

=add6)//如果“(”和“)”的个数不匹配

表达式中"

“(”"

和"

“)”"

个数不匹配"

//弹出窗口“表达式中的(和)个数不匹配!

else//如果被除数为0

表达式中被除数不能为0"

//弹出窗口“表达式中被除数不能为0!

if(src==btn17)//对清屏进行处理

jf.setText("

//设置文本框为0

n=0;

if(src==btn18)//对负号进行处理

inti=jf.getText().length();

if(i!

=1&

&

add4==0&

add3>

0)//

{

jf.append("

++add4;

elseif(i==1&

add4==0)

jf.setText("

++add4;

n=1;

if(add1==0)

if(src==btn19)

if(add1==0&

add2==0)

++add2;

}catch(Exceptionex){

}

publicclassCalculate

publicdoubleresult(Stringexpstr)

Stacks1=newStack();

//创建一个新的堆栈s1

charch;

String[]hou=newString[100];

//安优先级处理后的内容进行存储

String[]hao=newString[100];

//对表达式的内容进行存储

Stringout;

inti=0;

intj=0;

//对符号个数技术需要计算的数字进行计数

intfu=0;

while(i<

expstr.length())

Stringshu="

;

ch=expstr.charAt(i);

//将i出的字符赋值给ch

switch(ch)

case'

+'

:

//如果ch==‘+’

shu=shu+ch;

hao[j]=shu;

//存入数组hao[]中

i++;

//进行下一次判断

j++;

break;

-'

if(i>

0&

expstr.charAt(i-1)=='

('

)//对负数进行判断

{

fu=1;

i++;

break;

if(i==0)//对负数进行判断

else//如果不是负数

*'

/'

)'

default:

while((ch>

='

0'

&

ch<

9'

)||(ch=='

.'

))//对数字和小数点进行处理

if(i<

expstr.length())ch=expstr.charAt(i);

//判断是否在表达式的末尾

elsech='

='

if(fu==1){out=shu;

shu='

+out;

fu=0;

}//对负号进行处理。

intt=0,o=0;

while(t<

j)//对优先级进行判断

if(hao[t].equ

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1