求c语言编写四则运算程序 5
程序ok的加分一、题目:四则运算二、目的与要求1.目的:通过编写四则运算程序,培养学生综合利用C语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统...
程序ok的加分
一、题目:四则运算
二、目的与要求
1. 目的:
通过编写四则运算程序,培养学生综合利用C语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。
2. 基本要求:
1)要求用C语言编程,在Visual C++环境下调试完成;
2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
3)要求应用本课所讲授的程序设计语言知识来解决问题.
三、设计方法和基本原理
1. 课题功能描述
本程序的功能,就是实现数的加减乘除四则运算,如自动计算3+5*8的结果。
2. 问题详细描述
程序运行时,首先提示用户输入四则运算表达式(表达式中最多有3个运算符,数据范围为1-100的整数);
输入结束后,程序自动进行计算并给出结果。
如:输入13-10+5/8时输出3.625。
3. 问题的解决方案
注意:问题的解决方案有很多,下面给出的仅供同学们参考。
该问题主要注意四则运算的优先级问题:乘除运算比加减运算优先级高,同级运算按从左到右的顺序运算。
本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):
l 字符串解析函数(将输入字符串分解成数和运算符)
l 将数据(字符数组中)转换成十进制数(long)
l 判读是否存在高优先级运算符,若存在首先计算其运算结果并保存。
l 同级运算按先后顺序进行。
四、创新要求
实现程序功能后,可进行创新设计:
1) 使用多文件,即主函数和各个函数分别存放在不同的.c文件中,在头文件中进行函数原型声明;
2) 在程序中增加自动出题功能及自动批卷功能
3) 不限定运算符个数
4) 允许括号运算的存在。 展开
一、题目:四则运算
二、目的与要求
1. 目的:
通过编写四则运算程序,培养学生综合利用C语言进行程序设计的能力,熟悉字符串的操作方法,加强函数的运用,提高软件系统分析能力和程序文档建立、归纳总结的能力。
2. 基本要求:
1)要求用C语言编程,在Visual C++环境下调试完成;
2)要求按照程序功能分成几个功能模块来实现,各个功能模块分别使用函数来完成;
3)要求应用本课所讲授的程序设计语言知识来解决问题.
三、设计方法和基本原理
1. 课题功能描述
本程序的功能,就是实现数的加减乘除四则运算,如自动计算3+5*8的结果。
2. 问题详细描述
程序运行时,首先提示用户输入四则运算表达式(表达式中最多有3个运算符,数据范围为1-100的整数);
输入结束后,程序自动进行计算并给出结果。
如:输入13-10+5/8时输出3.625。
3. 问题的解决方案
注意:问题的解决方案有很多,下面给出的仅供同学们参考。
该问题主要注意四则运算的优先级问题:乘除运算比加减运算优先级高,同级运算按从左到右的顺序运算。
本程序应采用模块化设计方法,设计几个功能模块。例如(仅供参考):
l 字符串解析函数(将输入字符串分解成数和运算符)
l 将数据(字符数组中)转换成十进制数(long)
l 判读是否存在高优先级运算符,若存在首先计算其运算结果并保存。
l 同级运算按先后顺序进行。
四、创新要求
实现程序功能后,可进行创新设计:
1) 使用多文件,即主函数和各个函数分别存放在不同的.c文件中,在头文件中进行函数原型声明;
2) 在程序中增加自动出题功能及自动批卷功能
3) 不限定运算符个数
4) 允许括号运算的存在。 展开
2个回答
展开全部
#include"stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char token;/*global token variable*/
/*function prototypes for recursive calls*/
float exp(void);
float term(void);
float factor(void);
void error(void)
{
fprintf(stderr,"Error\n");
exit(1);
}
void match(char expectedToken)
{
if(token==expectedToken)token=getchar();
else error();
}
calculate()
{
float result;
token = getchar();/*load token with first character for lookahead*/
result = exp();
if(token=='\n')/*check for end of line */
printf("Result = %.2f\n",result);
else error();/*extraneous cahrs on line*/
}
main()
{
do
{
calculate();
}while(1);
}
float exp(void)
{
float temp = term();
while((token=='+')||(token=='-'))
switch(token)
{
case '+':
match('+');
temp+=term();
break;
case '-':
match('-');
temp-=term();
break;
}
return temp;
}
float term(void)
{
float temp = factor();
while ((token=='*')||(token=='/'))
switch(token)
{
case '*':
match('*');
temp*=factor();
break;
case '/':
match('/');
temp/=factor();
break;
}
return temp;
}
float factor(void)
{
float temp;
if(token=='('){
match('(');
temp = exp();
match(')');
}
else if(isdigit(token)){
ungetc(token,stdin);
scanf("%f",&temp);
token = getchar();
}
else error();
return temp;
}
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char token;/*global token variable*/
/*function prototypes for recursive calls*/
float exp(void);
float term(void);
float factor(void);
void error(void)
{
fprintf(stderr,"Error\n");
exit(1);
}
void match(char expectedToken)
{
if(token==expectedToken)token=getchar();
else error();
}
calculate()
{
float result;
token = getchar();/*load token with first character for lookahead*/
result = exp();
if(token=='\n')/*check for end of line */
printf("Result = %.2f\n",result);
else error();/*extraneous cahrs on line*/
}
main()
{
do
{
calculate();
}while(1);
}
float exp(void)
{
float temp = term();
while((token=='+')||(token=='-'))
switch(token)
{
case '+':
match('+');
temp+=term();
break;
case '-':
match('-');
temp-=term();
break;
}
return temp;
}
float term(void)
{
float temp = factor();
while ((token=='*')||(token=='/'))
switch(token)
{
case '*':
match('*');
temp*=factor();
break;
case '/':
match('/');
temp/=factor();
break;
}
return temp;
}
float factor(void)
{
float temp;
if(token=='('){
match('(');
temp = exp();
match(')');
}
else if(isdigit(token)){
ungetc(token,stdin);
scanf("%f",&temp);
token = getchar();
}
else error();
return temp;
}
TableDI
2024-07-18 广告
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!...
点击进入详情页
本回答由TableDI提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询