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

【Java】——實現(xiàn)可視化加減乘除計算器

這篇具有很好參考價值的文章主要介紹了【Java】——實現(xiàn)可視化加減乘除計算器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??個人專欄:

?? 算法設(shè)計與分析:算法設(shè)計與分析_IT閆的博客-CSDN博客

??Java基礎(chǔ):Java基礎(chǔ)_IT閆的博客-CSDN博客

??c語言:c語言_IT閆的博客-CSDN博客

??MySQL:數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客

??數(shù)據(jù)結(jié)構(gòu):??????數(shù)據(jù)結(jié)構(gòu)_IT閆的博客-CSDN博客

??C++:C++_IT閆的博客-CSDN博客

??C51單片機:C51單片機(STC89C516)_IT閆的博客-CSDN博客

??基于HTML5的網(wǎng)頁設(shè)計及應(yīng)用:基于HTML5的網(wǎng)頁設(shè)計及應(yīng)用_IT閆的博客-CSDN博客??????

??python:python_IT閆的博客-CSDN博客

??離散數(shù)學(xué):離散數(shù)學(xué)_IT閆的博客-CSDN博客

歡迎收看,希望對大家有用!

目錄

??功能簡介:

??分塊分析:

??導(dǎo)入包和聲明全局變量:

??創(chuàng)建界面并添加組件:

??添加事件監(jiān)聽器:

??整合邏輯:

??程序不足:

??整改建議:

??源代碼:

???展示視頻:


??功能簡介:

這是一個簡單的計算器小程序,可以進行加、減、乘、除四則運算。界面分為一個屏幕和多個按鈕,通過按鈕輸入數(shù)字和運算符,同時在屏幕上顯示輸入內(nèi)容和計算結(jié)果。具體實現(xiàn)包括:

  1. 界面布局:使用GridLayout布局,將界面分為6個部分,分別放置屏幕和按鈕。

  2. 數(shù)字輸入:通過按鈕監(jiān)聽,每次點擊數(shù)字按鈕將數(shù)字添加到字符串s中,并在屏幕上顯示當(dāng)前輸入內(nèi)容。

  3. 運算符輸入:同樣通過按鈕監(jiān)聽,點擊運算符按鈕時保存當(dāng)前輸入的數(shù)字,清空輸入框,將運算符保存在flag中。

  4. 計算結(jié)果:在等號按鈕監(jiān)聽中,根據(jù)flag值選擇進行加、減、乘、除四則運算,并將結(jié)果顯示在屏幕上。其中,除法運算需要特判被除數(shù)為0的情況。

??分塊分析:

??導(dǎo)入包和聲明全局變量:

package one;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MyCalculator1 {
	static int num1 = 0;
	static int num2 = 0;
	static String s = "";
	static String flag = "";

在這一部分中,我們導(dǎo)入了所需的包,并聲明了四個靜態(tài)變量 num1、num2、sflag


??創(chuàng)建界面并添加組件:

public static void main(String[] args) {
	// TODO Auto-generated method stub
	JFrame win1 = new JFrame("計算器小程序");
	win1.setBounds(200, 200, 500, 700);
	win1.setDefaultCloseOperation(3);
	win1.setVisible(true);

	win1.setLayout(new GridLayout(6, 1));
	JPanel p1 = new JPanel(new GridLayout(1, 1));// 放屏幕的;
	JPanel p2 = new JPanel(new GridLayout(1, 4));// 放+-*/Button的;
	JPanel p3 = new JPanel(new GridLayout(1, 3));// 放789Button的;
	JPanel p4 = new JPanel(new GridLayout(1, 3));// 放456Button的;
	JPanel p5 = new JPanel(new GridLayout(1, 3));// 放123Button的;
	JPanel p6 = new JPanel(new GridLayout(1, 3));// 放C0=的;
	JTextField text = new JTextField();

	JButton bt_add = new JButton("+");
	JButton bt_sub = new JButton("-");
	JButton bt_mul = new JButton("×");
	JButton bt_div = new JButton("÷");

	JButton bt_7 = new JButton("7");
	JButton bt_8 = new JButton("8");
	JButton bt_9 = new JButton("9");
	JButton bt_4 = new JButton("4");
	JButton bt_5 = new JButton("5");
	JButton bt_6 = new JButton("6");
	JButton bt_1 = new JButton("1");
	JButton bt_2 = new JButton("2");
	JButton bt_3 = new JButton("3");
	JButton bt_c = new JButton("c");
	JButton bt_0 = new JButton("0");
	JButton bt_equ = new JButton("=");

	win1.add(p1);
	win1.add(p2);
	win1.add(p3);
	win1.add(p4);
	win1.add(p5);
	win1.add(p6);

	p1.add(text);
	p2.add(bt_add);
	p2.add(bt_sub);
	p2.add(bt_mul);
	p2.add(bt_div);

	p3.add(bt_7);
	p3.add(bt_8);
	p3.add(bt_9);
	p4.add(bt_4);
	p4.add(bt_5);
	p4.add(bt_6);
	p5.add(bt_1);
	p5.add(bt_2);
	p5.add(bt_3);
	p6.add(bt_c);
	p6.add(bt_0);
	p6.add(bt_equ);

?????????在這一部分中,我們創(chuàng)建了一個 JFrame 窗口,并且設(shè)置了窗口的基本屬性(標(biāo)題、大小、位置、關(guān)閉方式等)。然后,我們使用 GridLayout 布局管理器創(chuàng)建了六個面板,并將它們添加到窗口中。接著,我們創(chuàng)建了所需的組件(屏幕、按鈕),并將它們添加到對應(yīng)的面板中。


??添加事件監(jiān)聽器:

bt_0.addActionListener(new ActionListener() {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		s = s + "0";
		text.setText(s);
	}
});

bt_1.addActionListener(new ActionListener() {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		s = s + "1";
		text.setText(s);
	}
});

...

bt_add.addActionListener(new ActionListener() {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		flag = "+";
		num1 = Integer.valueOf(text.getText());
		s = "";
		text.setText("");
	}
});

...

bt_equ.addActionListener(new ActionListener() {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int sum = 0;

		num2 = Integer.valueOf(text.getText());
		switch (flag) {
		case "+":
			sum = num1 + num2;
			break;
		case "-":
			sum = num1 - num2;
			break;
		case "×":
			sum = num1 * num2;
			break;
		case "÷":
			if (num2 == 0) {
				num2 = num2 + 1;
			}
			sum = num1 / num2;
			break;
		default:
			break;
		}
			String value = String.valueOf(num1) + " " + flag + " " + String.valueOf(num2) + " = "
					+ String.valueOf(sum);
			text.setText(String.valueOf(value));
		
	}
});

?????????在這一部分中,我們?yōu)槊總€按鈕添加了事件監(jiān)聽器,并實現(xiàn)了響應(yīng)的功能。例如,當(dāng)用戶點擊數(shù)字按鈕時,我們將數(shù)字添加到字符串變量 s 中,并將其顯示在屏幕上;當(dāng)用戶點擊加號按鈕時,我們將其作為標(biāo)志變量 flag 的值,并將屏幕上的數(shù)字賦給變量 num1。


??整合邏輯:

int sum = 0;

num2 = Integer.valueOf(text.getText());
switch (flag) {
case "+":
	sum = num1 + num2;
	break;
case "-":
	sum = num1 - num2;
	break;
case "×":
	sum = num1 * num2;
	break;
case "÷":
	if (num2 == 0) {
		num2 = num2 + 1;
	}
	sum = num1 / num2;
	break;
default:
	break;
}
	String value = String.valueOf(num1) + " " + flag + " " + String.valueOf(num2) + " = "
			+ String.valueOf(sum);
	text.setText(String.valueOf(value));

?????????在這一部分中,我們處理了用戶點擊等號按鈕后的邏輯。我們根據(jù)標(biāo)志變量 flag 的值,對兩個數(shù)字進行相應(yīng)的運算,并將結(jié)果顯示在屏幕上。

??程序不足:

  1. 沒有對用戶輸入進行驗證:程序沒有對用戶輸入進行驗證,如果用戶輸入非數(shù)字字符或者特殊字符,可能會導(dǎo)致程序崩潰或輸出錯誤結(jié)果。

  2. 不支持小數(shù)運算:程序只支持整數(shù)運算,無法處理帶小數(shù)點的數(shù)字。

  3. 操作順序限制:該計算器只支持兩個操作數(shù)的連續(xù)運算,不能處理多個操作符連續(xù)操作的情況。

  4. 缺乏界面美化:界面設(shè)計比較簡單,缺乏美觀性和用戶友好性。

  5. 代碼結(jié)構(gòu)不清晰:代碼中存在大量的重復(fù)代碼,可讀性和維護性較差。

  6. 未處理除數(shù)為0的情況:雖然在除法運算時判斷了除數(shù)是否為0,但只是簡單地將除數(shù)加1而沒有給出合適的提示。


??整改建議:

  1. 添加輸入驗證邏輯,確保用戶輸入的有效性。
  2. 添加異常處理機制,處理可能發(fā)生的異常情況。
  3. 重新設(shè)計代碼結(jié)構(gòu),使用實例變量和方法來組織代碼。
  4. 調(diào)整界面布局,使按鈕的大小和位置更合理美觀。

??源代碼:

package one;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class MyCalculator1 {
	static int num1 = 0;
	static int num2 = 0;
	static String s = "";
	static String flag = "";

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame win1 = new JFrame("計算器小程序");
		win1.setBounds(200, 200, 500, 700);
		win1.setDefaultCloseOperation(3);
		win1.setVisible(true);

		win1.setLayout(new GridLayout(6, 1));
		JPanel p1 = new JPanel(new GridLayout(1, 1));// 放屏幕的;
		JPanel p2 = new JPanel(new GridLayout(1, 4));// 放+-*/Button的;
		JPanel p3 = new JPanel(new GridLayout(1, 3));// 放789Button的;
		JPanel p4 = new JPanel(new GridLayout(1, 3));// 放456Button的;
		JPanel p5 = new JPanel(new GridLayout(1, 3));// 放123Button的;
		JPanel p6 = new JPanel(new GridLayout(1, 3));// 放C0=的;
		JTextField text = new JTextField();

		JButton bt_add = new JButton("+");
		JButton bt_sub = new JButton("-");
		JButton bt_mul = new JButton("×");
		JButton bt_div = new JButton("÷");

		JButton bt_7 = new JButton("7");
		JButton bt_8 = new JButton("8");
		JButton bt_9 = new JButton("9");
		JButton bt_4 = new JButton("4");
		JButton bt_5 = new JButton("5");
		JButton bt_6 = new JButton("6");
		JButton bt_1 = new JButton("1");
		JButton bt_2 = new JButton("2");
		JButton bt_3 = new JButton("3");
		JButton bt_c = new JButton("c");
		JButton bt_0 = new JButton("0");
		JButton bt_equ = new JButton("=");

		win1.add(p1);
		win1.add(p2);
		win1.add(p3);
		win1.add(p4);
		win1.add(p5);
		win1.add(p6);

		p1.add(text);
		p2.add(bt_add);
		p2.add(bt_sub);
		p2.add(bt_mul);
		p2.add(bt_div);

		p3.add(bt_7);
		p3.add(bt_8);
		p3.add(bt_9);
		p4.add(bt_4);
		p4.add(bt_5);
		p4.add(bt_6);
		p5.add(bt_1);
		p5.add(bt_2);
		p5.add(bt_3);
		p6.add(bt_c);
		p6.add(bt_0);
		p6.add(bt_equ);

		bt_0.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "0";
				text.setText(s);
			}
		});

		bt_1.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "1";
				text.setText(s);
			}
		});

		bt_2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "2";
				text.setText(s);
			}
		});

		bt_3.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "3";
				text.setText(s);
			}
		});

		bt_4.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "4";
				text.setText(s);
			}
		});

		bt_5.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "5";
				text.setText(s);
			}
		});

		bt_6.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "6";
				text.setText(s);
			}
		});

		bt_7.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "7";
				text.setText(s);
			}
		});

		bt_8.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "8";
				text.setText(s);
			}
		});

		bt_9.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				s = s + "9";
				text.setText(s);
			}
		});

		bt_c.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				num1 = 0;
				num2 = 0;
				flag = "";
				s = "";
				text.setText("");
			}
		});

		bt_add.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				flag = "+";
				num1 = Integer.valueOf(text.getText());
				s = "";
				text.setText("");
			}
		});

		bt_sub.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				flag = "-";
				num1 = Integer.valueOf(text.getText());
				s = "";
				text.setText("");
			}
		});

		bt_mul.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				flag = "×";
				num1 = Integer.valueOf(text.getText());
				s = "";
				text.setText("");
			}
		});

		bt_div.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				flag = "÷";
				num1 = Integer.valueOf(text.getText());
				s = "";
				text.setText("");
			}
		});

		bt_equ.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				int sum = 0;

				num2 = Integer.valueOf(text.getText());
				switch (flag) {
				case "+":
					sum = num1 + num2;
					break;
				case "-":
					sum = num1 - num2;
					break;
				case "×":
					sum = num1 * num2;
					break;
				case "÷":
					if (num2 == 0) {
						num2 = num2 + 1;
					}
					sum = num1 / num2;
					break;
				default:
					break;
				}
					String value = String.valueOf(num1) + " " + flag + " " + String.valueOf(num2) + " = "
							+ String.valueOf(sum);
					text.setText(String.valueOf(value));
				
			}
		});

	}

}

???展示視頻:

【Java】——實現(xiàn)可視化加減乘除計算器文章來源地址http://www.zghlxwxcb.cn/news/detail-751585.html

到了這里,關(guān)于【Java】——實現(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īng)查實,立即刪除!

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

相關(guān)文章

  • JAVA中char類型加減乘除運算表達式返回類型

    我們都知道java中,如果char類型和int類型做加減法,那么char類型會被精度提升至int類型然后參與運算,返回的也是int類型的數(shù)據(jù)。 那么如果表達式中參與運算的 均為char類型 ,那么表達式返回的類型是什么呢? 經(jīng)過簡單測試,是 int類型 。 這個問題是在調(diào)用StringBuilder.appen

    2024年02月08日
    瀏覽(27)
  • 【python&flask-1】簡單實現(xiàn)加減乘除輸入界面

    【python&flask-1】簡單實現(xiàn)加減乘除輸入界面

    app.py index.html result.html 支持小數(shù)點計算

    2024年02月09日
    瀏覽(17)
  • 用Vue的三種方法實現(xiàn)加減乘除運算

    用Vue的三種方法實現(xiàn)加減乘除運算

    js插件:vue.js 教程: 首先在工具內(nèi)引入vue.js 然后在body里面創(chuàng)建一個div并設(shè)置id,我這里給id命名為\\\"app\\\" 在id命名為\\\"app\\\"的div內(nèi)使用input標(biāo)簽和select標(biāo)簽來設(shè)置運算框 然后用 methods方法?computed方法?watch(偵聽器)方法 做出3種不同的加減乘除運算 第一種computed方法: 接下來我們在

    2024年02月09日
    瀏覽(40)
  • 【Java版oj】day27不用加減乘除做加法、三角形

    【Java版oj】day27不用加減乘除做加法、三角形

    目錄 ?一、不用加減乘除做加法 (1)原題再現(xiàn) (2)問題分析 (3)完整代碼 ?二、三角形 (1)原題再現(xiàn) (2)問題分析 (3)完整代碼 不用加減乘除做加法__??途W(wǎng) 寫一個函數(shù),求兩個整數(shù)之和,要求在函數(shù)體內(nèi)不得使用+、-、*、/四則運算符號。 輸入 1,2 輸出 3 輸入 0,0

    2023年04月16日
    瀏覽(24)
  • linux|shell編程|shell腳本內(nèi)的加減乘除運算實現(xiàn)示例

    shell腳本內(nèi)的加減乘除是由于在編寫kubernetes巡檢腳本的時候,某些部分需要做一點簡單的運算,突然發(fā)現(xiàn)我其實對這些不太熟悉。 因此,查閱了一些資料,現(xiàn)在就加減乘除運算在shell腳本內(nèi)如何應(yīng)用做一個簡單的總結(jié),寫的不對的地方請各位輕點噴 首先,我們看一個錯誤的示

    2024年02月17日
    瀏覽(19)
  • 高精度(加減乘除)

    高精度的核心思想就是利用數(shù)組去儲存大數(shù),然后通過模擬手動計算的方式,來進行計算。 主要分三個模塊: 1.讀入數(shù)據(jù)并轉(zhuǎn)換為(int)類型儲存 核心思想:將每個位上的數(shù)字都+起來,如果大于10就進位。 核心代碼如下: 完整代碼及解析如下: 減法核心:只使用大數(shù)減小數(shù)

    2024年02月08日
    瀏覽(24)
  • bigdecimal加減乘除運算

    打印的結(jié)果如下: 打印結(jié)果如下: 打印結(jié)果如下:

    2024年02月11日
    瀏覽(20)
  • 不用加減乘除做加法

    不用加減乘除做加法

    寫一個函數(shù),求兩個整數(shù)之和,要求在函數(shù)體內(nèi)不得使用+、-、*、/四則運算符號,本題OJ鏈接 數(shù)據(jù)范圍:兩個數(shù)都滿足 ?10≤n≤1000 進階:空間復(fù)雜度 O(1),時間復(fù)雜度 O(1) 分析 :本題要求不能使用+、-、*、/,所以我們應(yīng)該從二進制的角度去考慮,因為二進制的加法可以通

    2024年02月10日
    瀏覽(27)
  • 圖像四則運算(加減乘除)

    圖像四則運算(加減乘除)

    實驗?zāi)康模?1.了解圖像的算術(shù)運算在數(shù)字圖像處理中的初步應(yīng)用。 2.體會圖像算術(shù)運算處理的過程和處理前后圖像的變化。 3.能夠?qū)崿F(xiàn)簡單的圖像處理 實驗原理: 圖像的代數(shù)運算包括加,減,乘,除,這些運算的主要對象是圖像數(shù)據(jù)塊中的數(shù)據(jù)。這四種代數(shù)運算可以由如

    2024年02月08日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包