已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
枣枣 庄庄 学学 院院 信息科学与工程学院信息科学与工程学院 课程设计任务书课程设计任务书 题目: 计算器 学 号: 0315 0307 0311 姓 名: 王宇 刘志伟 王传翔 专 业: 网络技术 课 程: java 程序设计与实践教程 指导教师: 王琳琳 职称: 讲师 完成时间: 2013 年 12 月-2014 年 1 月 枣庄学院信息科学与工程学院制 1 年 月 日 课程设计任务书及成绩评定课程设计任务书及成绩评定 实验任务:实验任务:运用运用 javajava 语言设计计算器,使计算器能够做简单的运算语言设计计算器,使计算器能够做简单的运算 实验目的实验目的:通过综合性课程设计题目的完成过程,运用所学:通过综合性课程设计题目的完成过程,运用所学 javajava 语言知识,语言知识, 解决生活中遇到的实际问题,达到活学活用,所学所用的目的,进一步理解解决生活中遇到的实际问题,达到活学活用,所学所用的目的,进一步理解 javajava 语言的学习目的,提高实际应用水平语言的学习目的,提高实际应用水平 指导教师签字: 、 日期: 成绩: 指导教师签字: 日期: 2 硬件:硬件:win7 笔记本笔记本 软件:软件:eclipse 软件软件 课程设计进度计划课程设计进度计划 起至日期起至日期工作内容工作内容备注备注 13 年年 12 月上旬月上旬 13 年年 12 月中旬月中旬 13 年年 12 月下旬月下旬 收集素材收集素材 制定计划方案制定计划方案 设计制作设计制作 参考文献、资料索引参考文献、资料索引 序号文献、资料名称编著者出版单位 javajava 程序设计与实践教程程序设计与实践教程 王薇王薇 清华大学出版社清华大学出版社 疯狂疯狂 javajava 讲义讲义 李刚李刚 电子工业出版社电子工业出版社 javajava 从入门到精通从入门到精通 明日科技明日科技 清华大学出版社清华大学出版社 2 目录目录 1 1 概述概述 .1.1 1.11.1 设计目的及思路设计目的及思路 2 2 1.21.2 功能模块设计功能模块设计 2 2 1.31.3 系统功能图系统功能图 3 3 2 2 计算器的设计与实现计算器的设计与实现 3 3 2.12.1 程序界面程序界面 3 3 2.22.2 程序源代码程序源代码 4 4 3 3 计算器演示计算器演示 1010 4 4 运行调试及讨论分析运行调试及讨论分析 1313 5 5 小结小结 1313 3 1 概述 1.11.1 设计目的及思路设计目的及思路 通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和 开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编 程能力。利用 Java Applet 图形界面首先开始设计一个计算器的界面,定义计 算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见, 操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执 行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法 要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用 Java 中进制转换的函数,例 如要将十进制转换成二进制则可直接调用函数 Integer.toBinaryString(int i)来 实现,充分显示了 Java 语言的简洁性和 Java 语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是 Java 语言健壮性的体现! 1.21.2 功能模块设计功能模块设计 以下为标准计算器的基本功能: (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。 (3)乘法 两个数相乘操作。 (4)除法 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 4 1.31.3 系统功能图系统功能图 计算器 减法运算 加法运算 乘法运算 除法运算 清零 开方 5 2 计算器的设计与实现 2.12.1 程序界面程序界面 2.22.2 程序源代码程序源代码 import java.awt.*;/计算器实例 import java.awt.event.*; class calculator public static void main(String args) MyWindow my=new MyWindow(“计算器“); class MyWindow extends Frame implements ActionListener StringBuffer m=new StringBuffer();/传值 int p; TextField tex;/文本框 Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,jia,jian,cheng,chu,deng,dian,qingling,k aifang;/调用 button 里面的东西 MyWindow(String s) super(s);/调用父类构造函数 /StringBuffer s2=new StringBuffer(); 6 /String s; tex=new TextField(18); b0=new Button(“ 0 “); b1=new Button(“ 1 “); b2=new Button(“ 2 “); b3=new Button(“ 3 “); b4=new Button(“ 4 “); b5=new Button(“ 5 “); b6=new Button(“ 6 “); b7=new Button(“ 7 “); b8=new Button(“ 8 “); b9=new Button(“ 9 “); dian=new Button(“ . “); jia=new Button(“ + “); jian=new Button(“ - “); cheng=new Button(“ “); chu=new Button(“ / “); deng=new Button(“ = “); qingling=new Button(“ 清零 “); kaifang=new Button(“ “); setLayout(new FlowLayout();/布局管理 add(tex);/静态方法 add(b0); add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); add(dian); add(jia); add(jian); add(cheng); add(chu); add(kaifang); 7 add(qingling); add(deng); b0.addActionListener(this);/注册事件监听器,作用是将 b0 界面的事件处 理交给 this 对象去处理 b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); jia.addActionListener(this); jian.addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); dian.addActionListener(this); deng.addActionListener(this); qingling.addActionListener(this); kaifang.addActionListener(this); setBounds(200,200,160,280);/建立窗口坐标大小 setResizable(false);/调整窗口大小 setVisible(true); validate();/确保组件具有有效的布局 addWindowListener(new WindowAdapter()/事件监听器 public void windowClosing(WindowEvent ee)/判断返回值是否错误 System.exit(0); ); 8 public void actionPerformed(ActionEvent e)/用于接收操作事件的侦听器 接口 if(e.getSource()=b0) m=m.append(“0“); tex.setText(String.valueOf(m); if(e.getSource()=b1) m=m.append(“1“); tex.setText(String.valueOf(m); if(e.getSource()=b2) m=m.append(“2“); tex.setText(String.valueOf(m); if(e.getSource()=b3) m=m.append(“3“); tex.setText(String.valueOf(m); if(e.getSource()=b4) m=m.append(“4“); tex.setText(String.valueOf(m); if(e.getSource()=b5) m=m.append(“5“); tex.setText(String.valueOf(m); if(e.getSource()=b6) m=m.append(“6“); tex.setText(String.valueOf(m); if(e.getSource()=b7) m=m.append(“7“); tex.setText(String.valueOf(m); if(e.getSource()=b8) m=m.append(“8“); tex.setText(String.valueOf(m); if(e.getSource()=b9) 9 m=m.append(“9“); tex.setText(String.valueOf(m); if(e.getSource()=jia) m=m.append(“+“); tex.setText(String.valueOf(m); if(e.getSource()=jian) m=m.append(“-“); tex.setText(String.valueOf(m); if(e.getSource()=cheng) m=m.append(“*“); tex.setText(String.valueOf(m); if(e.getSource()=chu) m=m.append(“/“); tex.setText(String.valueOf(m); if(e.getSource()=dian) m=m.append(“.“); tex.setText(String.valueOf(m); String mm=String.valueOf(m);/把字符类型转化成字符串 int p1=mm.indexOf(“+“); int p2=mm.indexOf(“-“); int p3=mm.indexOf(“*“); int p4=mm.indexOf(“/“); if(p1!=-1) p=p1; else if(p3!=-1) p=p3; else if(p2!=-1) p=p2; else if(p4!=-1) 10 p=p4; if(e.getSource()=deng) String m1=mm.substring(0,p);/构造一个新的 String String m2=mm.substring(p+1); String ch=mm.substring(p,p+1); /System.out.println(m1); /System.out.println(m2); /System.out.println(ch); if(ch.equals(“+“) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1+n2; String su=String.valueOf(sum); tex.setText(su); if(ch.equals(“-“) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1-n2; String su=String.valueOf(sum); tex.setText(su); if(ch.equals(“*“) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1*n2; String su=String.valueOf(sum); tex.setText(su); 11 if(ch.equals(“/“) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1/n2; String su=String.valueOf(sum); tex.setText(su); if(e.getSource()=qingling) StringBuffer kk=new StringBuffer(); m=kk; tex.setText(“0“); / System.out.println(mm); if(e.getSource()=kaifang) String t=tex.getText(); float num=Float.parseFloat(t); double nub=Math.sqrt(num); tex.setText(String.valueOf(nub); 12 3 计算器演示 加法 减法 13 乘法 除法 14 平方 清零 15 4 运行调试及讨论分析 将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运 行将会出现一个 JavaApplet 计算器界面。在调试过程中可能会出现有界面但是 不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小 程序进行初始化,这样小程序才能运行! 在调试和运行完全正确后,我们就可以按照自己的医院将小程序进行简单 测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序 师正确的。有时候我们还要输入不同范围的值进行测试,可能会发现更多的错 误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们 就可以改正以适应更多更大的运算。 有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范 而又不缺少题目所要求的功能,那就要求我们翻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高考语文复习知识清单第九章语言文字运用专题13图文转换(学生版+教师版)
- 自律的课件教学课件
- 三年级数学(上)计算题专项练习附答案
- 网店和解协议书(2篇)
- 南京航空航天大学《电力电子理论与方法》2023-2024学年期末试卷
- 南京工业大学浦江学院《食品工艺学》2022-2023学年第一学期期末试卷
- 农业示范区景观工程施工组织设计
- 颜公河干流整治工程施工组织设计
- 南京工业大学浦江学院《结构力学》2021-2022学年第一学期期末试卷
- 《小数的性质》小学数学说课稿
- 四级翻译完整版本
- 四川省眉山市2023-2024学年八年级上学期语文期中试卷(含答案)
- 2024年酒店转让居间协议
- 小学生安全教育与自我保护能力培养研究课题研究方案
- 2024年福建省公务员录用考试《行测》答案及解析
- 期中 (试题) -2024-2025学年译林版(三起)英语三年级上册
- 10以内加减法(直接打印,20篇)
- 【楼屋面裂缝原因及防治措施研究(论文)】
- GB/T 4337-2015金属材料疲劳试验旋转弯曲方法
- 五年级上册英语课件-Unit5 What do they do?(第一课时) |译林版(三起) (共17张PPT)
- CM-4 融创集团结算管理制度
评论
0/150
提交评论