文档详情

魔王语言实现源代码.pdf

发布:2025-04-18约7.68千字共14页下载文档
文本预览下载声明

2.2魔王语言实习报告

班级:信管08-2姓名:陈明学号:0801051401

一、需求分析

(1)魔王语言有两条规则规则1可以由用户自己确定存储于

expression[26[[6]中(每个魔王词汇最多只能转换成5个人类语

言,规则2则为(@a(1)a(2)a(3)a(4)…..a(n))-(@a(n)@a(n-1)

不能更改。

(2)程序会提示用户是否需要自己定义规则1。选N则是使用默认

的规则(为A=sae,B=tAdA,C=sce,E=sde,其他为零),选

定规则后输入魔王语言(只能是人类词汇和魔王词汇)则输入

一个可以有括号的英文字母字符串。回车后程序就会输入解释

后的魔王语言。

(3)测试数据为:默认规则1魔王语言:B(ehnxgz)B解释后:

tsaedsaeezegexenchetsaedsae

自定义规则1A=aaaB=C=ccc其他为0魔王语言:B

(AC)B解释后为:

aaacccaaa

(4)程序执行的命令为:

a.创建魔王语言规则1。b.输入魔王语言。c.解释魔王语言。

二、概要设计

1.设定栈的抽象数据类型定义:

ADTStack{

数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n=0}

数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2,…,n}

约定其中an端为栈顶,ai端为栈尾。

基本操作:

InistStack(S)

操作结果:构造一个栈S。

DestroyStack(S)

初始条件:栈S已存在

操作结果:栈S被销毁。

StackEmpty(S)

初始条件:栈S已存在

操作结果:若栈S为空栈,则返回TRUE,否

则FALSE

GetTop(S,e)

初始条件:栈S为非空

操作结果:用e返回S的栈顶元素

Push(S,e)

初始条件:栈S已存在

操作结果:插入元素e为新的栈顶元素。

Pop(S,e)

初始条件:栈S已存在并且为非空

操作结果:用e返回S的栈顶元素,并删除S

的栈顶元素。

}ADTStack

2.队列的抽象数据类型图的定义如下:

ADTQueue{

数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n=0}

数据关系:R1={ai-1,ai|ai-1,ai∈D,i=2,…,n}

约定其中ai端为队列头,an端为队列尾。

基本操作:

InitQueue(SqQueueQ)

操作结果:构造一个空队列Q

DestroyQueue(Q)

初始条件:队列Q已存在

操作结果:队列Q清为空队列。

QueueEmpty(Q)

初始条件:队列Q已存在

操作结果:若队列Q为空队列,则返回TRUE,

显示全部
相似文档