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

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

时间:2022-04-30 06:19:56

相关推荐

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

.

.下载可编辑.

程序实习报告书

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

学 号: 班 级: 姓 名: 指导教师:

通信与电子工程学院

7月4日

目 录

TOC \o "1-5" \h \z \o "Current Document" 需求分析 2

\o "Current Document" 1.1程序的功能2

\o "Current Document" 1.2输入输出的要求2

\o "Current Document" 1.3测试数据2

\o "Current Document" 概要设计3

\o "Current Document" 详细设计4

3.1模块功能说明4

\o "Current Document" 调试分析 6

\o "Current Document" 核心源程序清单和执行结果6

1.需求分析

1.1程序的功能

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

1.2输入输出的要求

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

包含的运算符只能有'+' 、'-'、'*'、7'

'('、')';

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

1.3测试数据

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

Anusep is 15

Press any key to continue

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

Inwsel* is 2anv kw号 to continuef

Inwsel* is 2

anv kw号 to continue

s

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

Anuser Is 112

Press any Jwy to cantinue

2.概要设计

Y

N

c是否为操作符

比较SIGNgettop和c的优先级

将c压入到

SIGN 栈

用 c=getchar()

读字符

弹出 SIGNgettop 和c

用 c=getchar()

读字符c

弹出DATE 栈顶元素a

* -

弹出栈顶元 素吧b

* -

弹出 SIGN

栈顶元素d

运算a d b

*

将a d b压入

DATE 栈

* 一

详细设计

主要部分详细流程:

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

LypWtfF struct"定义一J卜栈存敢运算数时

<

int

int top:

OP HD;

struct 严定义栈存玻运算符吋

<

ch?r a[MAK]; int tnp;

>

OPTR;

(2)判断字符的优先级

char Precedefchar s,char c)"列断字符的优先;級材

<

suiitch(s)

<

case '*■;

ca^e '-■:

iF(c==*+*I|C==*-■)

return 'J';

else if (€== '*■ I |C==V )

return ;

Else if (i:==T (*)

return '< *;

else if(c--*)*)

return 1>';

else

return ■j1;

>

bredk;

case 1 *':

case :

lf(c== +* | |-*)

return 1>';

else if (c=-b*'||c retdfn 1>':

els? If(c-=1(*) return * <1;

elsp 屮"=丁) return '>-:

els?

return b> F;

>

break:

匚dse j _

< if(c=Tl return

els? return

> br&^k;

CJ5P ?八

{ return )";

>

brtdk;

?K

lf(c—"#") return H =*;

else

return '

br^dki

调试分析

错误提示1:

error C2 01?: unknown ctiaracter ' Oxa3

:error C2Q18: unknown character 1Oxbb1

:error: syntax ^rror : missing b;* l

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

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

错误提示2:

earning C4O2Jt: Init OPMD : different typ^s for Fornal and actual parameter 1 er?*or C211&: * Function' : incompatible types

错误原因:

在lnit_OPND,Init

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