简易计算器Java实训报告_第1页
简易计算器Java实训报告_第2页
简易计算器Java实训报告_第3页
简易计算器Java实训报告_第4页
简易计算器Java实训报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、实训报告书实训名称: Java程序设计实训 系 (部): 信息工程系 专业班级: 计算机科学与技术 学生姓名: 学 号: 指导教师: 张民 完成日期: 2015.12.11 山东科技大学泰山科技学院实训课题简易计算器实训人姓名 同组人员实训日期2015.12.07至2015.12.11实训成绩指导教师评语指导教师签名:_年 _ 月_日目录1 实训目的22 简易计算机的分析与设计22.1 系统功能描述22.2 系统模块设计22.3 数据库结构设计33 主要代码清单44 程序运行与测试85 实训总结10简易计算机的设计与实现1 实训目的通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发

2、方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用JavaApplet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryStrin

3、g(inti)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!2 简易计算机的分析与设计二级标题:宋体小四号字,段前段后间距为0,报告中最多到二级标题2.1 系统功能描述此系统可以实现如下功能:1)可进行“+”、“-”、“*”、“/”以及混合运算。2)支持()改变运算的优先级3)可进行二、十六和十进制数的相互转换4)支持复制和粘贴操作2.2 系统模块设计(1)加法两个数据进行加操作,可以为小数。(2)减法两个数据进行减操作,可以为负数相减。(3)乘法两个数相乘操作。(4)除法两个数相除操

4、作。(5)开平方对任意一个数进行开方运算,可以是小数。(6)求余对任意一个数进行求余运算。(7)倒数对任意一个数进行倒数运算。(8)转换将十进制数转换为二进制以及将二进制转换为十进制。加法运算2.3 数据库结构设计倒数运算 减法运算计算器开平方运算乘法运算求余运算二进制与十进制转除法运算图1 计算机E-R图图2 流程图3 主要代码清单这段代码主要是对程序的主框架进行相应的设置super(简易计算器);setSize(300,260);this.setLayout(newBorderLayout();jPanel1=newJPanel();jPanel1.setLayout(newGridLay

5、out(1,1);/一行一列的布局jPanel2=newJPanel();jPanel2.setLayout(newGridLayout(6,4);/六行四列的布局resultField=newJTextField(0);jPanel1.add(resultField);this.add(jPanel1,BorderLayout.NORTH);this.add(jPanel2,BorderLayout.CENTER);设置数字按钮1到9并添加监控以及符号等的添加监控s1=newJButton(1);s1.addActionListener(this);s2=newJButton(2);s2.a

6、ddActionListener(this);s3=newJButton(3);s3.addActionListener(this);s4=newJButton(4);s4.addActionListener(this);s5=newJButton(5);s5.addActionListener(this);s6=newJButton(6);s6.addActionListener(this);s7=newJButton(7);s7.addActionListener(this);s8=newJButton(8);s8.addActionListener(this);s9=newJButton

7、(9);s9.addActionListener(this);s0=newJButton(0);s0.addActionListener(this);b1=newJButton(+);b1.addActionListener(this);b2=newJButton(-);b2.addActionListener(this);b3=newJButton(*);b3.addActionListener(this);b4=newJButton(/);b4.addActionListener(this);b5=newJButton();b5.addActionListener(this);b6=new

8、JButton(开方);b6.addActionListener(this);b7=newJButton(%);b7.addActionListener(this);b8=newJButton(x!);b8.addActionListener(this);b9=newJButton(1/x);b9.addActionListener(this);f1=newJButton(.);f1.addActionListener(this);f2=newJButton(=);f2.addActionListener(this);f3=newJButton(C);f3.addActionListener(

9、this);f4=newJButton(负);f4.addActionListener(this);f5=newJButton(退格);f5.addActionListener(this);jPanel2.add(f3);jPanel2.add(b4);jPanel2.add(b3);jPanel2.add(f5);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s

10、1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b5);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f4);jPanel2.add(b6);jPanel2.add(b7);jPanel2.add(b8);jPanel2.add(b9);jPanel2.add(f2);(3)数据输入用方法num(inti)设计如下:publicvoidnum(inti)Strings=null;s=String.valueOf(i);/返回整数i的字符串表示形式if(end)/如果数字输入结束,则将文本框置零,重新输入re

11、sultField.setText(0);end=false;if(resultField.getText().equals(0)/如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);else/如果文本框的内容不为零,则在内容后面添加数字str=resultField.getText()+s;resultField.setText(str);以及用JFrame的方法actionPerformed(ActionEvente)来获取数据(4)符号运算及清零、退格的设计如下:if(add)/加法num1=num1+num2;elseif(sub)/减法num1=nu

12、m1-num2;elseif(mul)/乘法num1=num1*num2;elseif(div)/除法if(num2=0)thrownewArithmeticException(除数不能为零);elsenum1=num1/num2;elseif(chf)/乘方if(num2=0)num1=1;elsenum1=Math.pow(num1,num2);elseif(evo)/开方if(num20)thrownewArithmeticException(被开方数不能小于零);elsenum1=Math.sqrt(num2);elseif(rec)/倒数if(num20)thrownewArithm

13、eticException(分母不能小于零);elsenum1=1/num2;elseif(per)/百分num1=num1/100.0;elseif(pur)/阶乘if(num20)thrownewArithmeticException(负数不能求阶乘);elsefor(inti=1;inum2;i+)num1=i*num1;resultField.setText(String.valueOf(num1);end=true;elseif(e.getSource()=f3)/实现清零resultField.setText(0);elseif(e.getSource()=f4)/实现负号if(r

14、esultField.getText()!=0)resultField.setText(-+resultField.getText();elseif(e.getSource()=f5)/实现退格inti;i=(resultField.getText().length();if(i=1)resultField.setText(0);elsestr=resultField.getText();resultField.setText(str.substring(0,i-1);图3 主要程序图4 程序运行与测试图4 加法实现图图5 减法实现图图6 乘法实现图图7 除法实现图图8 二进制变十进制图9 十进制变二进制5 实训总结经过一周的实习,本学期的java课程设计到此也算告一段落了,经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java基本知识及软件开发的了解。在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输入的计算数据哪个是第一个计算数据的,哪个是第二个计算数据的,同时也要区分运算符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔类型来很好的控制运算

温馨提示

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

评论

0/150

提交评论