java课设计算器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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",

"提示",

相关文档
最新文档