《课程设计任务书(数据结构).doc》由会员分享,可在线阅读,更多相关《课程设计任务书(数据结构).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、平顶山工学院数据结构课程设计任务书班 级 /2 专 业 计算机科学与技术 课程名称 数据结构 指导教师 张芳芳、杨斌、张延红计算机科学与工程系2012年2月数据结构课程设计任务书编写: 审核:课程编码课程名称数据结构适用专业计算机科学技术学时1周考核方式考查学分1先修课程离散数学、高级程序设计设计时间1周一、设计时间及地点1、设计时间:第1周2、设计地点:计算机系机房205、212二、设计目的和要求数据结构课程设计是在学完数据结构课程之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科
2、学的软件工作方法。学生通过数据结构课程设计在下述各方面得到锻炼:1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。2、提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。3、培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。学生认真主动完成课程设计的要求,发挥自主学习的能力,充分利用时间,安排好课程设计,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。三、设计题目和内容1
3、、运动会分数统计任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)功能要求:(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分;(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。(5)数据存入文件并能随时查询 输入数据形式和范围:可以输入学校的名称,运
4、动项目的名称;输出形式有提示,各学校分数为整形;界面要求有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。测试数据:要求使用全部合法数据、整体非法数据、局部非法数据。进行程序测试,以保证程序的稳定。2、飞机订票系统通过此系统可以实现如下功能:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)
5、订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票: 可退票,退票后修改相关数据文件;根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 3、文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文
6、字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出全部字母数、数字个数、空格个数、文章总字数(3)输出删除某一字符串后的文章。4、宿舍管理查询软件任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:(1)采用交互工作方式(2)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)查询菜单: (用二分查找实现以下操作)(3)按姓名查询 (4)按学号查询 (5)按房号查询(6)打印任一查询结果(可以连续操作)5、地图着色问题设计要求:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最
7、少。6、校园导航问题设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。7、图书借阅管理系统 主要分为两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息)。8、学生成绩管理 实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。9、二叉排序树的实现 用顺序和二叉链表作存储结构 (1)以回车(n)为输入结束标志,输入数列L,生成一棵二叉排序树T;(2)对二叉排序树T作中序遍历
8、,输出结果;(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”。10、最小生成树问题设计要求:在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。11、通讯录的制作设计目的:用数据结构中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。设计内容:本系统应完成一下几方面的功能:输入信息enter();显示信息display( );查找以姓名作为关键字 search( );删除信息delete( );设计要求:(1)每条信息至包含
9、:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项(2)作为一个完整的系统,应具有友好的界面和较强的容错能力(3)上机能正常运行,并写出课程设计报告12、哈夫曼编码/译码器设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。基本要求:(1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) (2)分别采用动态和静态存储结构(3)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;(4)编码:利用建好的哈夫曼树生成哈夫曼编码;(5)输出编码;进一步完成内容:(1)译码功能;(2)显示
10、哈夫曼树;(3)界面设计的优化。13、图书管理系统设计一个计算机管理系统完成图书管理基本业务。基本要求:(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;(2)对书号建立索引表(线性表)以提高查找效率;(3)系统主要功能如下:采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;归还:注销对借阅者的登记,改变该书的现存量。14、散列表的设计与实现设计散列表实现电话号码查找系统。基本要求:(1)设每个记录有下列数据项:电话号码、用户名、地址;(2)从键盘输入各记录,分
11、别以电话号码和用户名为关键字建立散列表;(3)采用一定的方法解决冲突;(4)查找并显示给定电话号码的记录;(5)查找并显示给定用户名的记录。15、二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。要求:遍历的内容应是千姿百态的。16、敢死队问题 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士
12、开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。 排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。如果采用三种以上的方法者,可加分。17、图的遍历和生成树求解实现要求:(1)先任意创建一个图;(2)图的DFS,BFS的递归和非递归算法的实现(3)最小生成树(两个算法)的实现,求连通分量的实现(4)要求用邻接矩阵、邻接表多种结构存储实现18、线索二叉树的应用要求:实现线索树建立、插入、删除、恢复线索的实现。19、树的应用要求:实现树与二叉树的转换的实现。以及树
13、的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。20、链表操作要求:利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。四、设计方法和步骤在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。具体为: 1、分析问题,给出数学模型,设计相应的抽象数据结构。(1)分析问题的特点,用数学表达式或其它形式描述其数学模型。(2)选择能够体现
14、问题本身特点的逻辑结构。(3)在逻辑结构确定的情况下,为算法的设计选择相应的存储结构,不同存储方式,其对应的算法也不相同。2、算法设计在已经选择好数据结构的前提下,为解决问题设计算法。(1)确定所需模块对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。(2)各子模块功能描述给出主要模块的算法描述,用流程图或伪代码表示。(3)模块之间的调用关系给出算法各模块之间的关系图示3、源程序清单为了提高工作效率,充分利用上机调试程序的时间,要求学生在上机之前给出源程序清单。4、算法分析经过上机调试
15、,源程序运行正确,并且实现算法要求的功能,解决课程设计题目中给出的问题后,分析各模块算法的时间复杂度和空间复杂度。5、撰写设计报告说明:在设计的过程中,步骤1-步骤4往往是反复进行,在后续步骤中发现问题,往往需要从头重新分析、设计。五、设计成果的编制1、设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。2、程序设计语言推荐使用C/C+,程序书写规范,源程序需加必要的注释;3、每位同学需提交可独立运行的程序;4 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算),内容包括:(1)设计题目(2)设计内容(3)概要设计:确定
16、所需模块及模块间调用关系(4)算法描述:给出各模块流程图及代码(5)算法分析(6)心得体会和参考资料5、课程设计实践作为培养学生动手能力的一种手段,单独考核六、评分标准及成绩评定1、有以下情况的学生不能参加答辩:设计报告未经指导教师审阅。或设计内容不全(有设计报告而无设计程序、有设计程序而无设计报告)。未经指导教师许可或无故不到者,缺勤率达50%的学生。答辩时,设计者在5分钟内阐述自己的设计过程和最终结果,突出设计中遇到的主要问题和解决方法,然后回答教师提问。每位学生答辩总时间一般不超过10分钟。2、课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。原则上按以下公式计算:课程设计成绩考勤10%报告20%答辩20%程序50%七、设计指导教师及分组情况1、设计指导教师张芳芳、杨斌、张延红2、学生每2人一组。八、设计时间及指导老师安排地点:计算机系机房205、212期别指导教师节次一二三四五1、2需求分析、建立模型张延红算法设计张芳芳编程调试张延红编程调试杨斌验收、答辩张延红、张芳芳3、4需求分析、建立模型张延红算法设计杨斌编程调试张延红编写设计报告书、杨斌验收、答辩张延红、张芳芳5、6算法设计张延红算法设计编程调试张芳芳编写设计报告书杨斌上交软件、设计报告书