2011《数据结构》课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据结构》课程设计要求
一、本课程的地位、目的
《数据结构》课程设计是计算机科学技术专业集中实践性环节之一,是学习完《数据结构》课程后进行的一次全面的综合练习。

开设该课程设计的主要目的是:
1. 使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。

2. 使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。

3. 使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。

二、课程设计的内容和要求
根据课程设计的时间和个人能力,在老师的协助下选择适当难度的课程设计课题,用C/C++语言实现。

具体内容如下:
1、需求分析
以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:
输入的形式,输出的形式和值的范围;程序所能达到的功能;测试的数据。

2、概要设计
说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块
之间的层次(调用)关系。

3、详细设计
实现概要设计中定义的所有数据类型,对每个操作只需要写出伪代码算法,画出函数的调用关系图。

4、调试分析
调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;算法的时空分析(包括基本操作和主要算法的时空复杂度的分析)和改进设想;经验和体会等
5、用户使用说明
说明用户如何使用你编写的程序,详细列出每一步的操作步骤。

6、测试结果
列出测试结果,包括输入的数据和相应的输出数据。

7、附录
详细注释的源程序。

具体要求如下:
1. 巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。

2. 培养学生自学参考书籍,查阅手册、图表和文献资料的能力。

3. 通过实际课程设计,初步掌握简单软件的分析方法和设计方法。

4. 了解与课程有关的工程技术规范,能正确解释和分析实验结果。

三、与其它课程的联系
先修课程为《C语言程序设计》和《数据结构》等。

四、课程设计报告撰写
课程设计报告包括:封面、任务书、目录、正文和参考文献等。

正文包括以下几方面的内容:
1、需求分析
2、概要设计
3、详细设计
4、调试分析
5、测试结果
6、体会与总结
详细内容见后面附录2
五、课程题目安排
课程题目共13道题目,题目的详细内容见后面附录1。

第1题学生证管理程序
第2题车票管理程序设计
第3题学分管理程序
第4题学生作业完成情况管理程序
第5题职工工资信息管理系统
第6题学生宿舍管理
第7题人事管理程序
第8题通讯录的管理系统
第9题集合的交并差运算
第10题文本编辑
第11题校园导游图
第12题教学计划编排
第13题矩阵运算
注意:四人一组,选一个题目
六、考核方式和成绩评定
根据学生完成任务的情况(必须进行系统演示)、课程设计报告书的质量和课程设计过程中的工作态度等按照加权综合打分。

成绩评定实行优秀、良好、中等、及格和不及格五个等级。

不及格者需重新做课程设计
考核分为三个部分:
●出勤情况(占25%)如果考勤不及格,可直接核定为不及格等次;
●程序运行及答辩情况(占50%):运行程序,由老师检查运行情况,并回答老师提出
的问题;
●课程设计报告书(占25%):是否按规定书写课程设计报告书的各项内容。

附录1 课程设计题目
第1题学生证管理程序
【题目描述】
请设计一个学生证的管理程序,该程序应该具有下列功能:
(1) 通过键盘输入某位学生的学生证信息。

学生证包含的信息请参看自己的学生证;
(2) 给定学号,显示某位学生的学生证信息;
(3) 给定某个班级的班号,显示该班所有学生的学生证信息;
(4) 给定某位学生的学号,修改该学生的学生证信息;
(5) 给定某位学生的学号,删除该学生的学生证信息;
(6) 提供一些统计各类信息的功能或排序功能。

【题目要求】
(1)存储结构采用顺序表或链表;
(2)用本学期所学算法实现各模块;
(3)主函数设计一个菜单,通过菜单进入各模块测试。

第2题车票管理程序
【题目描述】
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。


班次发车时间起点站终点站行车时间额定载量已定票人数
1 8:00 凤阳合肥
2 45 30
2 6:30 凤阳蚌埠0.5 40 40
3 7:00 凤阳定远 1 40 20
4 10:00 凤阳南京 3 40 2
能提供下列服务:
(1)录入班次信息(信息用文件保存),可不定时地增加班次数据
(2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

(3)查询路线:可按班次号查询,可按终点站查询
(4)售票和退票功能
A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数(5)根据输入班次,删除某班次。

(6)按发车时间排序。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第3题学分管理程序
【题目描述】
请设计一个学生的学分管理程序。

假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分、实验性课程20学分才能够毕业。

因此在管理学分时,要考虑每个学分所属于的课程类别。

该程序应该具有下列功能:
(1) 通过键盘输入某位学生的学分;
(2) 给定学号,显示某位学生的学分完成情况;
(3) 给定某个班级的班号,显示该班所有学生学分完成情况;
(4) 给定某位学生的学号,修改该学生的学分信息;
(5) 按照某类课程的学分高低进行排序;
(6) 提供一些统计各类信息的功能。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第4题学生作业完成情况管理程序
【题目描述】
请设计一个学生作业完成情况管理程序。

假设某门课程一学期要完成10次作业,每次老师要进行批改,给出分数后还要进行登记。

学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)。

该程序应该具有下列功能:
(1) 通过键盘输入某位学生某次作业的分数;
(2) 给定学号,显示某位学生作业完成情况;
(3) 给定某个班级的班号,显示该班所有学生的作业完成情况;
(4) 给定某位学生的学号,修改该学生的作业完成信息;
(5) 给定某位学生的学号,删除该学生的信息;
(6) 提供一些统计各类信息的功能或排序功能。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第5题职工工资信息管理系统
【题目描述】
各种基本数据的录入、修改、删除、插入、查询、统计(应发工资=基本工资+职务工资+各种补助,实发工资=应发工资-水电费-公积金-税金,税金(按先行税率公式计算))基本功能有:
(1)添加功能:
添加一个职工的基本信息,包括工资卡号、身份证号、姓名、基本工资、职务工资、各种补助、应发工资、水电费、公积金、税金、实发工资等
(2)删除功能:能够对一个职工的信息进行删除,例如按姓名进行删除、
(3)显示功能:
显示所有职工的主要信息包括工资卡号、身份证号、姓名、基本工资、职务工资、各种补助、应发工资、水电费、公积金、税金、实发工资等
(4)查找功能:
根据你键入的职工姓名,显示其详细信息!
(5)修改功能:
根据你键入的职工姓名,对该职工工资信息进行修改。

(6)排序功能:
对职工的信息按照实发工资进行排序。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第6题学生宿舍管理
【题目描述】
该程序应该具有下列功能:
1)录入:录入信息(学号,宿舍号,性别,姓名,所属院系等)
2)插入:给出姓名或学号执行插入后,查询是否被插入;
3)删除:给出姓名或学号执行删除后,查询是否被删除;
4)交换:给出两学生的姓名或学号执行交换后,查询是否被交换;
5)查询:给出房间号,列出该房间的入住学生即可;
6)统计:宿舍没住满情况显示。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第7题人事管理程序
【题目描述】
请设计一个人事管理程序。

1、添加功能:
添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务等
2、删除功能:
能够对一个职员的信息进行删除,例如按姓名进行删除。

3、显示功能:
显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日等
4、查找功能:
根据你键入的职员姓名,显示其详细信息。

5、修改功能:
根据你键入的职员姓名,对该职员的信息进行修改。

6、排序功能:
对职员的信息按照薪水进行排序。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第8题通讯录的管理
【题目描述】
请设计一个通讯录管理程序。

该程序应该具有下列功能:
(1) 插入好友信息;
(2) 显示好友的相关信息;
(3) 给定姓名,查找该好友的信息;
(4) 给定姓名,修改相关信息;
(5) 给定姓名,删除该好友的信息;
(6) 按照姓名进行排序。

【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第9题集合的交并差运算
【题目描述】
该程序应该具有下列功能:
(1) 集合的交运算;
(2) 集合的并运算;
(3) 集合的差运算;
【题目要求】
1.存储结构采用顺序表或链表;
2.用本学期所学算法实现各模块;
3.主函数设计一个菜单,通过菜单进入各模块测试。

第10题文本编辑
要求
输入一页文字,程序可以统计出文字、数字、空格的个数。

存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"
(2)输出删除某一字符串后的文章;
(3)查找替换某个字符串。

第11题校园导游图
问题描述
假设一个校园景区由n个不同景点组成(有向网),并用带权领接矩阵表示,权植表示两个景点间的步行时间,试编写程序求两个任意景点的最短步行时间。

基本要求
利用Floyed算法编写函数实现最短路径;
显示各景点介绍。

第12题教学计划编制问题
教学计划编制问题
设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

第13题矩阵运算
设计要求:要求实现两个矩阵的加、减、乘、转置等运算;菜单调用。

附录2 课程设计报告书写格式要求
为了培养学生严谨的工作态度,锻炼学生编写文档的能力,要求实验报告包括下面主要部分:
a)需求分析
在该部分中叙述整个设计的功能要求。

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

c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现);源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

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

e) 程序的源代码清单。

注意:1、课程设计报告要用A4纸打印装订。

2、课程设计报告封面应该按照下面的要求。

安徽科技学院
计算机(信息)专业
《数据结构》课程设计
实验报告
学院: 班级:
组长: 学号:
成员
开课学期:
实验日期:
指导教师:。

相关文档
最新文档