導航:首頁 > 編程語言 > 可撤銷重做的計算器代碼

可撤銷重做的計算器代碼

發布時間:2021-10-24 13:24:18

1. 求:用類寫成的計算器代碼

import java.awt.*;
import java.awt.event.*;
import java.lang.*;
class Mypanel extends Panel implements ActionListener
{ double x=0,y=0,z=0;
String str1,str2;
Label 第一個數,第二個數,結果,異常;
TextField 輸入一,輸入二,出結果;
Button 加, 減,乘,除,清空;
Mypanel()
{

第一個數=new Label("第一個數");
第二個數=new Label("第二個數");
結果=new Label("結果");
異常=new Label(" ");
輸入一=new TextField(" ",10);
輸入二=new TextField(" ",10);
出結果=new TextField(" ",10);
第一個數.setBackground(Color.pink); add(第一個數);
第二個數.setBackground(Color.pink); add( 輸入一);
結果.setBackground(Color.pink); add(第二個數);
輸入一.setBackground(Color.white); add( 輸入二);
輸入二.setBackground(Color.white); add(結果);
出結果.setBackground(Color.white); add( 出結果);
加=new Button("加法");add(加);
減=new Button("減法");add(減);
乘=new Button("乘法");add(乘);
除=new Button("除法");add(除);
清空=new Button("清空");add(清空);
add(異常);

加.addActionListener(this);
減.addActionListener(this);
乘.addActionListener(this);
除.addActionListener(this);
清空.addActionListener(this);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==加)
try {
str1=輸入一.getText();
str2=輸入二.getText();
x=Double.parseDouble(str1);
y=Double.parseDouble(str2);
z=x+y;
String s=String.valueOf(z);
出結果.setText(s);
System.out.println(x+"+"+y+"="+z);
}
catch(Exception b)
{

異常.setText("輸入格式錯誤");
異常.setBackground(Color.red);
}

else if(e.getSource()==減)
try{
str1=輸入一.getText();
str2=輸入二.getText();
x=Double.parseDouble(str1);
y=Double.parseDouble(str2);
z=x-y;
String s=String.valueOf(z);
出結果.setText(s);
System.out.println(x+"-"+y+"="+z);
}
catch(Exception b)
{
異常.setText("輸入格式錯誤");
異常.setBackground(Color.red);
}

else if(e.getSource()==乘)
try{
str1=輸入一.getText();
str2=輸入二.getText();
x=Double.parseDouble(str1);
y=Double.parseDouble(str2);
z=x*y;
String s=String.valueOf(z);
出結果.setText(s);
System.out.println(x+"*"+y+"="+z);
}
catch(Exception b)
{

異常.setText("輸入格式錯誤");
異常.setBackground(Color.red);
}

if(e.getSource()==除)
try
{
str1=輸入一.getText();
str2=輸入二.getText();
x=Double.parseDouble(str1);
y=Double.parseDouble(str2);
z=x/y;
String s=String.valueOf(z);
出結果.setText(s);
System.out.println(x+"/"+y+"="+z);
}

catch(Exception b)
{

異常.setText("輸入格式錯誤");
異常.setBackground(Color.red);
}
if(e.getSource()==清空)
{
輸入一.setText(null);
輸入二.setText(null);
出結果.setText(null);
異常.setText(null);
異常.setBackground(Color.yellow);

}
}
}
class MyWindow extends Frame
{
Mypanel p1;
MyWindow(String s)
{
setLayout(new FlowLayout());
p1=new Mypanel();
add(p1);
Toolkit tool=getToolkit();
Dimension a=tool.getScreenSize();
setBounds(100,100,800,100);
p1.setBackground(Color.yellow);
setBackground(Color.red);
setVisible(true);
validate();
addWindowListener(new win());
}

}

public class JiShuanqi
{
public static void main(String args[])
{
MyWindow p=new MyWindow("我的計算器");
}

}
class win extends WindowAdapter
{
public void windowClosing(WindowEvent e1)
{
System.exit(0);
}
}

2. Vb中計算器清空需要什麼代碼

Vb中計算器清空代碼如下所示:

PrivateSubCmdcls_Click()

Text1.Text=0

EndSub

VB使用了可以簡單建立應用程序的GUI 系統,但是又可以開發相當復雜的程序。VB 的程序是一種基於窗體的可視化組件安排的聯合,並且增加代碼來指定組件的屬性和方法。因為默認的屬性和方法已經有一部分定義在了組件內,所以程序員不用寫多少代碼就可以完成一個簡單的程序。

VB 的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似於操作系統的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。

(2)可撤銷重做的計算器代碼擴展閱讀

VB變數類型:

1、Integer(類型符%)

Integer指的是-32768到+32767之間的整數,通常這個范圍已經涵蓋了大多數可能會用到的數字。如果認為要用到的數字可能會超出這個范圍,可以考慮將其定義為Long。

2、Long(類型符&)

這種數據類型垢數字有時又稱為Long Integer。這種數據類型可以處理-2147483648到+2147483647之間的所有數字。與使用2個位元組的Integer不同,它使用4位元組內存存儲數據。

3、Single(類型符!)

Single適用於需要小數點的數字。Single可以處理-3.402823E38到-1.401298E-45之間的負值和1.401298E_45到3.402823E38之間的正值。

4、Double(類型符#)

這種數據類型需要使用8位元組內存來存儲數據。如果必須處理超大范圍的值,這種數據類型會很有用。

3. 計算器代碼

用VB編寫的計算器代碼:

Option Explicit

Private StoredValue As Double

Private Const opNone = 0
Private Const opAdd = 1
Private Const opSubtract = 2
Private Const opMultiply = 3
Private Const opDivide = 4
Private Operator As Integer

Private NewEntry As Boolean

' Remove the last character.
Private Sub DeleteCharacter()
Dim txt As String
Dim min_len As Integer

txt = txtDisplay.Text
If Left$(txt, 1) = "-" Then
min_len = 2
Else
min_len = 1
End If

If Len(txt) > min_len Then
txtDisplay.Text = Left$(txt, Len(txt) - 1)
Else
txtDisplay.Text = "0"
End If
End Sub

' Clear the current entry, saved value, and operator.
Private Sub cmdClear_Click()
cmdClearEntry_Click
StoredValue = 0
Operator = opNone
End Sub

' Clear the current entry.
Private Sub cmdClearEntry_Click()
txtDisplay.Text = ""
End Sub

' Add a decimal point to the display.
Private Sub cmdDecimal_Click()
If InStr(txtDisplay.Text, ".") Then
Beep
Else
If NewEntry Then
txtDisplay.Text = "."
NewEntry = False
Else
txtDisplay.Text = txtDisplay.Text & "."
End If
End If
End Sub

' Calculate the result of the previous operation.
Private Sub cmdEquals_Click()
Dim new_value As Double

If txtDisplay.Text = "" Then
new_value = 0
Else
new_value = CDbl(txtDisplay.Text)
End If
Select Case Operator
Case opNone
StoredValue = new_value
Case opAdd
StoredValue = StoredValue + new_value
Case opSubtract
StoredValue = StoredValue - new_value
Case opMultiply
StoredValue = StoredValue * new_value
Case opDivide
StoredValue = StoredValue / new_value
End Select
Operator = opNone
NewEntry = True
txtDisplay.Text = Format$(StoredValue)
End Sub

' Add a number to the display.
Private Sub cmdNumber_Click(Index As Integer)
If NewEntry Then
txtDisplay.Text = Format$(Index)
NewEntry = False
Else
txtDisplay.Text = _
txtDisplay.Text & Format$(Index)
End If
End Sub

' Prepare to perform an operation.
Private Sub cmdOperator_Click(Index As Integer)
' Perform the previous operation.
cmdEquals_Click

' Remember this operation.
Operator = Index

' Start a new value.
NewEntry = True
End Sub
' Change the value's sign.
Private Sub cmdPlusMinus_Click()
If NewEntry Then
txtDisplay.Text = "-"
ElseIf Left$(txtDisplay.Text, 1) = "-" Then
txtDisplay.Text = Right$(txtDisplay.Text, 2)
Else
txtDisplay.Text = "-" & txtDisplay.Text
End If
End Sub

' Check for normal characters.
Private Sub Form_KeyPress(KeyAscii As Integer)
txtDisplay_KeyPress KeyAscii
End Sub

' Check for unusual characters.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
txtDisplay_KeyUp KeyCode, Shift
End Sub

' Keep the cursor on the right.
Private Sub txtDisplay_Change()
txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub

' Keep the cursor on the right.
Private Sub txtDisplay_GotFocus()
txtDisplay_Change
End Sub

' Check for normal characters.
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String

ch = Chr$(KeyAscii)
Select Case ch
Case "0"
cmdNumber_Click 0
Case "1"
cmdNumber_Click 1
Case "2"
cmdNumber_Click 2
Case "3"
cmdNumber_Click 3
Case "4"
cmdNumber_Click 4
Case "5"
cmdNumber_Click 5
Case "6"
cmdNumber_Click 6
Case "7"
cmdNumber_Click 7
Case "8"
cmdNumber_Click 8
Case "9"
cmdNumber_Click 9
Case "*", "x", "X"
cmdOperator_Click opMultiply
Case "+"
cmdOperator_Click opAdd
Case vbCrLf, vbCr, "="
cmdEquals_Click
Case "-"
cmdOperator_Click opSubtract
Case "."
cmdDecimal_Click
Case "/"
cmdOperator_Click opDivide
Case "C", "c"
cmdClearEntry_Click
End Select

KeyAscii = 0
End Sub

' Check for unusual characters.
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyNumpad0
cmdNumber_Click 0
Case vbKeyNumpad1
cmdNumber_Click 1
Case vbKeyNumpad2
cmdNumber_Click 2
Case vbKeyNumpad3
cmdNumber_Click 3
Case vbKeyNumpad4
cmdNumber_Click 4
Case vbKeyNumpad5
cmdNumber_Click 5
Case vbKeyNumpad6
cmdNumber_Click 6
Case vbKeyNumpad7
cmdNumber_Click 7
Case vbKeyNumpad8
cmdNumber_Click 8
Case vbKeyNumpad9
cmdNumber_Click 9
Case vbKeyMultiply
cmdOperator_Click opMultiply
Case vbKeyAdd
cmdOperator_Click opAdd
Case vbKeySeparator
cmdEquals_Click
Case vbKeySubtract
cmdOperator_Click opSubtract
Case vbKeyDecimal
cmdDecimal_Click
Case vbKeyDivide
cmdOperator_Click opDivide
Case vbKeyBack, vbKeyDelete
DeleteCharacter
End Select
KeyCode = 0
End Sub

4. java 計算器代碼,高手給修改一下

請看下面這段修改:
else if (e2.getSource() == b26)// 單擊等號按鈕輸出計算結果
{
    str.setLength(0);
    switch (z) {
    case 0:
        x = x + y;
//        tf1.setText("" + (x + y));
        break;
    case 1:
        x = x - y;
//        tf1.setText("" + (x - y));
        break;
    case 2:
        x = x * y;
//        tf1.setText("" + (x * y));
        break;
    case 3:
        x = x / y;
//        tf1.setText("" + (x / y));
        break;
    }
    tf1.setText("" + x);
}
還發現這個計算器另一個不算嚴重的bug,重現: 按1;按MS存儲;按2;按MR調出存儲,這是屏幕顯示變回1;不要按其他運算符,直接按3,期望現在屏幕重新變回3,但顯示的是13. 原因: MR的時候沒有對str清零。

寫不下完整代碼,你的qq zone里回復也貼不下, 下面用了些省略號,湊合著看吧

========= 完整代碼 ==========
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;

public class Counter extends Frame {
// 聲明三個面板的布局
GridLayout gl1, gl2, gl3;
Panel p0, p1, p2, p3;
JTextField tf1;
TextField tf2;
Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14,
b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26;
StringBuffer str;// 顯示屏所顯示的字元串
double x, y;// x和y都是運算數
int z;// Z表示單擊了那一個運算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m;// 記憶的數字

public Counter() {
......
}

// 構造監聽器
class Bt implements ActionListener {
public void actionPerformed(ActionEvent e2) {
try {
if (e2.getSource() == b1)// 選擇"CE"清零
{
tf1.setText("0");// 把顯示屏清零
str.setLength(0);// 清空字元串緩沖區以准備接收新的輸入運算數
} else if (e2.getSource() == b2)// 選擇"C"清零
{
tf1.setText("0");// 把顯示屏清零
str.setLength(0);
} else if (e2.getSource() == b23)// 單擊"+/-"選擇輸入的運算數是正數還是負數
{
x = Double.parseDouble(tf1.getText().trim());
tf1.setText("" + (-x));
} else if (e2.getSource() == b25)// 單擊加號按鈕獲得x的值和z的值並清空y的值
{
x = Double.parseDouble(tf1.getText().trim());
str.setLength(0);// 清空緩沖區以便接收新的另一個運算數
y = 0d;
z = 0;
} else if (e2.getSource() == b20)// 單擊減號按鈕獲得x的值和z的值並清空y的值
{
x = Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y = 0d;
z = 1;
} else if (e2.getSource() == b15)// 單擊乘號按鈕獲得x的值和z的值並清空y的值
{
x = Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y = 0d;
z = 2;
} else if (e2.getSource() == b10)// 單擊除號按鈕獲得x的值和z的值並空y的值
{
x = Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y = 0d;
z = 3;
} else if (e2.getSource() == b26)// 單擊等號按鈕輸出計算結果
{
str.setLength(0);
switch (z) {
case 0:
x = x + y;
//tf1.setText("" + (x + y));
break;
case 1:
x = x - y;
//tf1.setText("" + (x - y));
break;
case 2:
x = x * y;
//tf1.setText("" + (x * y));
break;
case 3:
x = x / y;
//tf1.setText("" + (x / y));
break;
}
tf1.setText("" + x);
}
.......
} catch (NumberFormatException e) {
tf1.setText("數字格式異常");
} catch ( e) {
tf1.setText("字元串索引越界");
}
}
}

public static void main(String args[]) {
new Counter();
}
}

5. 怎麼讓C語言寫的計算器計算完一組數以後不讓程序結束,返回再重新計算別的數

#include<stdio.h>
#include<ctype.h>

intmain()
{
while(1)
{
floata,b;
printf("請輸入兩個正數,中間用逗號隔開: ");
scanf("%f,%f",&a,&b);
printf("兩數之和a+b為%f ",a+b);
printf("兩數之差a-b為%f ",a-b);
printf("兩數之積a*b為%f ",a*b);
if(b==0)
{
printf("Error.Youcan'tkeepthedivisorisequaltozero.");
}
else
{
printf("兩數之商a/b為%f ",a/b);
}

getchar();//後加的語句
printf(" y繼續計算,n退出 ");//後加的語句
if(toupper(getchar())=='N')//後加的語句
break;//後加的語句
}
}

6. 本人求代碼,如何MFC實現畫圖板中的撤銷、重做、剪切、復制

DWORD dwLength = 100; // 要復制的字串長度
HANDLE hGlobalMemory = GlobalAlloc(GHND, dwLength + 1); // 分配內存
LPBYTE lpGlobalMemory = (LPBYTE)GlobalLock(hGlobalMemory); // 鎖定內存
for (int i = 0; i 〈 dwLength; i++) // 將"*"復制到全局內存塊
*lpGlobalMemory++ = '*';
GlobalUnlock(hGlobalMemory); // 鎖定內存塊解鎖
HWND hWnd = GetSafeHwnd(); // 獲取安全窗口句柄
::OpenClipboard(hWnd); // 打開剪貼板
::EmptyClipboard(); // 清空剪貼板
::SetClipboardData(CF_TEXT, hGlobalMemory); // 將內存中的數據放置到剪貼板
::CloseClipboard(); // 關閉剪貼板

7. 如何撤銷計算器快捷鍵

電腦計算器使用了之後,又要用滑鼠點擊,才能下一輪計算,是不是很麻煩啦
,使用快捷鍵dwlete
,用鍵盤上的這個鍵就可以繼續
新一輪的計算了
覺得好的
希望你輕輕的一次點擊
就是對我最大的支持
補充
加減乘除
都在
小鍵盤上呢
就是
最右上面那裡呢
+
==加
-
==減
*
==

/
==

退格可以用
計算器上
c

鍵盤中back
space
重新開始:f5

ok了
完全可以!!兩步搞定!!
第一步,將「計算器」發送到桌面:開始—→所有程序—→附件—→計算器—→右擊—→發送到桌面快捷方式!
第二步:右擊桌面「計算器」快捷方式圖標—→屬性—→快捷方式—→快捷鍵:shift+alt+9—→確定!!
以後按組合鍵「shift+alt+9」即可打開!!
另外,還有兩種方式也比較快捷:
1.開始—→運行—→calc
2.將桌面「計算器」圖標拖入「快速啟動」區域也很方便!
有。
1.將計算器發送到桌面快捷方式
2.右鍵計算器屬性----快捷方式---快捷鍵。
3.自己設置一下,比如按個f6之類的,都可以。
4.完成。有不明白再說

8. c++計算器源代碼

#include<iostream>//簡單的計算器
using namespace std;//DEV c++
int main()
{
int a,b;
char c;//這里變數名只能為char
cout<<"計算器"<<endl;
cout<<"你想使用哪種計算器(+,-,*,/)"<<endl;
cin>>c;
switch(c)//這里是對+,-,*,/進行使用(c)
{
case '+'://加法運算
{
cout<<"請輸入第一個數"<<endl;
cin>>a;
cout<<"請輸入第二個數"<<endl;
cin>>b;
cout<<a<<"+"<<b<<"="<<a+b;
}
break;//break是終止
case '-'://減法運算
{
cout<<"請輸入第一個數"<<endl;
cin>>a;
cout<<"請輸入第二個數"<<endl;
cin>>b;
cout<<a<<"-"<<b<<"="<<a-b;
}
break;
case '*'://乘法運算
{
cout<<"請輸入第一個數"<<endl;
cin>>a;
cout<<"請輸入第二個數"<<endl;
cin>>b;
cout<<a<<"*"<<b<<"="<<a*b;
}
break;
case '/'://除法運算
{
cout<<"請輸入第一個數"<<endl;
cin>>a;
cout<<"請輸入第二個數"<<endl;
cin>>b;
if(b!=0)
{
cout<<a<<"/"<<b<<"="<<a/b;
}
else cout<<"除數不能為0"<<endl;
}
break;
default:cout<<"請輸入正確的運算符號"<<endl;//特殊情況
}
return 0;
}

9. 求大蝦解釋下一個簡單C語言四則運算計算器代碼的糾錯及錯因。

問題1:把你的程序輸入運行,未發現減法出問題,你能否貼出你出問題的圖
問題2:第一個scanf ( "%c", &d ) ;自動把你上次輸入數字的最後1個回車取到,你可發現如果只有一個scanf ( "%c", &d ) ;不用你輸入運算符號就自動得到結果了,你的程序里並沒有d不等於運算符號的處理,所以c並沒有被賦值,那麼列印出來的就是系統給他的默認值,你那是2,其他的機器也許就不一樣了,所以用2個scanf ( "%c", &d ) ;是對的

閱讀全文

與可撤銷重做的計算器代碼相關的資料

熱點內容
日常型常量數據用什麼符號引起 瀏覽:198
黑人英語課作弊播放 瀏覽:602
有劇情的露點電影 瀏覽:799
家旺家俊阿梅是哪個電影 瀏覽:318
皮皮陪練app怎麼發布動態 瀏覽:565
什麼app可以批量添加自定義水印 瀏覽:885
sd目錄在哪個文件夾里 瀏覽:558
台灣抵抗日本侵略的電影 瀏覽:461
c盤太大如何確定是哪個文件 瀏覽:656
windows64位網路編程 瀏覽:517
他經常會去看電影的英語 瀏覽:714
大學英語補習班用哪個app 瀏覽:979
考勤登記管理系統java 瀏覽:816
蘋果在線免費下載觀看 瀏覽:230
pgyy.vlp 瀏覽:819
免費可以看污的 瀏覽:539
主人公是勞拉的電影 瀏覽:354
java漢字轉utf8 瀏覽:310
dnf90版本赫拉斯 瀏覽:937
在電腦上怎麼保存文件 瀏覽:233

友情鏈接