读书的苦乐之境记叙文:简单的计算器程序

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 05:18:45
首先请求用户输入自已想进行的计算种类;+、-、*、/中的一种,再输入两个数;程序应按用户输入的要求进行相应的运算,并输出结果。在用户要求终止程序运行前,上述过程是重复的。
要用C++编写该程序!!!!!!

//C版
#include <stdio.h>
int main()
{
char c=0;
double n1,n2;
while (c!='q'&&c!='Q')
{
printf("输入运算符: ");
scanf("%c",&c);
printf("输入两个数据(空格分隔): ");
scanf("%lf %lf",&n1,&n2);
switch(c) {
case '+':
printf("%lf+%lf=%lf\n",n1,n2,n1+n2);
break;
case '-':
printf("%lf-%lf=%lf\n",n1,n2,n1-n2);
break;
case '*':
printf("%lf*%lf=%lf\n",n1,n2,n1*n2);
break;
case '/':
printf("%lf/%lf=%lf\n",n1,n2,n1/n2);
break;
default:
break;
}
fflush(stdin);
}
return 0;
}

//C++版
#include <iostream.h>
#include <stdio.h>
int main()
{
char c=0;
double n1,n2;
while (c!='q'&&c!='Q')
{
cout<<"输入运算符: ";
cin>>c;
cout<<"输入两个数据(空格分隔): ";
cin>>n1>>n2;
switch(c) {
case '+':
cout<<n1<<"+"<<n2<<"="<<n1+n2;
break;
case '-':
cout<<n1<<"+"<<n2<<"="<<n1-n2;
break;
case '*':
cout<<n1<<"+"<<n2<<"="<<n1*n2;
break;
case '/':
cout<<n1<<"+"<<n2<<"="<<n1/n2;
break;
}
fflush(stdin);
}
return 0;
}

可以用JAVA吗
java计算器

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class calculation extends JFrame
{public calculation() /*构造方法*/
{super("计数器");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPanel(); /*文本框*/
initControlPanel(); /*控制键*/
initKeyPanel(); /*数字和运算符*/
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
pane.add(TextPanel,BorderLayout.NORTH);
pane.add(ControlPanel,BorderLayout.CENTER);
pane.add(KeyPanel,BorderLayout.SOUTH);
pack();
try
{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception ex)
{;} /*设置Windons观感*/
SwingUtilities.updateComponentTreeUI(this);
setResizable(false);
setVisible(true);
}

private void initTextPanel() /*设置文本框*/
{ TextPanel=new JPanel();
TextPanel.setLayout(new FlowLayout());
Resultarea =new JTextField("0",25);
Resultarea.setEditable(false); /*设置不可编辑*/
Color color=Color.white;
Resultarea.setBackground(color); /*颜色*/
Resultarea.setHorizontalAlignment(JTextField.RIGHT); /*设置显示位置*/
TextPanel.add(Resultarea);
}

private void initControlPanel() /*设置控制键*/
{ControlPanel=new JPanel();
ControlPanel.setLayout(new GridLayout(1,3,4,4));
JButton b1=new JButton("Backspace"); /*Backspace键*/
b1.setFont(font1);
b1.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{String s1=Resultarea.getText();
int l=s1.length();
Resultarea.setText(s1.substring(0 ,l-1));
}
});

ControlPanel.add(b1);
JButton b2=new JButton("CE"); /*CE键*/
b2.setFont(font1);
b2.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{Resultarea.setText("0");
isNew=true;
}
});
ControlPanel.add(b2);

JButton b3=new JButton("C"); /*C键*/
b3.setFont(font1);
b3.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{Resultarea.setText("0");
pnum="";
operation="";
isNew=true;
}
});
ControlPanel.add(b3);
}

private void initKeyPanel() /*设置数字键和运算符键*/
{String key[] = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};
KeyPanel = new JPanel();
KeyPanel.setLayout(new GridLayout(4,5,4,4));
for(int i=0;i<20;i++)
{String label = key[i];
JButton b = new JButton(label);
b.setActionCommand(key[i]);
b.setFont(font2);
KeyPanel.add(b);
b.addActionListener(new ActionListener() /*无名监听器*/
{public void actionPerformed(ActionEvent e)
{Key_actionPerformed(e);
}
});
}
}
public void Key_actionPerformed(ActionEvent e) /*数字键和运算符键无名监听器*/
{String s=(e.getActionCommand());
String st=Resultarea.getText();
if(s.equals("0")) /*输入数为0*/
{if(st.equals("0"))
return;
else
{if(!isNew)
Resultarea.setText(st+"0");
else
Resultarea.setText("0");
}
isNew=false;
return;
}

if(s.equals("+/-")) /*输入数为+/-*/
{double k=Double.parseDouble(st);
{if(k!=0)
display(-k);

}
return;
}

if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")) /*输入1-9*/
{if(!isNew)
Resultarea.setText(st+s);
else
{ Resultarea.setText(s);
isNew=false;
}
return;
}

if(s.equals(".")) /*输入小数点*/
{if(Resultarea.getText().indexOf(".")==-1) /*不存在小数点*/
{if(isNew)
{Resultarea.setText("0.");
isNew=false;
}
else
Resultarea.setText(st+".");
}
return;
}

isNew=true; /*按下运算符,输入新的数*/
if(s.equals("="))
{compute(s);
operation="";
}
else
{if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) /*二目运算符号*/
{if(operation.equals(""))
{pnum=Resultarea.getText();
operation=s;
}
else
compute(s);
}
else /*一目运算*/
{Count count1=new Count(Double.parseDouble(st));
if(s.equals("sqrt"))
{
display(count1.sqrt());

}
else
{if(s.equals("1/x"))
{if(st.equals("0"))
{Resultarea.setText("除数不能为0.");
operation="";
pnum="";
}
else
display(count1.reciprocal()); /*求倒数*/
}
else
display(Double.parseDouble(st)/100); /*输入%,使当前显示的值除于100*/
}
}
}
}

private void compute(String s)
{if(s.equals("="))
{if(operation.equals(""))
return;
}
double data1=Double.parseDouble(pnum);
double data2=Double.parseDouble(Resultarea.getText());
Count count2=new Count(data1,data2); /*加减乘除计算*/
if(operation.equals("+"))
display((count2.plus()));
else
{if(operation.equals("-"))
display((count2.minus()));
else
{if(operation.equals("*"))
display((count2.multiply()));
else
if(operation.equals("/"))
{if(data2==0)
{Resultarea.setText("除数不能为0");
operation="";
pnum="";
return;
}
else
display((count2.divide()));
}
}
}
operation=""; /*符号为当前符*/
pnum=Resultarea.getText();/*运算数为当前文本数*/
}

public void display(double result) /*显示输出方法*/
{int a=(int)result;
if(a==result)
Resultarea.setText(String.valueOf(a));
else
Resultarea.setText(String.valueOf(result));
if(Resultarea.getText().equals("NaN"))
Resultarea.setText("输入函数无效");
}

private JPanel TextPanel; /*文本框棉板*/
private JTextField Resultarea; /*文本框*/
private JPanel ControlPanel; /*控制键键面板*/
private JPanel KeyPanel; /*数字键和运算符键面板*/
private Font font1=new Font("Dialog",0, 10); /*控制键字体*/
private Font font2 = new Font("Dialog",0,10); /*数字键和符号键字体*/
private String pnum=""; /*前操作数*/
private boolean isNew=true; /*控制是否是新数*/
private String operation=""; /*运算符*/
}

class tester /*测试类*/
{
public static void main(String[] args)
{
new calculation();
}
}

class calc
{ private:
char opration[5];
double Number1;
double Number2;
double result;
Pblic :
void getNum1();
void getNum2();
void getOpration();
void calcter();
void calc(double num1,char * opration,double num2);
void ~calc();
}
calc::getNum1()
{ cin>>Number1;}
calc::getNum2()
{ cin>>Number2;}
calc::getOpration()
{
cin>>opration;
}
calc::calcter()
{
if(strcmp(opration,"+")==0)
result=Number1+Number2;
else if if(strcmp(opration,"-")==0)
result=Number1+Number2;
//下面的判断你 自己写
cout<<result;
}
void main()
{
calc mycalc;
cout<<"ctrl+ c to exit!";
while(1){

mycalc.getOpration();
mycalc.getNumber1();
mycalc.getNunber2();
mycalc.calcter();
}
}

用什么语言?

VB 语言 我自己编的
Private n As Variant

Private Sub Command1_Click()
n = Val(Text1.Text) + Val(Text2.Text)

End Sub

Private Sub Command2_Click()
n = Val(Text2.Text) - Val(Text2.Text)

End Sub

Private Sub Command3_Click()
n = Val(Text1.Text) * Val(Text2.Text)

End Sub

Private Sub Command4_Click()
m = Val(Text2.Text)

If m = "" Or m = 0 Then
Label2.Caption = "错误!除数不能为零!"
Else: n = Val(Text1.Text) / Val(Text2.Text)
Label2.Caption = ""

End If

End Sub

Private Sub Command5_Click()
Text3.Text = n
Text1.Text = ""
Text2.Text = ""

End Sub

五个按钮分别为+ - * / =
三个文本分别为两个数和结果