java面向对象程序设计—课程设计论文

上传人:痛*** 文档编号:78246473 上传时间:2022-04-21 格式:DOC 页数:11 大小:99.02KB
返回 下载 相关 举报
java面向对象程序设计—课程设计论文_第1页
第1页 / 共11页
java面向对象程序设计—课程设计论文_第2页
第2页 / 共11页
java面向对象程序设计—课程设计论文_第3页
第3页 / 共11页
点击查看更多>>
资源描述
Java面向对象程序设计课程报告 课程设计题目:计算器 计算器一 设计的内容要求参考Windows附件中的计算器,使用Java语言设计并实现一个简单的计算器。(界面使用AWT或SWING)二. 设计思想2.1根据图形用户界面设计方法设计计算器版面。容器类(窗口-Window类 ,面板-Panel类),框架类-Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。事件处理机制:监听器类WinClose(),actionPerformed()。 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+”添加至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单击”-“将textp中数据赋给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将textp中数据赋给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 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;i10;i+)btni=new Button(+i);isDot=false;operated=false;equaled=false;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 Button();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_add);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 i=0;i10;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.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 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(-);equaled=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);operate(=); equaled=true;String s=tf.getText();tf.setText();for(int i=0;is.length()-1;i+)char c=s.charAt(i);tf.setText(tf.getText()+c);else if(equaled) storedNumber=0;for(int i=0;i10;i+)if(bn=btni)if(tf.getText().equals(0)tf.setText(+i);else 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 = ?)storedNumber = currentNumber;else if (lastOperator = +)storedNumber += currentNumber;else if (lastOperator = -)storedNumber -= currentNumber;else if (lastOperator = *)storedNumber *= currentNumber;else if (lastOperator = /)storedNumber /= currentNumber;else if (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( + storedNumber);operated = true;lastOperator = operator; 六. 心得与体会6.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。6.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。6.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。第 11 页 共 11 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!