10级数据结构课程设计题目及要求(学生)

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

10级数据结构课程设计题目及要求

一、课程设计目的

《数据结构》是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。《数据结构》课程的目标是使学生学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,培养和提高学生程序设计的能力。《数据结构》课程也是一门实践性较强的课程,设置实践环节是十分重要的。本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。

二、课程设计内容

题目一:仓库管理系统(线性表应用)

[问题描述]

建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。

[实现提示]

可以采用双向链表的存储结构,如可定义如下的存储结构:

typedef struct dnode /*定义双向链表结构体*/

{int number; /*货物编号*/

char name[max]; /*货物名称*/

int counter; /*货物数量*/

struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/

}dlnode;

题目二:单位员工通讯录管理系统(线性表应用)

[问题描述]

为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

[实现提示]

可以采用单链表的存储结构,如可定义如下的存储结构:

typedef struct { /*员工通讯信息的结构类型定义*/

char num[5]; /*员工编号*/

char name[10]; /*员工姓名*/

char phone[15]; /*办公室电话号码*/

char call[15]; /*手机号码*/

}DataType;

/*通讯录单链表的结点类型*/

typedef struct node

{ DataType data; /*结点的数据域*/

struct node *next; /*结点的指针域*/

}ListNode,*LinkList;

题目三: 哈夫曼编码/译码系统(树应用)

[问题描述]

利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。

[实现提示]

在本例中设置发送者和接受者两个功能,

发送者的功能包括:

①输入待传送的字符信息;

②统计字符信息中出现的字符种类数和各字符出现的次数(频率);

②根据字符的种类数和各自出现的次数建立哈夫曼树;

③利用以上哈夫曼树求出各字符的哈夫曼编码;

④将字符信息转换成对应的编码信息进行传送。

接受者的功能包括:

①接收发送者传送来的编码信息;

②利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信息。

从以上分析可发现,在本例中的主要算法有三个:

(1)哈夫曼树的建立;

(2)哈夫曼编码的生成;

(3)对编码信息的翻译。

题目四:所有顶点对最短路径问题(图的应用)

[问题描述]

医院选址:4个村庄之间的交通图如图1所示,村庄之间的距离为图中各边上的权值。现在要从这4个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院最近。

6 A B 8 5 6

7 6 4 D C

图1村庄交通图

[实现提示]

用有向加权图表示的交通图中,有向边表示第i个村庄和第j个村庄之间有道路,边上的权表示这条道路的长度。该问题实质上是求解任意两顶点间最短路径问题。解决思想与方案:

(1)运用弗洛伊德算法求出有向图中各顶点对的最短距离。

(2)根据步骤(1)结果,求出每个顶点到其他顶点的最短距离的最大值。

(3)最大值最小的顶点作为医院所在村庄。

结构定义:

typedef char vextype; /*顶点数据类型*/

typedef int edgetype; /*边数据类型*/

typedef struct

{

vextype vex[MANVEX];

edgetype arc[MANVEX][MANVEX];

int vexnum,arcnum; /*顶点数和边数*/

}Mgraph; /*图的邻接矩阵表示结构定义*/

题目五:教学计划编制问题(图的应用)

[问题描述]

大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。

[实现提示]

1、输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占3位的字母数

字串)、学分和直接先修课的课程号。

2、应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课

程尽可能地集中在前几个学期中。

3、若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计

划的表格格式可以自己设计。

4、可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序

列中,则作为错误处理。

题目六:图书管理系统(查找应用)

[问题描述]

相关文档
最新文档