急求该题的答案,谁会的呀,帮个忙啊,谢谢啦!

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:55:01
一、设计名称:计算器
二、设计目的:灵活使用C语言按照编程规范进行程序编写,掌握巩固有关语句,函数,文件操作等概念和方法。提高调试程序的技能,提高软件编写的能力。
三、设计环境:1.硬件:PC机
2.软件:vc++6.0
四、设计内容:使用c/c++编写一个计算器程序
3.实现功能:
● 数据相加
● 数据相减
● 数据相乘
● 数据相除
● 数据平方
● 数据开方
● 有数据错误提示和处理
● 有命令菜单提示
4.编写的程序要求完整实现功能,用户介面友好,程序运行可靠。
五、程序清单和注释:
这是我的全部积分,虽然现在没分,但谁能帮得了我,日后定把分数再补上。说话算数。

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
char token[61]; /*存放表达式字符串的数组*/
int n=0;
void error(void) /*报告错误函数*/
{
printf("ERROR!\n");
exit(1);
}
void match(char expected) /*检查字符匹配的函数*/
{
if(token[n]==expected)
token[++n]=getchar();
else error();
}
double term(void); /*计算乘除的函数*/
double factor(void); /*处理括号和数字的函数*/
double exp(void) /*计算加减的函数*/
{
double temp=term();
while((token[n]=='+')||(token[n]=='-'))
switch(token[n])
{
case'+':match('+');
temp+=term();
break;
case'-':match('-');
temp-=term();
break;
}
return temp;
}
double term(void)
{
double div;
double temp=factor();
while((token[n]=='*')||(token[n]=='/'))
switch(token[n])
{
case'