面向对象计算器设计与实现.docx
- 文档编号:3158050
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:16
- 大小:617.62KB
面向对象计算器设计与实现.docx
《面向对象计算器设计与实现.docx》由会员分享,可在线阅读,更多相关《面向对象计算器设计与实现.docx(16页珍藏版)》请在冰豆网上搜索。
面向对象计算器设计与实现
软件学院
课程设计报告书
1设计时间
2设计目的
进一步掌握和理解Java程序编程
进一步掌握Java语言的基本数据类型,熟悉定义变量和使用变量
理解Java图形用户界面的基本工作原理和界面设计
巩固窗体的布局的设计
掌握窗口按钮控件和文本控件对事件的响应
理解函数和方法的使用
3设计任务
设计一个图形界面的计算器应用程序,完成简单的算术运算、设计的计算器应用程序可以完成加、减、乘、除、取余、幂、对数、开平方运算,且有小数点、清零等功能。
用鼠标单击相应的数字键和运算符号键,然后单击等号按钮,窗口上方的文本框将会显示计算出来的结果,要将文本编辑框清零,可单击清零按钮。
4设计内容
4.1需求分析
4.1.1程序所能达到的功能
用户能够完成四则混合运算加减乘除,并且计算器能够自动的识别运算符的优先级,根据输入的运算公式,自动算出相应的结果,同时能够完成消除的功能。
4.1.2输入的形式和输入值的范围
输入形式
输入值范围
byte
-128~127
char
0~65535
float
1.4E-45~3.4038335E38
double
4.9E-334~1.7975931348633157E
4.1.3输出的形式
int;float;double;boolean
4.1.4测试数据
a.计算器的正确输入能够使其准确运算(如图)。
b.错误处理需求:
当用户如果按下的是除零的操作,显示框显示“被除数不为0”;当用户如果多次按下运算符,计算器自动记忆第一次运算符,并且做防连续输入相同的运算符或者不同的运算符,当用户在同一个数据中多次输入小数点,运算器能够自动判断小数点重复,自动记忆第一个小数点,当用户在同一个数据中输入多个负号,计算器自动做重复检查,不显示多余的负号。
4.2总体设计
4.2.1本程序中用到的所有数据类型的定义
byte,short,int,long,float,double,char,boolean
4.2.2主程序的流程
4.2.3各程序模块之间的调用关系
计算器各模块之间的调用关系:
Computer首先通过extends继承JFrame实现对计算器外观的建立,再通过implements实现监听接口ActionListener。
用构造和重载等方式实现计算器的具体运算。
4.3详细设计
4.3.1每个小模块的流程图
a.计算器开方、幂、对数以及求余键设计流程图
b.计算器加减乘除设计流程图
4.3.2关键代码分析与设计
构造一个构造函数进行初始化
doublenum1,num2,num3;
booleanend,add,mul,sub,div,pow,mod,sqrt,log;
构建20个按钮对象
JButtonb1=newJButton("1");
JButtonb2=newJButton("2");
JButtonb3=newJButton("3");
JButtonb4=newJButton("+");
JButtonb5=newJButton("xy");
JButtonb6=newJButton("4");
JButtonb7=newJButton("5");
JButtonb8=newJButton("6");
JButtonb9=newJButton("-");
JButtonb10=newJButton("%");
JButtonb11=newJButton("7");
JButtonb12=newJButton("8");
JButtonb13=newJButton("9");
JButtonb14=newJButton("*");
JButtonb15=newJButton("√");
JButtonb16=newJButton(".");
JButtonb17=newJButton("0");
JButtonb18=newJButton("=");
JButtonb19=newJButton("/");
JButtonb20=newJButton("log");
JButtonclc=newJButton("clear");
构建两个小面板对象p1andp2和p3
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
publicComputer(){
setTitle("计算器");
setResizable(false);
setBounds(150,150,330,330);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BoderLayout布局,对文本框进行设计
add(p1,"North");
t.setEditable(false);
设置宽度
t.setColumns(20);
设置文本位置
t.setHorizontalAlignment(JTextField.RIGHT);
p1.add(t);
加入清屏按钮
add(p3,"South");
p3.add(clc);
加入按钮
GridLayoutgl=newGridLayout(5,0);
gl.setVgap(10);
gl.setHgap(10);
p2.setLayout(gl);
add(p2,"Center");
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(b10);
p2.add(b11);
p2.add(b12);
p2.add(b13);
p2.add(b14);
p2.add(b15);
p2.add(b16);
p2.add(b17);
p2.add(b18);
p2.add(b19);
p2.add(b20);
设置西和东的布局
JLabelll=newJLabel();
ll.setPreferredSize(newDimension(10,0));
add(ll,"West");
JLabelrl=newJLabel();
rl.setPreferredSize(newDimension(10,0));
add(rl,"East");
设置是否可见
setVisible(true);
添加监听程序
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
b18.addActionListener(this);
b19.addActionListener(this);
b20.addActionListener(this);
clc.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==clc)
t.setText("");
按键进行响应
if(e.getSource()==b1)
num
(1);
if(e.getSource()==b2)
num
(2);
if(e.getSource()==b3)
num(3);
if(e.getSource()==b6)
num(4);
if(e.getSource()==b7)
num(5);
if(e.getSource()==b8)
num(6);
if(e.getSource()==b11)
num(7);
if(e.getSource()==b12)
num(8);
if(e.getSource()==b13)
num(9);
if(e.getSource()==b17)
num(0);
if(e.getSource()==b4)
sign
(1);
if(e.getSource()==b9)
sign
(2);
if(e.getSource()==b14)
sign(3);
if(e.getSource()==b19)
sign(4);
if(e.getSource()==b5)
sign(5);
if(e.getSource()==b10)
sign(6);
if(e.getSource()==b15)
sign(7);
if(e.getSource()==b20)
sign(8);
if(e.getSource()==b16)
point();
if(e.getSource()==b18)
eql();
}
publicvoidnum(inti){
Strings=String.valueOf(i);
if(end){//判断操作数输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 计算器 设计 实现