课程设计--魔王语言解释

课程设计--魔王语言解释

ID:9859054

大小:165.00 KB

页数:9页

时间:2018-05-12

课程设计--魔王语言解释_第1页
课程设计--魔王语言解释_第2页
课程设计--魔王语言解释_第3页
课程设计--魔王语言解释_第4页
课程设计--魔王语言解释_第5页
资源描述:

《课程设计--魔王语言解释》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《数据结构》课程设计魔王语言解释一目的通过课程设计,巩固和加深对线性表、栈、队列、字符串、树、图、查找、排序等理论知识的理解;掌握现实复杂问题的分析建模和解决方法(包括问题描述、系统分析、设计建模、代码实现、结果分析等);提高利用计算机分析解决综合性实际问题的基本能力。二需求分析1、输入输出形式输入一个用于表示魔王语言的字符串,用数组存储,输入应该是含有大小写字母及括号的字符串;输出包括解释成表示认得语言词汇的小写字母和相对应的汉字。2、程序功能写一个魔王语言的解释系统,把他的话解释成人能听懂的话

2、容。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。规则如下:规则1(θα1α2….αn)→θαnθαn-1…..θα1θ规则2B→tAdA规则3A→sae例如,将B(ehnxgz)B解释成tsaedsaeezegexenehetsaedsae若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是“B(鹅恨蛋下赶追)B”。翻译输出为“天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅”。tdsaezgxnh

3、天地上一只鹅追赶下蛋恨三概要设计1、数据类型定义及含义本程序中使用了栈和队列两种数据类型,其中使用s栈用于将魔王语言的所有元素压入,temp栈用于压入魔王语言中括号外面的元素,队列q用于放括号里面的元素。9XXXX大学计算机科学学院计算机科学与技术专业学号:XXXXX姓名:XXXX《数据结构》课程设计2、主程序流程主程序先调用InitStack构造两个空栈S和Temp,接着调用InitQueue构造队列q,然后通过调用函数lhh完成魔王语言的翻译。再通过询问方式询问用户是否继续进行操作。3、各模块

4、功能各模块功能如下:⑴main主函数;⑵InitStack构造空栈;⑶Push入栈;⑷Pop出栈;⑸StackEmpty判断栈是否为空;⑹ClearStack清空栈;⑺InitQueue构造一个队列;⑻EnQueue入队;⑼DeQueue出队;⑽QueueEmpty判断队列是否为空;⑾InStack将字符数组所有元素入栈;⑿check_MoWang检验魔王语言是否正确;⒀Translate翻译魔王语言;⒁lhh核心代码部分,处理括号里的元素以及调用其它函数翻译魔王语言。四详细设计1、数据类型的实现

5、程序中使用的栈和队列两种数据结构的类型定义如下:structStack{//栈结构定义char*base;//在构造之前和销毁之后,base值为NULLchar*top;//栈顶指针intstacksize;//当前已分配的存储空间};//队结构定义structQueue{chardata;structQueue*next;};structLinkQueue{structQueue*front;//队头指针structQueue*rear;//队尾指针};2、函数调用关系图函数调用关系图如下,由于

6、为了简化,下图中除了main函数以外都采用了概要设计第3部分中的函数标号代替函数名:9XXXX大学计算机科学学院计算机科学与技术专业学号:XXXXX姓名:XXXX《数据结构》课程设计⑴Main⑵⒁⑺⑶⑷⑸⑹⑻⑼⑽⒀⑿⑾⑸⑻⑼⑽⑸⑶3、主要函数模块的算法实现voidInStack(char*ch,structStack&s){//把字符数组里的元素全部压入栈中inti,L=0;while(ch[L]!=''){L++;}for(i=L-1;i>=0;i--)Push(s,ch[i]);}void

7、Translate(structStack&s,structLinkQueue&q){//翻译魔王语言charA[]="sae";charB[]="tsaedsae";chare;printf("解释后的语言为:");while(!StackEmpty(s)){//依次出栈输出处理后的元素Pop(s,e);EnQueue(q,e);//元素进队if(e=='B')printf("%s",B);//规则2elseif(e=='A')printf("%s",A);//规则3elseprintf

8、("%c",e);}//whileprintf("翻译后的语言为:");while(!QueueEmpty(q)){//输出对应汉字9XXXX大学计算机科学学院计算机科学与技术专业学号:XXXXX姓名:XXXX《数据结构》课程设计DeQueue(q,e);switch(e){case't':printf("天");break;case'd':printf("地");break;case's':printf("上");break;case'a':printf("一只");br

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。