数据结构C语言课程设计任务书完整版--学生管理系统.doc_第1页
数据结构C语言课程设计任务书完整版--学生管理系统.doc_第2页
数据结构C语言课程设计任务书完整版--学生管理系统.doc_第3页
数据结构C语言课程设计任务书完整版--学生管理系统.doc_第4页
数据结构C语言课程设计任务书完整版--学生管理系统.doc_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 数据结构课程设计报告数据结构课程设计报告 题目一 题目一 学生管理系统的设计与实现 采用顺序表结构实现采用顺序表结构实现 题目二 题目二 图的算法实现 采用邻接表和邻接矩阵结构实现采用邻接表和邻接矩阵结构实现 班 级 计算机 101 姓 名 刘文辉 指导教师 董跃华 成 绩 信息工程学院 2012 年 06 月 18 日 2 目目 录录 1 1需求分析需求分析 3 1 1目的 3 1 2功能 3 2详细设计详细设计 3 2 1数据类型 4 2 2总体功能流程图 4 2 3伪码算法 5 3调试分析调试分析 14 3 1遇到的问题 14 3 2算法的时空分析 14 3 3改进设想 14 3 4经验体会 14 4测试结果测试结果 15 5参考文献参考文献 16 3 1 需求分析需求分析 1 1 目的目的 设计并实现一个学生管理系统 即定义一个包含学生信息 学号 姓名 成绩 的的 顺序表 可以不考虑重名的情况 熟练查找和排序的数据结构算法 熟练掌握数据结构 复习 C 语言的各个知识点 1 2 功能功能 1 根据指定学生个数 逐个输入学生信息 2 逐个显示学生表中所有学生的相关信息 3 给定一个学生信息 插入到表中指定的位置 4 删除指定位置的学生记录 5 统计表中学生个数 6 利用直接插入排序或者折半插入排序按照姓名进行排序 7 利用快速排序按照学号进行排序 8 根据姓名进行折半查找 要求使用递归算法实现 成功返回此学生的学号和成绩 9 根据学号进行折半查找 要求使用非递归算法实现 成功返回此学生的姓名和成 绩 2 详细设计 详细设计 2 1 数据类型 数据类型 1 本次程序采用顺序存储结构 利用结构体数组的优点进行设计 ADT List 数据对象 D ai ai Elemset i 1 2 n n 0 数据关系 R1 a i 1 a i D i 2 n 基本操作 Last locate 操作结果 得到最后一个元素的位置 基本操作 Stu Insert 操作结果 学生信息的插入 基本操作 Stu Insert appoint 操作结果 学生信息插入到指定位置 基本操作 Stu Delete appoint 操作结果 删除某位置上的学生信息 基本操作 Stu OutAll 操作结果 学生信息的输出 基本操作 Stu Count 4 操作结果 学生个数的统计 基本操作 InsertSort 操作结果 按姓名直接排序 基本操作 Stu Partition int low int high 操作结果 按学号快速排序 基本操作 Stu Search Bin 操作结果 非递归折半查找 基本操作 DG Stu Search Bin char key 10 int low int high 操作结果 递归折半查找 ADT List 2 2 总体功能流程图 总体功能流程图 1 功能模块 2 主界面流程图 5 2 3 伪码算法 伪码算法 1 插入操作的伪代码及流程图 int Stu Insert scanf d for i 0 i n i scanf d scanf s scanf d return 1 6 2 插入学生信息到指定位置的伪代码及流程图 int Stu Insert appoint scanf d j 为插入的位置 for i Last locate i j i 进行元素后移操作 tu i 1 number stu i number stu i 1 name 15 stu i name 15 stu i 1 score stu i score scanf d scanf s scanf d 7 3 删除指定位置的学生信息的伪代码及流程图 int Stu Delete appoint scanf d free stu j for i j 1 i Last locate i stu i 1 stu i return 1 8 4 学生信息的全部结果输出的伪代码及流程图 int Stu OutAll int i 0 while stu i number printf d t t stu i number printf s t t stu i name printf d t t n stu i score i return 1 9 5 学生数量统计的伪代码及流程图 int Stu Count int i 0 while stu i number i printf 学生总人数 t printf d i return 1 10 6 快速排序的伪代码及流程图 int Score Partition Privotkey stu low key While low high While low privotkey high Stu low Stu high While low high 11 7 直接插入排序伪代码及流程图 Void InsertSort For i 2 i Last locate i If LT stu i key stu i 1 key Stu 0 stu i Stu i stu i 1 For j i 2 LT stu 0 key stu j key j Stu j 1 stu j Stu j 1 stu 0 12 8 折半查找非递归伪代码及流程图 int Search Bin SSTable ST int key int low high mid low 1 high ST length while low high mid low high 2 if key ST elem mid key return mid else if keykey return D ST key lo mi 1 if ST elem mi key key return D ST key mid 1 high return 0 14 3 调试设计调试设计 3 1 遇到的问题 遇到的问题 几乎没什么大问题 3 2 算法的时空分析 算法的时空分析 T n O n2 3 3 改进设想 改进设想 在进入某个功能模块时 或者某个功能的某个步骤时 可以允许出现输入 错误 因此 要实现进入某个步骤时实现撤销操作 15 3 4 经验体会 经验体会 由于第一次写这么复杂的程序 开始有点无从下手 在选择合适的数据结 构的时候不知道怎么去选 只能一个一个的去试 最后从结合了 C 语言的结构 体和程序需要用到的算法中慢慢摸索到了合适的数据结构 写程序时会出现好 多小的语法问题或者逻辑问题 一点点逻辑问题就会让人抓狂 但最后还是静 下心来梳理情绪 慢慢的找到了问题 开始的时候没有好好理解折半插入排序 便把第 0 个位置也存了信息 导致哨兵没地方放 然后又全部修改了 也许哨 兵不一定要放在第 0 个位置 但开始遇到的这个问题时 脑子里就只有一个想 法 就是全部把信息结构修改一遍 虽然这看起来不是个好方法 但对于这种小 程序来说 还是比较容易修改 总体来说 收获很大 4 测试结果测试结果 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论