数据结构课程设计题目 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程设计
一、数据结构课程设计的目的与要求
1、目的:
(1)要求学生达到熟练掌握C语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题。
2、基本要求:
(1)要求利用VC++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的结构体层次;
(3)在系统的设计中,至少要做到基本管理要求。
(4)学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。
(5)学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。
(6)独立思考,课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
(7)课程设计按照教学要求需要一周时间完成,一周中每天(按每周5天)至少要上3-4小时的机来调试C语言设计的程序,总共至少要上机调试程序18小时。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据排序名次评定奖学金。
4、写出设计说明书。
数据结构是一门涉及多门课程的课程,难度较大,需要较好的C语言的程序设计和调试能力,如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获,几分投入几分收获,努力吧,同学们,不在此时更待何时!
二、数据结构课程设计题目
1、设计一个一元多项式简单计算器。要求:(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)计算多项式的值;(6)计算器的仿真界面。
2、编写一个程序,反映病人到医院看病,排队看医生的情况。病人排队过程中
主要重复两件事:(1)病人将病历卡交给护士,排队等候;(2)护士从队列中取出病人的病历卡,该病人就诊。
要求:模拟病人就诊的这一过程。
(1)排队—输入排队病人的挂号号码,加入排队队列中;
(2)就诊---排在最前的病人就诊,并将其从队列中删除;
(3)查看排队---从队首到队尾列出所有排队病人的挂号号码;
(4)查询---在队列中查询某个号码之前还有几位。
(5)退出运行。
3、编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求
每个皇后不同行、不同列、不同左右对角线。要求皇后个数n由用户输入(n<50)。
4、迷宫问题。以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和
障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,获得出没有通路的结论。
5、家谱管理系统设计与实现。编制一个家谱资料管理软件,实现对一个家族所
有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等操作,并要求:(1)记录输入;(2)查询某人的所有子孙,查询某人的所有祖先,查询某人是这个家族的第几代,查询某人有几个兄弟等。
6、背包问题求解。设有不同价值、不同重量的物品n件,求从这n件物品中选
取一部分物品,使选中物品的总重量不超过指定的限制重量,并且选中物品的价值之和为最大。
7、图的基本操作与实现。要求:(1)输入含n个顶点和e条边的图;(2)求每个顶点的度,输出结果;(3)指定任意顶点x为初始顶点,对图作DFS遍历,输出DFS顶点序列(提示使用一个栈实现DFS);(4)指定任意顶点x为初始顶点,对图作bFS遍历,输出BFS顶点序列(提示使用一个队列实现DFS);(5)输入顶点x,查找图,若存在含x的顶点,则删除该顶点及与之相关的边,并作DFS遍历,否则输出信息“无x”;(6)判断图是否连通,输出信息“YES/NO”;如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图的邻接表,反之亦。然。
8、内部排序教学软件的总体目标:利用所学C语言和数据结构的相关知识,开发一个具有良好人机界面的内部排序教学软件,实现各种内部排序,并能使用户通过其显示结果对每种排序方法的性能有一个直观的了解,从而达到教学的目的。
基本功能如下:
(1)界面友好,易于操作。采用菜单或其它人机对话方式进行选择。
(2)实现各种内部排序。包括冒泡排序,直接插入排序,直接选择排序,希尔排序,快速排序,堆排序,归并排序和基数排序。
(3)待排序的元素的关键字为整数。可用随机数据和用户输入数据作测试比较。比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换以3次计)。
(4)演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标
的列表,以便比较各种排序的优劣。
9、查找教学软件的总体目标:在VC++ 的开发环境下,利用所学C语言和数据
结构的相关知识,开发一个具有良好人机界面的查找教学软件,实现各种查找,并能使用户通过其显示结果对每种查找方法的性能有一个直观的了解,从而达到教学的目的。
基本功能如下:
(1)界面友好,易于操作。采用菜单或其它人机对话方式进行选择。
(2)实现各种查找。包括顺序查找,折半查找,二叉排序树,哈希表查找。
(3)演示程序以人机对话的形式进行。每次测试完毕显示各种指标的列表,以便比较各种查找方法的优劣。
10、二叉排序树与平衡二叉树的实现
(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;
(2)对二叉排序树T作中序遍历,输出结果;
(3)计算二叉排序树T查找成功的平均查找长度,输出结果;
(4)输入元素x,查找二叉排序树T,若存在含x的结点,则删该结点,并作中序
遍历(执行操作2);否则输出信息“无x”;
(5)用数列L,生成平衡的二叉排序树BT:当插入新元素之后,发现当前的二
叉排序树BT不是平衡的二叉排序树,则立即将它转换成新的平衡的二叉
排序树BT;
(6)计算平衡的二叉排序树BT的平均查找长度,输出结果。
11、用C语言设计一个日历系统
功能要求:
1)输入任一年将显示出该年的所有月份日期,对应的星期
2)注意闰年情况
其显示格式要求如下:
1)份:中文英文都可以,
2)下一行显示星期,从周日到周六,中英文都可以
3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐
当输入2004显示如下:
Input the year:2004
Input the file name:a
The calendar of the year 2004.