C语言 设计一个多功能计算器
实现功能:
1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。
依次输入第一个运算数、运算符(+,-,*,/),第二个运算数,然后输出结果。
结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘X’退出。
例如:输入:2
+
5
输出:7
2)实现单运算符表达式计算的功能。
输入的操作数可以包含整数或浮点数。如果遇到错误的表达式,应输出错误提示信息。
输入表达式如下:
例如:输入:2+5
输出:7
参考答案:试一下这一个程序(最好用TC2.0编译,我是用这个编译软件做的):
# include "stdio.h"
# include "conio.h"
void shi();
void cal();
main()
{char c;
do
{
printf("****************************************\n\n\n\n");
printf(" 1. Calcullator\n");
printf(" 2. Biao da shi\n");
printf("\n\n\n\n****************************************\n");
printf("\n\n\n\n\n\nplease input you choice the number:\n");
c=getchar();
if(c=='1')cal();
if(c=='2')shi();
printf("please choice the number again\n");
}while(c!='1'&&c!='2');
}
void shi()
{float a,b,c;
char ch ;
scanf("%f",&a);
do
{ch=getchar();
}while(ch==' ');
scanf("%f",&b);
switch(ch)
{ case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
default:printf("error\n");
}
printf("%f\n",c);
getch();
}
void cal()
{float a,b,c;
char ch,key;
printf("iuput the frist value: ");
scanf("%f",&a);
printf("input symbol(+,-,*,/): ");
ch=getchar();
while(ch!='+'&&ch!='-'&&ch!='*'&&ch!='/')
{if(ch!=' '&&ch!='\n')printf("please input right symbol (+,-,*,/):\n");
ch=getchar();
}
printf("iuput the second value: ");
scanf("%f",&b);
switch(ch)
{ case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
}
printf("\n\nthe result is : %f\n",c);
getch();
do
{
printf("\n\n\nare you want to continu press c ");
printf("\nare you want to exit press x\n");
for(key=getchar();key!='x'&&key!='c';)
key=getchar();
if(key!='c') break;
clrscr();
a=c;
printf("the last result is : %f\n",a);
printf("\n\n\n\ninput symbol(+,-,*,/): ");
do
{
ch=getchar();
}while(ch==' '||ch=='\n');
while(ch!='+'&&ch!='-'&&ch!='*'&&ch!='/')
{if(ch!=' ')printf("please input right symbol (+,-,*,/):\n");
ch=getchar();
}
printf("iuput the second value: ");
scanf("%f",&b);
switch(ch)
{ case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
}
printf("\n\nthe result is : %f\n",c);
}while(1);
}