课程设计(大作业)报告课程名称:java课程设计设计题目:计算器设计院系:信息技术学院班级:计算机科学与技术(2)班设计者:学号:201011010208指导教师:设计时间:2011-12-27——2011-12-29昆明学院-1-昆明学院课程设计(大作业)任务书姓名:蒋孝林院系:信息技术学院专业:计算机科学与技术专业学号:201011010208任务起止日期:2011-12-27——2011-12-29课程设计题目:计算器设计课程设计要求:(1)课程设计任务及要求(2)设计思路、功能原理、功能规划(3)总体设计与详细设计---数据分析,算法思路,类设计,功能实现(含程序流程图,主要代码及注释),界面等(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等.(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了那些知识,有哪些提高。(6)参考文献(7)报告格式见昆明学院课程设计报告模板,按格式要求完成设计报告。追求完善,不要仅仅应付老师的检查、,程序要求有良好的结构及编码风格,有必要的注释。(8)严禁抄袭,如有发现,按不及格处理工作计划及安排2011-12-26起至2011-12-27查询相关资料,对这个关于计算机的Java程序设计进行大体编排2011-12-28起至2011-12-30对程序进行编写,运行,调试2011-12-30完成设计指导教师签字年月日-2-课程设计(大作业)成绩学号:201011010208姓名:蒋孝林指导教师:何英老师课程设计题目:计算器程序设计总结:这次的课程设计,是我对Java有了进一步的了解和体会。对于这次课程设计,我最大的感受就是自己对教材并不是很熟悉,所掌握和熟悉的知识不够,在设计的过程中出现了很多弯路,所以在以后进一步的学习和深入中,我会多查阅一些相关资料,多想,多实践,更好的巩固所学的知识,以求加深对java的理解。我会总结在课程设计中发现的技巧性知识,在议会的学习中学会学以致用,把学会的更好的应用在生活中,在学习中发现问题。提出问题,然后解决问题。多想同学和老师请教,在以后的学习中取得好的成绩指导教师评语:成绩:填表时间:指导教师签名:-3-课程设计(大作业)报告1、课程设计介绍…………………………………………………………………41.1课程设计内容………………………………………..........................................41.2课程设计要求………………………………………………………………….42、总体设计………………………………………………………………………42.1课设题目总体设计、算法描述………………………………………42.1.1、功能模块设计………………………………………………………42.1.2、界面设计代码…………………………………………………….42.2功能模块图、流程图分析……………………………………………..63、调试与性能分析(相关截图)……………………………………………64、参考文献…………………………………………………………………………..8附录(程序清单).................................................................................................9-4-1、课程设计介绍1.1课程设计内容本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开根号、百分号、求倒数,还可以实现数值的符号转换操作。,Backspace表示退格,CE表示将当前文本框内数据清除,C表示文本框内数据清除。此外还提供了“编辑”、“查看”、“帮助”三个菜单项,使用者可通过使用菜单项实现复制、粘贴功能。界面类似windows自带计算器界面。1.2课程设计要求(1)设计一个标准型的计算器应用程序,完成简单的算法运算。(2)该程序可以通过鼠标一次键入参加计算的数值,不仅可以参加加减乘除运算,还可以完成开方、百分运算、倒数运算等这些运算,并且还有小数点、正负号、退格、清零这些功能。2、总体设计2.1、课设题目总体设计、算法描述2.1.1、功能模块设计计算器基本功能(1)加法两个数据进行加操作,可以为小数。(2)减法两个数据进行减操作,可以为负数相减。(3)乘法两个数相乘操作。(4)除法两个数相除操作。(5)开平方对任意一个数进行开方运算,可以是小数。(6)百分号对任意一个数进行百分号运算。(7)倒数对任意一个数进行倒数运算。算法分析:事件监听器的事件处理方法voidactionPerformed(ActionEventevt)完成主要的按钮事件的处理。事件处理分为以下几种情况:数字按钮事件(“0”、“1”、“2”、“3”、….“8”、“9”),运算符按钮事件(“+”、“-”、“,”“*”、“/”、“%”),正负值按钮事件(“+/-”),小数点按钮事件(“.”),等号按钮事件(“=”),求倒按钮事件(“1、x”),退格按钮事件(“CE”),清除按钮事件(“C”),2.1.2、界面设计代码计算器的界面由一个文本框及27个按钮组成,具体实现代码如下所示:JPanelpa1=newJPanel();-5-pa1.setBackground(newColor(236,231,210));text=newJTextField(0.,31);pa1.add(North,text);//面板添加和按钮的设置JPanelpa=newJPanel();JPanelpa2=newJPanel();JButtonbt1=newJButton(Backspace);JButtonbt2=newJButton(CE);JButtonbt3=newJButton(C);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLayout(newBorderLayout());pa.add(pa2,North);JPanelp1=newJPanel();p1.setLayout(newGridLayout(4,1,2,5));JButtonbt4=newJButton(MC);JButtonbt5=newJButton(MR);JButtonbt6=newJButton(MS);JButtonbt7=newJButton(M+);p1.add(bt4);p1.add(bt5);p1.add(bt6);p1.add(bt7);pa.add(p1,West);JPanelp=newJPanel();p.setLayout(newGridLayout(4,5,2,5));Stringbuttons[]={7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,.,=,+,+/-};JButtonbtn[]=newJButton[buttons.length];for(inti=0;ibuttons.length;i++){addButton(p,buttons[i]);pa.add(p,Center);}pa1.add(South,pa);this.getContentPane().add(pa1);}privatevoidaddButton(Containerc,Strings)-6-{JButtonb=newJButton(s);c.add(b);b.addActionListener(this);2.2功能模块图、流程图分析3、调试与性能分析(相关截图)(1)标准计算其界面(2)、加、减、乘除运算演示分别输入8和4进行运算演示※加法8标准计算器加法运算减法运算乘法运算除法运算开平方运算百分号运算倒数运算-7-=※乘法*=※开方运算-8-sqrt※百分号运算%※倒数运算1/x4、参考文献Java语言程序设计(第6版)机械工程出版社-9-5、附录(程序清单)importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassjisuanqiextendsJFrameimplementsActionListener,ItemListener{JTextFieldtext;JTextFieldtextMemory;booleanclickable;doublememoryd;//使用内存中存储的数字intmemoryi;Stringcopy;publicjisuanqi(){super(计算器);setSize(357,253);}publicvoidinit(){clickable=true;JPanelpa1=newJPanel();pa1.setBackground(newColor(236,231,210));text=newJTextField(0.,31);text.setHorizontalAlignment(JTextField.RIGHT);//从右到左pa1.add(North,text);//面板添加和按钮的设置JPanelpa=newJPanel();JPanelpa2=newJPanel();JButtonbt1=newJButton(Backspace);JButtonbt2=newJButton(CE);JButtonbt3=newJButton(C);bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);pa2.add(bt1);pa2.add(bt2);pa2.add(bt3);pa.setLayout(newBorderLayout());pa.add(pa2,North);JPanelp1=newJPanel();p1.setLayout(newGridLayout(4,1,2,5));JButtonbt4=newJButton(MC);JButtonbt5=newJButton(MR);JButtonbt6=newJButton(MS);-10-JButtonbt7=newJButton(M+);p1.add(bt4);p1.add(bt5);p1.add(bt6);p1.add(bt7);pa.add(p1,West);JPanelp=newJPanel();p.setLayout(newGridLayout(4,5,2,5));Stringbuttons[]={7,8,9,/,sqrt,4,5,6,*,%,1,2,3,-,1/x,0,.,=,+,+/-};JButtonbtn[]=newJButton[buttons.length];for(inti=0;ibuttons.length;i++){addButton(p,buttons[i]);pa.add(p,Center);}pa1.add(South,pa);this.getContentPane().add(pa1);}privatevoidaddButton(Containerc,Strings){JButtonb=newJButton(s);c.add(b);b.addActionListener(this);}//功能的实现publicvoidactionPerformed(ActionEventevt){Strings=evt.getActionCommand();if(s.equals(CE)||s.equals(C)){text.setText();}////////////////////elseif(s.equals(+/-))//单击+/-选择输入的运算数是正数还是负数{d