请用java编写简易计算器一个简易四则运算计算器,用来计算两个整数的和、差、积、商。

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
[精品]编写一个简单的计算器,要求用户在界面上输入两个数,能够自动计算出它们的和、差、积、商
下载积分:280
内容提示:[精品]编写一个简单的计算器,要求用户在界面上输入两个数,能够自动计算出它们的和、差、积、商
文档格式:DOC|
浏览次数:69|
上传日期: 04:58:51|
文档星级:
全文阅读已结束,如果下载本文需要使用
 280 积分
下载此文档
该用户还上传了这些文档
[精品]编写一个简单的计算器,要求用户在界面上输入两
关注微信公众号一个非常简单的计算器
编辑:www.fx114.net
本篇文章主要介绍了"一个非常简单的计算器",主要涉及到一个非常简单的计算器方面的内容,对于一个非常简单的计算器感兴趣的同学可以参考一下。
一个非常简单的计算器。不过还算是第一个自己写出来的一个还能算点样的小东西吧。 #include&iostream&
#include&string&
#define maxsize 512
struct seqstack
char data[maxsize];
struct seq
double data[maxsize];
void SetNull(seqstack *s)
s-&top=-1;
void Setnull(seq *s)
s-&top=-1;
void Push(seqstack *s,char x)
s-&data[s-&top]=x;
void push(seq *s,double x)
s-&data[s-&top]=x;
char Pop(seqstack *s)
return s-&data[s-&top+1];
double pop(seq *s)
return s-&data[s-&top+1];
char GetTop(seqstack *s)
return s-&data[s-&top];
int Precedence(char sign)
switch(sign)
void Change(char* s1,char* s2)
/*将s1所指的中缀表达式转换为s2所指的后缀表达式*/
seqstack T;
/*运算符栈*/
int i=0,j=0;
/*用于记录扫描s1和s2中相应字符的位置*/
/*保存当前扫描到的字符*/
SetNull(&T);
/*将运算符栈置空(初始化)*/
Push(&T,'@');
/*将栈底存放&@&字符,并且这个字符具有最低的优先级 0*/
/*将ch存入s1中的第一个字符*/
while(ch!='/0')
/*开始进入转换*/
if(ch==' ')
/*如果遇到ch为空格,则不进行任何处理,直接跳过*/
ch=s1[++i];
/*继续扫描下一个字符*/
else if(ch=='(')
/*如遇到左括号,直接进运算符栈*/
Push(&T,ch);
ch=s1[++i];
else if(ch==')')
/*如遇到右括号,将运算符栈中&(&上面的运算符依次出栈并以此写入到s2串当中去*/
while(GetTop(&T)!='(')
s2[j++]=Pop(&T);
/*将运算符栈中的左括号出栈*/
ch=s1[++i];
else if(ch=='+' || ch=='-' ||ch=='*' ||ch=='/' ||ch=='^'||ch=='%')
/*如遇到四则运算符、乘方符号、百分号,则使存在运算符栈栈顶的不低于ch的优先级的运算符依次出栈并且写入到s2中*/
char w=GetTop(&T);
/*用w获取当前运算符栈栈顶的运算符*/
while(Precedence(w)&=Precedence(ch))
s2[j++]=w;
/*若w的优先级大于等于ch的优先级,则将w直接写入s2中*/
/*由于w只是获取栈顶元素,而没有取出,所以需要将w所对应的栈顶元素出栈*/
w=GetTop(&T);
/*让w继续获得栈顶元素,继续下一轮比较*/
Push(&T,ch);
/*将ch写入到运算符栈中*/
ch=s1[++i];
while((ch&='0' && ch&='9')||ch=='.')
/*如果ch为数字或者小数点,则将数值中的每一位依次写入到s2串中*/
ch=s1[++i];
s2[j++]=' ';
/*在放入s2串中的每个数值后面接着放入一个空格字符*/
ch=Pop(&T);
/*把运算符栈中剩下的字符依次出栈并写入到s2串中去*/
while(ch!='@')
ch=Pop(&T);
s2[j++]='/0';
/*在后缀表达式的最后写入&/0&结束符*/
double Cal(char* str)
/*计算str所指的后缀表达式的值*/
/*定义保存操作数和中间计算结果的栈,元素类型为double类型*/
double x,y;
Setnull(&S);
/*将栈清空(初始化)*/
while(str[i]!='/0')
/*进行对后缀表达式的处理*/
if(str[i]==' ')
/*如果遇到空格字符,则直接continue跳过*/
else if(str[i]=='+')
/*如遇到加号,则做栈顶两元素的加法,结果存到x当中*/
x=pop(&S)+pop(&S);
else if(str[i]=='-')
/*如遇到减号,则做栈顶两元素的减法,结果存到x当中*/
x=pop(&S);
/*弹出减数*/
x=pop(&S)-x;
/*弹出被减数并作减法*/
else if(str[i]=='*')
/*如遇到乘号,则做栈顶两元素的乘法*/
x=pop(&S)*pop(&S);
else if(str[i]=='/')
/*如遇到除号,则做栈顶两元素的*/
x=pop(&S);
/*弹出除数*/
x=pop(&S)/x;
/*弹出被除数并作除法*/
else if(str[i]=='^')
/*如遇到乘方符号,则做栈顶元素与自己相乘*/
x=pop(&S);
/*弹出栈顶元素*/
/*做乘方运算*/
else if(str[i]=='%')
/*如遇到百分号,则做栈顶元素除以100的运算*/
x=pop(&S);
if(x!=0.0)
x=pop(&S)/x;
/*若扫描到的是浮点数字符串,则进行如下转换,转换成相应的浮点数*/
/*用x保存扫描到的整数部分的值*/
while(str[i]&=48 && str[i]&=57)
x=x*10+str[i]-48;
if(str[i]=='.')
/*利用y保存扫描到的小数部分的值*/
double j=10.0;
/*用j作为相应小数位的权值*/
while(str[i]&=48 &&str[i]&=57)
y=y+(str[i]-48)/j;
/*把小数部分合并到整数部分x中去*/
push(&S,x);
/*将转换完成或进行相应运算后得到的浮点数进栈*/
x=pop(&S);
/*将最后的运算结果出栈*/
/*返回运算结果的数值*/
void CMyDlg::OnOK()
/*计算按钮相应函数*/
UpdateData(true);
/*将用户输入在控件上的中缀表达式存入到字符串当中去*/
seqstack *p;
/*定义顺序栈,接收用户输入的表达式*/
char a[1000];
/*定义字符串,用于存储转换后的后缀表达式*/
strcpy(p-&data,m_output);
Change(p-&data,a);
str.Format("%f",e);
/*将算得的浮点数转换成浮点数字符串*/
UpdateData(false);
/*将结果显示到控件上将显示在控件上的字符串清空*/
m_output="";
/*将显示在控件上的字符串清空*/
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:C#用RadioButton编写一个简单计算器,实现整数四则运算。
C#用RadioButton编写一个简单计算器,实现整数四则运算。
界面如下图
using System.Collections.G
using ponentM
using System.D
using System.D
using System.L
using System.T
using System.Windows.F
namespace RadioButton__jsj
public partial class
Form1 : Form
public Form1()
&&&&&&&&&&&
InitializeComponent();
private void btn_Click(object sender, EventArgs e)
&&&&&&&&&&&
double a,b,c = 0;
&&&&&&&&&&&
a=int.Parse(txtNumber1.Text);
& &&&&&&&&&&b=int.Parse(txtNumber2.Text);
&&&&&&&&&&&
if (radplus.Checked)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
else if (radMultiply.Checked)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
else if (radMinus.Checked)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
else if (radDivision.Checked)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
if (b == 0)
&&&&&&&&&&&&&&&&&&&
MessageBox.Show("除数不能为零", "提示");
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
textBox3.Text = c.ToString("f2");
&&&&&&&&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。本人学c++ 4 个月,想编一个简单的计算器,整数,+-*/
但是有问题啊,希望大家帮帮忙阿!!
#define chang 100
#include<iostream>
int checkdate(cha
本人学c++ 4 个月,想编一个简单的计算器,整数,+-*/
但是有问题啊,希望大家帮帮忙阿!!
#define chang 100
#include<iostream>
int checkdate(char &c)
{
switch (c)
case '1':return 1;
case '2':return 2;
case '3':return 3;
case '4':return 4;
case '5':return 5;
case '6':return 6;
case '7':return 7;
case '8':return 8;
case '9':return 9;
case '0':return 0;
case '+':;
case '-':;
case '*':;
case '/':return 10;
case '(':return 11;
case ')':return 12;
//类用于处理不带括号的四则运算
class neihe
{
public:
double shuzi[chang];
char fuhao[chang];
double qiuzhi(void);
neihe(void);
};
//初始化类的成员变量
neihe::neihe(void)
{
for(i=1;i<i+=2)
shuzi[i]=1;
for(i=2;i<i+=2)
fuhao[i]='*';
}
//计算不带括号的表达式的值
double neihe::qiuzhi(void)
{
double sum=0;
for(n=2;n<n+=2)
if(fuhao[n]=='*')
shuzi[n+1]=shuzi[n+1]*shuzi[n-1];
shuzi[n-1]=0;
fuhao[n]='+';
if(fuhao[n]=='/')
shuzi[n+1]=shuzi[n-1]/shuzi[n+1];
shuzi[n-1]=0;
fuhao[n]='+';
for(n=2;n<n+=2)
if(fuhao[n]=='-')
shuzi[n+1]=0-shuzi[n+1];
fuhao[n]='+';
for(n=1;n<n+=2)
sum=sum+shuzi[n];
for(n=1;n<n+=2)
shuzi[n]=1;
for(n=2;n<n+=2)
fuhao[n]='*';
//本函数处理带括号的表达式
void start(void)
{
double shuzi[chang];
char fuhao[chang];
neihe temp[chang/10];
for(i=0;i<i++)
shuzi[i]=0;
fuhao[i]=char(0);
cout<<"请输入一个表达式(整数、+、-、*、/、(、)"<<
cout<<"以“=”结束"<<
char zifu[chang];
for(i=1;i<i++)
cin>>zifu[i];
if(zifu[i]=='=')
int c[chang];
for(i=1;i<i++)
c[i]=checkdate(zifu[i]);
int t[chang];
for(i=1;i<i++)
if(c[i]=0)
for(;1;i++)
if(c[i]=0)
shuzi[m]=c[i]+shuzi[m]*10;
if(c[i]==10) {t[m]=2;fuhao[m]=zifu[i];m++;}
if(c[i]==11) {t[m]=3;m++;}
if(c[i]==12) {t[m]=4;m++;}
for (i=1;i<i++)
if(t[i]==1)
{temp[q].shuzi[k]=shuzi[i];k++;}
if(t[i]==2)
{temp[q].fuhao[k]=fuhao[i];k++;}
if(t[i]==3)
{m++;n++;q=m;}
if(t[i]==4)
{temp[q-1].shuzi[k-1]=temp[q].qiuzhi();q--;}
//temp[0].qiuzhi();
cout<<"计算结果是:"<<temp[0].qiuzhi()<<
int main(void)
{
cout<<"输入 1 继续计算,其他值退出程序:"<<
while(a==1)
cout<<"输入 1 继续计算,其他值退出程序:"<<
return 0;
}
你的程序我是没去改.
不这我这里有个现成的.可以进行包括括号在内有理数这间的简单四则运算.这是我以前做的,不嫌弃的话,就做为参考吧.
这是栈的一个经典的应用.
1.简单的运算表达式就可以。2.?(不怎么清楚)3.对运算符进行重载。classcomplex{floatreal, (floatr=0.0,flo...
最简单的,仅仅使用了IF但当然,功能上也很差,每次计算后要单击“清除”才能进行下一步计算。
(复制过来时有些乱码,一般都是注释跟按钮上的文本,你试着更改一下。)...
首先确定你有没有为界面上的数字按钮绑定监听器 起码你点按钮要有反应 还有就是检查你的实现逻辑 对了没
NTFS和FAT32双用的。。。
答: 唐筛的结果只有50%的准确性,所以高危和低危都不一定保证没事,所以不要过分的相信这个,开开心心的度过孕期,和宝宝愉悦的胎教交流是最重要的。
答: 如果你理解能力强考数据库,其中比如关系数据库之类的需要去领悟
如果你记忆能力强考网络,各种各样的名词,背下来就得分。
还有官方指定的教材要有,上机最好做一做南开...
答: 新年好!首先,你必须了解计算机的组成和结构以及操作系统的运作原理,这是基础
如果你想学习开发多线程、WINDOWS应用、动态链接库、WINDOWS组件的话,建议...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click
to find out more about this error.}

我要回帖

更多关于 用java编写简易计算器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信