Java课程设计报告1

上传人:hs****ma 文档编号:495558318 上传时间:2024-02-26 格式:DOC 页数:29 大小:327.51KB
返回 下载 相关 举报
Java课程设计报告1_第1页
第1页 / 共29页
Java课程设计报告1_第2页
第2页 / 共29页
Java课程设计报告1_第3页
第3页 / 共29页
Java课程设计报告1_第4页
第4页 / 共29页
Java课程设计报告1_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Java课程设计报告1》由会员分享,可在线阅读,更多相关《Java课程设计报告1(29页珍藏版)》请在金锄头文库上搜索。

1、 湖 南 农 业 大 学Java课程设计报告计算器软件设计学生姓名: 学 号: 年级专业:指导老师: 学 院:目 录1. 前言22概要设计3 2.1 开发环境3 2.2 计算器功能3 2.3 界面设计3 2.4 类UML图43. 详细设计4 3.1 使用的JAVA类的说明4 3.2 类的主要方法53.2.1 处理按了运算符后的计算53.2.2 处理输入字符63.2.3 进制的转换63.2.4 设计总体认识73.2.5 程序流程图8 4. 运行结果85. 测试分析9 5.1 程序运行情况9 5.2 程序异常处理96. 源程序9参考文献27致 谢271摘要:该程序是一个图形界面的简单的java计算

2、器,具有良好的界面,使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,以及开平方)但仅限于十进制下,还可以进行(八进制,十进制,十六进制)之间的相互转换,八进制最多可以输入19位数,十进制最多可以输入18位数,十六进制最多可以输入14位数,backspace表示退格, clear表示初始化,sqrt表示开平方,界面为灰白对称。关键字:java、计算器类、方法、事件1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应

3、用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程

4、序或者是Applet所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。Java语言是由C+语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C+语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。2 概要设计2.1开发环境 开发平台:M

5、icrosoft Windows XP Professional Service Pack 2 开发工具:JBuilder 2007 + JDK 1.6.0_022.2计算器功能功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的功能。 功能 2:在任何时候按下“”键,计算器文本框上的数字置反号。 功能 3:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运 算”键,将算出前两个数字运算的结果,然后按下数字,将又重新输入新的数字。 功能 4:输入数字后,按下“等于”键,将仍输出原来的数 输入运算符和第二个数字后再按下“=”键,将得到二者运算的结果,然后又重复功能 3

6、 和功能 4 。 功能 5:按下清除“C”键,数据被全部清楚。2.3界面设计图2.3 计算器面板2.4类 UML图ArrayStackChar UML图如图2.3A所示:ArrayStackDouble UML图如图2.3B所示图2.4A 图2.4B3详细设计3.1计算器使用的Java类的说明类名: This_number_too_big作用: 自定义的异常类,用来处理计算结果溢出 继承的父类: Exception类 实现的接口: 没有 class This_number_too_big extends Exception /自定义的一个结果溢出异常类类名: Jsp2003 作用: 主类。继承

7、的父类: Frame类实现的接口: ItemListener类,ActionListener类class Jsp2003 extends Frame implements ItemListener,ActionListener public int number=0,length=18; /number是用来记录输入的数字个数, /length是用来设置在不同进制下允许输入的最多数字位数,默认为十进 制 public char mark=n; /设置运算符号为没有即为n,它的值是+-*/ public double data=0; /设置运算数据为零 public char ch; /用来临时

8、存放所按按钮的第一个字符 public boolean Refresh=false; /设置lab是否要在输入数据的时候刷新,初始为否 程序的设计参考了Sun Java网站里的大量实例,比如Layout的使用、Event的处理、Components的添加与应用等等。其中:public class NewCalc extends JFrame implements ActionListener语句实现了ActionListener接口,因此可以调用addActionListener(this)方法对按钮进行点击监听,在下面的public void actionPerformed(ActionEv

9、ent e)方法里面对各个点击事件进行处理。3.2类的主要方法3.2.1处理按了运算符后的计算: public void js() throws This_number_too_big if (mark=n) mark=ch; / data=Double.parseDouble(lab.getText();Refresh=true; else switch (mark) case +: data+=Double.parseDouble(lab.getText(); break; case -: data-=Double.parseDouble(lab.getText(); break; cas

10、e *: data*=Double.parseDouble(lab.getText(); break; case /: data/=Double.parseDouble(lab.getText(); break; lab.setText(Double.toString(data); mark=ch; Refresh=true; number=lab.getText().length();/ System.out.println(lab.getText();if (dataDouble.MAX_VALUE) throw new This_number_too_big(); 3.2.2处理输入字符

11、:if(Refresh=true) lab.setText(0); number=0; Refresh=false; if(lab.getText().charAt(0)=0& lab.getText().length()=1) lab.setText(Character.toString(ch); number+; else if(numberlength) number+;lab.setText(lab.getText()+ch); 3.2.3八进制或十六进制转换成十进制I:public String goto_10(String s,long l) /参数s: 是要转换的字符串,由于输入

12、的控制,保证了字符串的合法性; /参数l: 使用来设置是将8进制还是16进制转换成10进制,它的有效值为8或16; String str=s; /用来转换的字符串 long j=l; /表示进制 long lg=0,jing=1;/lg用来记录权乘和,jing用来记录位权 char cha;/临时记录要转换的字符 for(int i=1;i=str.length();i+) cha=str.charAt(str.length()-i); switch(cha) case 1: lg=lg+1*jing;break; case 2: lg=lg+2*jing;break; case 3: lg=

13、lg+3*jing;break; case 4: lg=lg+4*jing;break; case 5: lg=lg+5*jing;break; case 6: lg=lg+6*jing;break; case 7: lg=lg+7*jing;break; case 8: lg=lg+8*jing;break; case 9: lg=lg+9*jing;break; case A: lg=lg+10*jing;break; case B: lg=lg+11*jing;break; case C: lg=lg+12*jing;break; case D: lg=lg+13*jing;break; case E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号