JAVA课程设计计算器设计解读

上传人:仙*** 文档编号:87366366 上传时间:2022-05-09 格式:DOC 页数:19 大小:347KB
收藏 版权申诉 举报 下载
JAVA课程设计计算器设计解读_第1页
第1页 / 共19页
JAVA课程设计计算器设计解读_第2页
第2页 / 共19页
JAVA课程设计计算器设计解读_第3页
第3页 / 共19页
资源描述:

《JAVA课程设计计算器设计解读》由会员分享,可在线阅读,更多相关《JAVA课程设计计算器设计解读(19页珍藏版)》请在装配图网上搜索。

1、辽宁工业大学JAVA程序设计 课程设计(论文)题目JAVA 计算器设计院(系):软件学院专业班级:软件工程学 号:学生姓名:指导教师:王彦华教师职称:讲师起止时间:2012618 至 2012.7.1程序设计专题(报告)任务及评语院(系):软件学院教研室:软件教研室学生姓名专业班级软件工程班程序设计(报告)题目JAVA计算器设计程序设计报告任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application 。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6) 通过

2、设计主要使学生有一个独立编写程序的过程,对理论学习及动手能 力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想, 同时对本专业综合素 质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。 正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩指导教师签字: 2012辽宁工业大学课程设计说明书(论文)目录第1章课程设计的目的与要求 11.1课程设计目的 11.2课程设计的实验环境 11.3课程设计的预备知识 11.4课程设计要求 1第2章课程设计内容 22.1需求分析 22.2设计思路 22.3详细设计

3、32.4运行调试与分析讨论 62.4主要代码展示及说明 8第3章课程设计总结 14参考资料 .15辽宁工业大学课程设计说明书(论文)第1章 课程设计的目的与要求1.1课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专 业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在 网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为 基础进行软件开发、并在实践应用方面打

4、下一定基础。1.2课程设计的实验环境硬件要求能运行 Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集 成开发环境,J2SDK和ECLIPSE开发工具。1.3课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达 到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练 掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握, 能够进行简单分析和判断;能编写出具有良好风格的程序;掌握 JAVA程序设计的基本 技能和面向对象的概念和方法;了

5、解多线程、安全和网络等编程技术。同时培养学生进 行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、 设计过程的观察、理解和归纳能力的提高。1辽宁工业大学课程设计说明书(论文)第2章课程设计内容2.1需求分析1. 设计的计算器可以完成加法、减法、乘法、除法的简单运算。2. 实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。3. 添加小数点功能,用以实现浮点型数据的计算。4. 使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相 关的计算。2.2设计思路1. 界面设计:(如图2-1)图2-12. 设计思路:(1) 根据所设计出来的界面,首先

6、要设计其 GUI界面,总体界面有一个文本框,20个 按钮,总体界面用BorderLayout布局,文本框放置在最NORTH然后0到9以及 +,-,*,/等按钮放置到一个面板Panel中,完成界面设计。(2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数 值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值 拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,将运算符号显示到文本框中, 随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运算符 先将字符串数据转化成双精度类型,

7、然后计算出结果并显示到文本框当中。(3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格 等功能的实现,清零直接重置文本框内容,退格功能则采用substri ng函数截取字符串长度。2.3详细设计1. 程序流程图:开始*结果输出主界面心运算数將2. 主要代码展示及说明:总体代码的设计:程序采用继承windowadapter类,新建Jframe窗体,利用数组来定义JBotton按钮, 同时利用数组注册监听,采用 4行5列网格布局,完成计算器界面的基本设置,在窗体 的正常关闭方面,采用匿名类实现窗体的正常关闭。最后对按钮进行计算分析,分别设 定输入数据的A类、运算符控制的Op

8、ertion类,退格功能的Backspace类、计算结果的 Result类等等,一步步实现计算器的基本功能!(1)类A的设计(数据的输入)class A impleme nts Actio nListe ner3辽宁工业大学课程设计说明书(论文)public void acti on Performed(Act ion Eve nt e)Stri ng a = Jtext.getText();Stri ng s = e.getActio nComma nd();if(a.equals(O.)|a.equals(+)|a.equals(-)|a.equals(*)|a.equals(”/)Jte

9、xt.setText(s);elseif(flag2)Jtext.setText(s);flag2=false;elseJtext.setText(a+s);功能解释:程序开始时,程序初始化文本框的内容为“0. ”点击数字按钮,则调用类A,首先用a来获取当前文本框内容,s来获取按钮数值,然后进行判断,若a的值 为上述代码的值则输出s的值,再次点击数字按钮时,再次调用A类,此时a的值为上次输入的s值,第一个if语句不满足,执行下个if语句if(flag2) ,flag2初始值为 false,该语句的功能是在执行了“ = ”号按钮时,防止新的数字按钮的值合并到到已经 得出的结果上,例如:12+12

10、=24,此时再点击数字按钮3时,则文本框内容被重置,输 出数值3,而不是243,如果if(flag2) 不满足,则将字符串a和s合并并输出,得出第 一个要计算的数据。(2) 类Opertion的设计:(运算符的控制)class Opertio n impleme nts Actio nListe nerpublic void action Performed(Acti on Eve nt e)cal=e.getActio nComma nd();if(flag1=true)x=Jtext.getText();Jtext.setText(cal);flag仁false;功能解释:当点击运算符控制

11、按钮时,首先将运算符的数值赋值给cal (初值为空),紧接着进行判断,flagl初值为ture,该类的作用为在点击运算符按钮时,将计算 的第一个数据保存在x字符串变量当中,然后将文本框内容重置为点击的运算符的数值, 类的结尾将flagl赋值为false,防止再次点击运算符按钮时改变了x的值。(附:此时文本框内容为运算符的值,输入第二个计算数据时,点击数字按钮,则再次 调用A类,此时满足A类中第一个if语句,文本框内容被重置为数字按钮的值,接下来与获取第一个计算数据步骤一样,直到点击“=”号运算符为止!)(3) 类Result的设计:(计算并输出结果)class Result impleme n

12、ts Action Liste ner /计算并显示结果public void acti on Performed(Act ion Eve nt e)double nu m1;nu m仁Double.parseDouble(x);y=Jtext.getText();double nu m2;nu m2=Double.parseDouble(y);double result=0;if(nu m2!=0)if(cal.equals(+)result=nu m1+ nu m2;if(cal.equals(-)result=nu m1- nu m2;if(cal.equals(*)result=nu

13、m1* nu m2;Stri ng s仁Double.toStri ng(result);Jtext.setText(s1);if(cal.equals(/)if(nu m2=0)Jtext.setText(除数不能为 0);elseresult=nu m1/ nu m2;Stri ng s仁 Double.toStri ng(result);Jtext.setText(s1);flag仁true;flag2=true;功能解释:首先定义两个Double型numl num2将之前保存的第一个计算数据x 强制转换为Double型后赋值给numl,接着用字符串变量y来获取当前文本框的内容, 即第二

14、个计算数据的值,同样再将其强制转换Double型后赋值给num2然后进行运算符判断,对cal的值进行比较,然后进行相应的计算,将计算的结果转换成字符串后将 其输出到文本框中,在类的最后将 flagl、flag2赋值为true,作用是将计算的结果当 作第二次计算的数据进行再运算,即将结果重新赋值给x作为第一个计算数据!(附:在此类中还考虑了当除数为零的情况。)(4) 类Backspace的设计:(功能类一退格)class Backspace impleme nts Actio nListe nerpublic void acti on Performed(Act ion Eve nt e)Str

15、i ng s = e.getActio nComma nd();Stri ng s1 = Jtext.getText();if(s.equals(退格)s1= new String (s1.substring(0,s1.length()-1);Jtext.setText(s1);功能解释:这是计算器附加功能的实现,这里只介绍退格功能,像正负号、求倒 数、清零等功能相似,所以就不再介绍。首先获取退格按钮的命令值赋给s,然后获取当前文本框的内容,即输入的数据,将其赋给s1,接着进行判断,利用substri ng函数将s1字符串截取为从第一个字符至倒数第二个字符为止的字符串并重新赋值给s1,再将其输

16、出到文本框,实现退格的功能。2.4运行调试与分析讨论1.简单的运算:(以加法为例:123+456)分析:计算的结果为579.0,为双精度型,计算的 结果被设置在文本框的最右端,该计算器的一个特 点是可直接在文本框中输入数据以及进行更改。6辽宁工业大学课程设计说明书(论文)2.倒数的运算:(以123为例)分析:输出的结果如图所示,倒数功能实现,计算 时,不仅是结果,输入的数据同样可以先实现倒数 功能后再进行相应的计算,没有影响!3. 退格的运算:(以123为例)分析:输出的结果如图所示,本计算器退格键有一 个特点是,就算是是计算后得出的结果也能实现退 格,缺点是不能很好的处理小数点的问题,因为小

17、 数点也是字符串的一部分。4. 正负号的运算:(以123为例)分析:输出的结果如图所示,正负号添加能够很好 的实现,但可以进行一些改进,比如在计算过程当 中直接点击负号运算符输入负数进行计算!5. 总体分析:该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现, 总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存 在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一 个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必 须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算。2.4主要代码展

18、示及说明程序主要代码import java.awt.*;import javax.swi ng.*;import java.awt.eve nt.*;程序框架继承自WindowAdapterpublic class Calculate exte nds Win dowAdapter / 类private JTextField Jtext=n ew JTextField(O.);private JFrame f=new JFrame(简单计算器);private Stri ng x=;private Stri ng y=;private Stri ng cal=;private boolea n

19、 flag仁true;private boolea n flag2=false;public void in it()/初始化8辽宁工业大学课程设计说明书(论文)#辽宁工业大学课程设计说明书(论文)Stri ng butt onV alue = newStri ng1,2,3,+,C,4,5,6,-,退格7 8 9 * 1/x 0+/Container con tai n = f.getC onten tPa ne();JPa nel Jpa n = new JPa nel();JButt on Jb=new JButto n 20;采用4行5列的网格布contain.setLayout(ne

20、w BorderLayout(); /局Jpa n. setLayout (new GridLayout(4,5);Jtext.setHorizo ntalAlig nmen t(JTextField.RIGHT); con tai n.add(Jtext,North);contain. add(Jpa n);A num=new A();/数据Result re=new Result();/结果Operti on op=new Operti on();/运算符Clear cl=new Clear();/清零BackSpace back=new BackSpace();/退格Cou ntDow

21、n count_d=new Cou ntDow n();/倒数Strai ns stra=new Strai ns();/相反数for(i nt i = 0 ; i 12)&(i=19)&i!=15)Jbi.setForeground(new Color(255, 0, 0);elseJbi.setForegrou nd( new Color(0, 0, 255); /控制按钮字体颜色Jb4.addActio nListe ner(cl);Jb9.addActio nListe ner(back);Jb14.addActio nListe ner(cou nt_d);Jb16.addActio

22、 nListe ner(stra);Jb19.addActio nListe ner(re);f.setSize(320,240);f.setVisible(true);f.addWi ndowListe ner(/采用匿名类实现窗口的正常关闭new Win dowAdapter()public void wi ndowClosi ng(Wi ndowEve nt e)System.exit(O););class A impleme nts Acti on Liste ner/输入数据public void acti on Performed(Act ion Eve nt e)Stri ng

23、a = Jtext.getText();Stri ng s = e.getAct ion Comma nd();if(a.equals(O.)|a.equals(+)|a.equals(-)|a.equals(*)|a.equals(/)Jtext.setText(s);elseif(flag2)Jtext.setText(s); flag2=false;elseJtext.setText(a+s);class Opertio n impleme nts Actio nListe nerpublic void acti on Performed(Act ion Eve nt e)cal=e.g

24、etActio nComma nd();if(flag1=true)x=Jtext.getText();Jtext.setText(cal);flag仁false;class Clear impleme nts Actio nListe ne/清零功能public void acti on Performed(Act ion Eve nt e)Jtext.setText(O.);class Coun tDow n impleme nts Actio nListe ner/求倒数类public void acti on Performed(Act ion Eve nt e)Stri ng s =

25、 e.getAct ion Comma nd();Stri ng s1 = Jtext.getText();if(s.equals(1/x)s1 = new Stri ng (+1/Double.parseDouble(s1);Jtext.setText(s1);class Strai ns impleme nts Actio nListe ner/求相反数类class Result impleme nts Action Liste ner /计算并显示结果public void acti on Performed(Act ion Eve nt e)double nu m1;nu m仁Doub

26、le.parseDouble(x);y=Jtext.getText();double nu m2;nu m2=Double.parseDouble(y);double result=0;if(nu m2!=0)if(cal.equals(+)result=nu m1+ nu m2;if(cal.equals(-)result=nu m1- nu m2;if(cal.equals(*)result=nu m1* nu m2;Stri ng s仁Double.toStri ng(result);Jtext.setText(s1);if(cal.equals(/)if(nu m2=0)Jtext.s

27、etText(除数不能为 0);elseresult=nu m1/ nu m2;Stri ng s仁 Double.toStri ng(result);Jtext.setText(s1);public void action Performed(Acti on Eve nt e)Stri ng s = e.getAct ion Comma nd();Stri ng s1 = Jtext.getText();if(s.equals(+/-)s1= new Stri ng (+(0-Double.parseDouble(s1); Jtext.setText(s1);退格功能/class Backs

28、pace impleme nts Action Liste ner/public void action Performed(Acti on Eve nt e)Stri ng s = e.getActio nComma nd();Stri ng s1 = Jtext.getText(); if(s.equals(退格) s1= new String (s1.substring(0,s1.length()-1); Jtext.setText(s1);class Result impleme nts Actio nListe ner计算并显示结果public void acti on Perfor

29、med(Act ion Eve nt e) double nu m1; nu m仁Double.parseDouble(x); y=Jtext.getText(); double nu m2;nu m2=Double.parseDouble(y); double result=0;if(nu m2!=0)if(cal.equals(+) result=nu m1+ nu m2;if(cal.equals(-)result=nu m1-nu m2;if(cal.equals(*)result=nu m1* nu m2;Stri ng s仁Double.toStri ng(result);Jtex

30、t.setText(s1);if(cal.equals(/)if(nu m2=0)Jtext.setText(除数不能为 0);elseresult=nu m1/ nu m2;Stri ng s仁 Double.toStri ng(result);Jtext.setText(s1);flag仁true;flag2=true;方法public static void main( Stri ng args) /main Calculate count=new Calculate。;coun t.i nit();13辽宁工业大学课程设计说明书(论文)第3章课程设计总结本次课程设计到此算是告一段落了,

31、经过这次的学习,我学到了很多东西,在此基础上更加巩固了自己对java的认识与了解。在做本项目是时候,会遇到很多小问题,比如说,在整个运算过程中要如何确保输 入的计算数据哪个是第一个计算数据的,哪个是第二个计算数据的,同时也要区分运算 符,因为该计算器程序应用的都是利用字符串来完成计算的,而且不能重复输出运算符,更不能将运算符错误的存储在了第一个计算数据的数值中,也得考虑到万一不小心重复 点击了运算符按钮会不会造成第一个计算数据的重新赋值等等问题,最后想到利用布尔 类型来很好的控制运算符的应用!此次课程设计让我更了解熟悉了 Java中的图形用户界面和它的编程方式。在完成课 题的过程中也不断充实了

32、自己,学习到了很多以前没有学习到的知识,收获很大。最大 的收获就是对大学学习的总结和培养了解决困难的信心和能力,使我对所学知识能够融 会贯通,又不断丰富了新知识。Java计算器设计使得我们对所学的专业课有了更为深刻 的认识,使得知识得到了巩固和提高。在接下来的时间里,我觉得我要更加努力的往深一层次的方面看齐,了解更多有关java 的知识,对java有更深一步的了解,我会一步一步的走下去!14辽宁工业大学课程设计说明书(论文)1.2.3.4.5.6.7 .8.9.1011参考资料耿祥义JAVA大学实用教程电子工业出版社 2005-03耿祥义JAVA大学实用教程实验指导电子工业出版社2005-03美Cay S.Horstmann程峰等译JAVA2核心技术机械工业出版社 2003-06郝玉龙J2EE编程技术北方交大出版2003-02朱喜福Java程序设计人民邮电出版2003-04季民J2EE案例开发中国水利水电出版2003-08冯博Java网络编程清华大学出版2003-10朱战立Java程序设计实用教程人民邮电出版2004-03美Joe Walnes Java开放源码编程电子工业出版2004-07.王碧波 JBuilder 10入门与提高清华大学出版2004-11.美Gary,BronsonJava程序设计基础北京大学出版2005-0915

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!