导航:首页 > 编程语言 > 可撤销重做的计算器代码

可撤销重做的计算器代码

发布时间: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 ) ;是对的

阅读全文

与可撤销重做的计算器代码相关的资料

热点内容
北条麻记有哪些电影 浏览:824
多女主都市小说 浏览:545
3366mp3有声小说网 浏览:641
紫轩小说吧txt精选珍藏 浏览:745
js中循环li元素 浏览:824
有关美国农场的电影 浏览:509
win10gdi32lib 浏览:140
菲律宾片《桨叶》 浏览:234
小电影网站推荐 浏览:619
如何从数据分析获利并产生影响力 浏览:686
点付款码出现网络不可用什么情况 浏览:659
米璐璐作品集下载txt 浏览:238
cad新建文件怎么不显示 浏览:380
重生香港1973炒股 浏览:400
日本大奶电影 浏览:490
linux空间不足如何解决办法 浏览:205
网络订单处理 浏览:589
团鬼六所有的电影 浏览:157
十大必看火影小说排行榜 浏览:580
大香蕉一区 浏览:697

友情链接