国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java課設(shè)-百行代碼實現(xiàn)簡易計算器

這篇具有很好參考價值的文章主要介紹了Java課設(shè)-百行代碼實現(xiàn)簡易計算器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

                                         成績: __________

Java程序設(shè)計
工程實踐

——簡易計算器的設(shè)計

院、 系 計算機與軟件學(xué)院 專業(yè) 信息安全
姓 名
指導(dǎo)教師

2022年 6 月 11 日

目錄:
一、 設(shè)計簡介 2
1、 設(shè)計背景 2
2、 開發(fā)工具及環(huán)境 2
(1)開發(fā)工具及介紹 2
(2)開發(fā)環(huán)境 2
二、 相關(guān)工作 2
1、設(shè)計基礎(chǔ) 2
2、功能需求 2
3、系統(tǒng)設(shè)計 3
三、 設(shè)計原理 3
1、包和類的說明 3
2、簡易計算器的源代碼清單 3
四、 實現(xiàn)結(jié)果 6
1、程序界面 6
2、測試用例 7
3、運行結(jié)果 7
五、 設(shè)計心得 9

一、 設(shè)計簡介
1、 設(shè)計背景
伴隨著日益升高的物質(zhì)生活水平以及日常生活中對基本的計算需求的提高。如今,網(wǎng)絡(luò)快速發(fā)展,對算力的需求日益增大,計算的效率和性能和人們的生活緊密相關(guān)。對此,使用Java語言開發(fā)出一個為人們生活帶來便利的計算器,以期帶來對數(shù)據(jù)計算的提高。該系統(tǒng)實現(xiàn)了對數(shù)的加、減、乘、除的運算。
2、 開發(fā)工具及環(huán)境
(1)開發(fā)工具及介紹
Visual Studio Code(簡稱“VS Code” )是Microsoft在2015年4月30日Build開發(fā)者大會上正式宣布一個運行于 Mac OS X、Windows和 Linux 之上的,針對于編寫現(xiàn)代Web和云應(yīng)用的跨平臺源代碼編輯器, [2] 可在桌面上運行,并且可用于Windows,macOS和Linux。它具有對JavaScript,TypeScript和Node.js的內(nèi)置支持,并具有豐富的其他語言(例如C++,C#,Java,Python,PHP,Go)和運行時(例如.NET和Unity)擴(kuò)展的生態(tài)系統(tǒng)。
(2)開發(fā)環(huán)境:window10系統(tǒng)、Visual Studio Code1.67.2、JDK17.0.2。
二、 相關(guān)工作
1、設(shè)計基礎(chǔ)
使用Java Swing的GUI圖形用戶界面編程設(shè)計編寫一個簡易的計算器,加入事件監(jiān)聽器可以通過鼠標(biāo)輸入?yún)⒓舆\算的數(shù)值和運算符,達(dá)到四則運算的目的。
2、功能需求
圖形化用戶界面,設(shè)計的簡易計算器,用戶通過鼠標(biāo)依次輸入?yún)⑴c計算的數(shù)值和運算符,進(jìn)行四則運算,具體如下:
(1) 鼠標(biāo)單擊“計算器”上的數(shù)字按鈕(0、1、2、3、4、5、6、7、8、9)累次可以設(shè)置參與運算的數(shù)值
(2) 鼠標(biāo)單擊“計算器”上的運算符按鈕(+、-、*、/)選擇運算符同時,保存之前的數(shù),并情況輸入欄,以便后續(xù)輸入。
(3) 鼠標(biāo)單擊“計算器”上的“=”按鈕,輸出運算的結(jié)果。
(4) 鼠標(biāo)單擊“計算器”上的“clear”按鈕,可以清除輸入框內(nèi)的數(shù)字。
3、系統(tǒng)設(shè)計
一個簡易的計算器,主要由界面組件、組件事件監(jiān)聽器以及處理程序組成,如圖2-1。實現(xiàn)其功能具體可分如下幾個步驟:
(1) 創(chuàng)建Java項目(此版本為17.0.2的JDK)
(2) 創(chuàng)建框架、面板以及初始化
(3) 創(chuàng)建UI組件,并將其添加到相應(yīng)面板中
(4) 注冊監(jiān)聽器、添加事件響應(yīng)邏輯
(5) 計算邏輯實現(xiàn)

三、 設(shè)計原理
1、包和類的說明
package start;\保存主要功能實現(xiàn)代碼的包
package util;\保存常量的包
public class Const\自定義保存常量的類
public class calculator \自定義實現(xiàn)計算器主要功能的類
2、簡易計算器的源代碼清單
①導(dǎo)入組件

package start;
import javax.swing.*;
import util.Const;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

②創(chuàng)建Const類的部分代碼

public class Const {
    public static final int FRAME_W = 300;//得到窗體中心點
    public static final int FRAME_H = 300;
    public static final int SCREEN_W = Toolkit.getDefaultToolkit().getScreenSize().width;
    public static final int SCREEN_H = Toolkit.getDefaultToolkit().getScreenSize().height;

    public static final int Frame_X = (SCREEN_W-FRAME_W)/2;
    public static final int Frame_Y = (SCREEN_H-FRAME_H)/2;

    public static final String TITLE = "計算器";
}
 ③calculator類中的部分代碼
public class calculator extends JFrame implements ActionListener{
    /**********************北面的控件***********************/
    private JPanel jp_north = new JPanel();
    private JTextField input_text = new JTextField();
    private JButton c_Btn = new JButton("Clear");
     /**********************中間的控件***********************/
     private JPanel jp_center = new JPanel();
     public calculator() throws HeadlessException{//顯示窗體
        this.init();
        this.addNorthComponent();
        this.addCenterButton();
    }
    //初始化的方法
    public void init(){
        this.setTitle(Const.TITLE);
        this.setSize(Const.FRAME_W, Const.FRAME_H);
        this.setLayout(new BorderLayout());
        this.setResizable(false);
        this.setLocation(Const.Frame_X,Const.Frame_Y);//設(shè)置框架在屏幕的位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置關(guān)閉鍵
    }
    //主方法
    public static void main(String[] args) {
        calculator Calculator = new calculator();
        Calculator.setVisible(true);
    }

}
④添加控件和按鈕的代碼
    //添加北面的控件
    public void addNorthComponent(){
        this.input_text.setPreferredSize(new Dimension(200,30));//設(shè)置文本框大小
        jp_north.add(input_text);//加文本框

        this.c_Btn.setForeground(Color.RED);//設(shè)置按鈕顏色
        jp_north.add(c_Btn);//加按鈕
        c_Btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                input_text.setText("");
            }
        });

        this.add(jp_north,BorderLayout.NORTH);//將面板加到框架北側(cè)
    }
    //添加中間按鈕
    public void addCenterButton(){
        String btn_text = "123+456-789*0.=/";
        String regex = "[\\+\\-*/.=]";//正則表達(dá)式
        this.jp_center.setLayout(new GridLayout(4,4));//4*4的布局
        for(int i=0;i<16;i++){//在面板中加按鈕
            String tmp  = btn_text.substring(i,i+1);
            JButton btn = new JButton();
            btn.setText(tmp);//給按鈕加文字
            if(tmp.matches(regex)){//如果正則匹配
                    btn.setFont(new Font("粗體",Font.BOLD,20));
                    btn.setForeground(Color.RED);
                }
            btn.addActionListener(this);//添加按鈕監(jiān)聽器
            jp_center.add(btn);
        }
        this.add(jp_center,BorderLayout.CENTER);//將面板加載框架布局的中間位置
    }
⑤添加事件監(jiān)聽器和邏輯運算代碼
    private String firstInput = null;
    private String operator = null;
    //給按鈕添加監(jiān)聽事件
    public void actionPerformed(ActionEvent e){
        String clickStr = e.getActionCommand();
        if(".0123456789".indexOf(clickStr)!=-1){//數(shù)字輸入
            this.input_text.setText(input_text.getText() + clickStr);
            this.input_text.setHorizontalAlignment(JTextField.RIGHT);
        }
        else if(clickStr.matches("[\\+\\-*/]{1}")){//運算符輸入
            operator = clickStr;
            firstInput = this.input_text.getText();
            this.input_text.setText("");
        }
        else if(clickStr.equals("=")){//等號輸入
            Double a = Double.valueOf(firstInput);
            Double b = Double.valueOf(this.input_text.getText());
            Double res = null;
            switch (operator){//運算主體
                case "+":
                res = a + b;
                break;
                case "-":
                res = a - b;
                break;
                case "*":
                res = a * b;
                break;
                case "/":
                if(b!=0){
                    res = a/b;
                }
                else{
                    this.input_text.setText("除數(shù)不能為0!請清空!");
                }
                break;
            }
            this.input_text.setText(res.toString());
        }
    }

四、 實現(xiàn)結(jié)果
1、程序界面
簡易計算器運行界面,如圖3-1所示。
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-1 計算器運行界面
2、測試用例
(1)清除當(dāng)前輸入的數(shù)值,例如:計算7+23,輸出結(jié)果為30.0。
(2)清除當(dāng)前輸入的數(shù)值,例如:計算7-23,輸出結(jié)果為-16.0。
(3)清除當(dāng)前輸入的數(shù)值,例如:計算7*23,輸出結(jié)果為161.0。
(4)清除當(dāng)前輸入的數(shù)值,例如:計算7/23,輸出結(jié)果為0.30434782608695654。
3、運行結(jié)果
(1)輸入7和23,進(jìn)行加法運算,如圖3-2、圖3-3和圖3-4所示。下面只輸出結(jié)果。
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-2 輸入 7
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖 3-3 輸入 23
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-4 結(jié)果顯示為 30.0

(2)輸入7和23,進(jìn)行減法運算,如圖3-5所示。
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-5 “7-23”結(jié)果顯示為 -16.0

(3)輸入7和23,進(jìn)行乘法運算,如圖3-6所示
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-6 “7*3”結(jié)果顯示為161.9

(4)輸入7和23,進(jìn)行除法運算,如圖3-7所示。
Java課設(shè)-百行代碼實現(xiàn)簡易計算器

圖3-7“7/23”結(jié)果顯示為0.30434782608695654
五、 設(shè)計心得
從我的角度出發(fā),課設(shè)的目的在于使學(xué)生養(yǎng)成綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生在實際場景下能力的具體訓(xùn)練和考察過程。伴隨著科學(xué)技術(shù)的快速發(fā)展,當(dāng)今計算機的應(yīng)用在生活中可以說是處處都有。
在課程設(shè)計過程中我遇到許多的問題,通過網(wǎng)上的查詢,和同學(xué)的熱心幫助,最終我成功的完成了這次課程設(shè)計。在這其中我充分理解了Java面對對象的特性,并體會到Java與C\C++語言的不同之處。只有多動手,經(jīng)常編寫程序,才能發(fā)現(xiàn)我們學(xué)習(xí)上的缺陷和自己的不足,并在實踐中解決這些問題,不斷提高自己轉(zhuǎn)化知識的能力。通過本課程的設(shè)計,我了解到理論與實踐的結(jié)合非常重要,簡單的理論知識遠(yuǎn)遠(yuǎn)不夠,只有將所獲得的理論知識與實踐相結(jié)合,從理論中得出結(jié)論,才能真正服務(wù)于社會,發(fā)展我的實踐技能和能力。 這次編寫的程序大部分功能是通過調(diào)用各包中的方法和類來實現(xiàn)的,這也讓我充分理解了包和類之間的關(guān)系。
由于這次編寫的程序是我初次使用Java編寫,會遇到很多小問題,比如說:如何保存輸入的數(shù)字和下一個數(shù)進(jìn)行加、減、乘、除運算。此次課程設(shè)計讓我們更了解Java中的圖形用戶界面和它的編程方式。在完成課題的過程中,查閱了很多關(guān)于Java語言開發(fā)的資料,不斷地充實了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識,收獲頗多。Java 計算器設(shè)計使得我們對所學(xué)的課程有了更為深刻的認(rèn)識,使得知識得到了鞏固和提高。
今后,我將會繼續(xù)努力;我相信,只要有信心,有毅力,人永遠(yuǎn)不會被打?。?br> 完整源碼文章來源地址http://www.zghlxwxcb.cn/news/detail-443795.html

package util;
import java.awt.*;

public class Const {
    public static final int FRAME_W = 300;//得到窗體中心點
    public static final int FRAME_H = 300;
    public static final int SCREEN_W = Toolkit.getDefaultToolkit().getScreenSize().width;
    public static final int SCREEN_H = Toolkit.getDefaultToolkit().getScreenSize().height;

    public static final int Frame_X = (SCREEN_W-FRAME_W)/2;
    public static final int Frame_Y = (SCREEN_H-FRAME_H)/2;

    public static final String TITLE = "計算器";
}

package start;
import javax.swing.*;
import util.Const;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class calculator extends JFrame implements ActionListener{
    /**********************北面的控件***********************/
    private JPanel jp_north = new JPanel();
    private JTextField input_text = new JTextField();
    private JButton c_Btn = new JButton("Clear");
     /**********************中間的控件***********************/
     private JPanel jp_center = new JPanel();
     public calculator() throws HeadlessException{//顯示窗體
        this.init();
        this.addNorthComponent();
        this.addCenterButton();
    }
    //初始化的方法
    public void init(){
        this.setTitle(Const.TITLE);
        this.setSize(Const.FRAME_W, Const.FRAME_H);
        this.setLayout(new BorderLayout());
        this.setResizable(false);
        this.setLocation(Const.Frame_X,Const.Frame_Y);//設(shè)置框架在屏幕的位置
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置關(guān)閉鍵
    }
    //添加北面的控件
    public void addNorthComponent(){
        this.input_text.setPreferredSize(new Dimension(200,30));//設(shè)置文本框大小
        jp_north.add(input_text);//加文本框

        this.c_Btn.setForeground(Color.RED);//設(shè)置按鈕顏色
        jp_north.add(c_Btn);//加按鈕
        c_Btn.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                input_text.setText("");
            }
        });

        this.add(jp_north,BorderLayout.NORTH);//將面板加到框架北側(cè)
    }
    //添加中間按鈕
    public void addCenterButton(){
        String btn_text = "123+456-789*0.=/";
        String regex = "[\\+\\-*/.=]";//正則表達(dá)式
        this.jp_center.setLayout(new GridLayout(4,4));//4*4的布局
        for(int i=0;i<16;i++){//在面板中加按鈕
            String tmp  = btn_text.substring(i,i+1);
            JButton btn = new JButton();
            btn.setText(tmp);//給按鈕加文字
            if(tmp.matches(regex)){//如果正則匹配
                    btn.setFont(new Font("粗體",Font.BOLD,20));
                    btn.setForeground(Color.RED);
                }
            btn.addActionListener(this);//添加按鈕監(jiān)聽器
            jp_center.add(btn);
        }
        this.add(jp_center,BorderLayout.CENTER);//將面板加載框架布局的中間位置
    }
    private String firstInput = null;
    private String operator = null;
    //給按鈕添加監(jiān)聽事件
    public void actionPerformed(ActionEvent e){
        String clickStr = e.getActionCommand();
        if(".0123456789".indexOf(clickStr)!=-1){//數(shù)字輸入
            this.input_text.setText(input_text.getText() + clickStr);
            this.input_text.setHorizontalAlignment(JTextField.RIGHT);
        }
        else if(clickStr.matches("[\\+\\-*/]{1}")){//運算符輸入
            operator = clickStr;
            firstInput = this.input_text.getText();
            this.input_text.setText("");
        }
        else if(clickStr.equals("=")){//等號輸入
            Double a = Double.valueOf(firstInput);
            Double b = Double.valueOf(this.input_text.getText());
            Double res = null;
            switch (operator){//運算主體
                case "+":
                res = a + b;
                break;
                case "-":
                res = a - b;
                break;
                case "*":
                res = a * b;
                break;
                case "/":
                if(b!=0){
                    res = a/b;
                }
                else{
                    this.input_text.setText("除數(shù)不能為0!請清空!");
                }
                break;
            }
            this.input_text.setText(res.toString());
        }
    }

    //主方法
    public static void main(String[] args) {
        calculator Calculator = new calculator();
        Calculator.setVisible(true);
    }

}

到了這里,關(guān)于Java課設(shè)-百行代碼實現(xiàn)簡易計算器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • java 簡易計算器

    java 簡易計算器

    1.使用Java圖形界面組件設(shè)計軟件,界面如圖所示。 2.軟件能夠滿足基本的“加、減、乘、除”等運算要求。 3.程序代碼清晰,語法規(guī)范,結(jié)構(gòu)合理,邏輯正確。 先分析,計算器大概是由三個大部分組成的:菜單欄,顯示框,按鈕。 所以定義一個類cal繼承JFrame。 我們定義完后

    2024年02月01日
    瀏覽(26)
  • JAVA簡易計算器

    JAVA簡易計算器

    1.C是清除鍵,功能是將之前所輸入的數(shù)字、計算結(jié)果等信息全部歸零 2.CE,清除當(dāng)前輸入的數(shù)據(jù)或符號 3.單擊MS存儲當(dāng)前顯示值,可以理解為放到存儲區(qū) 4.單擊MC清除存儲區(qū)數(shù)值 5.單擊MR將存儲區(qū)數(shù)據(jù)顯示到屏幕上 6.M+:當(dāng)前顯示的數(shù)與存儲區(qū)的數(shù)相加 7.M-:當(dāng)前顯示的數(shù)與存儲

    2024年02月09日
    瀏覽(26)
  • Python - 簡易版計算器(附完整代碼)

    對輸入的兩個數(shù)進(jìn)行一次加減乘除 對輸入的運算符進(jìn)行判斷 做出計算機圖形界面

    2024年02月08日
    瀏覽(49)
  • Java課程設(shè)計——簡易計算器

    Java課程設(shè)計——簡易計算器

    1.系統(tǒng)簡介 1.1設(shè)計背景 ????隨著人們物質(zhì)生活水平的日益提高,人們對高質(zhì)量的計算提出了更高的要求。當(dāng)今世界,是云計算的生活和物聯(lián)網(wǎng)發(fā)展和使用階段,計算性能的高低和計算的效率直接影響到了人們的生活。對此,使用Java語言開發(fā)出一個為人們生活帶來便利的計算

    2024年02月08日
    瀏覽(21)
  • C++簡易計算器的實現(xiàn)

    定義: 計算器是近代人發(fā)明的可以進(jìn)行數(shù)字運算的機器。 也就是說,計算器不等同于算盤,前者能自行運算,后者只能簡便計算過程,在古代,人們發(fā)明了許多計算工具,如算籌、算盤、計算尺等,隨著社會的發(fā)展和科技的進(jìn)步,計算工具也經(jīng)歷了由簡單到復(fù)雜,由低級向高級的發(fā)

    2024年02月11日
    瀏覽(23)
  • QT簡易加法計算器項目實現(xiàn)

    QT簡易加法計算器項目實現(xiàn)

    完整代碼見GitHub:點擊進(jìn)入 在該項目中,使用了三個文件,分別是CalculatorDialog.h, CalculatorDialog.cpp, main.cpp CalculatorDialog.h:在該頭文件里定義了一些成員變量和槽函數(shù),用于實現(xiàn)計算器基本功能。 CalculatorDialog.cpp: CalculatorDialog 類的構(gòu)造函數(shù),用于初始化計算器對話框界面和控

    2024年02月11日
    瀏覽(24)
  • Android開發(fā):kotlin語言實現(xiàn)簡易計算器

    Android開發(fā):kotlin語言實現(xiàn)簡易計算器

    輸入兩個數(shù)字,可選加減乘除操作符,并計算顯示對應(yīng)結(jié)果 隨系統(tǒng)切換語言 可對結(jié)果進(jìn)行四舍五入操作 界面布局:activity_main.xml文件代碼 字符定義:string.xml文件代碼 邏輯實現(xiàn):MainActivity.kt 文件代碼 方法一(偷懶): 復(fù)制文件到對應(yīng)位置 方法二: 1. 繪制界面 2. 編寫邏輯

    2023年04月08日
    瀏覽(27)
  • 【Servlet學(xué)習(xí)三】實現(xiàn)一個內(nèi)存版本的簡易計算器~

    【Servlet學(xué)習(xí)三】實現(xiàn)一個內(nèi)存版本的簡易計算器~

    目錄 一、方式1:使用form表單的形式(不推薦) ??1、前端代碼:HTML文件 ??2、后端代碼:Calculator_form.java文件 ??3、最終效果 二、方式2:使用ajax形式(最常用重點?。。。???1、前端代碼:HTML文件 ??2、后端代碼:Calculator_ajax.java文件 ??3、最終效果 ?注意: (1)前端

    2024年02月12日
    瀏覽(21)
  • 簡易計算器(詳解用棧實現(xiàn)算術(shù)表達(dá)式求值)

    [問題描述] 一個算術(shù)表達(dá)式是由操作數(shù)(operand)、運算符(operator)和界限符(delimiter)組成的。假設(shè)操作數(shù)是 正實數(shù) ,運算符只含 加減乘除 等四種運算符,界限符只含 左右括號 如:6+15*(21-8/4)。編程利用“ 運算符優(yōu)先法 ”求算術(shù)表達(dá)式的值。 [基本要求] (1)讀入一個合法的

    2024年02月08日
    瀏覽(25)
  • 簡易計算器-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    簡易計算器-課后程序(JAVA基礎(chǔ)案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    【案例11-2】 簡易計算器 【案例介紹】 1. 案例描述 本案例要求利用Java Swing 圖形組件開發(fā)一個可以進(jìn)行簡單的四則運算的圖形化計算器。 2. 運行結(jié)果 運行結(jié)果 ? 【案例分析】 要制作一個計算器,首先要知道它由哪些部分組成,如下圖所示: 一個簡單的圖形化界面計算器,

    2024年02月03日
    瀏覽(115)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包