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


    JAVA课程设计

    仿Windows标准型计算器(By Yanboooooooo

    一、团队介绍:

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

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

    二、项目git地址

    码云项目地址

    三、项目git提交记录截图

    四、项目主要使用技术

    • JFrame

    五、项目其余特点

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

    • 实现基本的数字运算

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

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

    七、项目运行截图

    • 界面

    八、项目关键代码

        /**
        * @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 ;
        }
    
    

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

    • 代码结构有待优化。

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

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

    任务分配:

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

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

  • 相关阅读:
    openjudge-NOI 2.6-1996 登山
    openjudge-NOI 2.6-1944 吃糖果
    openjudge-NOI 2.6-1808 公共子序列
    openjudge-NOI 2.6-1775 采药
    openjudge-NOI 2.6-1768 最大子矩阵
    openjudge-NOI 2.6-1759 最长上升子序列
    tyvj P1050 最长公共子序列
    动态规划-最长公共子序列
    动态规划-最长上升子序列
    HDU 1811 Rank of Tetris
  • 原文地址:https://www.cnblogs.com/LianYanbo/p/7063583.html
Copyright © 2020-2023  润新知