数据结构课程方案(通信)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章课程设计的步骤和报告规范
课程设计的步骤:
一、问题分析和任务定义
在设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么?对所需完成的任务作出明确的回答。
二、系统设计
系统设计分为逻辑设计和详细设计两步。逻辑设计指的是,对问题描述中的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义软件模块结构图;详细设计则为定义相应的存储结构,并写出各函数模块的伪码算法。
三、编码实现和调试
四、总结和整理课程设计报告
课程设计报告规范:
课程设计报告的开头应给出题目、专业、班级、学号、姓名、指导老师和完成日期,并包括以下七个内容:
一、问题描述
二、需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
三、概要设计:在此说明每个部分的算法设计说明<可以是描述算法的流程图),每个程序中使用的存储结构设计说明<如果指定存储结构请写出该存储结构的定义。
四、软件模块结构图
五、详细设计:每部分模块的设计,含数据结构的设计,算法的描述<流程图或PDL)。各个算法实现的源程序,对每个题目要有相应的源程序<可以是一组源程序,每个功能模块采用不同的函数实现)。源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
六、程序流程图
七、源程序
八、调试分析:测试数据、测试过程、测试结果及评价
九、测试数据与实验结果
十、用户使用说明:说明如何使用你的程序,详细列出每一步操作步骤
十一、本章小结:总结可以包括: 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容
课程设计要求:
1、学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时
主动通过各种方式与教师联系沟通。
2、学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。
3、课程设计按照教案要求需要两周时间完成,两周中每天<按每周5天)至少要上3-4小时的机来调试C/C++语言/JA V A设计的程序。
4、设计期间,要求严格遵守学校规章制度和实验室管理制度。
5、按指定时间上机,服从指导教师和实验室其他老师的安排。
6、上机前,应编写相应的程序,禁止无准备的上机。
7、每次上机,由老师点名,与最后演示以及设计报告一起,构成最终成绩。第一次上机,填写老师手中的选题表。非特殊情况,不得中间换题。选题尽可能不要集中在某些题上,最后给分会结合题目的难度进行平衡。
第二章课程设计选题
1、试设计一个火车票销售系统。
问题描述:试编制一个简单的火车票销售系统,可完成售票、退票、车票剩余情况查询等功能。每张车票包含车次、座位等信息。
2、试设计一个航空客运订票系统。
问题描述:每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日<星期几)、乘员定额、余票量、订定票的客户名单<包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单<包括姓名、所需数量)。系统能实现的操作和功能如下:
<1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
<2)承办订票业务:根据客户提出的要求<航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。若需要,可登记排队候补;
<3)承办退票业务:根据客户提出的情况<日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
实现提示:两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。由于预约人数无法预计,队列也应以链表作为存储结构。
3、简单编译器的实现<括号配对检查)
问题描述:通常在程序调试时都有对源代码编译的过程,而对左右括号是否匹配也是编译过程中的一个重要环节,试设计一个程序对任意输入的语句或数学表达式,判断其左右括号是否匹配。
4、实现二叉树中所有结点左右子树的交换
问题描述:对任意一棵二叉树,试将其所有结点的左右子树交换。并将交换前后的不同二叉树分别用层序、前序、中序和后序四种不同的方法进行遍历。
5、哈夫曼树在通信编码中的应用
问题描述:设一份电文中有不同出现频率的字符,为了提高电文的输入和翻译效率,必须有一套简短而又不会产生歧义的字符代码。试根据哈夫曼算法,对电文中的不同字
符,构造出一棵哈夫曼树,对每个字符进行编码。
6、二叉排序树建立和查找
问题描述:首先建立一棵二叉排序树,二叉排序树查找是指按照二叉排序树中结点的关系进行查找,查找关键字首先同树根结点进行比较,如果相等则查找成功;如果比根结点小,则在左子树中查找;如果比根结点大,则在右子树中进行查找。
7、二叉排序树插入和删除
问题描述:首先建立一棵二叉排序树,二叉排序树插入是指如果在二叉排序树中能够找到该结点,不插入;如果查找不成功,按照二叉排序树中结点的关系查找,关键字首先同树根结点进行比较,如果比根结点小,则将该结点插入到左子树中;如果比根结点大,则将该结点插入到右子树中。在二叉排序树中删除一个结点时,必须保证删除这个结点后,仍然还是一棵二叉排序树。
8、通讯录的管理
问题描述:试编程完成通讯录的一般性管理工作,如通讯录中记录的增加、修改、查找、删除、输出等功能。每个记录包含姓名、电话号码、住址等个人基本信息。
9、简单的职工管理系统
问题描述:对单位的职工进行管理,包括插入、删除、查找、排序等功能。职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
<1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
<2)删除一名职工:从职工管理文件中删除一名职工对象。
<3)查询:从职工管理文件中查询符合某些条件的职工。
<4)修改:检索某个职工对象,对其某些属性进行修改。
<5)排序:按某种需要对职工对象文件进行排序。
10、学生成绩统计、排序的实现
问题描述:在学生成绩管理中,经常会遇到求平均成绩,统计不及格学生成绩,统计优秀学生人数,以及按成绩对学生进行排名等。现假设有某个班级的若干名学生,每个学生都考试完成了4门课程,试对所有学生的成绩完成以下工作:
<1)求每门课程的平均成绩。
<2)输出所有有不及格课程的学生的学号、姓名、全部课程的成绩、平均成绩。
<3)输出所有平均分在90分以上<含90分)的学生学号、姓名。
<4)对4门课程中的任何一门,可随意抽取1门按学生成绩进行排序
11、表达式计算
问题描述:我们对表达式做如下简化:<1)假定所有运算分量都是整数;<2)所有运算符都是整数的二元操作,且都用一个字符表示。利用栈实现表达式求值方法。
12、工程造价最小问题
问题描述:如果以无向网表示n个城市之间的交通网络建设规划,顶点表示城市,边上的权表示该线路的造价,试设计一个方案,使这个交通网的总造价最小。
13、旅游导游系统问题
问题描述:假设一个旅游景区由n个不同景点组成<有向网),并用带权邻接矩阵表示,权值表示两个景点间的步行时间,试编写程序求任意两个景点间的最短步行时间。14、校园导游咨询<为来访的客人提供各种信息服务)
问题描述:设计中南大学校园平面图,有三个校区和三所附属医院,在这些校区和医院内选10个以上的建筑物、办公室、宿舍等地名。以图中顶点表示校园内各地名,存放地名名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
<1)为来访客人提供图中任意地名相关信息的查询。