急求该题的答案,谁会的呀,帮个忙啊,谢谢啦! 75
一、设计名称:计算器二、设计目的:灵活使用C语言按照编程规范进行程序编写,掌握巩固有关语句,函数,文件操作等概念和方法。提高调试程序的技能,提高软件编写的能力。三、设计环...
一、设计名称:计算器
二、设计目的:灵活使用C语言按照编程规范进行程序编写,掌握巩固有关语句,函数,文件操作等概念和方法。提高调试程序的技能,提高软件编写的能力。
三、设计环境:1.硬件:PC机
2.软件:vc++6.0
四、设计内容:使用c/c++编写一个计算器程序
3.实现功能:
● 数据相加
● 数据相减
● 数据相乘
● 数据相除
● 数据平方
● 数据开方
● 有数据错误提示和处理
● 有命令菜单提示
4.编写的程序要求完整实现功能,用户介面友好,程序运行可靠。
五、程序清单和注释:
这是我的全部积分,虽然现在没分,但谁能帮得了我,日后定把分数再补上。说话算数。 展开
二、设计目的:灵活使用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'*':match('*');
temp*=factor();
break;
case'/':match('/');
div=factor();
if(div==0) /*处理除数为零的情况*/
{
printf("The divisor is zero!\n");
exit(1);
}
temp/=div;
break;
}
return temp;
}
double factor(void)
{
double temp;
char number[61];
int i=0;
if(token[n]=='(')
{
match('(');
temp=exp();
match(')');
}
else if(isdigit(token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*将字符串转换为浮点数*/
{
number[i++]=token[n++];
token[n]=getchar();
}
number[i]='\0';
temp=atof(number);
}
else error();
return temp;
}
main()
{
double result;
FILE *data=fopen("61590_4.dat","at");
if(data==NULL)
data=fopen("61590_4.dat","wt");
if(data==NULL)
return 0;
token[n]=getchar();
result=exp();
if(token[n]=='\n')
{
token[n]='\0';
printf("%s=%g\n",token,result);
fprintf(data,"%s=%g\n",token,result);
}
else error();
fclose(data);
return 0;
getch();
}
#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'*':match('*');
temp*=factor();
break;
case'/':match('/');
div=factor();
if(div==0) /*处理除数为零的情况*/
{
printf("The divisor is zero!\n");
exit(1);
}
temp/=div;
break;
}
return temp;
}
double factor(void)
{
double temp;
char number[61];
int i=0;
if(token[n]=='(')
{
match('(');
temp=exp();
match(')');
}
else if(isdigit(token[n])||token[n]=='.')
{
while(isdigit(token[n])||token[n]=='.') /*将字符串转换为浮点数*/
{
number[i++]=token[n++];
token[n]=getchar();
}
number[i]='\0';
temp=atof(number);
}
else error();
return temp;
}
main()
{
double result;
FILE *data=fopen("61590_4.dat","at");
if(data==NULL)
data=fopen("61590_4.dat","wt");
if(data==NULL)
return 0;
token[n]=getchar();
result=exp();
if(token[n]=='\n')
{
token[n]='\0';
printf("%s=%g\n",token,result);
fprintf(data,"%s=%g\n",token,result);
}
else error();
fclose(data);
return 0;
getch();
}
展开全部
去新华书店,自己找找,有的是源代码,自己带个笔记本抄下来,估计VC++ 界面可以自己拖进去,也就不过几百多行代码吧,如果是课程设计,应该可以了!
参考资料: 个人能力
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我汗,这写出来加调试至少也要1个小时吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
20分还想要界面,要是只要源程序我还准备帮帮,这不是算了~~最不喜欢做界面了,唉,帮不了你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询