Java电子计算器程序设计报告.doc_第1页
Java电子计算器程序设计报告.doc_第2页
Java电子计算器程序设计报告.doc_第3页
Java电子计算器程序设计报告.doc_第4页
Java电子计算器程序设计报告.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

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

文档简介

JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY Java程序设计报告基于Java电子计算器学院名称: 计算机工程学院 专 业: 软件工程系 班 级: 10软件2ZW 姓 名: 黄秋妍 指导教师姓名: 王秀梅 指导教师职称: 讲 师 2011 年 2 月 1设计内容及要求1.1 Java电子计算器的基本要求在日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,本章的课程设计是用Applet实现一个能进行简单四则运算的计算器。具体要求如下:1) 计算器其中一个面板上具有09共十个数字键加上小数点的按钮,能通过监听计算器得到自己输入想要运算的对象,进行基本的四则运算,即加、减、乘、除运算,通过等于键得到答案;2) 计算器其中有一个面板拥有sqrt键、x键、1/x键及正负转换键,监听得到命令后,可以对选定的数进行平方、开方与实数化分母以及正负转换的运算;3) 按“等于”能计算出自己想要的运算结果,运算结果会在本文区显示;4) 通过“退格”可以清除文本区显示数的最后一位;5) “清除”键可以清除上一次输入的参数,“全部清零”则能将所以参数全部恢复初始状态,即全部清除;6) 若重复输入小数点,就会跳出提示的对话框“已经有小数点了”。1.2 需实现的主要功能(1) 用户可以利用电子计算器进行简单的四则运算;(2) 用户可以选择除了加、减、乘、除外,附加的平方、开方、正负转换与1/X功能;(3) 用户可以利用清除键清除此次显示的内容或把所有参数清零;(4) 可以利用退格键清除显示数字的最后一位; 2需求分析2.1 电子计算器的布局设计系统的整体布局为:Grid Layout布局, 采用了按钮、面板等组件,按钮主要包括被数字,运算符号,等于号,小数点,清除以及退格, 对话框的功能是提示出错。其中,定义了operation Panel类:把数组里的内容加在按钮上,并为按钮设置背景色,再加到面板上。具体如下:class operationPanel extends Panel private static final long serialVersionUID = 1L; public Button buto; Font fnt1 = new Font(楷体, Font.ITALIC, 18);public operationPanel(String str, GridLayout grd, Color c) buto = new Buttonstr.length; setLayout(grd); for (int i = 0; i str.length; i+) butoi = new Button(stri); butoi.setBackground(c); butoi.setFont(fnt1); add(butoi); 数字及运算符按钮的布局在init()通过命令一一添加到新建的Panel上的网格布局内,并为其注册监听器。2.2 四则运算的设计如果end为false,获取文本上的字符转化为数字并赋值给two,判断yunsuanfu是哪个值,进行四则运算: 加(+)法:对两个数进行求和计算也就是求a与b的和 如2+3=5。 减(-)法:对两个数进行求余计算也就是求a与 b的余数 如 5-3=2。 乘(*)法:对两个数进行相乘计算也就是求a与b 的乘积 如2 x 3=6。 除(/)法:对两个数进行除法计算也就是求 a与 b的除值 如 6/2=3。最后把得到的结果转化为文本并输出,判断是否要继续进行运算。2.3 平方、开方、正负转换与1/X键的设计2.4 退格、清除与全部清零键的设计3总体设计3.1 总体功能图JAVA电子计算器四则运算加 减 乘 除法 法 法 法附加运算 以 平 开 此 正 数 负 为 转 方 方 分 换 母退 清 全 部 清 格 除 除等于图2-4 总体功能图3.2 总体流程图事件来源为Button“C”“=”运算Yunsuanji()清除 actionPerformed()数字或”.”运算符已有第二运算数保存当前运算符,运算Yunsuanji()保存新输入的运算符到yunsuanjieguo是,判断按钮是否按钮为数字追加输入数据doForeText(s)是按钮为“.”且之前没有输入过“.”,将小数点“.”追加到输入的数据后否结束事件处理开始end为空为空表示还没有再次输入运算符或“=”保存yunsuano()第一个运算数),第二运算数置为空是两个运算数都不为空否是将运算数转换为double型根据运算符进行相应运算运算后将结果作为第一运算数,而第二运算数置为空结束开始运算图2-5、2-6 总体流程图4主要功能设计流程4.1 JAVA电子计算器设计流程图图2-7 电子计算器设计流程图4.2平方、开方、1/X、正负转换键设计流程图图2-8 四则运算设计流程图4.3平方、开方、1/X、正负转换键设计流程图图2-9 平方、开方、1/X及正负转换键设计流程图4.4 退格、清除及全部清零键流程图5运行效果图图2-10 运行主界面效果图图2-10 开方和平方键 运行效果图图2-10 正负转换键 运行效果图图2-10退格键 运行效果图图2-10清除键 运行效果图6总结与说明这次实习,对我而言收获颇丰。计算器这个项目虽然十分简单,但让我真正完成它也花费了好些时间。它不仅让我认识到自己的不足所在和以后努力的方向。我很庆幸能在这样有限的时间里,在这么和谐的气氛中学习,和同学们一起相处,我也努力向他们学习,不懂就问,认真完成老师交给我的每一项任务。他们也都尽力帮助我,给我讲授Java相关的编程知识,耐心解答我的疑难困惑,帮助我尽快达到了实训的目的,再次感谢我的指导老师及各位同学对我的无私帮助。7部分原代码(见附录2)import java.applet.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JOptionPane;class operationPanel extends Panel private static final long serialVersionUID = 1L;/serialVersionUID 用来表明类的不同版本间的兼容性 public Button buto; Font fnt1 = new Font(楷体, Font.ITALIC, 18);/按钮上字体为:18号楷体,倾斜 public operationPanel(String str, GridLayout grd, Color c) buto = new Buttonstr.length; setLayout(grd); for (int i = 0; i 1) /当end为否并且文本上的字符数大于1 text.setText(text.getText().substring(0, text.getText().length() - 1);/重新得到退格后的文本 else text.setText(0);/文本显示为零 else if (e.getActionCommand().equals(清除) text.setText(0); else if (e.getActionCommand().equals(全部清零) first = 0; two = 0; dianyi = 0; yunsuanfu = 0; end = false; yunsuanjieguo=false; lianxuyunsuan=false; text.setText(0); for (int ic = 0; ic num.buto.length; ic+) if (e.getSource() = num.butoic) if(yunsuanjieguo=true) text.setText(0); yunsuanjieguo=false; if (e.getActionCommand().equals(.) if (!text.getText().contains(.)/ text.setText(text.getText() + .); else JOptionPane.showMessageDialog(null, 已经有小数点了);/提示对话框 break; else if (e.getActionCommand().equals( = ) Yunsuano(); end=true; yunsuanjieguo=true; lianxuyunsuan=false; break; else if(text.getText().equals(0) text.setText(e.getActionCommand(); else text.setText(text.getText() + e.getActionCommand(); break; for (int ic = 0; ic ope.buto.length; ic+) if (e.getSource() = ope.butoic) end = false; if (ic % 2 != 0) yunsuanfuji = ic; dianyi = (Double.valueOf(text.getText().doubleValue(); Yunsua

温馨提示

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

评论

0/150

提交评论