求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) 允许括号运算的存在。
展开
 我来答
帐号已注销
2010-07-07
知道答主
回答量:4
采纳率:0%
帮助的人:3.1万
展开全部
#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;
}
TableDI
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
偏爱打酱油
2010-07-09
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
分少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式