数据结构课程设计报告

发布 2022-10-05 18:53:28 阅读 9029

西安郵電學院。

题目魔王语言

魔王语言实验报告。

一、 课程设计目的。

熟悉栈、队列、数组、链表,结构体等结构的使用,包括链表或数组的插入、删除,栈和队列的出栈、入栈、出队、入队操作。学会递归的用法。

二、课程设计内容。

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

1)ab1b2……bn ;

2)(c d1 d2……dn)c dn c dn-1……c d1 c

基本要求:用以下两条具体规则(具体规则数量不定)和上述规则形式(2)实现。设大写字母表示魔王语言解释的词汇,小写字母表示人的语言的词汇;希腊字母可以用大写或小写字母代换的变量。

魔王语言可含人的词汇。

1)b tata

2)asae

示例:魔王说:b(ehnxgz)b

解释**类语言:tsaedsaeezegexenehetsaedsae

若每个小写字母含义如下表所示:

则魔王说的话是:天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅。

三、需求分析。

该程序主要实现魔王语言倒人类语言的转化,将抽象精练的魔王语言通过程序的操作,依据定义的规则转化为人类可以理解的语言。具体操作有去括号、大写换小写、将小写转换为对应的中文汉字。

四、概要设计。

1.系统结构图(功能模块图)

2.功能模块说明。

1)去括号操作(delkuohao1):运用栈和队列结构来实现规则一的实现,根据设定可以去多重括号。

2)大写转换小写(exangeword1):运用栈结构来实现大写转换小写的操作,可以实现大写转换小写的嵌套。

3)小写转换中文(explainword):根据提前设定好的小写对应的中文汉字,遍历查找后将之存储到数组中并输出。

五、详细设计及运行结果。

1、主函数的调用图。

2、流程图。

(1)去括号操作(delkuohao1):

(2)大写转换小写(exangeword1):

(3)小写转换中文(explainword):

3,运行结果。

六、调试情况,设计技巧及体会。

这个程序花了我几天的功夫,基本满意,只是还有一些操作没有做到尽善尽美。比如说文件操作中不可以在程序运行时添加规则,只可以从预先编好的的文件中读出来,还有刚开始用的动态链表,后来又改为了用数组存储。我觉得再花点时间可以圆满的完成这次没做到的。

说到感受就是当程序没有错误而且可以正确运行结果是的激动心情,毕竟这几天的精力都花上面了。刚开始夜没有考虑周全,导致后来整体换了结构,而且临时改了算法。还要感谢编程序时帮助过我的老师和同学战友,没有他们的帮助我是不会做的这样快的。

最深刻的一点就是:持之以恒,善始善终。什么事情都可搞定,只要相信自己!

七、参考文献。

c语言程序设计(第二版) 主编:王曙燕科学出版社。

数据结构主编:耿国华高等教育出版社。

八、附录:(略)

西安郵電學院。

题目多项式相乘

多项式相乘实验报告。

一、 课程设计目的。

通过实现多项式相乘的运算,熟悉数组或动态链表结构的使用,包括动态链表或数组的存储、插入、删除,排序等操作、

二、 课程设计内容。

用带头结点的动态单链表来表示多项式;在此基础上完成多项式的乘法运算。要求以动态链表为存储结构、使用到查找和排序等操作; 用一个单链表来表示一个一元多项式;在创建多项式的过程中,可以按指数的任意顺序输入,并且可在同一多项式中输入指数相同的多个项;在进行乘法操作之前,输出参与操作的两个多项式。要求输出的多项式按指数升序排列,同指数的多项合并,项数的正负号显示合理。

对已排序且合并了同指数项的两个多项式实现乘法操作,并输出结果,结果多项式要求以动态链表为存储结构;输出结果多项式要求按指数升序排列,同指数的多项要合并,项数的正负号要求显示合理。

三、 需求分析。

该程序主要实现两个多项式相乘的操作,包括多项式的排序,合并同指数项,并且正确输出多项式。要完成这些操作,就需要借助动态链表或者数组来暂时存储需要处理的数据,然后完成相应的操作。

四、 概要设计。

1.系统结构图(主要功能模块图)

2.功能模块说明。

1)排序操作(polyclaer):创建新的带表头结点的链表,遍历原链表,每次找到指数最小的节点,赋给新创建的链表,最后返回新链表的头指针。

2)合并同指数项(polyclean):遍历排序后的链表,找到指数相同的节点,合并为一个节点后释放其中一个节点。

3)相乘操作(polycheng): 分别用其中一个多项式去乘另一个多项式的每一项,将相乘的结果存储在新创建的带表头结点的动态链表里,并输出结果。

五、详细设计及运行结果。

1、主函数的调用图。

2、流程图。

(1)排序操作(polyclaer):

2)合并同指数项(polyclean):

3)相乘操作(polycheng):

六、调试情况,设计技巧及体会。

1、 运行结果。

2、设计技巧及体会。

因为以前上机做过多项式相加,而且思路简洁,所以这个程序没用多少时间就搞定了。主要思想是设定排序函数和合并同指数函数,这样输入的多项式1、多项式2和相乘后的多项式只需调用这两个函数就完成了实验。

最深的体会就是只要思路清晰算法正确,编写程序就不是什么问题。再加上深厚的c语言和数据结构知识,就可以顺利的完成。

七、参考文献。

c语言程序设计(第二版) 主编:王曙燕科学出版社。

数据结构主编:耿国华高等教育出版社。

八、附录:(略)

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...