数据结构与算法课程设计大作业

 

考   核   要  求

课程编号:   400802010       课程名称:    数据结构与算法课程设计   考试形式:   大作业       

大作业1-9见我的下载 不同版本报告可以私聊我上传太麻烦

                                 

一、设计考核说明

学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动与教师沟通。

学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。

课程设计按照教学要求需要周时间完成

 

二、具体要求:

1.学生在选题范围中选择设计题目,选题根据学号的尾号定题目,例如尾号为1的选择第一题,以此类推,尾号为0和9的选第九题。

2.学生单独进行相应软件项目的设计、实现工作,独立提交完整文档。

3.提交文档雷同,第2名及以后作不及格处理。

4.要求按照系统设计规范来撰写设计报告。报告包括封面(项目的题目、姓名等)、目录、主体设计部分以及后记。文档每人一份。

5.要求内容完整,结构清晰,最终提交电子文档一份。

 

三、设计题目选题表

1、运动会分数统计问题。

【问题描述】

参加运动会有n个学校,学校编号为1„„n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1„„m,女子m+1„„m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)。

【实现要求】

(1)可以输入各个项目的前三名或前五名的成绩;

(2)能统计各学校总分;

(3)可以按学校编号、学校总分、男女团体总分排序输出;

(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;

(5)数据存入文件并能随时查询;

(6)输入数据形式和范围:可以输入学校的名称,运动会项目的名称。

【实现提示】

  1. 输出有中文提示,各学校分数为整形;
  2. 每个功能可以设立菜单,用户根据提示实现相关功能;
  3. 存储结构可采参考图的邻接表,自行设计。
  4. 设计报告中应有数据测试部分说明。

 

2、学生成绩管理系统

【问题描述】

现有学生成绩信息文件1(1.txt),内容如下

姓名    学号   语文  数学   英语    

张明明  01     67    78      82

李成友  02     78    91      88

张辉灿  03     68    82      56

王露    04     56    45      77

陈东明  05     67    38      47

….      ..      ..     ..       …

学生成绩信息文件2(2.txt),内容如下:

姓名    学号   语文  数学   英语    

陈果    31     57    68      82

李华明  32     88    90      68

张明东  33     48    42      56

李明国  34     50    45      87

陈道亮  35     47    58      77

….      ..      ..     ..       …

【实现要求】

试编写一管理系统,要求如下:

(1)实现对两个文件数据进行合并,生成新文件3.txt

(2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt

(3)对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)

(4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

(5)要求使用结构体,链或数组等实现上述要求.

 

3、药店的药品销售统计系统(排序应用)

【问题描述】

设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。

【实现要求】

在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。

【实现提示】

药品信息的元素类型定义:

typedef struct node

{ char num[4];  /*药品编号*/

  char name[10]; /*药品名称*/

  float price;  /*药品单价*/

  int count;    /*销售数量*/

  float sale;  /*本药品销售额*/

 }DataType;

 

存储药品信息的顺序表的定义:

typedef struct

{ DataType r[MaxSize];  

  int length;

}SequenList;

 

4、哈夫曼编/译码器问题:

【问题描述】

利用哈夫曼编码进行信息通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。

【实现要求】

系统应具有以下功能:

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

(2)编码(Coding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmtree中读入)对文件tobetrans中的正文进行编码,然后将结果存入文件codefile中。   

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

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

字符

A

B

C

D

E

F

G

H

I

J

K

L

M

频度

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

5

1

48

51

80

23

8

18

1

16

1

 

 

 

 

【实现提示】

可以根据题目要求把程序划成3个模块,设计成菜单方式,每次执行一个模块后返回菜单。除了初始化过程外,在每次执行时都经过一次读取磁盘文件数据。这是为了如果在程序执行后一直没有进行初始化(1)过程,为了能使后面的操作顺利进行,可以通过读取旧的数据来进行工作。比如:如果程序的工作需要的字符集和权值数据是固定的,只要在安装程序时进行一次初始(1)化操作就可以了。再在次运行程序时,不管进行哪项操作都可以把需要的数据读入到内存。

 

5、校园导游程序

【问题描述】

用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。

【设计要求】

设计要求如下:

(1)设计出你设定学校的校园景点平面图;

(2)查询各景点的相关信息;  

(3)查询图中任意两个景点间的最短路径。

(4)增加、删除、更新有关景点和道路的信息。

 

6、模拟计算器.算术表达式的求解

【问题描述】

给定一个算术表达式,通过程序求出最后的结果。

【实现要求】

(1)数值:包括整数和实数,数值可带正、负号。

(2)运算符:正号、负号、加、减、乘、除、求模和乘方,其中可以包含括号。

【实现提示】

(1)从键盘输入要求解的算术表达式;

(2)采用栈结构进行算术表达式的求解过程;

(3)能够判断算术表达式正确与否;

(4)对于错误表达式给出提示;

(5)对于正确的表达式给出最后的结果;

 

7、文章编辑

【问题描述】

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,

【设计要求】

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

【实现提示】

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

(3)输出删除某一字符串后的文章;

 

8、停车场管理

【问题描述】  

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。

【实现要求】 

要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。

【实现提示】

汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。本题可用栈和队列来实现。设计并实现一个交通咨询系统。

 

9、散列表的设计与实现

【问题描述】

设计散列表实现电话号码查找系统。

【基本要求】

(1)设每个记录有下列数据项:电话号码、用户名、地址;

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;

(3)采用一定的方法解决冲突;

(4)查找并显示给定电话号码的记录;

(5)查找并显示给定用户名的记录。

【进一步完成内容】

(1)系统功能的完善;

(2)设计不同的散列函数,比较冲突率;

(3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

 

附:上交相关内容要求

上交的成果的内容必须由以下四个部分组成,缺一不可

1. 上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);

2. 上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;

3. 课程设计报告:(保存word 97-2003格式文档,文件名要求按照"学号-姓名-课程设计报告",文件扩展名为“.doc”,如文件名为162203301112-李彬-课程设计报告.doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;

其中包括:

(1)需求分析:

在该部分中叙述,每个模块的功能要求

(2)概要设计

在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。

(3)详细设计

各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)

源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

(4)调试分析

测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。

4. 课设总结:

存为word 97-2003格式。总结可以包括 : 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对本门课程的认识等内容

发布了100 篇原创文章 · 获赞 18 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/sereasuesue/article/details/104153835