谁帮我编个C语言计算器的程序
要求是这样的程序首先显示计算器界面。123+-456*/789=#用户从键盘输入以上字符,忽略除此之外的其他字符输入。"#”屏幕显示0,重新开始计算。假如用户的一串输入将...
要求是这样的
程序首先显示计算器界面。
1 2 3 + -
4 5 6 * /
7 8 9 = #
用户从键盘输入以上字符,忽略除此之外的其他字符输入。"#”屏幕显示0,重新开始计算。
假如用户的一串输入将为22+1*2-3 。初始屏幕显示0,用户输入2,屏幕显示2,用户输入2,屏幕显示22,用户再输入+,屏幕显示22,用户输入1,屏幕显示1,当用户输入*,屏幕显示23,用户输入2,屏幕显示2,用户输入-,屏幕显示46 ,用户输入3,屏幕显示3,用户输入=,屏幕显示43。每次计算结束,计算表达式和结果记入文件。
(2)查看历史
显示历史表达式的值。 展开
程序首先显示计算器界面。
1 2 3 + -
4 5 6 * /
7 8 9 = #
用户从键盘输入以上字符,忽略除此之外的其他字符输入。"#”屏幕显示0,重新开始计算。
假如用户的一串输入将为22+1*2-3 。初始屏幕显示0,用户输入2,屏幕显示2,用户输入2,屏幕显示22,用户再输入+,屏幕显示22,用户输入1,屏幕显示1,当用户输入*,屏幕显示23,用户输入2,屏幕显示2,用户输入-,屏幕显示46 ,用户输入3,屏幕显示3,用户输入=,屏幕显示43。每次计算结束,计算表达式和结果记入文件。
(2)查看历史
显示历史表达式的值。 展开
5个回答
展开全部
#include <stdio.h>
#include<conio.h>
int main()
{
int i,num1,num2,sum,count;
char ch,op;
printf("1 2 3 + - \n");
printf("4 5 6 * / \n");
printf("7 8 9 = # \n\n");
{
printf("0");
ch=getch();
while(ch<'0' || ch>'9')//输入的不是数字,重新输入
ch=getch();
printf("\b%c",ch);
count=1;
num1=ch-'0';
while(ch=getch(),ch>='0' && ch<='9')
{
putchar(ch);
num1=num1*10+ch-'0';
count++;
}
while(1)
{
op=ch;//符号
ch=getch();
while(ch<'0' || ch>'9')//输入的不是数字,重新输入
ch=getch();
for(i=0;i<count;i++)//回到行首
putchar('\b');
for(i=0;i<count;i++)//用空格覆盖
putchar(' ');
for(i=0;i<count;i++)//回到行首
putchar('\b');
putchar(ch);
count=1;
num2=ch-'0';
while(ch=getch(),ch>='0' && ch<='9')
{
putchar(ch);
num2=num2*10+ch-'0';
count++;
}
switch(op)
{
case '+':
sum=num1+num2;
break;
case '-':
sum=num1-num2;
break;
case '*':
sum=num1*num2;
break;
case '/':
sum=num1/num2;
break;
default :
break;
}
for(i=0;i<count;i++)//回到行首
putchar('\b');
for(i=0;i<count;i++)//用空格覆盖
putchar(' ');
for(i=0;i<count;i++)//回到行首
putchar('\b');
printf("%d",sum);
num1=sum;
count=1;
while(sum/=10)
count++;
if(ch=='#')
break;
}
}
}
还有很多问题,没有屏蔽其他符号,等号问题也没弄,结果没有保存,太烦了,不过运算是没问题了,基本功能还是实现了
#include<conio.h>
int main()
{
int i,num1,num2,sum,count;
char ch,op;
printf("1 2 3 + - \n");
printf("4 5 6 * / \n");
printf("7 8 9 = # \n\n");
{
printf("0");
ch=getch();
while(ch<'0' || ch>'9')//输入的不是数字,重新输入
ch=getch();
printf("\b%c",ch);
count=1;
num1=ch-'0';
while(ch=getch(),ch>='0' && ch<='9')
{
putchar(ch);
num1=num1*10+ch-'0';
count++;
}
while(1)
{
op=ch;//符号
ch=getch();
while(ch<'0' || ch>'9')//输入的不是数字,重新输入
ch=getch();
for(i=0;i<count;i++)//回到行首
putchar('\b');
for(i=0;i<count;i++)//用空格覆盖
putchar(' ');
for(i=0;i<count;i++)//回到行首
putchar('\b');
putchar(ch);
count=1;
num2=ch-'0';
while(ch=getch(),ch>='0' && ch<='9')
{
putchar(ch);
num2=num2*10+ch-'0';
count++;
}
switch(op)
{
case '+':
sum=num1+num2;
break;
case '-':
sum=num1-num2;
break;
case '*':
sum=num1*num2;
break;
case '/':
sum=num1/num2;
break;
default :
break;
}
for(i=0;i<count;i++)//回到行首
putchar('\b');
for(i=0;i<count;i++)//用空格覆盖
putchar(' ');
for(i=0;i<count;i++)//回到行首
putchar('\b');
printf("%d",sum);
num1=sum;
count=1;
while(sum/=10)
count++;
if(ch=='#')
break;
}
}
}
还有很多问题,没有屏蔽其他符号,等号问题也没弄,结果没有保存,太烦了,不过运算是没问题了,基本功能还是实现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我已经发到你的邮箱了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只写起个界面
#include <iostream>
using namespace std;
void main()
{
for(int i=1;i<10;i++)
{
cout<<i<<" ";
if(i==3)
cout<<"+ "<<"-\n";
else if(i==6)
cout<<"* "<<"/\n";
else if(i==9)
cout<<"= "<<"#\n";
}
}
#include <iostream>
using namespace std;
void main()
{
for(int i=1;i<10;i++)
{
cout<<i<<" ";
if(i==3)
cout<<"+ "<<"-\n";
else if(i==6)
cout<<"* "<<"/\n";
else if(i==9)
cout<<"= "<<"#\n";
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CSDN上一大堆,去下载被
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
太难 不会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询