数据结构实训内容

《数据结构》课程设计题目及要求

 

课程设计课时:2

一、课程设计目的

“数据结构”课程设计题目比平时的习题复杂得多,也更接近于实际。设计着眼于原理与应用的结合点。使读者学会如何把书本上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书本知识变“活”,起到深化理解和灵活掌握教学内容的目的。课程设计是软件设计的综合训练。通过设计使学生灵活掌握所学各种数据结构并能综合运用,从而提高解决实际问题的能力。包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,以至一整套软件工作规范的训练和科学作风的培养。

二、课程设计的内容

     1分析课题,查阅相关资料;

     2方案论证、数据结构设计;

      3编写代码并调试;

     4演示运行情况并回答老师提问;

     5课程设计报告提交。

三、课程设计题目

题目1:统计成绩

[问题描述]

给出n个学生的m门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计,并打印统计表。

[基本要求]

(1) 按总分数高低次序,打印出名次表,分数相同的为同一名次;

(2) 按名次打印出每个学生的学号、姓名、总分以及各科成绩。

[测试数据]

由学生依据软件工程的测试技术自己确定。注意测试边界数据。

[选作内容]

对各科成绩设置不同的权值。

题目2:员工管理系统

[问题描述]

每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。

[基本要求]

1) 排序:按不同关键字,对所有员工的信息进行排序。

2) 查询:按特定条件查找员工。

3) 更新:按编号对某个员工的某项信息进行修改。

4) 插入:加入新员工的信息。

5) 删除:按编号删除已离职的员工的信息。

[选作内容]

实现图形用户界面。

题目3:哈希表设计

[问题描述]

针对某个集体中人名设计一个哈希表,使得平均查找长度不超过2,并完成相应的建表和查表程序。

[基本要求]

假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。

[测试数据]

取自己周围较熟悉的30个人名。

[选作内容]

1) 从教科书上介绍的集中哈希函数构造方法中选出适用者并设计几个不同的哈希函数,比较他们的地址冲突率(可以用更大的名字集合作实验)。

2) 研究这30个人名的特点,努力找一个哈希函数,使得对于不同的拼音名一定不发生地址冲突。

3) 在哈希函数确定的前提下尝试各种不同处理冲突的方法,考察平均查找长度的变化和造好的哈希表中关键字的聚集性。

题目4:校园导游系统

[基本要求]

1、 设计你的学校的校园平面图,所含景点10-15个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

2、 为来访客人提供图中任意景点相关信息的查询。

3、 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

4、 提供图中任意景点问路查询,即求任意两个景点之间的所有路径。

5、 提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳路径。

6、 区分汽车线路与步行线路。

7、 设计一实用的查询界面和功能菜单。

[测试数据]

   由读者根据实际情况设定。

[选做内容]

1、 扩充道路信息,如道路类别(车道、人行道等)、沿途景色等级,以至可按客人所需分别查询人行路径和车行路径或观察路径。

2、 扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。

3、 实现校园导游图的仿真界面。

题目5: 哈夫曼编/译码器

[问题描述]

利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。

[基本要求]

一个完整的系统应具有以下功能:

1、I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。

2、 E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),   

对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。

3、D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。

4、 P:打印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。    

同时将此字符形式的编码文件写入文件CodePrin中。

5、 T:打印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入    

表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

[测试数据]

用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。

字符

空格

A

B

C

D

E

F

G

H

I

J

K

L

M

频度

186

64

13

22

32

103

21

15

47

57

1

5

32

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

字符

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

 

频度

57

63

15

1

48

51

80

23

8

18

1

16

1

 

测试数据要求

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定

题目6: 多窗口银行业务模拟系统

[问题描述]假设银行有3个窗口对外营业,从早晨开门起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前依次排队。客户按存款金额的不同分为普通客户(存款20万以下)和VIP客户(存款20万以上),VIP客户又分为Ⅰ级,Ⅱ级,Ⅲ级3个级别(20万-50万为Ⅰ级客户,51万-100万为Ⅱ级客户,101万以上为Ⅲ级客户),优先级按Ⅰ级,Ⅱ级,Ⅲ级递增。顾客到银行办理业务,首先要刷卡取一个顺序号,然后到人数最少的队列排队等待叫号,被叫到号的顾客到柜台接受服务,服务完毕后离开。到了下班时间不再接收新来的顾客。VIP顾客有优先权,即可以先得到服务。

[基本要求]

设计一银行业务处理模拟系统,要求:

1、建立VIP顾客档案,包括:顾客姓名,银行卡号(设计4位即可),存款金额,优先级。

2、一天共有多少顾客接受了服务,其中有多少个VIP顾客,并输出VIP顾客的姓名和卡号。

3、统计每天顾客的平均逗留时间。

[测试数据]

由随机数产生器生成

四、授课方式及授课学时分配

本课程在实验室进行,计划课时2周,全部实验,共60学时。

教学课时分配表

章 次

课时分配(学时)

授课

实验

课外

讨论

备注

题目1

 

12

 

 

 

题目2

 

12

 

 

 

题目3

 

12

 

 

 

题目4,5,6任选

 

24

 

 

 

合计

 

60

 

 

 

总学时数

60

五、考核方式及成绩评定

考核内容

考核方式

成绩比例(%

备注

实训期间表现

打分

25

 

设计能力

打分

50

实训报告

论文

25

 

课程设计报告需要根据《课程设计报告模版》的格式要求进行撰写。

                 

猜你喜欢

转载自www.cnblogs.com/wkfvawl/p/10217839.html