付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
word完美格式需求分析 计算器的基本功能: ..2加法运算:用数字按钮和“减法运算:用数字按钮和“+”按钮进行运算;-”按钮进行运算;1.1.3乘法运算:用数字按钮和“*”按钮进行运算;1.1.4除法运算:用数字按钮和“/”按钮进行运算;11111.2 退格键和清零键用”Backspace”和”C”按钮实现;1.2 退格键和清零键1.3 计算器的科学计算方法•: TOC\o"1-5"\h\z开方:用数字按钮和“ Sqrt”按钮进行运算; 1百分比:用数字按钮和“ %”按钮进行运算; 1求倒数:用数字按钮和“ 1/x”按钮进行运算; 1设计 用户界面设计 该计算器程序的设计:用户界面包括 Swing组件,不过程序中大都使用的是AWT组件.importjava.awt.*; 2在AWT组件, 2这个界面设计中包含了两个接口 ,单击事件监听器接 ActionListener 口和键盘事件监听器接口 (KeyListener) 4程序设计中使用了布局管理 4概要设计 42.2.1Calculator 类中的类名是 Calculator. 它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法 4main主类.中调用了cal.display 来实现计算器的功能 4\o"CurrentDocument"实现 4\o"CurrentDocument"测试 16实现加法运算:4+12=16 17实现减法运算:22-11=11 17实现乘法运算:3*9=27 18实现除法运算:64/32=2 18用”C实现清零功能 19用”Backspace”实现退格功能: 20求倒数:1/4=0.25 20总结和体会 错误!未定义书签。精心整理学习帮手
精心整理学习帮手wordword完美格式1需求分析(该部分主要阐述所要实现的程序具体具有什么样的功能, 要细化,可以用图表作为辅助描述手段)该计算器程序除了具备加减乘除基本功能外,还有清零键 C和退格键Backspace,和一些部分的科学计算方法,包括开方、求倒、百分比,程序里面也写了键盘事件监听器接口,不过由于时间仓促,还没能设计出来,所以该计算器不能实现此功能。BackspaceCECMC789/SqrtMR456*%MS123-1/xM+0+/-■+=计算器的基本功能:1.1.1加法运算:用数字按钮和“按钮进行运算;1.1.2减法运算:用数字按钮和“按钮进行运算;1.1.3乘法运算:用数字按钮和“按钮进行运算;1.1.4除法运算:用数字按钮和“按钮进行运算;1.1.1加法运算:用数字按钮和“按钮进行运算;1.1.2减法运算:用数字按钮和“按钮进行运算;1.1.3乘法运算:用数字按钮和“按钮进行运算;1.1.4除法运算:用数字按钮和“按钮进行运算;1.2退格键和清零键:用”Backspace”和”C”按钮实现1.3计算器的科学计算方法:1.3计算器的科学计算方法:1.3.1开方:用数字按钮和“Sqrt”按钮进行运算;百分比:用数字按钮和“%”按钮进行运算;1.3.3求倒数:用数字按钮和“ 1/x”按钮进行运算;精心整理学习帮手
精心整理学习帮手word完美格式2设计(该部分主要要说明,在使用 Java实现该程序前考虑的内容,主要包括下面两部分:用户界面设计和概要设计(这部分可简单看作是类设计) )。2.1用户界面设计(用图或文字阐述你的界面如何设计, 女口:包括哪些部分, 使用什么样的布局管理器等)2.1.1该计算器程序的设计:用户界面包括 Swing组件,不过程序中大都使用的是AWT组件.importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;2.1.2在AWT组件,使用了面板和按钮:Panelp1,p2,p3,p4,p5,p6;Buttonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0;ButtonbDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;ButtonbBackspace,bCE,bC,bMR,bMS,bMC,bM;界面设计也包括了 AWT的委托事件模型,该程序设计在 java.awt.event包中定义了窗口事件类publicvoidwindowClosing(WindowEvente){System.exit(O);}单击事件类.publicvoidactionPerformed(ActionEvente){//key0to9if(this.keyAvailable && e.getActionCommand().length()==1 &&e.getActionCommand().compareTo("0")>=0&&e.getActionCommand().compareTo("9")v=0){if(this.isTempNowlnput){this.dNowlnput=O;this.isTempNowlnput=false;}this.nBitsNum++;精心整理学习帮手word完美格式if(this.alreadyHaveDot==false)this.dNowlnput=this.dNowlnput*10+Double.parseDouble(e.getActionCommand());else{doubletemp=Double.parseDouble(e.getActionCommand());for(inti=this.n;i<0;i++){temp*=0.1;}this.dNowInput+=temp;this.n--;}this.tf1.setText(Double.toString(this.dNowInput));},里面包含了事件处理方法,里面包含了事件处理方法/*add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);add(b7);add(b8);add(b9);add(bO);*/b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bO.addActionListener(this);精心整理学习帮手word完美格式这个界面设计中包含了两个接口 ,单击事件监听器接 ActionListener 口和键盘事件监听器接口 (KeyListener).publicclassCalculatorextendsWindowAdapterimplementsActionListener,KeyListener程序设计中,使用了布局管理:用流布局管理器(FlowLayout)设置面板p4=newPanel(newFlowLayout。);p5=newPanel(newFlowLayout。);p6=newPanel(newFlowLayout。);用边布局管理器(BorderLayout)设置计算器容器北西组件的大小 :f.setLayout(newBorderLayout(4,4));f.add(p5,BorderLayout.NORTH);、f.add(p4,BorderLayout.CENTER);f.add(p3,BorderLayout.WEST);用网格布局管理器(GridLayout)设置面板p1=newPanel(newGridLayout(1,3,5,5));p2=newPanel(newGridLayout(4,5,5,5));p3=newPanel(newGridLayout(5,1,5,5));2.2概要设计该部分主要阐述整个程序包括哪些类, 各个类的类名、 功能,以及各类中具有什么样的public成员方法(方法访问修饰符、返回值类型、名字、参数列表、方法的功能) ,以及这些类的对象之间有什么样的关系(或类和类之间有什么关系,即,函数调用关系) 。计算器的整个程序包括: Calculator 类和一个main主类.Calculator 类中的类名是 Calculator. 它的功能是使用图形用户来实现计算器的界面设计和运算功能以及一些科学运算方法在Calculator 类中具有设置计算器界面布局和颜色的成员方法 ,使用了两个接口单击事件监听器接 ActionListener 口和键盘事件监听器接口 (KeyListener).返回值类型是布尔类型 .main主类.中调用了cal.display来实现计算器的功能.3实现(程序的实现代码)importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;精心整理学习帮手word完美格式ActionListener,publicclassCalculator extends WindowAdapter implementsActionListener,KeyListener{doubledResult=0;doubledNowInput=0;doubledMemory;intn=0;intnOperation=1;intnBitsNum=O;charch;booleanalreadyHaveDot=false;booleankeyAvailable=true;booleanalreadyClickedEqueal=false;booleanisTempNowInput=false;JFramef;Panelp1,p2,p3,p4,p5,p6;TextFieldtf1,tf2;Buttonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0;ButtonbDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative;ButtonbBackspace,bCE,bC,bMR,bMS,bMC,bM;publicvoiddisplay(){f=newJFrame("Calculator");f.setForeground(Color.BLUE);f.setSize(290,223);f.setLocation(220,220);f.setBackground(Color.PINK);f.setResizable(false);f.setLayout(newBorderLayout(4,4));p1=newPanel(newGridLayout(1,3,5,5));p2=newPanel(newGridLayout(4,5,5,5));p3=newPanel(newGridLayout(5,1,5,5));p4=newPanel(newFlowLayout());p5=newPanel(newFlowLayout());p6=newPanel(newFlowLayout());p4.add(p1);p4.add(p2);tf1=newTextField(35);精心整理学习帮手word完美格式tf1.setText("O.");tfl.setEditable(false);p5.add(tf1);f.add(p5,BorderLayout.NORTH);f.add(p4,BorderLayout.CENTER);f.add(p3,BorderLayout.WEST);tf1.addKeyListener(this);b1=newButton("1");b2=newButton("2");b3=newButton("3");b4=newButton("4");b5=newButton("5");b6=newButton("6");b7=newButton("7");b8=newButton("8");b9=newButton("9");b0=newButton("0");b1.setForeground(Color.BLUE);b2.setForeground(Color.BLUE);b3.setForeground(Color.BLUE);b4.setForeground(Color.BLUE);b5.setForeground(Color.BLUE);b6.setForeground(Color.BLUE);b7.setForeground(Color.BLUE);b8.setForeground(Color.BLUE);b9.setForeground(Color.BLUE);bO.setForeground(Color.BLUE);/*add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);add(b7);add(b8);add(b9);add(bO);*/b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);精心整理学习帮手word完美格式b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bO.addActionListener(this);b1.addKeyListener(this);b2.addKeyListener(this);b3.addKeyListener(this);b4.addKeyListener(this);b5.addKeyListener(this);b6.addKeyListener(this);b7.addKeyListener(this);b8.addKeyListener(this);b9.addKeyListener(this);bO.addKeyListener(this);bDiv=newButton("/");bSqrt=newButton("sqrt");bMulti=newButton("*");bMinus=newButton("-");bPercent=newButton("%");bPlus=newButton("+");bReciprocal=newButton("1/x");bEqual=newButton("=");bDot=newButton(".");bNegative=newButton("+/-");bDiv.setForeground(Color.RED);bSqrt.setForeground(Color.RED);bMulti.setForeground(Color.RED);bMinus.setForeground(Color.RED);bPercent.setForeground(Color.RED);bPlus.setForeground(Color只ED);bReciprocal.setForeground(Color.RED);bEqual.setForeground(Color.RED);bDot.setForeground(Color.RED);bNegative.setForeground(Color.RED);/*add(bDiv);add(bSqrt);add(bMulti);add(bMinus);精心整理学习帮手word完美格式add(bPercent);add(bPlus);add(bReciprocal);add(bEqual);add(bDot);add(bNegative);*/bDiv.addActionListener(this);bSqrt.addActionListener(this);bMulti.addActionListener(this);bMinus.addActionListener(this);bPercent.addActionListener(this);bPlus.addActionListener(this);bReciprocal.addActionListener(this);bEqual.addActionListener(this);bDot.addActionListener(this);bNegative.addActionListener(this);bDiv.addKeyListener(this);bSqrt.addKeyListener(this);bMulti.addKeyListener(this);bMinus.addKeyListener(this);bPercent.addKeyListener(this);bPlus.addActionListener(this);bReciprocal.addKeyListener(this);bEqual.addKeyListener(this);bDot.addKeyListener(this);bNegative.addKeyListener(this);p2.add(b7);p2.add(b8);p2.add(b9);p2.add(bDiv);p2.add(bSqrt);p2.add(b4);p2.add(b5);p2.add(b6);p2.add(bMulti);p2.add(bPercent);p2.add(b1);p2.add(b2);p2.add(b3);p2.add(bMinus);p2.add(bReciprocal);p2.add(b0);精心整理学习帮手word完美格式p2.add(bNegative);p2.add(bDot);p2.add(bPlus);p2.add(bEqual);bBackspace=newButton("Backspace");bCE=newButton("CE");bC=newButton("C");bBackspace.setForeground(Color.GREEN);bCE.setForeground(Color.BLACK);bC.setForeground(Color.BLACK);/*add(bBackspace);add(bCE);add(bC);*/bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);bBackspace.addKeyListener(this);bCE.addKeyListener(this);bC.addKeyListener(this);p1.add(bBackspace);p1.add(bCE);p1.add(bC);tf2=newTextField(2);tf2.setEnabled(false);tf2.setBackground(Color.PINK);bMC=newButton("MC");bMR=newButton("MR");bMS=newButton("MS");bM=newButton("M+");bMC.setForeground(Color.BLUE);bMR.setForeground(Color.BLUE);bMS.setForeground(Color.BLUE);bM.setForeground(Color.BLUE);tf2.addKeyListener(this);/*add(MC);add(MR);add(MS);add(M);*/精心整理学习帮手word完美格式bMC.addActionListener(this);bMR.addActionListener(this);bMS.addActionListener(this);bM.addActionListener(this);bMC.addKeyListener(this);bMR.addKeyListener(this);bMS.addKeyListener(this);bM.addKeyListener(this);p6.add(tf2);p3.add(p6);p3.add(bMC);p3.add(bMR);p3.add(bMS);p3.add(bM);f.setVisible(true);f.addWindowListener(this);}publicvoidactionPerformed(ActionEvente){//key0to9&&&&&&&&e.getActionCommand().compareTo("0")>=0e.getActionCommand().compareTo("9")v=0){if(this.isTempNowlnput){this.dNowInput=O;this.isTempNowInput=false;}this.nBitsNum++;if(this.alreadyHaveDot==false)this.dNowlnput=this.dNowlnput*10+Double.parseDouble(e.getActionCommand());else{doubletemp=Double.parseDouble(e.getActionCommand());for(inti=this.n;i<0;i++){temp*=0.1;}精心整理学习帮手
精心整理学习帮手word完美格式this.dNowInput+=temp;this.n--;}this.tf1.setText(Double.toString(this.dNowlnput));}//keydotif(this.keyAvailable&&e.getActionCommand()=="."){if(this.alreadyHaveDot==false){this.nBitsNum++;this.alreadyHaveDot=true;this.n=-1;}}//key"+","-IV H/IV//key"+","-IV H/IVif(this.keyAvailablee.getActionCommand()=="-"e.getActionCommand()=="/"){&&IIif(this.keyAvailablee.getActionCommand()=="-"e.getActionCommand()=="/"){&&IIe.getActionCommand()=="+"e.getActionCommand()==”*"||||if(this.alreadyClickedEqueal)this.dNowInput=this.dResult;this.isTempNowInput=true;}else{switch(this.nOperation){case1:this.dResult+=this.dNowInput;break;case2:this.dResult-=this.dNowInput;break;case3:this.dResult*=this.dNowInput;break;case4:{if(this.dNowInput==0){tf1.setText(" 除数不能为零");this.keyAvailable=false;}elsethis.dResult=this.dResult/this.dNowInput;}}if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));this.dNowInput=O;精心整理学习帮手word完美格式}if(e.getActionCommand()=="+"){this.nOperation=1;}if(e.getActionCommand()=="-"){this.nOperation=2;}if(e.getActionCommand()=="*"){this.nOperation=3;}if(e.getActionCommand()=="/"){this.nOperation=4;}this.nBitsNum=0;this.alreadyClickedEqueal=false;}//key"+/-"if(this.keyAvailable&&e.getActionCommand()=="+/-"){this.dNowInput=O-this.dNowlnput;tf1.setText(Double.toString(this.dNowInput));}//key"C"if(e.getActionCommand()=="C"){this.nBitsNum=0;this.dResult=0;this.dNowInput=O;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=true;this.alreadyClickedEqueal=false;tf1.setText("0.");{ch=C;}}//key"CE"if(e.getActionCommand()=="CE"){this.nBitsNum=0;精心整理学习帮手精心整理学习帮手word完美格式this.dNowlnput=O;this.alreadyHaveDot=false;this.n=0;this.nOperation=1;this.keyAvailable=true;tf1.setText("0.");}//key"sqrt"if(this.keyAvailable&&e.getActionCommand()=="sqrt"){if(this.alreadyClickedEqueal){if(this.dResult>=0){this.dResult=Math.sqrt(this.dResult);tf1.setText(Double.toString(this.dResult));}else{tf1.setText(" 函数输入无效");this.keyAvailable=false;}}else{if(this.dNowInput>=0){this.dNowInput=Math.sqrt(this.dNowInput);tf1.setText(Double.toString(this.dNowInput));}else{tf1.setText(" 函数输入无效");this.keyAvailable=false;}}}//key"1/x"if(this.keyAvailable&&e.getActionCommand()=="1/x"){if(this.dNowInput==0){tf1.setText(" 除数不能为零 ");精心整理学习帮手word完美格式this.keyAvailable=false;}else{this.dNowInput=1/this.dNowlnput;tf1.setText(Double.toString(this.dNowInput));}}//key"="if(this.keyAvailable&&e.getActionCommand()=="="){this.alreadyClickedEqueal=true;switch(this.nOperation){case1:this.dResult+=this.dNowInput;break;case2:this.dResult-=this.dNowInput;break;case3:this.dResult*=this.dNowInput;break;case4:{if(this.dNowInput==0){tf1.setText(" 除数不能为零");this.keyAvailable=false;}elsethis.dResult=this.dResult/this.dNowlnput;}}if(this.keyAvailable)tf1.setText(Double.toString(this.dResult));}//key"MS"if(this.keyAvailable&&e.getActionCommand()=="MS"){this.dMemory=this.dNowInput;if(this.dMemory!=0)tf2.setText("M");}//key"MC"if(this.keyAvailable&&e.getActionCommand()=="MC"){this.dMemory=0;tf2.setText("");}//key"MR"if(this.keyAvailable&&e.getActionCommand()=="MR")精心整理学习帮手word完美格式{this.dNowlnput=this.dMemory;tf1.setText(Double.toString(this.dNowInput));}//key"M+"if(this.keyAvailable&&e.getAc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 6 Presenting ideas-Reflection《合作探究一》课件
- (新教材)2026人教版二年级下册数学 整 理和复习 课件
- 2026年住房抵押贷款合同(1篇)
- 2025 网络基础之光通信与无线通信的融合网络课件
- 2026年医疗期内合同(1篇)
- 2026年及未来5年市场数据中国环保地板行业发展运行现状及投资战略规划报告
- 《焊接机器人》试卷及答案
- 现代农业生产现场管理体系与实践
- 2026年重点产业关键环节备份与战略腹地建设指南
- 2026年深海多金属结核采集头扰动控制与环保作业规范
- 2026浙江温州市公安局招聘警务辅助人员42人笔试参考题库及答案解析
- 2026广东茂名市公安局招聘警务辅助人员67人考试参考题库及答案解析
- 2026年希望杯IHC全国赛二年级数学竞赛试卷(S卷)(含答案)
- 中国抗真菌药物临床应用指南(2025年版)
- 2025-2026 学年下学期八年级英语下册教学计划
- 幼儿园春季育儿知识分享:守护成长健康同行
- 2026年六安职业技术学院单招职业适应性考试题库附答案详解(预热题)
- 2025年安徽审计职业学院单招职业适应性测试试题及答案解析
- 2026年春节后复工复产“开工第一课”安全生产培训课件
- 2025年西南计算机有限责任公司招聘笔试真题
- 2026常德烟草机械有限责任公司招聘35人笔试参考题库及答案解析
评论
0/150
提交评论