Java保存计算过程的计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1. 需求分析 (1)
2. 概要设计 (2)
3. 详细设计 (4)
3.1 UML图 (4)
3.2类设计图 (7)
4. 主要程序实现 (15)
5. 测试与结果 (22)
6. 心得体会 (25)
参考文献 (25)
1.需求分析
引子.随着计算机技术的飞速发展,人们已经不能满足于采用人工进行大量的计算,计算器快速的计算速度和稳定的准确率很好的满足了用户的需要,保存计算过程的计算器更是能够让用户随时随地的查找以前的计算过程。保存计算过程的计算器正是在这样的市场需求之下研发的,目的旨在帮助用户快速准确的得到计算结果。
目的
1.掌握JAVA语言编程的基础知识并能熟练运用。
2.熟悉类声明与对象的使用。
3.理解委托时间处理模型。
4.了解JAVA语言的图形用户界面JAVAS WING的设计知识。
5.运用Eclipse编写简单计算器程序,并实现其功能。
系统目标
一个简单的计算器程序。用户可以利用鼠标点击数值或操作符按键完成计算的输入,计算的结果将被显示在窗口上部的文本框中。
主体功能
1.按下数字键在文本框上会显示数字,这是计算器最基本的功能
2.在任何时候按下“+-”键,计算器文本框上的数字置反
3.右边一个文本框显示计算过程,上面一个文本框显示输入的数字
4.当按下的运算符号时前面已经按下过运算符号时,右边一个文本框显示上一个运算符号以及两个数之间的运算结果。
5. 按下清除“C”键,数据被全部清除。
开发环境
JDK,Eclipse
2.概要设计
一、功能图:
二、系统流程图
3.详细设计3.1 UML图
类关系总图
Calculator Window类
图3.1Calculator Window的UML图
NumberButton类
图3.2 NumberButton类的UML图OperationButton类
图3.3 OperationButton类的UML图HandleDigit类
图3.4 HandleDigit类的UML图
HandleOperation类
图3.5 HandleOperation类的UML图HandleDot类
图3.6 HandleDot类的UML图HandlePOrN类
图3.7 HandlePOrN类的UML图
HandleEquality类
图3.8 HandleEquality类的UML图HandleSin类
图3.9 HandleSin类的UML图HandleBack类
图3.10 HandleBack类的UML图
HandleClear类
图3.11 HandleClear类的UML图3.2 类设计图
类CalculatorWindow
类OperationButton
类HandleDigit
类HandleOperation
类HandleDot
类HandlePOrN
类HandleEquality
类HandleSin
类HandleBack
类HandleClear
类NumberButton
4.主要程序实现
计算结果保存到文件
public void actionPerformed(ActionEvent e){
if(e.getSource()==copyButton)
saveComputerProcess.copy();
if(e.getSource()==clearButton)
saveComputerProcess.setText(null);
if(e.getSource()==saveButton){
JFileChooser chooser = new JFileChooser();
int state =chooser.showSaveDialog(null);
File file = chooser.getSelectedFile();
if(file!=null&&state==JFileChooser.APPROVE_OPTION){
try{
String content = saveComputerProcess.getText();
StringReader read = new StringReader(content);
BufferedReader in = new BufferedReader(read);
FileWriter outOne = new FileWriter(file);
BufferedWriter out = new BufferedWriter(outOne);
String str = null;
while((str= in.readLine())!=null){
out.write(str);
out.newLine();
}
in.close();
out.close();
}
catch(IOException el){}
}
}
}
数字处理
public void actionPerformed(ActionEvent e){
NumberButton b = (NumberButton)e.getSource();
if(list.size()==0){
int number = b.getNumber();
list.add(""+number);
resultShow.setText(""+number);
showComputerProcess.setText(""+list.get(0));
}