Java课程设计----仿Windows标准型计算器

JAVA课程设计

仿Windows标准型计算器(By Yanboooooooo

一、团队介绍:

连燕波[组长]:网络1513学生。

张文博[组员]:网络1513学生。

二、项目git地址

码云项目地址

三、项目git提交记录截图

1109894-20170622143628429-939865194.png

四、项目主要使用技术

  • JFrame

五、项目其余特点

  • 一个计算器,与Windows附件自带计算器的标准版功能、界面相仿。

  • 实现基本的数字运算

  • 较传统计算器,使用和携带起来方便。

六、项目功能架构图与主要功能流程图

1109894-20170625183839398-863429403.png

七、项目运行截图

  • 界面

1109894-20170622144250195-1170923693.png

八、项目关键代码

    /**
    * @author Yanboooooooo
    * CE、退格、C功能键
    */ 
    private void ClearEnterButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        resultText.setText("0");
    }                                                

    private void BackspaceButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        String text = resultText.getText();
            int i = text.length();
            if (i > 0) {
                // 退格,将文本最后一个字符去掉
                text = text.substring(0, i - 1);
                    if (text.length() == 0) {
                        // 如果文本没有了内容,则初始化计算器的各种值
                        resultText.setText("0");
            firstDigit = true;
                        operateCommand = "=";
                    } else {
                        // 显示新的文本
                        resultText.setText(text);
                    }
            }
    }                                               

    private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
        resultText.setText("0");
            firstDigit = true;
            operateCommand = "=";
    }


    /**
    * @author Yanboooooooo
    * 加减乘除
    */ 
    private void DivideButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
        operateCommand = "/";
        op1 = Double.parseDouble(resultText.getText());
        //System.out.println("op1="+op1);
        firstDigit = true;
    }                                            

    private void MultiplyButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
        operateCommand = "*";
        op1 = Double.parseDouble(resultText.getText());
        firstDigit = true;
    }                                              

    private void SubtractButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
        operateCommand = "-";
        op1 = Double.parseDouble(resultText.getText());
        firstDigit = true;
    }                                              

    private void AddButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
        operateCommand = "+";
        op1 = Double.parseDouble(resultText.getText());
        firstDigit = true;
    }


    /**
    * @author Yanboooooooo
    * 数字键0-9
    */ 
    private void B1ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String key = "1";
        //标识符firstDigit 判断是否是输入数字的第一位
        if (firstDigit) {
            resultText.setText(key);
        //对于小数点的判断
        } else if ((key.equals(".")) && (resultText.getText().indexOf(".") < 0)) {
            resultText.setText(resultText.getText() + ".");
        } else if (!key.equals(".")) {
            resultText.setText(resultText.getText() + key);
        }
        //之后的数字一定不是第一个输入数字
        firstDigit = false;
    }      

     /**
     *@author Yanboooooooo
     * M功能键
     */
    
    private void MemorySaveButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        operateCommand = "MS";
        double op2 = Double.parseDouble(resultText.getText());
        memory = op2 ;
    }                                                

    private void MemoryAddButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        operateCommand = "M+";
        double op2 = Double.parseDouble(resultText.getText());
        resultText.setText((op2 + memory) +"");
        memory = op2+ memory;
    }                                               

    private void MemoryRecallButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        operateCommand = "MR";
        resultText.setText(memory + "");
    }                                                  

    private void MemoryClearButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        operateCommand = "MC";
        memory = 0 ;
    }

九、尚待改进或者其他想法

  • 代码结构有待优化。

  • 时间有限,能继续改进为科学型计算器。

十、团队成员任务分配,团队成员课程设计博客链接(以表格形式呈现),标明组长

任务分配:

  • 连燕波:主要图形界面的排版,添加按键的事件监听,功能函数的编写。

  • 张文博:按键代码编写,主要图形界面的设计,测试运行。

转载于:https://www.cnblogs.com/LianYanbo/p/7063583.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值