魔王语言解释

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈航北方科技学院

课程设计说明书课程名称数据结构课程设计

教学部工学一部

专业网络工程

班级

学号

学生姓名

指导教师

2009年12月

魔王语言解释

目录

摘要 (1)

1绪论 (1)

2系统分析 (1)

2.1功能需求 (1)

2.2数据需求 (1)

2.3性能需求 (1)

3总体设计 (1)

3.1流程图 (1)

(4)

3.2测试 (5)

4结论 (5)

结束语 (5)

参考文献 (6)

附录1-用户手册 (7)

附录2-源程序 (10)

摘要

开发此程序是为了把难懂得魔王语言翻译成人类可以听懂得语言。

此程序用到了栈和队列来处理魔王语言翻译的主体部分

将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至比括号出栈,按规则要求逐一出队列在处理后入栈。

关键词:魔王语言、人类语言、规则翻译

1绪论

本程序要求用栈和队列来实现对魔王语言的解释

2系统分析

2.1 功能需求

本程序要求用栈和队列来实现对魔王语言的解释,将魔王语言自左至右进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列在处理后入栈。

2.2数据需求

大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。

输入数据:B

输出数据:tsaedsae

2.3 性能需求

本魔王语言解释系统对系统的安全性、可靠性、稳定性、响应速度等有很高要求。并且要方便简捷,运行速度快,占用存储空间小,安全性可靠性很高.

3总体设计

3.1任务书

有一个魔王总是使用自己的一种非常精练而又抽象的语言讲话,没人听的懂,但是他的语言可以逐步解释成人类能听懂得语言,因为他的语言是由以下两种形式逐步抽象上去的:

①α->β1β2…βm

②(θδ1δ2…δn)->θδnδn_1…θδ1θ

在这两种形式中,从左到右均表示解释。试写出一个魔王语言解释系统,把他的话解释成人类能听得懂的话。

用下述两条具体规则和上述规则形式实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可以含人的词汇。

具体规则如下:

① B->tAdA ② A->sae

软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。

测试数据过程如下。

(1) 输入功能测试

输入数据1:AAA

预期结果:saesaesae

运行结果:saesaesae

说明:此程序正确

输入数据2:4562

预期结果:输入格式有误

运行结果:输入格式有误

说明:此程序正确

5结论

本程序完成了数据结构课程设计任务书中所要求的各项任务,它可以将魔王语言解释成人类可以听懂得语言.此程序简洁易懂,使用时方便快捷。

但是本程序还有很多的不足,例如:它的功能还不够强大,此程序只可以翻译特定的一些魔王数据。

6结束语

各种图书资料,因此耽误了编程的宝贵时间,所以我发现了我的不足之处,我会在今后的学习生活中努力巩固自己的文化缺陷,不断提高自己的编程水平.我相信在以后的课程设计中我会做到效率高错误率低等要求.

参考文献

[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2007

[2]姜灵芝,余健.C语言课程设计案例精编.清华大学出版社,2008

[3] 网上相关资料

[4] 吴伟民,严蔚敏.数据结构. 清华大学出版社,2008

[5] 王晓东,数据结构与算法设计.电子工业出版社,2002

附录1-用户手册

点击运行,出现输入魔王语言界面如图1所示。

图1 输入界面

在输入想要翻译的魔王语句以后按回车键会出现翻译界面如图2所示。

图2 翻译界面

在输入界面中,如果输入A,B 以外的大写字母,就会出现超出范围界面如图3所示

图3 超出范围界面

在输入界面中输入小写字母,在翻译界面中就会原样输出,如图4所示

图4

在输入界面中输入字母以外的数字或符号后就会出现报错界面如图5所示

图5 报错界面

附录2-源程序

#include

#include

#include

#define STACK_INIT_SIZE 100

#define Status int

#define OVERFLOW -2

#define OK 1

#define ERROR 0;

typedef struct{

char *base;

char *top;

int stacksize;

}SqStack;

Status InitStack(SqStack &S){

S.base = (char *)malloc(STACK_INIT_SIZE *sizeof(char));

if(!S.base) exit(OVERFLOW);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;

return OK;

}

void Push(SqStack &S,char e){

*S.top++=e;

}

void Pop(SqStack &S,char &e){

if(S.top==S.base) return;

e= * --S.top;

}

Status StackEmpty(SqStack &S){

return S.top == S.base;

}

typedef struct QNode{

char data;

struct QNode *next;

}

QNode,*QueuePtr;

typedef struct{

相关文档
最新文档