1、 课程设计报告课程设计报告 课程名称课程名称 数据结构课程设计数据结构课程设计 专业班级专业班级 软件软件 1241 姓姓 名名 学学 号号 1204431126 指导教师指导教师 起止时间起止时间 成成 绩绩 评评 定定 考核 内容 设计 表现 设 计 报 告 答辩 综合 评定 成 绩 计算机技术与工程学院计算机技术与工程学院 一、课程设计目的一、课程设计目的 本次课程设计的目的就是要达到理论与实际应用相结合,使我们能过根据数据对象的特性, 学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好 的程序设计技能。掌握基本的输入、输出方法,理解程序的分支结构,实现
2、条件判断和循环程序 的设计。掌握线性表的应用。 二、课程设计要求二、课程设计要求 数据结构课程设计 则要培养、 训练学生选用合适的数据结构并运用程序设计语言 (C/C+) 编写质量高的应用程序。并建立初步评价算法程序的能力。为编译技术、操作系统、数据库及算 法设计与分析等后继课程的学习以及为应用软件特别是非数值应用软件的开发打下良好的理论 基础和实践基础 重点和难点: 1. 针对具体问题如何选择或设计合适的数据结构; 2. 如何根据一定的存储策略实现数据的存储表示; 3. 基于上述数据结构设计并实现完成具体要求的算法; 4. 对算法的时间性能进行分析。 针对每一个设计题目写出 1. 问题分析和
3、任务定义: 根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?) 限制条件是什么? 2. 逻辑设计: 对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模 块, 定义主程序模块和各抽象数据类型。 逻辑设计的结果应写出每个抽象数据类型的定义(包 括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的 调用关系图; 3. 详细设计: 定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得 系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操 作的规格说明尽可能明确
4、具体。详细设计的结果是对数据结构和基本操作作出进一步的求 精,写出数据存储结构的类型定义,写出函数形式的算法框架; 4. 程序编码: 把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻 辑概念清楚; 5. 程序调试与测试: 采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计 测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注 释,形成格式和风格良好的源程序清单和结果; 三、具体设计题目三、具体设计题目 1问题描述 运动会分数统计系统 设计目的:用数据结构中的线性表作数据结构,结合语言基本知识。编写一个运动
5、会分数管 理系统。以把所学数据结构知识应用到实际软件开发中去。 设计内容:可以输入各个项目的前三名或前五名的成绩; 能统计各学校总分, 可以按学校编号、学校总分、男女团体总分排序输出; 可以按学校编号查询学校某个项目的情况; 可以按项目编号查询取得前三或前五名; 设计要求:输入数据形式和范围:20 以内的整数(如果做得更好可以输入学校的名称,运动项目 的名称) 输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能 要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储 在数据文件中。(数据文件的数据读写方
6、法等相关内容在 c 语言程序设计的书上,请 自学解决)请在最后的上交资料中指明你用到的数据结构; 测试数据:要求使用 1、全部合法数据;2、整体非法数据;3、局部非法数据。进行 程序测试,已保证程序的稳定。测试数据及测试结构请在上交的资料中写明; 2问题分析和任务定义 本程序主要是使用链表来实现操作,一个运动会运动项目和参加运动会的成员。因此构造两 个链表。为了操作的方便,并且能够保存输入数据,所以通过文件操作来实现数据的读和写。每 次添加新的数据后都要输入“0”退出,数据才能保存。对于排序功能,采用了冒泡排序法。 该题是要求通过巩固线性表, 在所学 C+语言基础上用其设计运动会分数统计系统, 包括运动 会参加者及其成绩信息的输入,显示,查找,删除,存盘和装入功能。限制条件是要有较好的界 面和较强的容错能力而且上机能正常运行。 3逻辑设计 设计该题需要两个类,一个是 Scho