编程一个计算器
① 如何用C程序编写一个计算器
1
首先,得从网上下载并安装c++,然后从桌面找到并打开它。
② 怎么用c语言程序设计一个简单计算器
#include<<a href="https://www..com/s?wd=stdio.h&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EPH6srjc4rH61" target="_blank" class="-highlight">stdio.h</a>>
void main() { float x,y,z; char c;
scanf("%f%c%f",&x,&c,&y);
switch ( c ) {
case '+': z=x+y; break;
case '-': z=x-y; break;
case '*': z=x*y; break;
case '/': z=( y==0 )?(0):(x/y); break;
default: z=0; break;
}
printf("%f%c%f=%f ",x,c,y,z);
}
③ 如何用c语言实现一个计算器
1、#include<stdio.h>intmain()
2、{inta,b,c;scanf("%d%d%d"盯拆,&a,&b,&c);
3、intsum=a+b+c;
4、printf("和:%d",sum);
5、printf("平均值:%f",sum/3.0);
6、return0
④ 用java编写一个计算器
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.SwingConstants;
{
/**
*
*/
=1L;
Resultresult=newResult();//定义text的面板
Number_Keynumber_key=newNumber_Key();//定义按钮面板
//当点击按钮+、-、*、/时,com=true
booleancom=false;
//当i=0时说明是我们第一次输入,字符串text不会累加
inti=0;
//存放text的内容
Stringtext="";
//存放点击按钮+、-、*、/之前的数值
doubledefbutton=0;
//+、-、*、/的代号分别为1,2,3,4
intsymbol=0;
//构造函数
Jisuanqi(){
super("WangJiao");//设定标题
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设定关闭窗体时退出程序
JPanelpane=newJPanel();//定义主面板
pane.setLayout(newBorderLayout());
setBounds(380,220,30,80);//前两个参数是在屏幕上显示的坐标,后两个是大小
//替换图标
ImageIconicon=newImageIcon("F:1.GIF");
//Jisuanqi.class.getResource("APPLE.GIF")
//);
setIconImage(icon.getImage());
pane.add(result,BorderLayout.NORTH);
pane.add(number_key,BorderLayout.CENTER);
pane.add(number_key.equal,BorderLayout.SOUTH);
number_key.one.addActionListener(this);//对1按钮添加监听事件
number_key.two.addActionListener(this);//对2按钮添加监听事件
number_key.three.addActionListener(this);//对3按钮添加监听事件
number_key.four.addActionListener(this);//对4按钮添加监听事件
number_key.five.addActionListener(this);//对5按钮添加监听事件
number_key.six.addActionListener(this);//对6按钮添加监听事件
number_key.seven.addActionListener(this);//对7按钮添加监听事件
number_key.eight.addActionListener(this);//对8按钮添加监听事件
number_key.nine.addActionListener(this);//对9按钮添加监听事件
number_key.zero.addActionListener(this);//对0按钮添加监听事件
number_key.ce.addActionListener(this);//对置零按钮添加监听事件
number_key.plus.addActionListener(this);//对+按钮添加监听事件
number_key.equal.addActionListener(this);//对=按钮添加监听事件
number_key.sub.addActionListener(this);//对-按钮添加监听事件
number_key.mul.addActionListener(this);//对*按钮添加监听事件
number_key.div.addActionListener(this);//对/按钮添加监听事件
number_key.point.addActionListener(this);//对.按钮添加监听事件
setContentPane(pane);
pack();//初始化窗体大小为正好盛放所有按钮
}
//各个按钮触发的事件
publicvoidactionPerformed(ActionEvente){
/*
*如果是点击数字按钮那么先要判断是否在此之前点击了+、-、*、/、=,如果是那么com=true如果没有com=
*false;或者是否点击数字键,如果是i=1,如果没有i=0;
*/
if(e.getSource()==number_key.one){
if(com||i==0){
result.text.setText("1");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"1");
}
}elseif(e.getSource()==number_key.two){
if(com||i==0){
result.text.setText("2");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"2");
}
}elseif(e.getSource()==number_key.three){
if(com||i==0){
result.text.setText("3");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"3");
}
}elseif(e.getSource()==number_key.four){
if(com||i==0){
result.text.setText("4");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"4");
}
}elseif(e.getSource()==number_key.five){
if(com||i==0){
result.text.setText("5");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"5");
}
}elseif(e.getSource()==number_key.six){
if(com||i==0){
result.text.setText("6");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"6");
}
}elseif(e.getSource()==number_key.seven){
if(com||i==0){
result.text.setText("7");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"7");
}
}elseif(e.getSource()==number_key.eight){
if(com||i==0){
result.text.setText("8");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"8");
}
}elseif(e.getSource()==number_key.nine){
if(com||i==0){
result.text.setText("9");
com=false;
i=1;
}else{
text=result.text.getText();
result.text.setText(text+"9");
}
}
/*
*对于0这个按钮有一定的说法,在我的程序里不会出现如00000这样的情况,我加了判断条件就是
*如果text中的数值=0就要判断在这个数值中是否有.存在?如果有那么就在原来数值基础之上添加0;否则保持原来的数值不变
*/
elseif(e.getSource()==number_key.zero){//result.text.getText()是得到text里内容的意思
if(com||i==0){
result.text.setText("0");
com=false;
i=1;
}else{
text=result.text.getText();
if(Float.parseFloat(text)>0||Float.parseFloat(text)<0){//Float.parseFloat(text)就是类型转换了,下面都是一样
result.text.setText(text+"0");
}else{
if(text.trim().indexOf(".")==-1){
result.text.setText(text);
}else{
result.text.setText(text+"0");
}
}
}
}elseif(e.getSource()==number_key.ce){
result.text.setText("0");
i=0;
com=true;
//text="";
defbutton=0;
}
/*
*本程序不会让一个数值中出现2个以上的小数点.具体做法是:判断是否已经存在.存在就不添加,不存在就添加.
*/
elseif(e.getSource()==number_key.point){
if(com||i==0){
result.text.setText("0.");
com=false;
i=1;
}else{
text=result.text.getText();
if(text.trim().indexOf(".")==-1){
result.text.setText(text+".");
}else{
result.text.setText(text);
}
}
}//获得点击+之前的数值
elseif(e.getSource()==number_key.plus){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=1;
}//获得点击-之前的数值
elseif(e.getSource()==number_key.sub){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=2;
}//获得点击*之前的数值
elseif(e.getSource()==number_key.mul){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol=3;
}//获得点击/之前的数值
elseif(e.getSource()==number_key.div){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=4;
}elseif(e.getSource()==number_key.equal){
switch(symbol){
case1:{//计算加法
doublead=defbutton
+Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
case2:{//计算减法
doublead=defbutton
-Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i=0;
text="";
break;
}
case3:{//计算乘法
doublead=defbutton
*Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
case4:{//计算除法
doublead=defbutton
/Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
}
System.out.println(com);
}
System.out.println(result.text.getText());
}
@SuppressWarnings("deprecation")
publicstaticvoidmain(String[]args){
Jisuanqiloveyou=newJisuanqi();
loveyou.show();
}
}
//计算器数字按钮定义面板
classNumber_KeyextendsJPanel{
/**
*
*/
=1L;
JButtonzero=newJButton("0");//数字键0
JButtonone=newJButton("1");//数字键1
JButtontwo=newJButton("2");//数字键2
JButtonthree=newJButton("3");//数字键3
JButtonfour=newJButton("4");//数字键4
JButtonfive=newJButton("5");//数字键5
JButtonsix=newJButton("6");//数字键6
JButtonseven=newJButton("7");//数字键7
JButtoneight=newJButton("8");//数字键8
JButtonnine=newJButton("9");//数字键9
JButtonplus=newJButton("+");
JButtonsub=newJButton("-");
JButtonmul=newJButton("*");
JButtondiv=newJButton("/");
JButtonequal=newJButton("=");
JButtonce=newJButton("清零");//置零键
JButtonpoint=newJButton(".");
Number_Key(){
setLayout(newGridLayout(4,4,1,1));//定义布局管理器为网格布局
setBackground(Color.blue);//设置背景颜色
//添加按钮
add(one);
add(two);
add(three);
add(four);
add(five);
add(six);
add(seven);
add(eight);
add(nine);
add(zero);
add(plus);
add(sub);
add(mul);
add(div);
add(point);
add(equal);
add(ce);
}
}
//计算器显示结果的窗体
classResultextendsJPanel{
/**
*
*/
=1L;
//text先是输入和结果
JTextFieldtext=newJTextField("0");
@SuppressWarnings("deprecation")
Result(){//讲输入的数字或得到的结果在text的右边显示
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);//文本框不能编辑
setLayout(newBorderLayout());//设定布局管理器边框布局
add(text,BorderLayout.CENTER);//text放置在窗体的中间
}
}
直接复制保存成Jisuanqi.java可以直接运行了
⑤ 怎样编程简单的计算器程序
这种运算比较麻烦,不过4种运算符号优先级相同应该简单写,我这里有个算法,能进行简单的四则运算,delphi的,供参考
Function Math_Evaluate(S0:string):Extended;
Function Evaluate(S0:String):Extended;Forward;
Procere CleanUp(var s0:string);
Var巧兄
I:integer;
Begin
S0:=LowerCase(s0);
I:=Pos(' ',s0);
While I>0 Do
Begin
Delete(S0,I,1);
I:=Pos(' ',S0);
End;
End;
Function GetFirstOpp(Tot:Integer;S0:String):Integer;
Const弊薯
Sopps:String=('+-*/^');
Var
I:Integer;
Begin
If Tot=0 Then Tot:=Length(S0);
For I:=1 To 5 Do
Begin
Result:=Pos(Sopps[i],S0);
If ((I<3) And (Result>0)) Then
If ((Result=1) Or (Pos(S0[Result-1],Sopps)>0)) Then
Result:=0;
If Result>0 Then
If Result<Tot Then
Exit;
End;
If Result>Tot Then
Result:=0;
End;
Function SpecialF(P1:Integer;S0:String):Extended;
Var
Operstr:String;
Arg:Extended;
Begin
Result:=0;
Operstr:=Copy(S0,1,P1-1);
If S0[Length(S0)]<>')' Then
Exit;
Operstr:=LowerCase(Operstr);孝卜袭
Arg:=Evaluate(Copy(S0,P1+1,Length(S0)-P1-1));
if Operstr ='sin' Then
Result:=Sin(Arg)
Else if Operstr ='cos' Then
Result:=Cos(Arg)
Else if Operstr ='tan' Then
Result:=Sin(Arg)/Cos(Arg)
Else if Operstr ='arctan' Then
Result:=Arctan(Arg)
Else if Operstr ='log' Then
Result:=Ln(Arg)/Ln(10)
Else if Operstr ='ln' Then
Result:=Ln(Arg)
Else if Operstr ='exp' Then
Result:=Exp(Arg)
Else if Operstr ='sqrt' Then
Result:=Sqrt(Arg)
{enter additional functions here}
Else Exit;
End;
Function GetValue(S0:String):Extended;
Begin
Result:=0;
If Length(S0)<1 Then Exit;
If Length(S0)=1 Then
Result:=StrToFloat(S0)
Else
Case s0[1] Of
'x':Result:=1;
'y':Result:=1;
'z':Result:=1;
Else Result:=StrToFloat(S0);
End;
End;
Procere MatchBracket(Var I:Integer;S0:String);
Var
J,Len:Integer;
Begin
J:=1;
Len:=Length(S0);
Repeat Inc(I);
If I>Len Then Exit;
If S0[I]='(' Then Inc(J);
If S0[I]=')' Then Dec(J);
If J<0 Then Exit;
Until J=0;
End;
Function Calculate(P1:Integer;S0:String):Extended;
Var
V1,V2:Extended;
Begin
Result:=0;
V1:=Evaluate(Copy(S0,1,P1-1));
V2:=Evaluate(Copy(S0,P1+1,Length(s0)-P1));
Case S0[P1] Of
'+': Result:=V1+V2;
'-': Result:=V1-V2;
'/': Result:=V1/V2;
'*': Result:=V1*V2;
'^': Result:=Exp(V2*Ln(V1));
Else Exit;
End;
End;
Function Evaluate(S0:string):Extended;
Var
P1,P2,Q1:Integer;
Begin
P1:=Pos('(',S0);
P2:=P1;
If P2>0 Then
MatchBracket(P2,S0);
If P1=1 Then
Begin
If P2=Length(S0) Then
Begin
Delete(S0,P2,1);
Delete(S0,1,1);
Result:=Evaluate(S0);
End Else
Result:=Calculate(P2+1,S0);
Exit;
End;
Q1:=GetFirstOpp(P1,S0);
If (P1+Q1=0) Then
Begin
Result:=GetValue(S0);
Exit;
End;
If Q1<>0 Then
Result:=Calculate(Q1,S0)
Else If Length(S0)>P2 Then
Result:=Calculate(P2+1,S0)
Else
Result:=SpecialF(P1,S0);
End;
Begin
Try
CleanUp(S0);
Result:=Evaluate(S0);
Except
Result:=0;
End;
End;
⑥ c语言编写 编写一个简单的计算器,实现两个整型数的四则运算。
1、打开CodeBlocks,新建一个空白文件,先定义头文件和主函数,接着写程序多大的主体:
⑦ c语言如何实现一个简单的计算器
代码如下:
#include<stdio.h>
void main()
{
int n,a,b,c;
scanf("%d",&n);
a=n; c=a%10; a/=10; b=a%10; a/=10; a%=10;
printf("%d的个位为%d,十位为%d,百位为%d。 ",n,c,b,a);
}
⑧ 用C++编写一个计算器程序。用户输入两个运算数和四则运算符,输出计算结果。
用C++编写的”输入两个运算数和四则运算符,输出计算结果”计算器程序代码具体如下:
#include<stdio.h>
void main()
{
int a,b,d;
char c;
printf("请输入一种运算符: ");
scanf("%c",&c);
printf("请输入两兄液个数: ");
scanf("%d",&a);
scanf("%d",&b);
switch(c)
{
case '+':
d=a+b;break;
case '-':
d=a-b;break;
case '*':
d=a*b;break;
case '/':
d=a/b;break;
default: break;
}
printf("%d",d);
}
(8)编程一个计算器扩展阅读:
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
在C++中,顷差类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持雀尘皮数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。
每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
⑨ C语言 要求编写一个简单计算器的程序
方法一:
#include <吵春stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
struct complex multiply(struct complex x, struct complex y);
struct complex{
int real;
int imag;
};
int main()
{
struct complex a,b,s;
scanf("%d%d%d%d",&a.real,&a.imag,&b.real,&b.imag);
s=multiply(a,b);
printf("(%d+%di)*(%d+%di)=%d+%di ",a.real,a.imag,b.real,b.imag,s.real,s.imag);升模耐
return 0;
}
struct complex multiply(struct complex x, struct complex y)
{
struct complex m;
m.real=x.real*y.real-x.imag*y.imag;
m.imag=x.imag*y.real+x.real*y.imag;
return m;
}
方法二:
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
scanf("%d %d %d %d",&a,&b,&c,&d);
e = a * c - b * d;
f = a * d + b * c;
printf("(%d+%di)*(%d+%di)=%d+%di "码伍,a,b,c,d,e,f);
}
⑩ 请教一下如何编程一个简易计算器
方法/步骤
1
打开Microsoft
Visual
Studio
2010,
新建名字为【计算器】的程序。
2
在新程序界面空白窗口上放置合适的控件:包括,
显示过程数字和结果数字的textbox控件;
用于各数字输入和计算方式输入的按钮,包括1,2,3,4,5,6,7,9,0和加减乘除等符号。
3
添加变量temp1(第一个数字)和pos(计算方式)
4
添加类addNum,在点击数字按钮时使用,用于在显示屏上增加用户输入的数字。
添加数字按钮0-9的代码,分别调用类addNum。
添加【=】按钮代码
记录第二个数字;
根据计算方式进行计算,显示计算结果。
添加归零按钮的代码,清空显示屏,将计算结果归零,将计算方式归零。
生成exe文件进行测试
输入第一个数字425
点击【+】,输入第二个数字897
点击【=】,获取计算结果1322
点击【CE】,将数字归零
输入第一个数字852
点击【*】,输入第二个数字84
点击【=】,获取计算结果71568
15
同样可以验证减法和除法。