魔王语言解释(数据结构课程设计)

魔王语言解释(数据结构课程设计)

ID:17388564

大小:413.00 KB

页数:20页

时间:2018-08-30

魔王语言解释(数据结构课程设计)_第1页
魔王语言解释(数据结构课程设计)_第2页
魔王语言解释(数据结构课程设计)_第3页
魔王语言解释(数据结构课程设计)_第4页
魔王语言解释(数据结构课程设计)_第5页
资源描述:

《魔王语言解释(数据结构课程设计)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、滁州学院本科学年设计魔王语言解释1、绪论1.1背景随着网络技术的发展,网络安全变得越来越重要,文件加密是其中一个重要部分。而“魔王语言”就是一个简单的文件加密。“魔王语言”就是有一个魔王总是使用自己的一种非常精练而又抽象的语言讲话,没有人能听得懂,但他的语言是可以逐步解释成人能听懂的语言,因为他的语言是有规则的,可以通过相应的规则来解释。1.2研究目的通过这次设计,要求在数据结构逻辑特性和物理分析、数据结构的选择和应用、算法的设计及其实现等方面,加深对基础知识的理解。同时,在程序设计方法以及上机造作等基本技能方

2、面受到严格的训练。2、需求分析2.1题目魔王语言解释。2.2基本要求魔王的话没有人能听得懂,但他的语言是可以逐步解释成人能听懂的语言,有着下面的基本要求:用下述两条具体规则和下述规则形式2)实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。以下是他的语言的两种形式的规则有语言逐步抽象上去的:1)α转换为β1β2…βm2)(θδ1δ2…δn)转换为θδnθδn-1…θδ1θ在这两种形式重,从左到右均表示解释。试写一个魔王语言的解释兄

3、,把他的话解释成人能听得懂的话。因此,我们编写了一个有趣的魔王语言解释程序来巩固和加强对栈和队列的理解。以下是他的语言的两种形式的具体规则:⑴A转换为hdwhz,B转化为hasff,C转化为hwhll,D转化为hkhbf,E转化为hkwsx,F转化为hxwsb。⑵h转化为“花”,d转化为“蝴蝶”,w转化为“为”,z转化为“醉”,s转化为“随”,fe转化为“风”,f转化为“飞”,k转化为“开”,ku转化为“哭”,b转化为“悲”,x转化为“谢”,l转化为“落泪”,ba转化为“瓣”。⑶A转化为“蝴蝶为花瓣”,B转化为

4、“花却随风飞”,C转化为“花舞花落泪”,D转化为“花哭花瓣飞”,E转化为“花开为谁谢”,F转化为“花谢为谁悲”。2.3数据测试-20-滁州学院本科学年设计B(hdwz)B解释成hasffhzhwhdhhasff若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是:“花却随风飞花醉花为花蝴蝶花花却随风飞”。hzwdsf花醉为随飞2.4实现分析⑴以一维数组demon[i]表示魔王语言.⑵魔王语言由用户输入,初始保存在demon[i]中.⑶魔王语言与人类语言对应关系固化在程序中.2.5实现过程⑴初始,魔王语言接收

5、后存放在demon[i]中.⑵遍历数组,将数组中括号内的元素入栈,同时插入相应首字母;⑶再次遍历数组,将数组元素依次入队。(小写字母直接入队;大写字母翻译成相应字符入队;遇到括号,将栈中保存的元素依次出栈入队)在翻译过程中,如果依旧包含大写字母,则置flag为1,否则为0。⑷将队列中元素赋值给demon[i]。如果此时flag=1,则再次重复C过程。直至所有元素为人类语言。⑸输出demon[i]。此时数组中元素为对应的人类语言。注:如果程序中没有相应的对应关系,则翻译成“???”。3、概要设计3.1数据流程图魔

6、王语言解释学年设计包括了主函数和栈和队列的操作两大部分,其中栈和队列的操作部分有构建、添加、删除、查找等函数。具体流程如图1:-20-滁州学院本科学年设计图1数据流程图3.2设定栈的抽象数据类型定义:ADTstack{数据对象:D={ai

7、ai∈CharSet,i=1,2,…,n,n>=0}数据关系:R1={

8、ai-1,ai∈D,i=2,…,n}基本操作:Initstack(&s)操作结果:构造一个空栈s.Push(&s,e)初始条件:栈s已存在.操作结果:在栈s的栈顶插入新的栈顶元素e.Po

9、p(&s,&e)初始条件:栈s已存在.操作结果:删除s的栈顶元素,并以e返回其值.}ADTstack3.3设定队列的抽象数据类型:ADTqueue{数据对象:D={ai

10、ai∈Elemset,i=1,2,…,n,n>=0}数据关系:R1={

11、ai-1,ai∈D,i=2,…,n}基本操作:Initqueue(&q)-20-滁州学院本科学年设计操作结果:构造一个空队列q.Enqueue(&q,e)初始条件:队列q已存在.操作结果:插入元素e为q的新队尾元素.Dequeue(&q,&e)初始条件:q

12、为非空队列.操作结果:删除q的队头元素,并用e返回其值.}ADTqueue3.4本程序包含四个模块:⑴主函数模块,其中主函数为:Statusmain(){初始化栈;初始化队列;接收魔王语言输入到数组demon[i];遍历数组将括号中元素进栈;While(数组demon[i]中元素有大写字母){翻译排序处理后入队列;将队列元素保存在数组demon[i];}输出人类语言(数组demon[i

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

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

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