数据结构课程设计[2023-01-19]
数据结构课程设计
一、课程设计要求
- 实现指定的题目(学号最后两位%4+1),并撰写课程设计报告。
- 独立完成,功能不完备也没关系,只要是自己做的 使用 C、C++或者 JAVA 语言,采用控制台方式、GUI 方式或者Web 方式
- 编程过程应该采用先建框架、逐步求精的方式。应该进行迭代的调试,而不是全部一次集成。
二、课程设计完成后应上交的材料
(1)打印课程设计报告收齐上交报告内容见模板文件要重视报告,是评分的重要依据
(2)报告与程序打包上传云班课
(3)打印版报告下学期开学统一收齐交到316 办公室
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
题目一、学生成绩管理系统的设计与实现
1、问题描述
学生成绩管理系统可以对学生表(学号、姓名、性别)、课程表(课程号、课程名、学分)、选课表(学号、课程号、成绩)进行管理,学生可以选择某门课程,考试得到一个成绩。要求学生表使用学号作为关键字构建二叉排序树(学号不能重复),课程表(课程号不能重复)和选课表采用顺序结构。
2、功能要求
学生信息、课程信息预先设置好,程序启动时,从文件中读入学生、课程和选课信息并自动建立数据结构,使用菜单实现以下功能(可以重复操作),每次操作后应该输出当前结果:
(1)学生表的插入和删除
(2)课程表的插入和删除
(3)选课表的插入和删除
(4)根据姓名,查询某个学生的所有成绩(课程名,得分)和平均成绩(5)根据课程名,查询某门课的所有成绩(姓名,得分)和平均成绩(6)退出时,将学生、课程及选课信息保存到文件中
3、测试数据
学生表
学号 姓名 性别
1 张三 男
2 李四 男
3 王倩 女
4 孙雪 女
5 赵贺 男
课程表
课程号 课程名 学分
1 数据结构与算法 6
2 程序设计语言 5
3 操作系统 5
4 数据库 5
5 软件工程导论 4
选课表
学号 课程号 成绩
1 1 91
1 2 88
1 3 85
1 4 92
1 5 89
2 1 76
2 2 78
2 3 65
2 5 80
3 2 55
3 4 68
4 3 80
题目二、校园导游系统的设计与实现
1、问题描述
江苏大学校园里有若干个地点,使用顶点表示,地点之间有路可通,使用边表示,边上的权值表示地点之间的距离,如下图所示。请为校园的来访客人设计一个导游咨询程序。
2、功能要求
校园道路网信息预先设置好,程序启动,从文件中读入图的信息,自动建立网结构,使用菜单实现以下功能(即可以重复操作),每次操作后应该输出当前结果:
(1)添加边
(2)删除边
(3)任选一种方法,求该网络的最小生成树;
(4)为来访客人提供图中任意顶点的问路查询,即输入两个顶点,输出两个顶点之间的最短路径;
(5)退出时,将道路图保存到文件中
3、测试数据
题目三、家谱管理系统的设计与实现
1、问题描述
家谱管理系统是查询家谱信息必不可少的一部分,利用家谱管理系统可以清楚地查询成员的详细信息。成员的信息包括:姓名(假设姓名不重复)、出生年月日、目前状况(健在、身故)。请设计合理的数据结构存储该家谱的信息,要求能够实现以下功能功能。
2、基本功能
该系统应具有以下功能(即可以重复操作):
家谱信息预先设置好,程序启动,从文件中读入家谱信息,自动建立家谱数据结构,使用菜单实现以下功能,每次操作后应该输出当前结果:
(1)插入:给某个人添加一个孩子
(2)删除:删除某个人,如果某人有后代,不允许删除
(3)堂兄弟:根据所在世代的字,可以输出该世代所有人的信息
(4)父子:可以根据姓名查询,并输出该人的父亲和孩子信息
(5)显示:以凹入表的形式显示家谱
(6)退出时,家谱信息保存到文件中
3、测试数据
题目四、哈夫曼编码-译码器
1、问题描述
打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它们作为权值,对每一个字符进行编码,编码完成后再对其编码进行译码。利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。
2、基本要求
一个完整的系统应具有以下功能,每次操作后应该输出当前结果:
(1)初始化(Initialization)。从文件 ToBeTran.txt 中读入英文字符集,统计字符出现次数,作为权值建立哈夫曼树,获得哈夫曼编码,并存放于文件hfmCode.txt 中。
(2)编码(Encoding)。利用已建好的哈夫曼编码,对文件ToBeTran.txt中的正文进行编码,然后将编码后的结果存入文件 CodeFile.txt 中。
(3)译码(Decoding)。利用哈夫曼编码将文件CodeFile.txt 中的代码进行译码,结果存入文件 TextFile.txt 中。
(4)打印哈夫曼树(TreePrinting)。将哈夫曼树以直观的方式(树或凹入表形式)显示在终端上。
3、测试数据(ToBeTran.txt)
Next morning they met at breakfast. All three were somewhat silent.Itwas as if the weight of the matter which was that day to be discussedpressed upon their spirits. The smallest of the trio, Septimus Coddbyname, who was habitually taciturn, spoke scarcely a word. He was a strangelittle man, a nineteenth century villain in a sense. He was a rogueanda vagabond, yet his one hobby, apart from his business, was a studyof
the Past, and many an authority on Eastern History would have beenastonished at the extent of his learning. He was never so happy as whenburrowing amongst ancient records, and it was mainly due to his learningin the first place, and to a somewhat singular accident in the second,that the trio were now foregathered in Singapore. His personal appearancewas a peculiar one. His height was scarcely more than four feet six inches.His face was round, and at a distance appeared almost boyish. It was onlywhen one came to look into it more closely, that it was seen to be scoredby numberless small lines. Moreover it was unadorned by either beardormoustache. His hair was grey, and was worn somewhat longer than is usual.He could speak fluently almost every language of the East, and had beenimprisoned by the Russians for sealing in prohibited waters, had beentortured by the Chinese on the Yang-tse, and, to his own unextinguishabledisgrace, flogged by the French in Tonquin. Not the least curious traitin his character was the affection he entertained for Kitwater. The pairhad been together for years, had quarrelled repeatedly, but had neverseparated. The record of their doings would form an interesting book,butfor want of space cannot be more than referred to here. Hayle had beentheir partner in not a few of their curious undertakings, for his courageand resource made him a valuable ally, though how far they trusted eachother it is impossible to say.