数据结构与算法课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构与算法课程设计
数据结构与算法课程设计
一、课程设计的目的、要求和任务
本课程设计是为了配合《数据结构与算法》课程的开设,通过设计完整的程序,使学生掌握数据结构的应用、算法的编写等基本方法。
1.课程的目的
(1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力;
2.课程的基本要求与任务
(1)巩固和加深对数据结构基本知识的理解,提高综合运用课程知识的能力。
(2)培养学生自学参考书籍,查阅手册、图表和文献资料的能力。
(3)通过实际课程设计,初步掌握简单软件的分析方法和设计方法。
(4)了解与课程有关的工程技术规范,能正确解释和分析实验结果。
(5)题目具有足够的工作量。
二、课程设计的一般步骤
(1)划分课程设计小组:由不超过3名同学组成一个课程设计小组,自愿组队。
(2)选题与搜集资料:每个课程设计小组在参考选题中选择课题,并保证每人一题。
(3)分析与概要设计:根据搜集的资料,进行程序功能与数据结构分析,并选择合适的数据结构、并在此基础上进行实现程序功能的算法设计。
(3)程序设计:运用掌握C/C++语言编写程序,实现所有程序的各个模块功能。
(4)调试与测试:调试程序,并记录测试情况。(5)完成课程设计报告。
(6)验收与评分:指导教师对每个同学的开发
的系统进行综合验收。
三、任务完成形式
1.完整的软件系统
最终必须向指导老师提交完整的程序源代码(.c和.cpp以及.h为后缀的文件)、数据文件以及使用说明文件等。源代码文件要特别注意编程规范、代码风格,关键代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实”数据(如对于记录文件,需要有5条以上记录);使用说明文件的第一行,需要给出设计者的学号、姓名,后面为其它说明。
2.课程设计报告
报告总体上主要包括以下几个部分,封面、目录、课程设计报告正文、使用说明、参考文献。其中课程设计报告正文(12-20页之间,8000字以上),书写规范,应包括如下8个部分:(1)问题描述:描述要求编程解决的问题。(2)功能要求:给出程序要达到的具体的要求。
(3)算法思想:描述解决相应问题算法的设计思想。
(4)模块划分:描述所设计程序的各个模块(即函数)功能。
(5)数据结构:给出所使用的基本抽象数据类型,所定义的具体问题的数据类型,以及新定义的抽象数据类型。
(6)核心源程序:给出核心算法源代码,要求有充分的注释语句,至少要注释每个函数参数的含义和函数返回值的含义。
(7)测试数据:设计测试数据,或具体给出测试数据。要求测试数据能全面地测试所设计程序的功能。
(8)测试情况与结果分析:给出程序的测试情况,并分析运行结果。
四、成绩评定标准
学生成绩以优、良、中、及格和不及格5个等级评定。其中:
(1)学生编写的实际软件和运行结果,占总成绩45%;
(2)设计报告,占总成绩45%。
(3)小组合作情况,占总成绩的10%。该部分由指导教师进行现场口试,依据表现给分。
只有程序验收通过后,才能按以下方法核定本次课程设计的总成绩。以下几点是决定总成绩的关键因素:
(1)考勤、纪律、实验室卫生
(2)工作量(代码量、功能多少、难度)(3)所用到的关键技术
(4)实用性、创新
(5)代码书写规范性
(6)程序界面美观、新技术运用得当
(7)个人答辩及小组合作情况
以下几种情形认定为成绩不合格:
(1)未能独立完成设计或概念不清;
(2)有效代码总量不足1000行(不含自动生成代码);
(3)“管理系统”类课题中使用现有数据库系统如access,SQL Server等;
(4)课程设计报告或源代码有抄袭行为;(5)3次(含)以上点名未到;
(6)不遵守实验室规章制度,或不按要求完成实验室卫生工作。
五、附课程设计题目
1)可另选题目,经指导老师认可后正式作为课程设计题目。
2)数据结构课程设计参考题目
1.文件查重系统
[问题描述]
抄袭检查越来越成为一种重要的需求。本问题要求,从文件中读入两个文件,比较其雷同字句的数目。并给出详细对照。
当两字符串中连续相同字符的个数达到一定数目(例如20字)可视为雷同。也可按照相同字符占句子长度的比例来检测雷同。
[基本功能]
统计不同文件的雷同字段数,字段总长度,雷同字段比例。
[测试数据]
可自己定义。
[实现提示]
程序运行后首先要求用户给出制定的两个文件。[高级要求]
建立文件库,对新的文件检测该文件与库中哪些文件雷同,并给出相应的比例。
2.课程设计案例管理系统
收集各本课程的题目案例,每个案例包括问题描述、基本功能要求、测试数据集、高级或扩展要求、课题实现源代码包、课程设计报告、评语等各部分。
[基本功能]
(1).案例导入或录入 (2).展示问题 (3)展示案例结果 (4)案例查询 (5)单问题多解决方案入库的处理
3.约瑟夫环
[问题描述]
约瑟夫(Joeph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。试设计一个程序求出出列顺序。