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

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上实训报告书实训名称: Java程序设计实训 系 (部): 信息工程系 专业班级: 计算机科学与技术 学生姓名: 学 号: 指导教师: 张民 完成日期: 2015.12.11 山东科技大学泰山科技学院专心-专注-专业实训课题简易计算器实训人姓名 同组人员实训日期2015.12.07至2015.12.11实训成绩指导教师评语指导教师签名:_年 _ 月_日目录简易计算机的设计与实现1 实训目的通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开

2、始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。    给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。    除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。    至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Inte

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

4、0;两个数据进行加操作,可以为小数。 (2)减法  两个数据进行减操作,可以为负数相减。 (3)乘法  两个数相乘操作。 (4)除法  两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)求余 对任意一个数进行求余运算。 (7)倒数 对任意一个数进行倒数运算。 (8)转换 将十进制数转换为二进制以及将二进制转换为十进制。加法运算2.3 数据库结构设计倒数运算 减法运算 计算器开平方运算乘法运

5、算求余运算二进制与十进制转除法运算图1 计算机E-R图图2 流程图3 主要代码清单 这段代码主要是对程序的主框架进行相应的设置 super("简易计算器");   setSize(300,260);     this.setLayout(new BorderLayout();     jPanel1=new JPanel();     jPanel1.set

6、Layout(new GridLayout(1,1);  /一行一列的布局  jPanel2=new JPanel();    jPanel2.setLayout(new GridLayout(6,4); /六行四列的布局  resultField=new JTextField("0");     jPanel1.add(resultField);  

7、60; this.add(jPanel1,BorderLayout.NORTH);    this.add(jPanel2,BorderLayout.CENTER);设置数字按钮1到9并添加监控以及符号等的添加监控  s1=new JButton("  1  ");  s1.addActionListener(this);    s2=new JButton(" &#

8、160;2  ");  s2.addActionListener(this);    s3=new JButton("  3  ");  s3.addActionListener(this);      s4=new JButton("  4  ");  s4.addA

9、ctionListener(this);s5=new JButton("  5  ");  s5.addActionListener(this);     s6=new JButton("  6  ");  s6.addActionListener(this);      s7=new JButto

10、n("  7  ");  s7.addActionListener(this);      s8=new JButton("  8  ");  s8.addActionListener(this);      s9=new JButton("  9  

11、;");  s9.addActionListener(this);    s0=new JButton("  0  ");  s0.addActionListener(this); b1=new JButton("  +  ");  b1.addActionListener(this);    &#

12、160;b2=new JButton("  -  ");  b2.addActionListener(this);     b3=new JButton("  *  ");  b3.addActionListener(this);     b4=new JButton("  /&

13、#160; ");  b4.addActionListener(this);   b5=new JButton("    ");  b5.addActionListener(this);     b6=new JButton(" 开方 ");  b6.addActionListener(this); 

14、0; b7=new JButton("  %  ");  b7.addActionListener(this);   b8=new JButton("  x! ");  b8.addActionListener(this);   b9=new JButton(" 1/x ");  b9.a

15、ddActionListener(this);   f1=new JButton("  .  ");  f1.addActionListener(this);     f2=new JButton("  =  ");  f2.addActionListener(this);   f3=new JBu

16、tton("  C  ");  f3.addActionListener(this);   f4=new JButton("  负   ");  f4.addActionListener(this);   f5=new JButton(" 退格  ");  f5.addActio

17、nListener(this);   jPanel2.add(f3);     jPanel2.add(b4);      jPanel2.add(b3);     jPanel2.add(f5);       jPanel2.add(s7);     jPanel2.add(s8);&#

18、160;     jPanel2.add(s9);     jPanel2.add(b1);      jPanel2.add(s4);      jPanel2.add(s5);     jPanel2.add(s6);      jPanel2.add(b2);&#

19、160;    jPanel2.add(s1);       jPanel2.add(s2);      jPanel2.add(s3);      jPanel2.add(b5);      jPanel2.add(s0);    jPanel2.add(f1);&#

20、160;  jPanel2.add(f4); jPanel2.add(b6);   jPanel2.add(b7);   jPanel2.add(b8);   jPanel2.add(b9);   jPanel2.add(f2);  (3)数据输入用方法num(int i)设计如下: public void num(int i)    &

21、#160; String s = null;       s=String.valueOf(i);  /返回整数i的字符串表示形式 if(end)            /如果数字输入结束,则将文本框置零,重新输入       resultField.setText(&

22、quot;0");          end=false;                    if(resultField.getText().equals("0")       /如果文本框的内

23、容为零,则覆盖文本框的内容         resultField.setText(s);                else          /如果文本框的内容不为零,则在内容后面添加数字    

24、60;   str = resultField.getText() + s;          resultField.setText(str);      以及用JFrame的方法actionPerformed(ActionEvent e)来获取数据 (4)符号运算及清零、退格的设计如下:     

25、;if(add)                / 加法      num1=num1 +num2;                 else if(sub)  

26、;      /减法         num1=num1 - num2;                 else if(mul)       /乘法  

27、60;    num1=num1 * num2;             else if(div)         /除法    if (num2=0)  throw new ArithmeticException(&q

28、uot;除数不能为零");       elsenum1=num1 / num2;             else if(chf)       /乘方       if(num2=0) num1=1;

29、0;     else        num1=Math.pow(num1, num2);                else if(evo)       /开方    

30、60;     if(num2<0) throw new ArithmeticException("被开方数不能小于零");       else num1=Math.sqrt(num2);            else if(rec)    

31、;  /倒数     if(num2<0) throw new ArithmeticException("分母不能小于零");       else num1=1/num2;            else if(per)   

32、60;    /百分       num1=num1/100.0;            else if(pur)       /阶乘      if(num2<0) throw new Ari

33、thmeticException("负数不能求阶乘");       else for(int i=1;i<num2;i+)     num1=i*num1;                resultField.setText(String.valueOf(num1);&

34、#160;       end=true;       else if(e.getSource()=f3)       /实现清零      resultField.setText("0");         

35、else if(e.getSource()=f4)     /实现负号      if(resultField.getText()!="0")    resultField.setText("-"+resultField.getText();             else if(e.getSource()=f5)   

温馨提示

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

评论

0/150

提交评论