JAVA课设说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2014年春季学期
工程开发综合训练课程设计
题目:模拟科学计算器
专业班级:计算机科学与技术11级2班
姓名:姚孟斌
学号:112401230
指导教师:包仲贤
成绩:
目录
目录.....................................................................................................................................................II 摘要....................................................................................................................................................III 1.问题描述.. (1)
2.系统设计 (2)
2.1设计系统的类层次 (2)
2.2各个实体及它们之间的关系 (2)
2.3界面设计 (3)
3.系统实现 (4)
3.1各个类的详细设计、数据成员及成员函数的设计 (4)
3.2设置各个按钮行为 (9)
4.系统测试 (11)
4.1测试方案 (11)
4.2测试用例及测试结果 (11)
5.总结 (15)
参考文献 (16)
摘要
在日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,在Application中实现一个精巧实用的计算器,可以很方便地进行数据运算,同时让用户的操作也更方便与快捷。面向对象设计就是“根据需求决定所需的类、类的操作以及类之间关联的过程。本次面向对象设计采用JAVA实现迷你计算器的实现。本项目需要实现基本功能的计算器,实现基本数学运算、函数等功能:如加、减、乘、除、阶乘、正弦、余弦和指数运算等几种运算。
利用面向对象分析方法设计的思想,运用面向对象语言JAVA,设计迷你计算器设计,划分模块,模块的逐一实现,定义和使用类,并掌握类的继承,抽象,多态,使用JAVA接口,从内库中导入和继承,并实现接口。JAVA AWT/Swing 设计面板和按钮的绑定和实现,利用自定义函数完成辅助功能。
关键词:JAVA,AWT,面向对象分析方法
1.问题描述
科学计算器是人们日常工作学习过程中经常用到的一个辅助性计算工具。本设计要求学生以满足一般应用需要的科学计算器设计为背景,设计、开发一个模拟科学计算器系统。该系统可以实现多个运算数的基本四则运算如加、减、乘、除、阶乘、正弦、余弦和指数运算等几种运算。和函数运算,并具备清零、退格等功能。
此外,学生通过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件工程的训练,提高解决实际问题的能力。
2.系统设计
2.1设计系统的类层次
该系统由界面部分和功能部分两个部分构成,由系统界面上的按钮来调用功能部分,从而达到数学运算的功能,系统结构图如图2-1所示。
科学计算器
计算器模块功能模块
图2-1
2.2各个实体及它们之间的关系
界面部分由所有的按键组成,如图2.2-1所示。
图2.2-1
功能部分由4个类组成,分别由Num(),Dot(),Signs(),clear()即数字,点,
计算符号,清除符号。如图2.2-2所示。
图2.2-2
2.3界面设计
界面的设计如图2.3-1所示
图2.3-1
功能模块
计算符号
类数字类点类清除符号类
3.系统实现
3.1各个类的详细设计、数据成员及成员函数的设计
Num()由九个数字的按钮,π,e等按钮进行动作的监听。class Num implements ActionListener{
public void actionPerformed(ActionEvent e){ String str=e.getActionCommand();
if(IfResult){
tf.setText("");
IfResult=false;
}
if(str=="π")
{
tf.setText(String.valueOf(Math.PI));
}
else if(str=="e")
{
tf.setText(String.valueOf(Math.E));
}
else{
tf.setText(tf.getText().trim()+str);
if(tf.getText().equals("0")){
tf.setText("0");
IfResult=true;
flag=true;
}
}
Dot()由点的操作来完成小数和整数的辨别。
class Dot implements ActionListener{
public void actionPerformed(ActionEvent e){
IfResult=false;
if(tf.getText().trim().indexOf(".")==-1){
tf.setText(tf.getText()+".");
}
}
}
Sign是()由加,减,乘,除,阶乘,指数运算。
class Signs implements ActionListener{
public void actionPerformed(ActionEvent e){
String str=e.getActionCommand();
if(str.equals("+"){
double i=Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i)));
}
if(str.equals("-")){
double i=Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i)));
}
if(str.equals("*")){
double i=Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i)));
}
if(str.equals("/")){
double i=Double.parseDouble(tf.getText());