保存计算过程的计算器Java实现

一. 设计要求
参考Windows操作系统提供的计算器设计一个实用的计算器,要求除了具有普通的计算功能外,还具有保存计算过程的功能。
(1) 单击计算器上的数字按钮(0,1,2,3,4,5,6,7,8,9)可以设置参与计算的运算数。
(2) 单击计算器上的运算符按钮(+、-、*、/)可以选择运算的符号。
(3) 单击计算器上的函数按钮可以计算出相应的函数值。
(4) 单击计算器上的等号(=)按钮显示计算结果。
(5) 在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程。
(6) 单击“保存”按钮可以将文本区中显示的全部计算过程保存到文件:单击“复制”按钮可以将文本区中选中的文本复制到剪贴板;单击“清除”按钮可以清除文本区中的全部内容。
二. 改进要求
(1) 在保存计算过程到文件的同时也把当前时间保存到该文件中。
(2) 可以让用户选择计算器的精度,例如小数点最多保留两位等。
(3) 增加一个计算阶乘的功能,该功能用BigInteger类实现。
(4) 增加音效,用户单击按钮时程序能播放简短的声音,让用户通过声音知道自己单击了怎么样的按钮。
(5) 自定义新功能。
程序运行后的的图片:
在这里插入图片描述

//Computer类
//封装计算器的计算模型
import java.util.*;
public class Computer {
   
   public int jd = 2;
   public double result;    //计算所得结果
   public Stack<Character>  dataItem;  //参与运算的数据项
   public Stack<Double>  tempResult;   //用堆栈存放临时结果
   public Stack<Character>  operator;  //存放运算符号
   public Computer(){
   
       init();
   }
   public void init() {
   
       dataItem = new Stack<Character>();
       tempResult = new Stack<Double>();
       dataItem.push('0');
       operator = new Stack<Character>();  
   }
   public void setDataItem(char c){
    
       if(c!='.')
         dataItem.push(c);
       else {
   
          if(!dataItem.contains('.'))
             dataItem.push(c);
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值