java课程设计-模拟科学计算器
发布时间:2024-08-27
发布时间:2024-08-27
java课程设计-模拟科学计算器
JAVA课程设计说明书
题目:模拟科学计算器
姓名: 学号:
班级: 网络工程11-2
山东科技大学 2013年11月7日
java课程设计-模拟科学计算器
目录
1 课设任务及要求 .............................................. 3
1.1课设任务 ................................................ 3 1.2设计要求 ................................................ 3 2 需求分析 ..................................................... 2
2.1 设计背景 ................................................ 2 2.2 需求获取 ................................................ 3 2.3 程序功能图 .............................................. 4 3 设计思路 ..................................................... 4
3.1 界面布局 ............................................... 4 3.2 类的定义 ............................................... 5 3.3变量的定义 .............................................. 5 4 详细设计 ..................................................... 6
4.1整体概述 ................................................ 6 4.2 误操作处理 .............................................. 7 4.3流程图和结构图 .......................................... 8 5 系统调试 .................................................... 11
5.1 程序界面 ............................................... 11 5.2 运行界面 ............................................... 11 6 心得与体会 .................................................. 15 7 参考文献 .................................................... 16 8 附录 ........................................................ 16
java课程设计-模拟科学计算器
1 课设任务及要求
1.1课设任务:
要求:界面模拟Windows中的计算器程序。
实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。
实现要点:添加相关组件并进行按钮事件处理。 要求提交Application和Applet两个版本的程序。 1.2设计要求
①设计的java计算器应用程序可以完成加法、减法、乘法、除法和取余运算,和cos,sin,tan等三角函数功能以及阶乘和指数等运算,且有小数点、正负号、求倒数、退格和清零功能。具体可参考windows附件下的计算器
②课程设计使用Eclipse4.2等作为程序编译和运行测试的开发平台,采用JDK-7u25作为java开发环境,使用Microsoft Office Visio 2007作为绘图工具。
java课程设计-模拟科学计算器
③认真按时完成课程设计报告,制作演讲PPT,积极报名上讲台向大家演示和讲解自己的程序。提交打印版的报告以及电子版的原稿和Application和Applet两个版本的程序代码。
2 需求分析 2.1 设计背景
本程序是老师提供的几个课程设计题目中比较中等的题目。要求实现模拟的科学计算器功能,主要包括加减乘除四则运算和阶乘,三角函数以及指数的运算。具体的功能我参考了Windows7下的计算机小程序,并根据其界面设计了java小程序界面,根据其功能对自己设计的计算器小程序进行了功能的适当增加与修改。在实现了课程设计题目要求的基础上,自己又增添了对数函数,幂函数,三角函数,取余等我们常用到的功能比较简单的函数。由于本函数涉及的函数以及按键数目较多,故没有采用面向对象的设计方法,没有对每个功能封装成函数调用,而是针对每个按键的动作事件直接采用了算法的编写。最终实现了全部的功能,但是由于时间有限,许多功能没有坐到很到位的优化,或许还存在着许多了漏洞,欢迎老师和同学的批评指正,我一定会
java课程设计-模拟科学计算器
不断完善。 2.2 需求获取
本程序的设计过程,按照题目的要求,我认真参考了Windows7下计算器小程序的运行界面与运行操作与结果,对我自己设计的程序的需求展开了进一步的研究。主要得到以下几点需求:
1.必须实现题目要求的和Windows7下计算器下的基本功能,并能正确运行。
2.必须使程序具有清空,清除,退格和正负数,小数点的基本功能。
3.必须要修程序可以进行连续运算,即如“1+2+3+4,1*2+4-4”等连续运算
4.必须使用可视化界面,按键布局简单明了,使人一看就懂,直接可以上手操作。界面要做到简单明了,通俗易懂,和蔼可亲。
5.必须有用户错误操作,输入不规范的警告与提示,提醒用户正确操作。
6.程序必须经过严格的测试与运行,保证没有明显的BUG和程序崩溃状况,要经得起用户的长时间使用。
java课程设计-模拟科学计算器
2.3 程序功能图
功能图如下:
3 设计思路
3.1界面布局
本应用程序继承自框架类(JFrame),采用BorderLayout边缘布局和GridLayout网格布局相结合的布局管理方式,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p按照网格布局的顺序加入到其他区域。将文本框放到界面上方,将
java课程设计-模拟科学计算器
指数函数放到界面下方,将三角函数放到界面左边,将基本四则运算放到界面的右面,使得界面的整体布局合理整洁,易于上手。 3.2类的定义
本程序主要定义了一个主函数和三个类:
public static void main(String[] args):程序的主函数,
Application程序的主要实现标志,调用上文中定义的类
class C1:程序主类,定义了整个界面的布局,和针对每个按
钮的动作监听,以及每个动作所对应的具体的操作,计算的运行和输出主函数。
class jiecheng:定义了阶乘运算(fff)的算法实现。 class Mymath:定义了asinh、acosha、tanh三个Math.中不
包含的三角函数及其算法实现
3.3变量的定义
字符串变量String a,c,s用来储存数字和符号以及运算结果。
整形变量flagdenghao,flagyunsuan,lastyunsuan Count变量countxiaoshudian用来统计小数点出现的次数
java课程设计-模拟科学计算器
4 详细设计
4.1.整体概述
首先,程序定义了三个类:一个主类,两个主类里调用的辅助类。分别实现,计算器主要功能的实现,阶乘算法的实现,和反三角函数算法的实现。
其次,对于C1主类,首先在框架JFrame下定义了每个触击式组件,即JButton命令式按钮。并采用了BorderLayout边缘布局和GridLayout网格布局相结合的布局管理方式。将文本框,Str1(数字运算),Str2(三角函数),Str3(反三角函数)和Str4(指数函数)合理的排布在整个框架下。
然后,定义了每个JButton命令式按钮代表的数字,符号和函数,并且通过public void actionPerformed(ActionEvent e) 函数定义了每个按钮对应的动作监听,从而确定了鼠标点击每个按钮时可以实现对应的不同的算法。
接下来,就是每个运算所对应的算法实现,这里以加法运算为例:
1.首先用户输入一个数字,程序用String s暂时储存,并通过JTexField()文本编辑框显示出来。
2.接着,用户按下“+”按钮,触发按钮事件,先判断是数
java课程设计-模拟科学计算器
字或者是符号,当触发事件之前输入的是符号时“.”没有输入数字时,程序采用 Double.valueOf(),将输入的“.”进行强制类型转换成“0.”。当用户输入正常数字时,程序首先将s内的数据储存到a中,同时将a中的内容清空,以便输入加数,并再次储存到s中,并通过JTexField()文本编辑框显示出来。
3.当用户按下“=”按钮时,程序首先进行判断是否flagyunsuan==0,当flagyunsuan==0是说明是第一次按“=”按钮,接下在判断“=”之前是否是空值或符号,当判断flagdenghao = ture的时候可以进行运算。将运算结果存入a中,并再次通过JTexField()文本编辑框显示出来。
4.接下来还要对运行的结果通过Double.valueOf()进行强制类型转换。因为储存数据的s和a都是String型变量,而要求的输出结果却是double类型的变量,所以要转换以后输出。
5.输出完毕以后,必须判断是否使用本次运算结果进行下一步的运算,如果是的话则通过switch (lastyunsuan)来判断接下来需要进行的运算,再重复上面的步骤。 4.2.误操作处理
由于用户操作的不确定性,有时可能不会严格按照程序说明书进行对应的操作,经常会发生误操作。这便对程序的操作性要
java课程设计-模拟科学计算器
求大大提高。这就要求程序做到以下几点:
1.程序不能因为操作失误而崩溃。 2.程序要可以给用户发出错误警报。 3.程序要可以对错误进行适当的修改。
而本程序经过反复误操作运行,已经可以保证程序不会因为误操作而发生崩溃。其次,本程序采用了Toolkit.getDefaultToolkit().beep()函数,可以使程序发出“beep”声音的警报。最后,本程序对一些显而易见的错误,比如输入小数时可以自动把用户输入的“.”强制转化为“0.”等。 从而保证了,当遇到各种误操作的时候程序可以正常运行。 4.3.流程图和结构图 1.程序流程图
java课程设计-模拟科学计算器
2.代码结构图
java课程设计-模拟科学计算器
第 12 页
java课程设计-模拟科学计算器
5 运行与调试
5.1 程序界面
计算器界面如下:
5.2 运行界面
注:由于本程序要实现的功能过多,这里只采用部分具有代表性的功能的截图作为参考。 1.加法操作
java课程设计-模拟科学计算器
程序可以正确运行8+5=13 2.除操作
java课程设计-模拟科学计算器
程序可以正确运行9/3=3 3.sin函数运算
可以正确运行sin(π)= 0(由于本函数采用弧度运算,这里取了π的近似值3.14进行的运算,所以运算结果只能约等于1)。 4.指数运算
java课程设计-模拟科学计算器
本程序可以正确运行2的立方= 8。 5.阶乘运算
上一篇:网络子网划分练习题1(有答案)