java课设计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java课设计算器
华东交通大学理工学院
课程设计报告书
所属课程名称Java语言程序设计题目简单计算器设计
分院电信分院
专业班级12通信工程1班学号212
学生姓名
指导教师
2014 年6 月20日
java课设计算器
目录
第1章计算器机要求及内
容 (3)
第2章计算器设计.............................................................
4
第3章计算器程序代码 (14)
第4章计算器测试.............................................................
49
第5章课程设计心
得 (53)
第6章参考文献..............................................................
....54第1章计算器内容及要求
一设计内容:
1. 实现基本的加减乘除法的运算;
2 实现常用的函数计算功能;
3. 实现将系统时间在界面上显示;
4. 实现菜单对计算器的关闭、开启及设置运算法则的操作。
二设计要求
1.使用菜单控制计算器界面的显示,关闭;
2.使用菜单控制运算的法则;
3.使用菜单显示函数运算窗口及运算;
4.数据采用手工输入方式;
5.对异常的数据进行异常处理,比如1/0的情况。
第2章计算器设计
一.设计模式
采用MVC设计模式,将模型,视图,控制分别单独完成。在模型中将视图,控制添加到其中,再分别完成视图的,控制的程序。
二.结构设计
在界面中分为四个视图的组件,控制分为按钮事件,菜单选择事件,以及键盘输入控制事件。如图1
图1
在界面的布局上采用网格布局,将分别装填时间布局组件,操作模式布局组件,运算布局组件,结果布局组件。如图3
组件上的相对应控件相应的事件分别封装按钮事件,菜单
项选择事件,键盘输入事件。选择相应的控件,产生对应的响应事件。各组件对应控件的响应事件对应如图2。
图3 运算布
局组件
结果布 局组件
按钮
菜单键盘
菜单
图2
函数运算组件
三.代码设计
本程序共有六个包wgr.constant,wgr.entry, wgr.event,yout,wgr.otherlayout,wgr.thread。分别用来盛装各个组件,如图4。
图4
(1)wgr.constant包中有一个Constant类用来盛放程序设计中用到的字符串常量。
例如:加法,减法,乘法及运算符号等。详见代码。
(2)wgr.entry包中有个一Entry类,此类是程序的入口,也是程序的模型,所有的组件都加载到这里。
此类中定义了两个方法main和loadwidge。Loadwidge 的方法获取各个组件中的控件。然后在主方法中对获得的控件添加对应的事件处理机制。例如JButton的点击事件,菜单选择菜单项等。详见代码。
(3)wgr.event包中含有四个类分别是MyButtonLisener、MyKeyPress、
MyMenu_1_Listner、MyMenu_2_listener。MyButtonLisener作用是按钮的点击响应,MyKeyPress 作用是键盘输入数据控制的作用,防止非法的输入,MyMenu_1_Listner的作用是对计算器菜单进行选择的响应,MyMenu_2_listener的作用是对运算模式菜单进行选择的响应,MyMenu_3_listener是对选择运算函数的监听相应。
○1MyButtonLisener中对运算组件中的“运算”按钮及返
回结果组件中的“清除”按钮进行做对应的相应。此类中带有一个MyButtonLisener的有参数构造函数,从Entry类中得到需要操作的控件,比如获得输入框的数据,获得运行模式等。继承了ActionListener接口,实现了actionPerformed方法,在响应“运算”按钮时对输入的数据进行了判断,判断是否可以进行运算,比如数据的不完整,在除法时不能除以0的情况进行了处理。
详见代码。
下面是点击运行时对输入的数据进行判断是否为空,当不为空时再根据计算模式进行计算。
if ((textField_shuru1.getText().toString() != null)
&&
(textField_shuru1.getText().toString() != null))
当有空时将有提示对话框
else {
JOptionPane.showMessageDialog(jFrame, "输入的数据不可以为空", "警告",
JOptionPane.OK_OPTION);
}
在进行除法的运算是,会判断被除数是否为零,如果是会弹出一个提示对话框
//运算除法时需要对输入的数据进行处理,判断是否不能进行运算
if (simble.equals(Constant.DIVISION)) {
if (shuru2 != 0.0) {
textField_jieguo.setText(String.valueOf(shuru1
/ shuru2));
} else {
JOptionPane
.showConfirmDialog(jFrame, "输入有误,不可以除以0",
"提示",