数据结构课程设计题目

数据结构课程设计题目
数据结构课程设计题目

数据结构课程设计

一、考核方法与内容

根据课程设计过程中学生得学生态度、题目完成情况、课程设计报告书得质量与回答问题得情况等按照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^151)~(2^151)。

⑵输入与输出形式按照中国对于长整数得表示习惯,每四位一组,组间用逗号隔开。如: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 m(x) 与B n(x)、

A m(x) = A0+A1x1+A2x2+A3x3+… +A m x m

B n(x) = B0+B1x1+B2x2+B3x3+… +B n x n

试求M(x)= A m(x)+B n(x)、M(x)= A m(x)B n(x)与M(x)= A m(x)×B n(x)。

⑴首先判定多项式就是否稀疏;

⑵要求结果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、火车售票系统

基本要求:

通过此系统可以实现售票、退票、车票剩余情况查询等功能。每张车票包含车次、车厢、座位信息。

⑴在售票、退票、查询剩余票等环节中,都必须显示出车票得信息,即车次、车厢、座位情况。

⑵为简单起见,在此假设所有出售得车票均为同一车次得车票。同一车次,有多个车厢,每个车厢有多个座位。

⑶购票时,可以显示余票信息,并可以选择买哪张票。

⑷退票时,必须就是车站售出得车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。

⑸演示程序以用户与计算机得对话方式进行。

提高部分:利用外部、txt文件同步存储车票得余票与已售票信息。

16、图书管理系统

基本要求:设计一个计算机管理系统完成图书管理基本业务。

⑴每种书得登记内容包括书号、书名、著作者、现存量、库存量与借阅信息;

⑵对书号建立索引顺序表以提高查找效率;

⑶系统主要功能如下:

①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

②借阅:如果一种书得现存量大于0,则借出一本,登记借阅者得书证号与归还期限,改变现存量;

③归还:注销对借阅者得登记,改变该书得现存量。

⑷演示程序以用户与计算机得对话方式进行。

提高部分:利用外部、txt文件同步存储图书信息。

17、客户消费积分管理系统

基本要求:针对客户得消费情况,进行客户管理,根据客户得消费积分对客户实行不同程度得打折优惠。

⑴采用一定得存储结构进行客户信息得存储;

⑵对客户得信息可以进行修改、删除、添加;

⑶能够根据消费情况进行客户积分得累加;

⑷根据积分情况,对客户实行不同程度得打折优惠;

⑸演示程序以用户与计算机得对话方式进行。

提高部分:利用外部、txt文件同步存储客户与积分信息。

18、产品进销存管理系统

基本要求:针对某一种行业得库房产品进行进销存情况得管理。

⑴采用一定得存储结构对库房得货品及其数量进行分类管理;

⑵可以实现进库房时,产品类得添加、产品得添加、产品数量得添加;

⑶能够查询库房每种产品得总量、进货日期、销出数量、销售时间等;

⑷可以实现产品出库房时,产品数量修改以及达到临界值提醒得功能;

⑸演示程序以用户与计算机得对话方式进行。

提高部分:利用外部、txt文件同步存储库房产品得详细信息。

19、迷宫求解

基本要求:以一个m*n得长方阵表示迷宫,设置两个门,一个入口,另一个就是出口。设计一个程序,对任意随机生成得迷宫,求出一条从入口到出口得通路,或得出没有通路得结论。

⑴首先实现一个栈类型,然后编写一个求解迷宫得非递归程序。

⑵求得得通路以三元组(i,j,d)得形式输出,其中(i,j)指示迷宫中得一个坐标,d表示走到下一坐标得方向。

⑶输出迷宫图,以#号表示障碍物,‘ ’空格表示非障碍物,*表示通路。

提高部分:同时实现递归与非递归两种求解算法。

20、通讯录管理系统得设计与实现——哈希表线性探测再散列

基本要求:利用哈希表完成通讯录得一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码与用户名为关键字建立不同得哈希表。功能主要包括:

(1)添加信息:可新增人员信息;

(2)显示信息:按照哈希表得存储位置信息排序显示;

(3)查找:用名字与手机号分别作为查找得依据,进行查找;

(4)编辑信息:修改完善人员信息;

(5)删除信息:删除人员信息;

(6)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步存储通讯录信息。

21、语言中平衡符号得问题

基本要求:设C语言程序代码中包含如下符号/* */,,[],{},编写程序检测一段C代码中上述符号就是否正确,并指出错在哪里。

提高部分:建立外部文件存储需要检测得c代码。

22、算术表达式求解

基本要求:给定一个算术表达式,通过程序求出最后得结果。

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

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

(3)能够判断算术表达式正确与否;对于错误表达式给出提示;对于正确得表达式给出最后得结果,并可以显示运算得整个过程。

(4)演示程序以用户与计算机得对话方式进行。

提高部分:建立外部、txt文件存储全部运算过程。

23、数制转换问题

基本要求:任意给定一个M进制得数x,实现如下要求:

(1)求出此数x得10进制值;

(2)实现对X向任意得一个非M进制数得转换;

(3)至少用两种或两种以上得方法实现上述要求(用栈解决,用数组解决,其它方法解决);

(4)提供交互界面,以便人机交互。

提高部分:必须实现进制M大于16得情况。

24、九宫格问题

基本要求:在一个3×3得九宫格中有1—8这8个数字,混乱排序,一个空格随机地摆放在一个格子里,九宫格布局随机生成。现要求将该九宫格调整为正常按逆序得格式。调整得规则就是:每次只能将与空格(上、下或左、右)相邻得一个数字平移到空格中。编程实现这一问题得求解,并输出求解过程。

提高部分:利用外部、txt文件同步记录九宫格得初始布局及求解过程。

25、停车场管理

基本要求:设停车场内只有一个可停放n辆汽车得狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间得先后顺序,依次由北向南排列(大门在最南端,最先到达得第一辆车停放在车场得最北端);若车场内已停满n辆汽车,则后来得汽车只能在门外得便道上依次等候,一旦有车开走,则排在便道上得第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入得车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场;每辆停放在车场得车在它离开停车场时必须按它停留得时间长短交纳费用。

(1)为停车场编制按上述要求进行管理得模拟程序。

(2)可随时查询停车场内及便道得停车情况。

(3)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步记录所有数据。

26、关键路径问题

基本要求:

设计一个程序,求出完成整项工程至少需要多少时间,以及整项工程中得关键活动。

(1)从键盘输入一个描述工程得AOE网,并判断其就是否能够顺利进行。

(2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附得两个顶点、最早发生时间、最迟发生时间。

(3) 界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步记录所有数据。

27、通讯录管理系统得设计与实现——哈希表——链地址法

基本要求:利用哈希表完成通讯录得一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码与用户名为关键字建立不同得哈希表。功能主要包括:

(1)添加信息:可新增人员信息;

(2)显示信息:按照哈希表得存储位置信息排序显示;

(3)查找:用名字与手机号分别作为查找得依据,进行查找;

(4)编辑信息:修改完善人员信息;

(5)删除信息:删除人员信息;

(6)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步存储通讯录信息。

28、歌星大奖赛

基本要求:

(1)在歌星大奖赛中,每位歌手演唱完,有10个评委为参赛得选手打分,分数为1~100分。选手最后得分为:去掉一个最高分与一个最低分后其余8个分数得平均值。歌手得人数在大奖赛开始时键盘输入。

(2)同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接近平均分)与最不公平(即与平均分得差距最大)得评委。

(3)保存每位歌星比赛时得所有评委分数,包括最高分,最低分与最后得分,并在比赛过程得任意时刻,都可对当前比赛结果排序输出;

(4)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步记录所有数据。

29、病人就医管理

基本要求:编写一个程序实现就医管理。在病人就医过程中,主要发生三件事:

⑴预检,分科室,挂号。不同科室都就是从1号开始挂号。如,内科1号,外科1号,眼科1号等;

⑵病人到达诊室,将病历本交给护士,排到等待队列中候诊,不同科室,不同队列。

⑶护士从等待队列中取出一位病人得病历,该病人进入诊室就诊。

程序采用菜单方式,其选项及功能说明如下:

⑴挂号预检,分科室,生成就诊号。

⑵排队输入病人得就诊号,加入到不同科室得病人排队队列中。

⑶就诊病人排队队列中最前面得病人就诊,并将其从队列中删除。

⑷查瞧排队从队首到队尾列出所有得排队病人得病历号。

⑸下班退出运行。

提高部分:利用外部、txt文件同步记录所有就诊数据。

30、简单目录管理系统得设计与实现

基本要求:利用树型结构设计并实现一个简单得目录管理系统。功能主要包括:

(1)系统可以对所有目录进行管理,类似C盘、D盘、E盘;

(2)实现子目录与文件得新建、删除、查询、子目录与文件名称修改等功能;

(3)按某种顺序输出所有子目录及文件信息(树得遍历操作);

提高部分:以树型结构输出所有子目录与文件得信息。

31、最短旅程得求解

基本要求:有n个城市(编号从1到n),它们之间通过双向得道路相连。那里只有n-1条道路,但就是,它们得连接方式使得从任意城市都可以走到其她得任何城市。一天,某个游客到了编号为k得城市。她计划从城市k开始,游遍所有得城市m1,m2,m3……,mi,…(不一定要按这个顺序旅游)。每个城市mi都就是不同得,并且,也与k不同。她想要以最短得路程旅行完所有得城市(从城市k开始)。求旅游完上述得城市最短需要多少路程。

提高部分:输出最短旅程得详细旅游路线。

32、通讯录管理系统得设计与实现——哈希表——二次探测再散列

基本要求:利用哈希表完成通讯录得一般性管理工作。其中,每条记录至少包括姓名、手机号、QQ、电子邮箱、地址等信息。分别以电话号码与用户名为关键字建立不同得哈希表。功能主要包括:

(1)添加信息:可新增人员信息;

(2)显示信息:按照哈希表得存储位置信息排序显示;

(3)查找:用名字与手机号分别作为查找得依据,进行查找;

(4)编辑信息:修改完善人员信息;

(5)删除信息:删除人员信息;

(6)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步存储通讯录信息。

33、宿舍管理查询软件

基本要求:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:

(1)采用交互工作方式;

(2)可以增加、删除、修改信息;

(3)可实现按关键字(姓名、学号、房号)进行排序显示;

(4) 查询:a、按姓名查询、b、按学号查询、c、按房号查询,输出任一查询结果(可以连续操作)。

提高部分:建立外部、txt文件,同步宿舍全部人员得数据,并按关键字房号排序存储。

34、表达式求值,并能给出分数,可供小学生作业练习得小程序

基本要求:

⑴建立试题库文件,从文件中,随机抽取n个题目;

⑵题目涉及加减乘除,带括号得混合运算;

⑶随时可以退出程序;

⑷保留历史分数,能回顾历史,给出与历史分数比较后得评价;

⑸界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:保存所有曾经练习过得题目、输入得答案及对错到外部、txt文件。

35、服装销售系统

基本要求:包含三类用户:管理员、店长、销售员;

(1)管理员功能:自身密码修改;其她用户得添加、删除;用户信息得修改、统计;商品信息得添加、修改、

删除、查找、统计。

(2)店长功能:登录、注销、自身密码修改、自身信息修改;商品信息得修改、统计;查瞧日报表、月报表、商品销售量报表、营业员业绩报表;查找、浏览、修改商品储备信息。

(3)销售员功能:商品浏览、查找、出售商品,以及查瞧自己本日报表、本月报表。

(4)界面友好,演示程序以用户与计算机得对话方式进行,可反复操作。

提高部分:利用外部、txt文件同步记录所有数据。

36、机房机位预约模拟系统

基本要求:20台机器,从早8点到晚8点,每两个小时一个时间段。实现如下功能:

(1)查询,根据输入时间,输出当前全部机位信息与可用空闲机位信息;

(2)机位预定,根据输入得日期与时间段查询就是否有空机位,若有则预约,若无则提供最近时间段得空机信息。另外,如果用户要求在非空时间上机,则将用户信息插入该时间段得等待列表。

(3)退出预定,根据输入得时间撤销该时间得预定。

(4)查询就是否有等待信息,若有则按顺序显示联系方式,若无则显示提示信息。

提高部分:利用外部、txt文件同步记录所有数据。

37、歌曲信息管理系统

基本要求:

(1)歌曲信息包括歌曲名、作者、演唱者、发行年月等。

(2)可以对歌曲信息进行输入、删除、编辑、浏览。

(3)可以根据歌曲名、作者、演唱者查询歌曲信息。

(4)提供按作者分组显示功能。

提高部分:利用外部、txt文件同步记录所有数据。

38、学生点名系统

基本要求:

(1)读入外部文件存储得学生信息,包括姓名,学号;

(2)可选择学生班级,对不同班级得学生分别进行点名;

(3)对学生按在班编号显示名字,进行点名,接收键盘输入得点名时间与能代表缺课、请假、正常得点名信息;

(4)查询各班学生得历史点名信息。

(5)提供交互界面,以便人机交互。

提高部分:利用外部、txt文件同步记录所有数据。

39、猜数游戏

基本要求:开始游戏后,输入用户名,由计算机随机“想”一个数,并给出数值范围,请人猜,如果人猜对了,则一局游戏结束,进入下一局。否则,计算机给出提示,告诉人所猜得数就是太大还就是太小,直到人猜对为止。计算机记录游戏者每次猜得次数,以此反映出猜数者“猜”得水平。

(1)把猜数记录最好得前五名得数据保存在一定得存储结构里,包括游戏者得名字,成绩与排名,并排序输出,每个用户只取最好成绩存储。

(2)提供交互界面,以便人机交互。

提高部分:利用外部、txt文件同步记录所有数据。

四、教学目得与要求

课程设计就是加强学生实践能力得一个强有力手段。综合课设1主要针对数据结构与c/c++语言开展得实践性课程。要求学生掌握数据结构得应用、算法得编写、类C语言得算法转换成C(C++)程序并上机调试得基本方法。课程设计要求学生在完成程序设计得同时能够写出比较规范得课程设计报告。培养学生综合运用所学理论知识解决复杂实际问题得实践能力、研究性学习能力与团队合作能力。

五、课程设计要求

1、选好题目:每题一人,每班每个题目只允许一人选做,学习委员将选题情况在课设第一天统计上交。

2、课设报告独立思考,独立完成:课设报告出现雷同超过60%,不论什么原因,一律不及格。

3、做好上机准备:每次上机前,要事先编制好准备调试得程序,认真想好调试步骤与有关环境得设置方法,准备好有关得文件。

4、设计要点:

⑴需求分析:

在该部分中叙述总共几个模块,每个模块得功能要求。

⑵系统设计

总体设计:定义某个数据结构得抽象数据类型及其她算法得功能说明。

详细设计:在此定义存储结构,每个部分得算法设计说明(建议描述算法采用流程图)。

⑶编码实现

各个算法实现得源程序,对每个题目要有相应得源程序(每个功能模块采用不同得函数实现)。源程序要按照程序得规则来编写,要结构清晰,重点函数得重点变量,重点功能部分要加上清晰得程序注释。

程序能够运行,要有基本得容错功能,尽量避免出现操作失误时出现死循环。

⑷调试分析

给出实现功能得一组或多组测试数据,程序调试后,将按照此测试数据进行测试得结果列出来。时间复杂度分析,每个模块设计与调试时存在问题得思考(问题就是哪些?问题如何解决?),算法得改进设想。

⑸课设总结:课程设计过程得收获、遇到问题、遇到问题解决问题过程得思考、程序调试能力得思考、对数据结构这门课程得思考、在课程设计过程中对《数据结构》课程得认识等内容。

5、实现得结果必须进行检查与演示;程序源代码与程序得说明文件必须上交,作为考核内容得一部分;(上交时文件夹得取名规则为:“课设题目(***设计完成)”,如“资源管理系统得设计与实现(张三设计完成)”。该文件夹下包括三个目录:“源代码”、“可执行文件”、“张三_课程设计报告”。由学习委员按规定时间统一上交)。

6、报告提交

形式: 纸介质(要求B5纸张打印,加封皮)与电子文档。

数据结构课程设计参考题目

数据结构课程设计题目 数据结构课程设计题目(大题目).doc 一、公司销售管理系统 项目开发基本要求 1.客户信息管理:对客户的基本信息进行添加、修改和删除。 2.产品信息管理:对产品的基本信息进行添加、修改和删除。 3.供应商信息管理:对供应商的基本信息进行添加、修改和删除。 4.订单信息管理:对订单的基本信息进行添加、修改和删除。 二、高校科研管理系统 系统主要用于帮助高校或科研单位管理和维护各项科研相关资料 项目开发基本要求 1.系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心和一般四种情况。 3.项目参加人员管理模块包括:显示添加修改删除查询。 4.项目基本情况模块包括:显示添加修改删除查询。 5.项目获奖情况模块包括:显示添加修改删除查询。 6.期刊论文管理模块包括:显示添加修改删除查询。 7.著作管理模块包括:显示添加修改删除查询。 8.科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量的计算和统计。 9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分的计算和统计。 三、网络五子棋对战 四、不同排序算法模拟 五、科学计算器 数据结构课程设计题目 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)能统计各学校总分,

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

数据结构课程设计

1.一元稀疏多项式计算器 [问题描述] 设计一个一元稀疏多项式简单计算器。 [基本要求] 输入并建立多项式; 输出多项式,输出形式为整数序列:n, c1, e1, c2, e2,……, cn, en ,其中n是多项式的项数,ci, ei分别是第i项的系数和指数,序列按指数降序排序; 多项式a和b相加,建立多项式a+b; 多项式a和b相减,建立多项式a-b; [测试数据] (2x+5x8-3.1x11)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9-x+12x-3) (1+x+x2+x3+x4+x5)+(-x3-x4)=(x5+x2+x+1) (x+x3)+(-x-x3)=0 (x+x2+x3)+0=(x3+x2+x) [实现提示] 用带头结点的单链表存储多项式,多项式的项数存放在头结点中。 2.背包问题的求解 [问题描述] 假设有一个能装入总体积为T的背包和n件体积分别为w1, w2, …,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积为{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)、(1,4,5)、(8,2)、(3,5,2) [实现提示] 可利用回溯法的设计思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品转入背包,假设已选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。 由于回溯求解的规则是“后进先出”因此自然要用到栈。 3.完全二叉树判断 用一个二叉链表存储的二叉树,判断其是否是完全二叉树。 4.最小生成树求解(1人) 任意创建一个图,利用克鲁斯卡尔算法,求出该图的最小生成树。 5.最小生成树求解(1人) 任意创建一个图,利用普里姆算法,求出该图的最小生成树。 6.树状显示二叉树 编写函数displaytree(二叉树的根指针,数据值宽度,屏幕的宽度)输出树的直观示意图。输出的二叉树是垂直打印的,同层的节点在同一行上。 [问题描述] 假设数据宽度datawidth=2,而屏幕宽度screenwidth为64=26,假设节点的输出位置用 (层号,须打印的空格数)来界定。 第0层:根在(0,32)处输出;

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构课程设计题目选择

数据结构课程设计题目 说明: (1)选用语言:C或Java语言; (2)需要注明3人(可少于3人)小组各自承担和完成的任务(据此给予成绩); (3)如下带“*”的题目,“*”越多,难度越大一些,分值权重更高---要得到更高分数,推荐选择。 要求: (1) 用中文给出设计说明书(含重要子函数的流程图); (2) 给出测试通过、能实现相应功能的源代码; (3) 测试报告。 0、小学数学四则混合运算试题出题、评价、题库自动生成与组卷系统(****)---已经有2组选择 任务: (1)将随机给出的四则混合运算表达式显示在计算机显示器上,要求应试者给出答案;并且使用堆栈对该表达式求值,同给出的答案进行比较,判断 正确和错误。给出鼓励信息和嘉奖信息; (2)保存多人在不同时间应试的题目与他(或她)给出的答案,评价所出题目的难易程度(通过多人回答正确与否的情况给出),形成题库; (3)按照用户给出的题目难易程度指标(例如让50人的得分满足怎样的正态分布,如90分以上10%,80分以上30%,70分以上30%,60分以上20%,60分 以下10%),从题库中抽取不同的题目,组成试卷。 要求:随机产生的题目中,参加运算的数据随机、运算符随机。题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 1、集合的并、交和差运算---已经有1组选择 任务:编制一个能演示执行集合的并、交和差运算的程序。 要求: (1) 集合的元素限定为小写字母字符[…a?..?z?] 。 (2) 演示程序以用户和计算机的对话方式执行。 实现提示:以链表表示集合。 选作内容: (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。 2、停车场管理------已经有2组选择 任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。 3、哈夫曼码的编/译码系统(**)---已经有1组选择

数据结构课程设计

题目: 学院: 专业班级: 学生姓名: 指导教师: 2016 年06 月2 9日

目录 一、课程设计目的 (3) 二、课程设计步骤 (3) 三、课程设计内容 (4) 四、课程设计报告 (6) 五、提交材料 (6) 六、考核方式与评分标准 (7) 七、参考文献 (8) 附录1 齐齐哈尔大学软件工程系课程设计说明书(报告)撰写规范 (9)

一、课程设计目的及要求 《数据结构与算法分析》课程设计培养计算机专业的学生的算法程序设计能力。通过上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对数据结构课程和算法的理解。使学生更好地掌握数据结构的基本概念、基本原理、及基本算法,具有分析算法、设计算法、构造和开发较复杂算法的基本能力。 要求学生能综合运用《数据结构与算法分析》的相关知识,培养学生上机解决一些与实际应用结合紧密的、规模较大的问题的能力,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析实际问题的能力并提高C语言编程技巧,培养良好的编程风格。 课程设计要求独立完成,题目自选(参考题目见三,也可自拟),但需要老师确认(6月16日前定题),一人一题,要求程序有能采用交互式工作方式的界面进行功能的选择,只能用文件存储数据和处理数据不能使用数据库。要求在教学周的第18周前完成。 二、课程设计步骤 随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加。然而,编制一个10000行的程序的难度绝不仅仅是一个5000行的程序的两倍,因此软件开发需要系统的方法。一种常用的软件开发方法,是将软件开发过程分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的课程设计的复杂度远不如(从实际问题中提出来的)一个“真正的”软件,但为了培养一个软件工作者所应具备的科学工作的方法和作风,完成课程设计的应有如下的5个步骤: 1.问题分析和任务定义 通常,课程设计题目的陈述比较简洁,或者说是有模棱两可的含义。因此,在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么,限制条件是什么。注意:本步骤强调的是做什么,而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等。这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式输入的数据。 2.数据类型和系统设计 在设计这一步骤中需分逻辑设计和详细设计两步实现。逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各过程和函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。作为逻辑设计的结果,应写出每个

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

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

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

数据结构课程设计题目

《数据结构》课程设计题目 1. 排序算法的性能分析 问题描述 设计一个测试程序,比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 基本要求 (1)对冒泡排序、直接排序、选择排序、箱子排序、堆排序、快速排序及归并排序算法进行比较。 (2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动)。 (3)输出比较结果。 选做内容 (1)对不同表长进行比较。 (2)验证各算法的稳定性。 (3)输出界面的优化。 2. 排序算法思想的可视化演示—1 基本要求 排序数据随机产生,针对随机案例,对冒泡排序、箱子排序、堆排序、归并算法,提供排序执行过程的动态图形演示。 3. 排序算法思想的可视化演示—2 基本要求 排序数据随机产生,针对随机案例,,对插入排序、选择排序、基数排序、快速排序算法,提供排序执行过程的动态图形演示。 4. 线性表的实现与分析 基本要求 ①设计并实现线性表。 ②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储方 式 ③针对随机产生的线性表实例,实现线性表的插入、删除、搜索操作动态演示(图 形演示)。 5. 等价类实现及其应用 问题描述:某工厂有一台机器能够执行n个任务,任务i的释放时间为r i(是一个整数),最后期限为d i(也是整数)。在该机上完成每个任务都需要一个单元的时间。一种可行的调

度方案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。一个时间段不允许分配给多个任务。 基本要求: 使用等价类实现以上机器调度问题。 等价类分别采取两种数据结构实现。 6. 一元稀疏多项式计算器 问题描述 设计一个一元稀疏多项式简单计算器。 基本要求 一元稀疏多项式简单计算器的基本功能是: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序; (3)多项式a和b相加,建立多项式a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做) 7. 长整数的代数计算 问题描述 应用线性数据结构解决长整数的计算问题。设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘、除等基本代数运算。 基本要求 ①长整数长度在一百位以上。 ②实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, a?b mod n, a÷b mod n。 ③输入输出均在文件中。 ④分析算法的时空复杂性。 8. 敢死队问题。 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。 9. 简单计算器

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

数据结构课程设计内容

(一)课程设计要求 1.分组要求 每个人一个小组进行分组。 2.实训目的 (1)熟悉课程所学的内容,包括线性表、链表、串,栈,队列,树,图,查找和排序; (2)学生能够按照软件工程的规范要求,能够运用软件工程的基本概念、方法与过程来进行软件的设计与开发。 3.课程设计要求 (1)每组学生在以下项目中选择一项完成即可; (2)编写程序要严格按照程序编程规范进行代码编写; (2)必须按照个体软件的过程,真实地采集数据、填写相关的表格、编写有关的文档; (3)按照老师的要求,每个人必须独立完成; (4)按照实训的时间安排进行实训,实训结束后提交有关的表格与文档。(二)课程设计题目 1.线性表 (1)实验目的:利用顺序结构和链式结构实现线性表的基本运算。 (2)实验要求:对于顺序存储结构的线性表,验证其插入、删除操作;对以链式存储结构存储的线性表,验证其插入、删除、查找操作。 2.火车列车调度问题 (1)实验目的:利用顺序结构和链式结构实现栈和队列的基本运算 (2)实验要求:栈操作的验证火车调度;对于顺序队列、链队列的基本操作进行验证; 3.稀疏矩阵 (1)实验目的:利用三元组和十字链表实现稀疏矩阵的有关算法 (2)实验要求:以三元组作为存储结构实现稀疏矩阵的转置

4.二叉树 (1)实验目的:利用二叉链表实现二叉树的建立和遍历 (2)实验要求:以二叉链表作为存储结构建立二叉树;以二叉链表作为存储结构实现先序、中序和后序遍历二叉树 5.图的遍历和最短路径问题 (1)实验目的:在图的两种存储结构基础上实现图的遍历 (2)实验要求:采用连通无向图作为遍历对象对以邻接矩阵为存储结构的图实现深度优先搜索和广度搜索遍历;采用连通无向图作为遍历对象,建立邻接表时顶点对序号从大到小输入,对以邻接表为存储结构的图实现深度优先搜索和广度优先搜索遍历; 6.排序与查找 (1)实验目的:验证各排序与查找算法 (2)实验要求:编程实现排序与查找算法,包括直接插入排序、选择和起泡排序、折半查找 7.综合课程设计1 (1)实验目的:综合应用所学知识;培养系统设计的整体思想;提高编写程序、调试程序的能力;学习系统测试的方法;学习编写技术文档; (2)实验要求:约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m是停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列; 8.综合课程设计2 (1)实验目的:综合应用所学知识;培养系统设计的整体思想;提高编写程序、调试程序的能力;学习系统测试的方法;学习编写技术文档; (2)实验要求:设计一个校园导游程序,为来访的客人提供各种信息查询

数据结构课程设计题目表

《数据结构》课程设计课题表 课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。 要求: (1)所设计的数据结构应尽可能节省存储空间。 (2)程序的运行时间应尽可能少。 课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。 要求:要检查有关运算的条件,并对错误的条件产生报警。 课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求: (1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题7:选择合适的存储结构表示广义表,并能实现下列运算要求: (1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

数据结构课程设计题目

数据结构课程设计 一、考核方法和容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照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.家谱管理系统的设计与实现

相关文档
最新文档