java课程设计-模拟科学计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA课程设计说明书
题目:模拟科学计算器
姓名:
学号:
班级:网络工程11-2
山东科技大学
2013年11月7日
目录
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)
1 课设任务及要求
1.1课设任务:
要求:界面模拟Windows中的计算器程序。
实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。
实现要点:添加相关组件并进行按钮事件处理。
要求提交Application和Applet两个版本的程序。
1.2设计要求
①设计的java计算器应用程序可以完成加法、减法、乘法、除法和取余运算,和cos,sin,tan等三角函数功能以及阶乘和指数等运算,且有小数点、正负号、求倒数、退格和清零功能。具体可参考windows附件下的计算器
②课程设计使用Eclipse4.2等作为程序编译和运行测试的开发平台,采用JDK-7u25作为java开发环境,使用Microsoft Office Visio 2007作为绘图工具。
③认真按时完成课程设计报告,制作演讲PPT,积极报名上讲台向大家演示和讲解自己的程序。提交打印版的报告以及电子版的原稿和Application和Applet两个版本的程序代码。
2 需求分析
2.1 设计背景
本程序是老师提供的几个课程设计题目中比较中等的题目。要求实现模拟的科学计算器功能,主要包括加减乘除四则运算和阶乘,三角函数以及指数的运算。具体的功能我参考了Windows7下的计算机小程序,并根据其界面设计了java小程序界面,根据其功能对自己设计的计算器小程序进行了功能的适当增加与修改。在实现了课程设计题目要求的基础上,自己又增添了对数函数,幂函数,三角函数,取余等我们常用到的功能比较简单的函数。由于本函数涉及的函数以及按键数目较多,故没有采用面向对象的设计方法,没有对每个功能封装成函数调用,而是针对每个按键的动作事件直接采用了算法的编写。最终实现了全部的功能,但是由于时间有限,许多功能没有坐到很到位的优化,或许还存在着许多了漏洞,欢迎老师和同学的批评指正,我一定会
不断完善。
2.2 需求获取
本程序的设计过程,按照题目的要求,我认真参考了Windows7下计算器小程序的运行界面与运行操作与结果,对我自己设计的程序的需求展开了进一步的研究。主要得到以下几点需求:
1.必须实现题目要求的和Windows7下计算器下的基本功能,并能正确运行。
2.必须使程序具有清空,清除,退格和正负数,小数点的基本功能。
3.必须要修程序可以进行连续运算,即如“1+2+3+4,1*2+4-4”等连续运算
4.必须使用可视化界面,按键布局简单明了,使人一看就懂,直接可以上手操作。界面要做到简单明了,通俗易懂,和蔼可亲。
5.必须有用户错误操作,输入不规范的警告与提示,提醒用户正确操作。
6.程序必须经过严格的测试与运行,保证没有明显的BUG和程序崩溃状况,要经得起用户的长时间使用。
2.3 程序功能图
功能图如下:
3 设计思路
3.1界面布局
本应用程序继承自框架类(JFrame),采用BorderLayout边缘布局和GridLayout网格布局相结合的布局管理方式,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p按照网格布局的顺序加入到其他区域。将文本框放到界面上方,将
指数函数放到界面下方,将三角函数放到界面左边,将基本四则运算放到界面的右面,使得界面的整体布局合理整洁,易于上手。
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用来统计小数点出现的次数
4 详细设计
4.1.整体概述
首先,程序定义了三个类:一个主类,两个主类里调用的辅助类。分别实现,计算器主要功能的实现,阶乘算法的实现,和反三角函数算法的实现。
其次,对于C1主类,首先在框架JFrame下定义了每个触击式组件,即JButton命令式按钮。并采用了BorderLayout边缘布局和GridLayout网格布局相结合的布局管理方式。将文本框,Str1(数字运算),Str2(三角函数),Str3(反三角函数)和Str4(指数函数)合理的排布在整个框架下。
然后,定义了每个JButton命令式按钮代表的数字,符号和函数,并且通过public void actionPerformed(ActionEvent e) 函数定义了每个按钮对应的动作监听,从而确定了鼠标点击每个按钮时可以实现对应的不同的算法。
接下来,就是每个运算所对应的算法实现,这里以加法运算为例:
1.首先用户输入一个数字,程序用String s暂时储存,并通过JTexField()文本编辑框显示出来。
2.接着,用户按下“+”按钮,触发按钮事件,先判断是数