1、JAVA 上机实验报告之计算器程序设计JAVA 实验报告(四)计算器程序一类图本程序只有一个 Calculator 类二程序分析import java.awt.*;import java.awt.event.*;import java.io.*;public class Calculator 定义计算器类public static void main(String args)new MyFrame(); 创建新的窗体class MyFrame extends Frame implements ActionListenerint state=0,power=1; 定义变量JAVA 上机实验报告之
2、计算器程序设计double store=0,number1,number2,result;String method,output=“;TextField output1,output2; 创建 Text 窗口Panel panel1,panel2,panel3,panel4; 创建面板Button btn1,btn2,btn3,btn4,btn5,btn6,btn7, 创建按钮btn8,btn9,btn10,btn11,btn12,btn13,btn14,btn15,btn16,btn17,btn18,btn19,btn20,btn21,btn22,btn23,btn24,btn25,btn
3、26,btn27;MyFrame() 面板的构造函数设计面板super(“计算器 作者:殷伟硕“); 标题栏显示setResizable(false);setBackground(Color.lightGray); 背景颜色为灰色setLayout(new FlowLayout(FlowLayout.CENTER); 定义布局类型addWindowListener(new CloseWin(); Window 的关闭内部匿名事件处理,可以直接关闭窗口output1=new TextField(30); 设置大小output1.setEditable(false); 不可对 Text 窗中的数手
4、动更改output1.setBackground(Color.white); 设置背景颜色为白display(output);add(output1); 添加panel1=new Panel(); 创建新面板output2=new TextField(0); 创建新的 Text 窗output2.setEditable(false); 不可对 Text 窗中的数手动更改 panel1.add(output2); 添加add(panel1); 添加panel2=new Panel(new GridLayout(1,3,3,3); 设置面板的布局btn1=new Button(“ 退格 “); 创
5、建按钮btn1.setSize(200,200); 设置按钮大小btn1.setForeground(Color.RED); 设置按钮北京颜色btn2=new Button(“CE“);btn2.setForeground(Color.RED);btn3=new Button(“C“);btn3.setForeground(Color.RED);panel2.add(btn1); 添加按酒panel2.add(btn2);panel2.add(btn3);add(panel2);panel3=new Panel(new GridLayout(4,1,3,3);JAVA 上机实验报告之计算器程序
6、设计btn4=new Button(“ MC “); 这些对按钮的设计上面btn4.setForeground(Color.RED); 已经介绍就不再过多解释了btn5=new Button(“MR“); btn5.setForeground(Color.RED);btn6=new Button(“MS“);btn6.setForeground(Color.RED);btn7=new Button(“M+“);这些对按钮的设计上面已经介绍就不再过多解释了btn7.setForeground(Color.RED);panel3.add(btn4);panel3.add(btn5);panel3.
7、add(btn6);panel3.add(btn7);add(panel3);panel4=new Panel(new GridLayout(4,5,3,3); btn8=new Button(“ 7 “);btn8.setForeground(Color.BLUE);btn9=new Button(“8“);btn9.setForeground(Color.BLUE);btn10=new Button(“9“);btn10.setForeground(Color.BLUE);btn11=new Button(“/“);btn11.setForeground(Color.RED);btn12=
8、new Button(“sqrt“);btn12.setForeground(Color.BLUE);btn13=new Button(“4“);btn13.setForeground(Color.BLUE);btn14=new Button(“5“);btn14.setForeground(Color.BLUE);btn15=new Button(“6“);btn15.setForeground(Color.BLUE);btn16=new Button(“*“);btn16.setForeground(Color.RED);btn17=new Button(“%“);btn17.setFor
9、eground(Color.BLUE);btn18=new Button(“1“);btn18.setForeground(Color.BLUE);btn19=new Button(“2“);btn19.setForeground(Color.BLUE);btn20=new Button(“3“);btn20.setForeground(Color.BLUE);btn21=new Button(“-“);btn21.setForeground(Color.RED);JAVA 上机实验报告之计算器程序设计btn22=new Button(“1/x“);btn22.setForeground(Co
10、lor.BLUE);btn23=new Button(“0“);btn23.setForeground(Color.BLUE);btn24=new Button(“+/-“);btn24.setForeground(Color.BLUE);btn25=new Button(“.“);这些对按钮的设计上面已经介绍就不再过多解释了btn25.setForeground(Color.BLUE);btn26=new Button(“+“);btn26.setForeground(Color.RED);btn27=new Button(“=“);btn27.setForeground(Color.RED
11、);panel4.add(btn8);panel4.add(btn9);panel4.add(btn10);panel4.add(btn11);panel4.add(btn12);panel4.add(btn13);panel4.add(btn14);panel4.add(btn15);panel4.add(btn16);panel4.add(btn17);panel4.add(btn18);panel4.add(btn19);panel4.add(btn20);panel4.add(btn21);panel4.add(btn22);panel4.add(btn23);panel4.add(b
12、tn24);panel4.add(btn25);panel4.add(btn26);panel4.add(btn27);add(panel4);setSize(261,210);setVisible(true);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);btn4.addActionListener(this);btn5.addActionListener(this);btn6.addActionListener(this);JAVA 上机实验报告之计算器程序设计b
13、tn7.addActionListener(this);btn8.addActionListener(this);btn9.addActionListener(this);btn10.addActionListener(this);btn11.addActionListener(this);btn12.addActionListener(this);btn13.addActionListener(this);btn14.addActionListener(this);btn15.addActionListener(this);btn16.addActionListener(this);btn1
14、7.addActionListener(this);btn18.addActionListener(this);btn19.addActionListener(this);btn20.addActionListener(this);btn21.addActionListener(this);btn22.addActionListener(this);btn23.addActionListener(this);btn24.addActionListener(this);btn25.addActionListener(this);btn26.addActionListener(this);btn2
15、7.addActionListener(this);public void display(String output)int length=output.length(); 宽度为 output 窗口宽度if (length=1 宽度减少 1if (length=0) 如果宽度没有了drawSpace(35); 设计空间output1.setText(output1.getText()+“0.“); else drawSpace(36-length); if (output.indexOf(.)=-1) 如果为-1output1.setText(output1.getText()+outpu
16、t+“.“); 输出.else output1.setText(output1.getText()+output);public void drawSpace(int spacenum) 设计空间String space=“; 初始为空值for (int i=1;i=1) 如果长度大于等于 1str=str.deleteCharAt(str.length()-1); 删除后一个字母output=str.toString(); 显示str=null; 将新空间赋空值display(output); 显示else if (temp=“CE“) 如果点 CE 按钮JAVA 上机实验报告之计算器程序设
17、计output=“; 输出空display(output); 显示空达到清除的目的else if (temp=“C“) 点 Coutput=“; 输出空display(output); 输出空state=0; 存储为 0method=“;power=1;else if (temp=“ MC “) 点 MC 为store=0; store 清为output2.setText(“); output2 为空else if (temp=“MR“) 点 MRoutput=store+“; 赋予存储值display(output); 显示else if (temp=“MS“) 点 MSif (power!
18、=0) 如果为数不为 0store=Double.valueOf(output).doubleValue(); 赋予 store 新值elsestore=0; store 为存储值 否则 store 为 0if (store!=0) 如果存储值不为 0output2.setText(“ M“); output2 显示 M 带表有存储值elseoutput2.setText(“); 否则不输出任何东西else if (temp=“M+“) 如果点 M+if (power!=0) 如果为数不为 0store+=Double.valueOf(output).doubleValue(); 把值赋给存储
19、变量if (store!=0) 如果存储不为空output2.setText(“ M“); 显示 M 表示已有存储量elseoutput2.setText(“); 否则显示空else if (temp=“+/-“) 点+/-进行加减运算if (power!=0) 如果位不为 0if (output!=“ 创建if (str.charAt(0)!=-) str.insert(0,-); 插入 0elseJAVA 上机实验报告之计算器程序设计str.deleteCharAt(0); 删除 0output=str.toString();str=null;display(output); 显示else
20、display(“); 否则显示空else if (temp=“sqrt“) 平方根if (power=0) 如果位为零power=1; 赋予 1if (output=“) 如果为空number1=0; 数字 1 赋予 0elsenumber1=Double.valueOf(output).doubleValue();if (number10) 如果输入数为负数output=“; 赋予空display(“函数的输入无效。 “);显示输入数字无效else output=Math.sqrt(number1)+“; 其他的做平方运算display(output); 显示结果else if (temp
21、=“1/x“) 除法if (power=0) 如果位为 0power=1; 赋予 1if (output=“) number1=0; 数字 1 为 0elsenumber1=Double.valueOf(output).doubleValue();if (Math.abs(number1)1E-20) output=“; 显示空display(“出错:正无穷大。 “);0 做除数显示出错else output=1/number1+“; 其他情况做除法display(output); 显示除法结果else if (temp=“=“ | temp=“+“ | temp=“-“ | temp=“*“
22、 | temp=“/“ | temp=“%“) if (state=0) JAVA 上机实验报告之计算器程序设计if (temp=“=“ | temp=“%“) output=“; 如果判断真确显示空method=“;else number1=Double.valueOf(output).doubleValue();method=temp;state=1;else number2=Double.valueOf(output).doubleValue();if (method=“+“) 加法result=number1+number2; 两个数字相加else if (method=“-“) 减法
23、result=number1-number2; 两个数字相减else if (method=“*“) 乘法result=number1*number2; 两个数字相乘else if (method=“/“) 除法result=number1/number2; 两个数字相除if (temp=“%“) 做百分数result/=100; output=result+“; 显示结果method=“; 方法清空if (temp=“=“ | temp=“%“) state=0;else number1=result;display(output);if (temp!=“=“ class CloseWin
24、extends WindowAdapter 关闭的时间处理public void windowClosing(WindowEvent e)Frame frm=(Frame)(e.getSource();frm.dispose();System.exit(0);JAVA 上机实验报告之计算器程序设计三程序源代码import java.awt.*;import java.awt.event.*;import java.io.*;public class Calculatorpublic static void main(String args)new MyFrame();class MyFrame
25、 extends Frame implements ActionListenerint state=0,power=1;double store=0,number1,number2,result;String method,output=“;TextField output1,output2;Panel panel1,panel2,panel3,panel4;Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btn11,btn12,btn13,btn14,btn15,btn16,btn17,btn18,btn19,btn20,b
26、tn21,btn22,btn23,btn24,btn25,btn26,btn27;MyFrame()super(“计算器 作者:殷伟硕“);setResizable(false);setBackground(Color.lightGray);setLayout(new FlowLayout(FlowLayout.CENTER);addWindowListener(new CloseWin();output1=new TextField(30);output1.setEditable(false);output1.setBackground(Color.white);display(output);add(output1);panel1=new Panel();output2=new TextField(0);output2.setEditable(false);panel1.add(output2);add(panel1);
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。