java课程设计--计算器_第1页
java课程设计--计算器_第2页
java课程设计--计算器_第3页
java课程设计--计算器_第4页
java课程设计--计算器_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java面向对象程序设计课程报告 课程设计题目:计算器 学号:202101051723学院:信息学院 班级:软件11-2 姓名:王佳贺 计算器一 设计的内容要求参考Windows附件中的计算器,使用Java语言设计并实现一个简单的计算器。(界面使用AWT或SWING)二. 设计思想2.1根据图形用户界面设计方法设计计算器版面。容器类(窗口-Window类 ,面板-Panel类),框架类-Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。事件处理机制:监听器类WinClose(),actionPerformed()。 2.2计算器计

2、算功能实现,即按钮监听器的实现自定义变量: x,y为操作数,op为操作符。根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvent e)(计算功能算法)流程图。三. 详细设计3.1 calculator()函数(计算器版面设计)流程图:开始新建计算器窗口f新建菜单创建菜单项并添加至菜单新建并设置文本行textp新建并设置缓存区mcache新建并设置计算器上button并注册监听器新建面板p0 p1 p2 p3将textp添加至p0,并设置p0大小将”backspace”CE”C”添加至p1,并设置p1大小及布局将”MC”MR”MS”M+”添

3、加至p2,并设置p2大小及布局将其他button添加至p3,并设置p3大小及布局将面板p0 p1 p2 p3添加至f 设置窗口f的属性为f注册事件监听器Winclose结束3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图:开始Textp.setText(“0”Str.setLength(0)YN单击”CE”单击”C”Textp.setText(“0”Str.setLength(0)NY单击”+/-“将textp中数据正负变号单击”+”将textp中数据赋给x,str.setLength(0)y=0,op=0NYNY单击”-“将t

4、extp中数据赋给x,str.setLength(0)y=0,op=1将textp中数据赋给x,str.setLength(0)y=0,op=2单击”*”NYNYY单击”%”NNNNYYY将textp中数据乘以0.01y=0单击”1/x”textp中数据为0给textp赋”除数不能为0”将textp中数据取倒数str.setLength(0);y=0单击”0”textp中数据为0NNNYYY在textp中数据后加”0”,并赋值给y单击”backspace”textp中数据为0str长度为1去掉textp数据的最后一位,并将str的长度减1将textp赋0,str.setLength(0)N将t

5、extp中数据赋给yNY单击”1”9”将单击数字插入到textp中数据后,并将textp中数据赋给y将textp赋0,并str.stelength(0);结束第四部分 运行效果图4.1运行初始图: 4.2 计算功能测试图: -2+21.4 五. 代码实现 import java.awt.*;import java.awt.event.*;public class Mycounterpublic static void main(String argn)new MyFrame().launchFrame();class MyFrame extends FrameButton btn;Button

6、 btn_add,btn_sub,btn_mul,btn_div,btn_dot,btn_cr,btn_as,btn_eq,btn_sq,btn_bs;TextField tf;Panel p;Boolean isDot,operated,equaled;double storedNumber;char lastOperator;public void launchFrame()btn=new Button10;for(int i=0;i<10;i+)btni=new Button(""+i);isDot=false;operated=false;equaled=fa

7、lse;storedNumber=0;lastOperator='?'btn_add=new Button("+");btn_sub=new Button("-");btn_mul=new Button("*");btn_div=new Button("/");btn_dot=new Button(".");btn_cr=new Button("cr");btn_as=new Button("±");btn_sq=new Butt

8、on("");btn_eq=new Button("=");btn_bs=new Button("");p=new Panel();tf=new TextField(10);this.setLayout(new BorderLayout();this.add(tf,BorderLayout.NORTH);this.add(p,BorderLayout.CENTER);p.setLayout(new GridLayout(5,4,10,10);p.add(btn1);p.add(btn2);p.add(btn3);p.add(btn_a

9、dd);p.add(btn4);p.add(btn5);p.add(btn6);p.add(btn_sub);p.add(btn7);p.add(btn8);p.add(btn9);p.add(btn_mul);p.add(btn_dot);p.add(btn0);p.add(btn_sq);p.add(btn_div);p.add(btn_eq);p.add(btn_as);p.add(btn_cr);p.add(btn_bs);this.setTitle("计算器");this.setSize(260,260);this.setVisible(true);for(int

10、 i=0;i<10;i+) btni.addActionListener(new Monitor();btn_add.addActionListener(new Monitor();btn_sub.addActionListener(new Monitor();btn_mul.addActionListener(new Monitor();btn_div.addActionListener(new Monitor();btn_dot.addActionListener(new Monitor();btn_sq.addActionListener(new Monitor();btn_eq.

11、addActionListener(new Monitor();btn_as.addActionListener(new Monitor();btn_cr.addActionListener(new Monitor();btn_bs.addActionListener(new Monitor();this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e) System.exit(0););class Monitor implements ActionListenerpublic void

12、actionPerformed(ActionEvent e)Button bn=(Button)e.getSource();if(bn=btn_cr)tf.setText("0");isDot=false;storedNumber=0;lastOperator='?'else if(bn=btn_eq)operate('=');equaled=true;else if(bn=btn_add)operate('+');equaled=false;else if(bn=btn_sub)operate('-');eq

13、ualed=false;else if(bn=btn_mul)operate('*');equaled=false;else if(bn=btn_div)operate('/');equaled=false;else if(bn=btn_as)operate('a');operate('=');equaled=false;else if(bn=btn_sq)operate('s');operate('=');equaled=true;else if(bn=btn_bs)operate('b&

14、#39;);operate('='); equaled=true;String s=tf.getText();tf.setText("");for(int i=0;i<s.length()-1;i+)char c=s.charAt(i);tf.setText(tf.getText()+c);else if(equaled) storedNumber=0;for(int i=0;i<10;i+)if(bn=btni)if(tf.getText().equals("0")tf.setText(""+i);els

15、e if(!operated)tf.setText(tf.getText()+i);elsetf.setText(""+i);operated=false;if(bn=btn_dot&&!isDot)tf.setText(tf.getText()+".");isDot=true;private void operate(char operator)double currentNumber = Double.valueOf(tf.getText().doubleValue();if (lastOperator = '?')s

16、toredNumber = currentNumber;else if (lastOperator = '+')storedNumber += currentNumber;else if (lastOperator = '-')storedNumber -= currentNumber;else if (lastOperator = '*')storedNumber *= currentNumber;else if (lastOperator = '/')storedNumber /= currentNumber;else if

17、(lastOperator = 'a')storedNumber *= -1;else if(lastOperator='b')storedNumber=currentNumber/10;else if (lastOperator = 's')storedNumber = Math.sqrt(currentNumber);else if (lastOperator = '=' && equaled)storedNumber = currentNumber;tf.setText("" + stor

18、edNumber);operated = true;lastOperator = operator; 六. 心得与体会6.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。6.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。6.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。 公司印章管理制度一、目的 公司印章是公司对内对外行使权力的标志,也是公司名称的法律体现, 因此,必须对印章进行规范化、合理化的严格管理,以保证公司各项业务的正常运作,由公司指定专人负责管理。二、印章的种类1、 公章,是按照政府规定,由主管部门批准刻制的代表公司权力的印章。2、 专用章,为方便工作专门刻制的用于某种特定用途的印章,如:合同专用章、财务专用章、业务专用章、仓库签收章等。 3、手章(签名章),是以公司法人代表名字刻制的用于公务的印章。三、印章的管理规定1、 印章指定专人负责保管和使用,保管印章的地方(桌、柜等)要牢固加锁,印章使用后要及时收存。2、 财务专用章

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论