数据结构中 算术表达式的求值演示 的源程序

上传人:wm****3 文档编号:41314279 上传时间:2018-05-29 格式:DOC 页数:6 大小:31KB
返回 下载 相关 举报
数据结构中 算术表达式的求值演示 的源程序_第1页
第1页 / 共6页
数据结构中 算术表达式的求值演示 的源程序_第2页
第2页 / 共6页
数据结构中 算术表达式的求值演示 的源程序_第3页
第3页 / 共6页
数据结构中 算术表达式的求值演示 的源程序_第4页
第4页 / 共6页
数据结构中 算术表达式的求值演示 的源程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据结构中 算术表达式的求值演示 的源程序》由会员分享,可在线阅读,更多相关《数据结构中 算术表达式的求值演示 的源程序(6页珍藏版)》请在金锄头文库上搜索。

1、数据结构中 算术表达式的求值演示 的源程序有标准答案吗,谢谢 50 分 标签:求值 算术表达式 源程序 标准答案 概要设计 回答:2 浏览:2538 提问时间:2005-12-10 18:29 这是课程设计,除了源程序,还要有需求分析,概要设计,详细设计,调试分析,用户手册,测试结 果,心得体会,关键是需求分析,概要设计,详细设计,调试分析,用户手册不知道应该怎么写共 0 条评论.相关资料: 算术表达式和赋值表达式(1).swf 更多资料 最佳答案 此答案由 提问者自己选择,并不代表爱问知识人的观点 揪错 评论 举报 killbig 学者 算术表达式的源程序 #include #include

2、 #include #define POW 1 #define MUL 2 #define DIV 3 #define ADD 4 #define SUB 5 #define Lp 6 #define Rp 7 #define END 8 #define Epsilon 1e-7 typedef double NODE; struct char op; int code; opchTbl=*,2,/,3,+,4,-,5,(,6, ),7,1,n,8, ,-1; typedef struct node NODE data; struct node *link; LNODE; LNODE *opt

3、op , *numtop; NONO(char *t,double sum) int i; char str15; FILE *wf; wf=fopen(“62346_4.dat“,“w“); for(i=0;idata=x; p-link= *toppt; *toppt=p; int l_pop(NODE *cp,LNODE * *toppt) LNODE *p= *toppt; if(*toppt=NULL)return 1; *cp=p-data; *toppt=p-link; free(p); return 0; int osp=5,3,3,2,2,5,1,1, isp=4,3,3,2

4、,2,0; void synError() double temp; printf(“syntax err!“); while(optop!=NULL) l_pop( while(numtop!=NULL) l_pop( exit(0); double eval(char tag,double left, double right) int n; double result; switch(tag) case POW : for(n=1,result=left;n9) for(i=0;opchTbli.code!=-1 i+); if(opchTbli.code=-1)synError();

5、if(c!=n)c=getchar(); tk=c; k+; return opchTbli.code; num=0; while(c=0 else while(osptype-1data-1 op=(char)dop; if(l_pop( if(l_pop( res=eval(op,operand1,operand2); l_push(res, if(type=END)break; if(type=Rp) do if(l_pop( while(char)dop!=Lp); else l_push(double)type, if(l_pop( while(optop!=NULL) l_pop(

6、 printf(“result=%fn“,operand1); printf(“continue ?(Y)“); scanf(“%c“, while(ans=y | ans=Y); NONO(t,operand1); for(i=0;i61;i+) printf(“%c“,ti); QQ16806008 回答:2005-12-10 18:34 提问者对答案的评价: 两个答案都太有水平了,第二个源程序更是超出大部分初学者的水平了共 0 条评论.以下是特别推荐给您的相关问题学软件开发需要学那些课程还有,关于 3G 手机软件开发,都有一些什么样的课程. 5 分求复杂表达式的值 10 分我看现在关于软

7、件开 发的培训机构好像挺多的,可是为. 10 分已知 Y=F(X)是定义域在 R 上的偶函数,治疗 乳腺增生-很轻松治疗乳房肿块、乳腺增生,一次性治愈不复发新浪爱问共享资料 - 存储 安全长久数百万中文资料免费共享,高速上传下载爱问机器人-解决所有难题会自动回复 的高智商微博机器人,试一试 其它回答 共 1 条回答评论 举报 祥子 学者 算术表达式求值演示 一.需求分析 1. 要求应用栈来实现表达式的分析计算( 用运算符优先法 ). 2. 以字符序列的形式从终端输入语法正确的表达式( 本程序可以输入浮点数作运算数 ). 3. 演示程序以计算器的仿真界面实现与用户间的对话. 当用户从终端输入某一

8、字符时 , 仿真界面上的相应字符按钮会变黑( 表示按下 ). 4. 程序的实现效果在附交的软盘中. 请运行程序观看. 二. 调试分析 1. 由于考虑不周, 本程序快要完成时才发现由于函数调用太深, 无法处理好局部变量 , 只好用了两个全局变量 start_x 和 start_y( 有违初衷 ), 它们指定 CALCULATOR 的绘制 位置. 2. 由于库函数 getchar()和 getch()的微妙的差别, 使得绘图部份功能一度陷入混乱. 最后才得以调整. 3. 本程序的模块性有待加强. 三. 用户手册 1. 本程序在 TURBO C 2.0 下运行良好. 源程序文件为 Evaluate.

9、c. 2. 进入演示程序后, 显示图像编程模拟的计算器仿真界面, 按键盘上的键位以达相应 的视觉效果. 3. 注意: 请不要输入错误的表达式, 确定表达式只输入一次并且正确( 还要求输入过 程中不可以用退格符 ), 否则会产生莫明其妙的错误结果. 4. 本程序扩充了运算符集, 支持乘方运算符“ p “, 例如输入: 5p2+5p2# 则结果为 50.000000 支持平方运算符“ “, 例如输入: 5+5# 则结果为 50.000000 支持单目减运算符“ “, 例如输入: 4+4# 则结果为 0.000000 支持实数类型作运算量类型, 例如输入: 3.14+3.14# 则结果为 6.280000 实现了计算器的仿真界面, 如运行效果所视. 5. 附: 赋值运算符和支持变量参与运算的功能尚未加入. 四. 测试结果 具体请观看软盘中的源程序执行的效果. 五. 附录 源程序主要文件清单: 附件:Evaluate.c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号