




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学理学院数学系课程实验报告课 程 名 称: 数据结构 班级信计0803日 期2010.11.15成绩评定姓名赵威实验室理学院-108老师签名实验名称用栈和队列实现魔王语言所用软件VC+实验目的及内容主要功能:魔王总是使用自己的一种非常精练而抽象的语言讲话,没人能听懂,但他的语言是可逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的: - 1)a- (B1)(B2).(Bm) 2)(op1)(p2).(pn)-o(pn)o(p(n-1).o(p1)o -在这两种形式中,从左到右均表示解释.试写一个魔王语言的解释系统,把他的话解释成人能听得懂的话. 基本要求: 用下述两条具体规则和上述规则形式(2)实现.设大写字母表示魔王语言的词汇;小写字母表示人的语言的词汇;希腊字母表示可以用大写字母或小写字母代换的变量.魔王语言可含人的词汇. 1) B - tAdA 2) A - sae实验原理步骤、程序清单如下:魔王.cpp/*-定义头文件-*/#include#include#include/*-定义全局变量-*/int top=0;int find=0;/top=0;char transl200;char leag200;char link100;int rear=1;/rear=1;/*-MAIN()主函数-*/int main()char pop(); /定义出栈函数char ml2200; /定义两个规则,把它们存放到ml中coutendl;cout * 魔王语言程序设计 * endl;cout * endl;cout * endl;cout * 本程序可以翻译魔王语言且按以下两条形式规则由人 * endl;cout * * endl;cout *的语言逐步抽象上去: * endl;cout * * endl;cout1234. * endl;cout * * endl;cout321 * endl;cout * * endl;cout * 下面只输入2个第一种形式的规则,且后输入的可以嵌* endl;cout * * endl;cout *套已输入的规则。 * endl;cout * * endl;cout * endl;cout * endl;cout1234. / (123)321 /下面只输入2个第一种形式的规则,且后输入的可以嵌套已输入的规则 /*开始输入规则A和B,A比B先输入,再输入B,这样B就可以嵌套A*/cout以下请开始翻译:endl;cout请先输入一组形式规则:endl; cout;cinml0;cout;cinml1;coutendl;/*输入魔王语言,其规则为大写为魔王语言,只限定A和B(暂时),小写为人类语言,输入时用括号括起来*/ coutleag;char temp100; /定义一个缓冲区,存放B的翻译int sizeA=0; /定义A的长度 sizeA=strlen(ml0); int wh=0; /定义缓冲区中的位置变量for(int i=0;ml1i!=0;i+) /开始翻译Bif(ml1i=A) /如果嵌套了A/couthere is doing!;for(int n=0;nsizeA;n+,wh+)tempwh=ml0n; /翻译至缓存区elsetempwh=ml1i; /如果不是A则原样写入wh+;tempwh=0; /为缓存区加上结束符strcpy(ml1,temp); /把缓存区中的串给ml1int sizeB=0; /定义B的长度 sizeB=strlen(ml1);int length;length=strlen(leag); /取得魔王语言的长度int ch; /定义一个变量保存字符int a;int b;/*-开始翻译魔王语言,并把结果存至transl中-*/for(int t=0;tlength;t+) ch=pop(); switch(ch)case A: /如果是A的话for(a=0;asizeA;a+,find+)translfind=ml0a;break; case B: /如果是B的话 for(b=0;bsizeB;b+,find+)translfind=ml1b;break; case (: /但ch=(时,把括号中的小写字母保存至link中ch=pop();link0=ch; /先把第一个字符存入,后面的从link1开始while(ch!=) ch=pop();linkrear=ch; /记得rear的初值为1rear+; /由于while循环的原因,在link队列中多加了一个右括号字符,且rear指针向后多移了2个单位 /故使rear减2rear=rear-2; translfind+=link0;for(rear;rear!=0;rear-)translfind+=linkrear; translfind+=link0; /为了使后面的翻译可行话,得把rear还原为初值,即rear=1rear=1;break; default:break;/switch结束/*-翻译魔鬼语言结束,结果已存至transl中-*/for结束cout经过翻译,魔王想表达的语言是:; /输出得到的翻译语言 coutendl;couttransl;coutendl;char wc;coutwc; return 0;char pop() /出栈函数的实现return leagtop+;实验结果及分析 调试过程中的问题及系统测试情况输入输出:*输入注意:先输入的规则可以被后输入的规则嵌套,后输入的可以嵌套先输入的,但是注意先输入的不可以嵌套后输入的。输入魔王语言时,人类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物营养师考试对食物添加剂的了解试题及答案
- 雅安市荥经县公益性岗位安置考试真题2024
- 2025呼和浩特市青年荟建设经营有限公司招聘工作人员15人笔试参考题库附带答案详解
- 2025内蒙古蒙古丽宫草原文化旅游有限公司招聘36人笔试参考题库附带答案详解
- 八年级道德与法治上册 第四单元 让人生有意义 4.1关爱社会 第2框 社会需要我的关爱教学设计 粤教版
- 计算比赛场次(教学设计)-2024-2025学年四年级下册数学沪教版
- 小学信息技术第二册下册 制作课程表 1教学设计 苏科版
- 2025中国重型机械研究院股份公司招聘(12人)笔试参考题库附带答案详解
- 2025中国林业集团有限公司校园招聘61人笔试参考题库附带答案详解
- 九年级体育 快速跑教学设计1 人教新课标版
- 旅行社运营实务电子课件 2.2 咨询接待和推介旅游产品
- 数字电子技术基础第3章数字电子技术基础课件
- 中式烹调师初级试卷
- 高考倒计时60天课件
- (完整版)人教版小学3-6年级英语单词表-可直接打印
- 机电安装总进度计划横道图
- 起重吊装作业安全综合验收记录表
- 园林绿化工程监理实施细则(完整版)
- 梦想(英语演讲稿)PPT幻灯片课件(PPT 12页)
- 中国联通员工绩效管理实施计划方案
- 法院刑事审判庭速裁庭廉政风险防控责任清单
评论
0/150
提交评论