数据结构课程设计
一、考核方法和容
根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。
评分标准:
优秀:答辩所有问题都能答出+报告良好
或报告良好+实现“提高部分”的功能;
良好:答辩所有问题都能答出+报告一般;
或报告一般+实现“提高部分”的功能;
中等:答辩大部分问题能答出+报告良好;
及格:答辩大部分问题能答出+报告一般;
以下四种,都不及格:
1)答辩几乎答不出问题;
2)报告几乎都是代码;
3)雷同部分达到60%;
4)课设报告与数据结构和c/c++关联不大。
课设报告的装订顺序如下:
任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献;
课设报告打印要求:
B5纸打印,报告总页数控制在10—15页,报告中不能全是代码,报告中代码总量控制在3页。版式:无页眉,有页码,页码居中
字号:小四,单倍行距
字体:宋体+Times new Romar
截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图”
二、课程设计的题目
1.长整数的加法运算
2.通讯录管理系统的设计与实现——顺序表
3.广义表的应用
4.学生成绩管理系统的设计与实现
5.家谱管理系统的设计与实现
6.集合的并、交和差运算的程序
7.运动会分数统计
8.一元多项式计算器
9.文章编辑
10.哈夫曼树及其编码
11.校园导游咨询
12.通讯录管理系统的设计与实现——单链表
13.地图着色问题
14.部排序算法比较
15.火车售票系统
16.图书管理系统
客户消费积分管理系统17.
18.产品进销存管理系统
19. 迷宫求解
20.通讯录管理系统的设计与实现——哈希表---线性探测再散列
21.语言中平衡符号的问题
22.算术表达式求解
23.数制转换问题
24.九宫格问题
25.停车场管理
26.关键路径问题
27.通讯录管理系统的设计与实现——哈希表——链地址法
28.歌星大奖赛
29.病人就医管理
30.简单目录管理系统的设计与实现
31.最短旅程的求解
32.通讯录管理系统的设计与实现——哈希表——二次探测再散列
33.宿舍管理查询软件
34.表达式求值,并能给出分数,可供小学生作业练习的小程序
35.服装销售系统
36.机房机位预约模拟系统
37.歌曲信息管理系统
38.学生点名系统
39.猜数游戏
三、数据结构课程设计的具体容(想要优,必须实现“提高部分”的功能,其他,不用完成“提高部分”)
要求:全部采用数据结构课程中的容实现,采用C或C++实现,逻辑结构只能
选线性结构、树型结构、图型结构、集合结构中的一种,不能用数据库。
长整数的加法运算 1.基本要求:设计一个实现任意长的整数进行加法、减法运算的演示程序。
⑴利用链表实现长整数的存储,每个结点含一个整型变量。提醒:任何整型变量int的围是
-(2^15-1)~(2^15-1)。
⑵输入和输出形式按照中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。如:-2345,6789,3211;
⑶演示程序以用户和计算机的对话方式执行,可进行多次运算。
提高部分:增加利用顺序表存储结构来实现长整数的加、减和输出功能。
2.通讯录管理系统的设计与实现——顺序表
基本要求:利用顺序表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子、地址等信息。功能主要包括:
(1)添加信息:可新增人员信息;
(2)显示信息:可以按照手机号或联系人的姓名拼音排序显示;
(3)查找:用名字和手机号分别作为查找的依据,进行查找;
(4)编辑信息:修改完善人员信息;
(5)删除信息:删除人员信息;
(6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。
提高部分:利用外部.txt文件同步存储通讯录信息。
3.广义表的应用
基本要求:要现的广义表的建立、查找、输出、取表头和取表尾以及求深度等。
演示程序以用户和计算机的对话方式执行,并可进行多次交互。
用一个主控菜单程序控制,共分为6个子功能。(1)建立广义表(2)输出广义表(3)结点的查找(4)求广义表表头(5)求广义表表尾(6)求广义表的深度。(7)求广义表的长度。
文件输入数据信息建立广义表。.txt利用外部提高部分:
4.学生成绩管理系统的设计与实现
基本要求:能够实现对学生成绩的常用管理功能。
⑴采用一定的存储结构对学生成绩进行管理;
⑵可以进行成绩的录入、查询、修改、删除等操作;
⑶可以查询某门课程的平均分,学生的排名,不同分数段的学生人数及学生信息等;
⑷可以查询某学生的各课程分数,总分及学生的班级排名等;
⑸可以按学号排序输出全部学生的成绩信息、总分及班级排名等。
⑹演示程序以用户和计算机的对话方式进行。
提高部分:利用外部.txt文件同步存储学生成绩信息。
5.家谱管理系统的设计与实现
基本要求:设计并实现一个简单的家谱管理系统。
(1)建立家族关系树,并能存储到外部文件中。
(2)实现家族成员的添加、删除功能。
(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。
(4)按某种顺序输出家谱信息(树的遍历操作)、以树型结构输出家谱资料等功能。
(5)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。
提高部分:通过读取外部.txt文件,建立家族关系树,添加和删除后的结果同步到外部文件。6.集合的并、交和差运算的程序
基本要求:编制一个能演示执行集合的并、交和差运算的程序。
(1)集合的元素限定为大小写字母符[′a′….′z′′A′….′Z′],集合的大小n<53。
(2)集合输入的形式为一个以回车符为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去非法字符和重复字符。
(3)输出的运算结果字符串中将不含重复字符或非法字符。
(4)演示程序以用户和计算机的对话方式执行,可多次进行运算。
提高部分:采用顺表和链式两种存储结构实现。
7.运动会分数统计
基本要求:
参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,积分分别为11,7,4,2,1;有些项目只取前三名,积分分别为5,3,2。哪些项目取前五名或前三名在输入比赛结果时自己设定。写一个统计程序产生各种成绩单和得分报表。
(1)各项目结束时,输入项目编号、所有运动员的姓名、学校名称和比赛名次(成绩),并对前三名或前五名的运动员所在团体和学校,记录比赛积分;
(2)产生每个学校的成绩单,容包括该学校所取得的每项成绩的项目号、运动员姓名、名次(成绩),并统计学校总分;
(3)实现按学校编号查询学校的比赛情况,查询结果包含参加各项目的项目编号、运动员姓名、取得的名次、比赛的积分、学校总分、团体总分等;
(4)实现按项目编号查询取得前三或前五名的学校的名称;
(5)演示程序以用户和计算机的对话方式执行,可多次操作。
提高部分:实现按学校编号排序输出(至少包括学校排名,学校编号,学校名称,学校总分);按男团总分排序输出(至少包括男团排名,学校名称,男团总分);按女团总分排序输出(至少包括女团排名,学校名称,女团总分);
8.一元多项式计算器
基本要求:
设有一元多项式A(x) 和B(x).
nm123m A(x) = A+Ax+Ax+Ax+…+Ax m2m031123n B(x) = B+Bx+Bx+Bx+…+Bx n01n32试求M(x)=
A(x)+B(x)、M(x)= A(x)-B(x)和M(x)= A(x)×B(x)。nmnmmn⑴首先判定多项式是否稀疏;
中无重复阶项和无零系数项;M(x)⑵要求结果
⑶要求输出结果的升幂和降幂两种排列情况。
⑷演示程序以用户和计算机的对话方式执行,可进行多次运算。
提高部分:采用顺表和链式两种存储结构实现。
9.文章编辑
基本要求:输入一页文字,可以统计出文字、数字、空格的个数。
(1)利用外部.txt文件存储一页文章,每行最多不超过80个字符,共N行。
(2)分别统计出其中英文字母和空格数及整篇文章总字数。
(3)统计某一字符串在文章中出现的次数,并输出该次数。
(4)删除某一子串,并将后面的字符前移,对文章的修改,同步到.txt文件中。
提高部分:采用顺表和链式两种存储结构实现。
10.哈夫曼树及其编码
基本要求:设计一个利用哈夫曼算法的编码系统。
⑴初始化:利用外部.txt文件输入字符集大小n、n个字符和n个权值,建立哈夫曼树;
⑵编码:利用建好的哈夫曼树生成哈夫曼编码;
⑶输出哈夫曼树及哈夫曼编码;
⑷演示程序以用户和计算机的对话方式执行,重复地显示并处理以上三个项目,直到选择退出为
止。
假设字符集及频度如下表:
字符空格 A B C D E F G H I J K L M
频度197 64 13 22 32 103 21 15 47 57 5 1 20 32
字符N O P Q R S T U V W X Y Z
频度57 63 1 15 48 16 80 23 8 18 1 51 1
提高部分:输出树形的哈夫曼树。//////进行编码和译码11.校园导游咨询基本要求:设计一个校园导游程序,为来访的客人提供各种信息查询服务。
⑴设计华东交通大学南区的校园平面图(无向图),所含景点不少于10个。以图中顶点表示校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
⑵为来访客人提供图中任意景点相关描述信息的查询。
⑶为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短路径。
提高部分:查询任意两个景点之间的所有路径。
12.通讯录管理系统的设计与实现——单链表
基本要求:利用单链表完成通讯录的一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子、地址等信息。功能主要包括:
(1)添加信息:可新增人员信息;
(2)显示信息:可以按照手机号或联系人的姓名拼音排序显示;
(3)查找:用名字和手机号分别作为查找的依据,进行查找;
(4)编辑信息:修改完善人员信息;
(5)删除信息:删除人员信息;
(6)界面友好,演示程序以用户和计算机的对话方式进行,可反复操作。
提高部分:利用外部.txt文件同步存储通讯录信息。
13.地图着色问题
基本要求:
设计地图着色软件,对地图中11个地级市进行着色,要求相邻地级市所使用的颜色不同,并保证使用的颜色最少。
⑴地图采用图型数据结构,每个地级市为一个节点,边表示对应的两个地级市相邻。
⑵设计着色算法,保证邻接点不是同一种颜色。
⑶输出着色结果。
⑷演示程序以用户和计算机的对话方式进行。
提高部分:利用外部.txt文件输入地图数据,并把着色结果追加到.txt文件。
14.部排序算法比较
基本要求:试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。起泡排序、希尔排序、可采用的方法有插入排序、(提示,⑴至少采用三种方法实现对同一组数据的排序
快速排序、选择排序、堆排序、归并排序)。
⑵待排序表的表长不小于100,其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。
⑶最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。
⑷演示程序以用户和计算机的对话方式进行。
提高部分:利用外部.txt文件存储各次排序的数据、排序的结果、结果的简单分析。
15.火车售票系统