java课程设计报告—计算器_第1页
java课程设计报告—计算器_第2页
java课程设计报告—计算器_第3页
java课程设计报告—计算器_第4页
java课程设计报告—计算器_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

1、目录一,课程设计的目的2二,课程设计任务.22.1。设计任务22.2。课程设计要求:22.3、需求分析2三。开发工具和平台.33.1。开发工具33.2。开发平台34.设计理念.44.1。接口设计.44.2.1。逻辑设计44.2.2。.程序流程图54.2.3。主代码显示和描述.54.3。程序测试10V.实验总结11六.附录(程序代码)12一,课程设计的目的1、掌握java面向对象编程。2.选择适当的数据结构来满足要求。3.熟练使用各种控制结构。4.图形用户界面组件和事件处理技术。二,课程设计任务2.1。设计任务设计一个简单的计算器,可以执行四种运算:加、减、乘、除等。(限于十进制)程序要求:(1

2、)应有相应的界面,可以参考视窗操作系统的计算器界面。(2)操作符号有:“”、“-”、“*”、“/”、“/-”等。(根据国际惯例设计)(3)用户可以通过点击程序界面上的按钮输入数字和操作符。(4)以上部分是必要的内容。选定零件:(1)带有操作符号“1/x”、“sqrt”(处方)、”(十进制函数)等。2.2、课程设计要求:(1)运用所学的课程知识完成计算器的基本任务。(2)查阅相关资料,学习和掌握项目涉及的新知识,提高自学能力。(3)用java程序编写计算器,可以提高我对简单图形界面的掌握和理解。2.3、需求分析1.所设计的计算器可以完成简单的运算,如加法、减法、乘法和除法。2.实现一些简单的扩展

3、操作,如符号、倒计时、退格、清零等。3.添加小数点函数来计算浮点数据。4.使用布局管理器设计计算器界面,使用事件侦听器处理数据输入,并完成相关计算。第三,开发工具和平台3.1。开发工具微软视窗7旗舰版3.2。开发平台JDK1.6.0-02和用户设备编译器第四,设计理念4.1界面设计:(如图3-1所示)图3-14.2.1。逻辑设计:(1)根据设计的界面,首先要设计图形用户界面。整个界面有一个文本框和20个按钮。整个界面由边界布局来安排。文本框被放置在NORTH,然后按钮0到9和,-,*,/被放置在面板中以完成界面设计。(2)设计计算流程,首先点击数字按钮,将按钮数值添加到文本框中,并保存为字符串

4、,然后再次点击数字按钮,将以前保存的字符串与新的数值拼接,并添加到文本框中,直到点击操作按钮,将文本框中的字符串保存为字符串变量,然后重置文本框内容并在文本框中显示操作符号。当输入第二计算数据时,数据以相同的方式保存。最后,通过控制“=”运算符将字符串数据转换为双精度,然后计算结果并显示在文本框中。(3)基本操作设计完成后,我们开始考虑其他单独功能的实现,如倒计时、归零和退格等。归零直接重置文本框的内容,而反变函数用于截取字符串长度。4.2.2。工艺流程图:4.2.3。主要代码的显示和解释:总体代码设计:该程序采用继承的windowadapter类,创建Jframe表单,按数组定义JBotto

5、n按钮,按数组注册和监控,采用4行5列的网格布局完成计算器界面的基本设置。在表单的正常关闭方面,使用匿名类来实现表单的正常关闭。最后,对按钮进行计算和分析,设置输入数据的A类、操作符控制的操作类、带退格功能的退格类、计算结果的结果类等。逐步实现计算器的基本功能!(1)a类设计(数据输入)类实现了ActionListener已执行的公共无效操作(操作事件e)字符串a=Jtext . GetText();字符串s=e . GetActionCommand();如果(a .等于( 0。)| | a . equals()| | a . equals(-)| | a . equals( * | | a

6、. equals(/)jtext . SetText(s);其他if(标志2)jtext . SetText(s);flag2=false其他jtext . SetText(a/s);功能说明:在程序开始时,程序将文本框的内容初始化为“0”,然后调用类A。首先,用A得到当前文本框的内容,用S得到按钮的值,然后作出判断。如果A是上述代码的值,则输出S的值。当您再次单击数字按钮时,请再次呼叫A类。此时,A的值是S的最后一个输入值。如果不满足第一个if语句,则执行下一个IF语句。标志2的初始值为假。该语句的功能是防止在执行“=”按钮时,新数字按钮的值被合并到获得的结果中,例如:12 12=24。此时

7、,当再次点击数字按钮3时,文本框的内容将被重置,并且值3将被输出而不是243。如果不满足(flag2),字符串A和S将被合并并输出以获得第一个字符串(2)操作类的设计:(操作员控制)类操作实现了ActionListener已执行的公共无效操作(操作事件e)cal=e . GetActionCommand();if(flag1=true)x=Jtext . GetText();jtext . SetText(cal);flag1=false功能说明:点击操作员控制按钮时,首先将操作员的数值赋给cal(初始值为空),然后判断flag1的初始值为真。此类的功能是在单击运算符按钮时将第一个计算数据保存

8、在X字符串变量中,然后将文本框的内容重置为所单击的运算符的数值,并在类的末尾将标志1指定为false,以防止再次单击运算符按钮时X的值发生变化。(注意:此时,文本框的内容是运算符的值。当输入第二个计算数据时,单击数字按钮再次呼叫A类。此时,满足了类A中的第一个if语句,并且文本框的内容被重置为数字按钮的值。下一步与获取第一个计算数据相同,直到单击运算符“=”!)(3)课堂结果设计:(计算并输出结果)类结果实现动作监听器/计算并显示结果已执行的公共无效操作(操作事件e)双num1num 1=Double . ParseDouble(x);y=Jtext . GetText();双num2num

9、2=Double . ParseDouble(y);双重结果=0;if(num2!=0)if(cal.equals()结果=num1 num2if(cal.equals(-)结果=num 1-num 2;if(cal.equals(* )结果=num1 * num2字符串s1=双精度字符串(结果);jtext . SetText(S1);if(cal.equals(/)if(num2=0)Jtext.setText(“除数不能为0”);其他结果=num 1/num 2;字符串s1=双精度字符串(结果);jtext . SetText(S1);flag1=真;flag2=真;功能说明:首先定义两

10、个双精度数值1,num2,将之前保存的第一个计算数据x转换成双精度数值并赋值给num1,然后用字符串变量y得到当前文本框的内容,即第二个计算数据的值,转换成双精度数值后赋值给num2,然后判断运算符并比较cal值。然后执行相应的计算,将计算结果转换为字符串并输出到文本框。在类的末尾,将标志1和标志2赋值为真,这意味着将计算结果重新计算为第二次计算的数据,即,将结果重新赋值为X作为第一次计算的数据!(附录:在这个类中,除数为零的情况也被考虑。)(4)类退格设计:(功能类退格)类退格实现动作监听器已执行的公共无效操作(操作事件e)字符串s=e . GetActionCommand();字符串S1=

11、Jtext . GetText();如果(s .等于(退格)s1=新字符串(s1.substring(0,S1 . length()-1);jtext . SetText(S1);功能说明:这是计算器附加功能的实现。这里,只介绍退格功能,如符号,倒计时,清除和其他功能是相似的,所以不会一一介绍。首先,获取退格按钮的命令值并将其赋给S,然后获取当前文本框的内容,即输入数据,并将其赋给s1。然后,判断,用substring函数截取s1字符串从第一个字符到倒数第二个字符,再分配给s1,然后输出到文本框实现退格功能。4.3。程序测试1.简单操作:(以加法为例:123 456)分析:计算结果为579.0

12、,为双精度。计算结果设置在文本框的最右端。这个计算器的特点之一是它可以直接输入数据并在文本框中进行更改。2.互逆运算:(以123为例)分析:输出结果如图所示,实现了互逆功能。在计算时,不仅是结果,而且输入数据也可以在实现倒数功能后进行计算,这是没有效果的!3.退格操作:(以123为例)分析:输出结果如图所示。这个计算器的退格键有一个特点,即使计算结果也可以退格。缺点是小数点处理不好,因为小数点也是字符串的一部分。4.符号运算:(以123为例)分析:输出结果如图所示。可以很好地实现符号的添加,但是可以进行一些改进。例如,在计算过程中,直接点击负号运算符,输入负数进行计算!5.总体分析:计算器的基本操作没有问题,并且可以很好地实现清零、符号、倒计时和退格功能。一般来说,它可以完成计算器的基本功能,但仍有许多地方需要改进,如小数点实现中的一些问题。虽然它不会对基本运算过程造成太大影响,但它仍然不能被视为一个好的计算器。另一方面,计算器没有很好地实现连续计算的功能。您必须每次都按等号按钮来计算结

温馨提示

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

评论

0/150

提交评论