您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 简易计算器Java实训报告
实训报告书实训名称:Java程序设计实训系(部):信息工程系专业班级:计算机科学与技术学生姓名:学号:指导教师:张民完成日期:2015.12.11山东科技大学泰山科技学院课程实训报告书实训课题简易计算器实训人姓名同组人员实训日期2015.12.07至2015.12.11实训成绩指导教师评语指导教师签名:_____________________年____月____日目录1实训目的.......................................................................................................................................32简易计算机的分析与设计.........................................................................................................32.1系统功能描述.................................................................................................................32.2系统模块设计.................................................................................................................32.3数据库结构设计.............................................................................................................43主要代码清单.............................................................................................................................54程序运行与测试.........................................................................................................................95实训总结...................................................................................................................................11课程实训报告书3简易计算机的设计与实现1实训目的通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用JavaApplet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(inti)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现!2简易计算机的分析与设计2.1系统功能描述此系统可以实现如下功能:1)可进行“+”、“-”、“*”、“/”以及混合运算。2)支持()改变运算的优先级3)可进行二、十六和十进制数的相互转换4)支持复制和粘贴操作2.2系统模块设计(1)加法两个数据进行加操作,可以为小数。(2)减法两个数据进行减操作,可以为负数相减。(3)乘法二级标题:宋体小四号字,段前段后间距为0,报告中最多到二级标题课程实训报告书4两个数相乘操作。(4)除法两个数相除操作。(5)开平方对任意一个数进行开方运算,可以是小数。(6)求余对任意一个数进行求余运算。(7)倒数对任意一个数进行倒数运算。(8)转换将十进制数转换为二进制以及将二进制转换为十进制。2.3数据库结构设计图1计算机E-R图计算器求余运算开平方运算倒数运算二进制与十进制转除法运算乘法运算减法运算加法运算课程实训报告书5图2流程图3主要代码清单这段代码主要是对程序的主框架进行相应的设置super(简易计算器);setSize(300,260);this.setLayout(newBorderLayout());jPanel1=newJPanel();jPanel1.setLayout(newGridLayout(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.addActionListener(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(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);课程实训报告书6b4=newJButton(/);b4.addActionListener(this);b5=newJButton(^);b5.addActionListener(this);b6=newJButton(开方);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(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(s1);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);课程实训报告书7jPanel2.add(b9);jPanel2.add(f2);(3)数据输入用方法num(inti)设计如下:publicvoidnum(inti){Strings=null;s=String.valueOf(i);//返回整数i的字符串表示形式if(end){//如果数字输入结束,则将文本框置零,重新输入resultField.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=num1-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){课程实训报告书8//倒数if(num20)thrownewArithmeticException(分母不能小于零);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(resultField.getText()!=0){resultField
本文标题:简易计算器Java实训报告
链接地址:https://www.777doc.com/doc-6282549 .html