版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE2石家庄职业技术学院课程设计报告计算器应用程序学生姓名:指导教师:系别:专业:年级:论文提交时间:年月日目录TOC\o"1-1"\h\z\u一概述 2二总体方案设计 3三详细设计 4四程序的调试与运行结果说明 7五课程设计总结 9六附录 10一概述1.程序具备的功能:(1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除);(3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。2.课程设计的主要设计思想对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。二总体方案设计1.界面设计界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如下:2.功能介绍这是计算器中的一种:简单计算器,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按Clear撤销后重新输入新数据三详细设计程序流程图如下:部分代码展示及说明:这段代码主要是对程序的主框架进行相应的设置。Framef=newFrame("计算器");f.setBackground(Color.lightGray);f.setForeground(Color.blue);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.SOUTH);f.setSize(350,300);//设置大小f.setVisible(true);//设置为可视这段代码是对程序如何进行运算的设计if(y==0&&command!="*"&&command!="/"&&command!="+"&&command!="-"&&command!="=")//判断输入是否为数字{s1=s1.concat(command);tf.setText(s1);}if(command=="*"||command=="/"||command=="+"||command=="-")//判断是否输入运算符{y=1;s2=command;}if(y==1&&command!="*"&&command!="/"&&command!="+"&&command!="-"&&command!="="){s3=s3.concat(command);tf.setText(s3);}if(command=="="){Doubleob1=Double.valueOf(s1);Doubleob3=Double.valueOf(s3);d1=ob1.doubleValue();d3=ob3.doubleValue();if(s2=="+")d4=d1+d3;if(s2=="-")d4=d1-d3;if(s2=="*")d4=d1*d3;Doubleob4=newDouble(d4);tf.setText(ob4.toString());if(s2=="/"){if(d3==0)tf.setText("除数不能为零");else{d4=d1/d3;ob4=newDouble(d4);tf.setText(ob4.toString());}}y=0;}这段代码主要为窗口关闭按钮编写程序classcloseWinextendsWindowAdapter//为关闭按钮编写程序{publicvoidwindowClosing(WindowEvente){System.exit(0);}}四程序的调试与运行结果说明事例1当除数为0时,程序运行结果如下:事例2:4561+8715预计结果13276实际结果事例3:189/2预计结果94.5实际结果:事例4:29-87预计结果-58实际结果:五课程设计总结在做本项目是时候,会遇到很多小问题,比如说:如何保存输入的数字和下一个数进行加、减、乘、除运算。还有如何判断它是第几个输入的数字。后来进行多次研究和查询才知道可以通过设运算符标志位来判断是输入的第几个数值。此次课程设计让我更了解熟悉了Java中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。六附录importjava.awt.*;importjava.awt.event.*;publicclassCalculatorimplementsActionListener{Panelp1=newPanel();Panelp2=newPanel();Panelp3=newPanel();TextFieldtf=newTextField(30);Stringa[]={"7","8","9","/","4","5","6","*","1","2","3","-","0",".","=","+"};ButtonB[];Buttonb1=newButton("CE");Buttonb2=newButton("退出");Strings1=newString();Strings2=newString();Strings3=newString();//s1记录第一个数;s2记录运算符;s3记录第二个数;doubled1,d3,d4;inty=0;//y用于控制运算符publicvoidinit(){Framef=newFrame("计算器");f.setBackground(Color.lightGray);f.setForeground(Color.blue);p1.add(tf);p3.setLayout(newGridLayout(1,2));p3.add(b1);p3.add(b2);p2.setLayout(newGridLayout(4,4));B=newButton[a.length];for(inti=0;i<a.length;i++){B[i]=newButton(a[i]);p2.add(B[i]);}f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.SOUTH);f.setSize(350,300);//设置大小f.setVisible(true);//设置为可视B[0].addActionListener(this);//7B[1].addActionListener(this);//8B[2].addActionListener(this);//9B[3].addActionListener(this);//除B[4].addActionListener(this);//4B[5].addActionListener(this);//5B[6].addActionListener(this);//6B[7].addActionListener(this);//*B[8].addActionListener(this);//1B[9].addActionListener(this);//2B[10].addActionListener(this);//3B[11].addActionListener(this);//-B[12].addActionListener(this);//0B[13].addActionListener(this);//.B[14].addActionListener(this);//=B[15].addActionListener(this);//+b1.addActionListener(this);b2.addActionListener(this);f.addWindowListener(newcloseWin());}publicvoidactionPerformed(ActionEvente){Stringcommand=e.getActionCommand();if(command=="CE")//清零键按下时返回初始状态{y=0;tf.setText("0.");s1="";s2="";s3="";//记录输入值的变量清空}elseif(command=="退出")System.exit(0);//退出键关闭应用程序elseif(y==0&&command!="*"&&command!="/"&&command!="+"&&command!="-"&&command!="=")//判断输入是否为数字{s1=s1.concat(command);tf.setText(s1);}if(command=="*"||command=="/"||command=="+"||command=="-")//判断是否输入运算符{y=1;s2=command;}if(y==1&&command!="*"&&command!="/"&&command!="+"&&command!="-"&&command!="="){s3=s3.concat(command);tf.setText(s3);}if(command=="="){Doubleob1=Double.valueOf(s1);Double
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电部各岗位安全生产责任制(2篇)
- 2021年10月广西梧州市人大常委会办公室公开招聘工作人员模拟卷(一)
- 天然气公司安全会议制度(2篇)
- 天猫运营经理岗位的主要职责范文(2篇)
- 综采队电器维修工安全技术操作规程模版(3篇)
- 2024年交接仪式校长讲话(3篇)
- 5.4 眼睛和眼镜教学设计八年级物理上册人教版2024
- 2024年专业技术培训协议范文(2篇)
- 2024年人力资源工作会议上的讲话(5篇)
- 互联网家居家装行业发展白皮书2021:住造美好家
- 防护栏生命工程监理实施细则全解
- 环甲膜穿刺术PPT课件
- 监视和测量设备管理制度
- 长轨运输 - T11长轨列车收轨作业
- 众筹投资优秀合同模板
- 信号频谱分析专科复习习题集
- 新风系统工程报价清单明细表
- 表一、博物馆基本情况调查表
- 0-3岁男童体重身高百分位数曲线图
- 餐饮门店经营利润表
- 机械式立体停车库设计方案
评论
0/150
提交评论