数据结构课程设计报告-魔王语言实验报告

数据结构课程设计报告-魔王语言实验报告

ID:6809765

大小:313.50 KB

页数:21页

时间:2018-01-26

数据结构课程设计报告-魔王语言实验报告_第1页
数据结构课程设计报告-魔王语言实验报告_第2页
数据结构课程设计报告-魔王语言实验报告_第3页
数据结构课程设计报告-魔王语言实验报告_第4页
数据结构课程设计报告-魔王语言实验报告_第5页
资源描述:

《数据结构课程设计报告-魔王语言实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、西安郵電學院数据结构课程设计报告题目:魔王语言院系名称:计算机学院专业名称:软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间:一.设计目的1、熟悉链表、队列、栈、排序、查找、文件等内容的的使用。2、将数据结构的内容结合到一起使用。3、熟悉掌握数据结构的内容。4、了解递归与非递归的使用。二.设计内容以栈和队列为数据结构,使用文件读写、查找等操作,完成对魔王语言的解释。三.概要设计开始1.功能模块图;主函数结束将结果保存到文件中将魔王语言翻译为汉语意思将魔王的话转化成小写字母将栈中的元素存入数组中读取文件mean.txt读取文件rule.txt调用取括号函数输入魔王说的话2.各个模块详

2、细的功能描述。。1.入栈操作函数intpush(Stack*s,charx)讲传递过来的字符入栈;2.出栈操作charpop(Stack*s)将当前栈顶的字符出栈,并将其返回;3.入队操作函数intqueue_in(Queue*p,charch)将传递过来的ch中的字符入队;4.出队操作charqueue_out(Queue*p)将当前队头的字符出队,并将其返回;5.去除魔王语言中括号模块voiddeletenode(Stack*s,Queue*r,chara[],inti)利用队栈的进栈出栈操作,入队出队操作,将魔王语言中的括号去除,使之成为一个字母的序列;6.文件读取函数voidread_

3、file(),voidword_file()通过文件函数,读取rule和mean文件,并将其输出到终端;7.将栈中的元素存入数组中voidstore(chara[],Stack*s)将栈中的元素按次序存入到数组中;8.魔王语言转字母语言voidchange(chara[])将输入的魔王语言通过循环判断转换成字母语言;9.将字母语言翻译为人类语言voidtranslate(chara[],structWord*h)将已经由魔王语言转换成的字母语言通过对照转换成人类语言10.文件保存函数voidsave_file(structWord*h)将已经转换好的魔王语言保存到自定义路径。四.详细设计mai

4、n函数1.功能函数的调用关系图将结果存文件魔王的话转化成小写从件中读入规则解释为汉意显示从文件中读入汉意调用取括号函数读入魔王所说的话2.各功能函数的数据流程图(1)取括号函数deletenode(&s,&r,a,i);入A栈入F栈入目的队列结束将处理结果放回栈一层处理一层括号右括号左括号后非第一个字母左括号后第一个字母括号中内容从Q中弹出一个元素Q是否为空定义变量,初始化栈以及队列开始流程图:YN是否为括号中内容NY将处理结果放回队列YN(2)转化成小写字母函数change(a);流程图:queue是否为空定义变量,初始化栈以及队列开始YN从队列Q中弹出元素放于data中Data为大写字母N

5、调用的函数执行递归Y入队列Q结束开始(3)翻译为汉语意思函数translate(a,l);初始化规则内容存在N大写字母所对应的规则内容放于数组str中YStr[i]大写Y入队列Q,i++NStr[i]存在Y结束N(4)读大小写对应规则voidread_file();流程图:开始打开文件rule.txt打开文件失败Y从文件中读取信息N文件结束Y保存链表N关闭文件结束开始(5)将字母与汉字相匹配流程图开始初始化dataQ是否为空YN弹出对头元素data查找data对应的汉字汉字保存到文件result.txt中结束1.重点设计及编码1.去括号函数deletenode(&s,&r,a,i);voidd

6、eletenode(Stack*s,Queue*r,chara[],inti){intj,flag;charch,t;while(i>=0){while(i>=0){if(a[i]!='(')//用ASCII码比较,判断a[i]是否为'('{push(s,a[i]);i=i-1;}else{i=i-1;break;}}j=0;flag=0;for(j=0;j<=s->top;j++)if(s->elem[j]==')')flag++;if(flag){while(s->top+1&&s->elem[s->top]!=')'){ch=pop(s);queue_in(r,ch);}if(s->el

7、em[s->top]==')')pop(s);if(r->rear!=r->front){ch=queue_out(r);while(r->front!=r->rear){push(s,ch);t=queue_out(r);push(s,t);}push(s,ch);}}}i=s->top;while(i+1){printf("%c",s->elem[i]);i--;}}2转化成小写字母函数cha

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

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

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