表达式求值Word格式文档下载.docx

上传人:b****5 文档编号:16477972 上传时间:2022-11-24 格式:DOCX 页数:15 大小:100.60KB
下载 相关 举报
表达式求值Word格式文档下载.docx_第1页
第1页 / 共15页
表达式求值Word格式文档下载.docx_第2页
第2页 / 共15页
表达式求值Word格式文档下载.docx_第3页
第3页 / 共15页
表达式求值Word格式文档下载.docx_第4页
第4页 / 共15页
表达式求值Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

表达式求值Word格式文档下载.docx

《表达式求值Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《表达式求值Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

表达式求值Word格式文档下载.docx

课题二:

马踏遍棋盘问题

详细内容见后

课题三:

表达式求值问题

课题四:

B+树的实现

三、课程设计报告要求

课程设计报告每人一份,必须包含如下几个方面的内容:

1.基本设计思想;

2.主要数据结构;

3.主要实施流程;

4.所有源代码;

5.课程设计总结与体会。

四、分组及选题办法

1、一人一组。

2、若选择课题四,则只需完成一题即可;

否则,必须至少完成前三个课题中的任意两个。

3、成绩考核按个人课题完成情况、设计报告质量及对课程设计的态度等综合评定。

五、设计进度安排

1、讲课及上机调试时间安排:

各班具体时间另行安排

2、其余时间:

查阅资料,确定方案,设计课题相关程序。

3、分组答辩,交课程设计报告。

设计课题三:

一、问题提出

在高级语言程序中出现的数学表达式要进行求值运算,本课程设计要求模拟编译程序的求值过程,利用栈这种数据结构,对包含四则算术运算及多重括号及常量的表达式进行求值运算。

二、设计要求

1.一次性输入一个表达式,包含数值常量、四则算术运算符、括号等。

2.能输出表达式的正确结果。

1.输入输出界面清晰明了。

三、设计提示

1.可用两个栈(操作数栈和运算符栈)来存储运算过程中的原始数据及中间结果。

2.运算过程中要将输入的数字型字符转化为数值。

3.可以利用一个函数返回运算符之间的优先关系;

也可将一个运算符放入一个一维数组,并根据运算符在该数组中的位置建立一个二维数组,存放运算符之间的优先关系。

目录

一.流程图……………………………………………………………vi

二.基本设计思想……………………………………………………vii

三.主要数据结构……………………………………………………vii

四.主要实施流程……………………………………………………vii

五.运行结果举例……………………………………………………vii

六.源代码………………………………………………………………ix

七.课程设计总结与体会………………………………………………xvi

八.评分表………………………………………………………………xvii

一.流程图

二.基本设计思想:

三.主要数据结构:

Shuzizifu两个栈;

四.主要实施流程:

一次性输入一个表达式,包含数值常量、四则算术运算符、括号,中括号大括号等。

通过push(分别把数字和字符入站)gettop(分别取数字和字符两个栈顶元素)top(分别读数字和字符两个栈顶元素)in(判断是否为数字还是字符)compare(比较运算符的优先级)jisuan(四则运算)ExpEvaluation(对表达式进行总体运算)等函数进行计算并得出结果

五.运行结果举例

进入主菜单,选1

输入表达式,并计算结果显示出来(带中括号)

输入表达式,并计算结果显示出来(带大括号)

输入2程序结束

六.源代码:

/*头文件haha.h*/

#include"

stdio.h"

#defineM100

typedefstruct

{intt1[M];

inttop;

}shuzi;

intPush1(shuzi*p,intx)

{if(p->

top==M-1)

return(0);

p->

top++;

t1[p->

top]=x;

return

(1);

}

intgettop1(shuzi*p,int*x)

{if(p->

top==-1)/*将栈S的栈顶元素弹出,放到x所指的存储空间中*/

else

{*x=p->

top];

p->

top--;

/*修改栈顶指针*/

return

(1);

intTop1(shuzi*p,int*x)//将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变

top==-1)/*栈为空*/

{chart2[M];

}zifu;

charPush2(zifu*s,charx)

{if(s->

s->

t2[s->

chargettop2(zifu*s,char*x)/*将栈S的栈顶元素弹出,放到x所指的存储空间中*/

{if(s->

top==-1)

{*x=s->

s->

intTop2(zifu*s,char*x)//将栈S的栈顶元素弹出,放到x所指的存储空间中,但栈顶指针保持不变

intIn(charch)

{if(ch=='

+'

return1;

elseif(ch=='

-'

*'

/'

('

)'

['

]'

{'

}'

elseif(ch=='

#'

elsereturn0;

charCompare(charx,charch)

{switch(x)

{

case'

:

if(ch=='

||ch=='

return'

>

'

;

elseif(ch=='

return'

<

break;

else

='

0'

elseif(ch='

default:

return'

}

}

intjisuan(inta,charc,intb)

{

switch(c)

return(a+b);

return(a-b);

return(a*b);

return(a/b);

/*执行文件*/

stdlib.h"

conio.h"

haha.h"

intExpEvaluation()/*计算*/

{charch;

charx,y;

charc;

inta,b,v;

shuzi*p;

zifu*s;

p=(shuzi*)malloc(sizeof(shuzi));

s=(zifu*)malloc(sizeof(zifu));

top=-1;

Push2(s,'

);

Top2(s,&

y);

printf("

\nPleaseinputanexpression(Endingwith#):

\n"

fflush(stdin);

ch=getchar();

while(ch!

||y!

)/*Top()通过函数值返回栈顶元素*/

{

if(!

In(ch))/*不是运算符,是运算数*/

{inttemp;

temp=ch-'

/*将字符转换为十进制数*/

fflush(stdin);

ch=getchar();

while(!

In(ch))//用ch逐个读入运算数的各位数码,并转化为十进制数temp

{temp=temp*10+ch-'

//将逐个读入运算数的各位转化为十进制数

fflush(stdin);

ch=getchar();

Push1(p,temp);

}

switch(Compare(y,ch))

{

case'

Push2(s,ch);

ch=getchar();

break;

gettop2(s,&

x);

fflush(stdin);

c);

gettop1(p,&

b);

a);

v=jisuan(a,c,b);

/*对a和b进行c运算*/

Push1(p,v);

}

Top2(s,&

Top1(p,&

v);

return(v);

voidmain()

{intg=1,h,k;

while(g)

printf("

---------------------主菜单----------------------------\n\n"

---------------------1表达式输入计算并输出结果------------\n"

---------------------2退出程序------------------------\n"

输入对应的序列号:

scanf("

%d"

&

h);

switch(h)

case1:

system("

CLS"

k=ExpEvaluation();

printf("

计算结果为:

%d\n\n"

k);

break;

case2:

g=0;

break;

default:

}

七.课程设计总结与体会:

这次的课程设计,遇到的问题颇多,比如走不出循环,没吃掉前面的字符,或者根本没进入循环等等,遇到问题后,就着手解决了,通过不断的努力和坚持,终于解决了以上问题,努力才有收获。

计算机科学与技术系课程设计评分表

课题名称:

表达式求值

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

教师签名:

日期:

(注:

1.此页附在课程设计报告最后一页;

2.综合成绩按优、良、中、及格和不及格五级评定。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1