200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言计算器小程序 C语言计算器小程序(源代码+实习报告).doc

c语言计算器小程序 C语言计算器小程序(源代码+实习报告).doc

时间:2022-09-20 12:19:12

相关推荐

c语言计算器小程序 C语言计算器小程序(源代码+实习报告).doc

. . . .

PAGE 5

.下载可编辑.

. . . .

.下载可编辑.

程序实习报告书

起止日期: 年 6月 23 日 至 年 7月 4日

学 号:

班 级:

姓 名:

指导教师:

通信与电子工程学院

7月 4日

.下载可编辑.

.下载可编辑.

目 录

1. 需求分析……………………………………………2

1.1 程序的功能…………………………………………2

1.2 输入输出的要求……………………………………2

1.3 测试数据……………………………………………2

2. 概要设计……………………………………………3

3. 详细设计……………………………………………4

3.1 模块功能说明………………………………………4

4. 调试分析……………………………………………6

5. 核心源程序清单和执行结果………………………6

1.需求分析

1.1 程序的功能

本程序是一个计算器小程序,利用算符优先关系,实现对算术四则混合运算表达式的求值并输出结果。

1.2 输入输出的要求

输入的形式:算术表达式,以井号“#”结束。例如2*(3+4)#;

包含的运算符只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';

输出的形式:运算结果,例如Answer is:14;

1.3 测试数据

第一组: 输入 3*(9-4)# 输出 Answer is:15

第二组: 输入140/(57+13)# 输出 Answer is:2

第三组: 输入 56*(12-10)# 输出 Answer is:112

概要设计

向SIGN中压入

向SIGN中压入“#”

用c=getchar()读字符

c!=’#’||SIGNgettop!=’#’

N

c是否为操作符

Y

N

将字符数转换成整形数

将c压入DATE

用c=getchar()读字符c

Y

结束运算

比较SIGNgettop和c的优先级

‘=’

‘>’

将c压入到SIGN栈

用c=getchar()读字符

弹出SIGNgettop和c

用c=getchar()读字符c

弹出DATE栈顶元素a

弹出栈顶元素吧b

弹出SIGN栈顶元素d

运算a d b

将a d b压入DATE栈

初始化DATE、SIGN栈

3.详细设计

主要部分详细流程:

(1)设置两个工作栈,分别存放操作数和运算结果

(2)判断字符的优先级

调试分析

错误提示1:

错误原因 :在中文输入法下输入的“;”,导致程序不能识别。

调试方法 :调到英文输入法下输入即可。

错误提示2:

错误原因: 在Init_OPND,Init_OPTR后边都忘加了“&”符号, 导致程序不识别。

调试方法:在 Init_OPND,Init_OPTR后边加上“&”即可。

核心源程序清单和执行结果

全部源代码如下:

#include

#include

#define MAX 100

typedef struct /*定义一个栈存放运算数*/

{

int a[MAX];

int top;

}OPND;

typedef struct /*定义一个栈存放运算符*/

{

char a[MAX];

int top;

}OPTR;

void Init_OPND(OPND *s) /*初始化运算数栈*/

{

s->top =0;

}

void Init_OPTR(OPTR *s) /*初始化运算符栈*/

{

s->top =0;

}

void Push_OPND(OPND *s,int x) /*压入一个运算数*/

{

s->top ++;

s->a [s->top ]=x;

}

void Push_OPTR(OPTR *s,char x) /*压入一个运算符*/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。