- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.4简单LISP算术表达式计算器
简单LISP算术表达式计算器 一.实验目的 [问题描述]??设计一个简单的LISP算术表达式计算器。??简单LISP算术表达式(以下简称表达式)定义如下:??(1)一个0..9的整数;或者??(2)(运算符?表达式?表达式)??例如,6,(+45),(+(+25)8)都是表达式,其值分别为6,9和15。??[基本要求]??实现LISP加法表达式的求值。??[测试数据]??6,(+45),(+(+25)8),(+2(+58)),(+(+(+12)(+34))(+(+56)(+78)))??[实现提示]??写一个递归函数:??int?Evaluate(FILE*CharFile)??字符文件CharFile的每行是一个如上定义的表达式。每读入CharFile的一行,求出并返回表达式的值。??可以设计以下辅助函数??status?isNumber(char?ReadInChar);??//视ReadInChar是否是数字而返回TRUE或FALSE。??int?TurnToInteger(Chat?IntChar)??//将字符0..9转换为0..9。? 二.实验内容 程序源代码 1、自定义数据类型 2、基本操作函数 3、主函数代码 三.实验步骤 为实现上述程序功能,应以字符栈和整型栈两个抽象数据类型表示: 1.字符栈的抽象数据类型定义为:ADT cstack { 数据对象:D={ai| ai∈cstack,i=1,2,...n, n≥0} 基本操作: initstack(cstack c) 操作结果:分配100个字符栈空间,将首地址赋给c.cbase,将c.cbase赋给c.ctop。 Cpush(cstack c,char ce) 初始条件:字符栈c存在。 操作结果:将字符ce加入到字符栈c中。 Cpop(cstack c,char ce) 初始条件:字符栈c存在。 操作结果:将ce从字符栈c中删除。 } ADT cstackt 2.整型栈的抽象数据类型定义为: ADT istack 数据对象:D={ai| ai为0到9的数字,i=1,2....,n } 基本操作: initstack(istack i) 操作结果:分配100个整数空间,将首地址赋给i.ibase,将iibase赋给i.itop。 ipush(istack i,int ie) 初始条件:整型栈i存在。 操作结果:将整数ie加入到整型栈i中。 ipop(istack i,int ie) 初始条件:整型栈i存在。 操作结果:将ie从整型栈i中删除。 }ADT istack 3.其他 int display()//打印开始屏幕信息 void getfun() //表达式输入 四.实验的结果及分析。 五.实验中出现的问题、解决方法和心得体会 ??写完程序的第1步,先不让机器进行检错,先自己检查,当修改了较多不是粗心导致的问题后,后面要修改的问题就是自己个人水平技术原因导致的错误了。当程序初步设计出来后,有很多细节上的错误,有的发现不出来,需要找同学帮忙或者查书籍等通过修改错误,也认识到自己的不足,相当一个查缺补漏的过程,跟一个系统分析的过程,逻辑思维过程,对程序的认识更加深了一步,以后还是需要多练习写一下程序,多提高一下自己的动手实践能力,以便以后可以更加熟练的写程序。 学号 3111001299 姓名 刘源彬 成绩评定_______ 教师签名 许亮 实验 4.4 题目 简单LISP算术表达式计算器 课程名称 数据结构A 6 typedef struct { int *ibase; int *itop; int istacksize; }istack; //定义整数型结构体 typedef struct { char *cbase; char *ctop; int istacksize; }cstack; //定义字符型结构体 int display()//打印开始屏信息 { for(int p=0;p80;p++) cout=; coutendlendl; for(int q=0;q28;q++) cout ; cout简单LISP算术表达式计算器; coutendl; for(int r=0;r26;r++) cout ; coutendlendl; cout 本程序可以对简单的LISP算术表达式进行求值,; cout也能对四
文档评论(0)