
数据结构_利用单链表实现学生基本信息管理_课程设计_实验报告.pdf
22页数 据 结 构 课 程 设 计 本课程设计已调试通过 请放心使用 请到 道客巴 巴 道客巴 巴或豆丁网豆丁网充值购买 word 版 省打字 直接修改即可 价 格较便宜 在这里百度较贵 搜索 数据结构 利用单链表实现学生基本信息管理 课程设 计 实验报告 设计题目 利用单链表实现学生基本信息管理 目录目录 课题名称利用单链表实现学生基本信息管理 院系年级专业 学号姓名成 绩 课题设计 目的与 设计意义 课题设计目的 1 学会单链表结点的定义 2 掌握单链表的基本运算 熟悉对单链表的一些基本操作 和具体函数的定义 3 加深对链表的理解 逐步培养解决实际问题的编程能力 4 创建一个初始链表 通过调用定义的基本操作函数来实 现单链表上的插入 删除元素等操作 调试程序并对相应的输出做 出分析 修改输入数据 预期输出并验证输出的结果 加深对有 关 意义 一般来讲 课程设计教学实验复杂一些 深度更广并且更加接 近实用 通过课程设计的综合训练 培养学生实际分析问题 编程和 动手能力 使学生 对数据结构进行更深一层的了解 培养同学们对 学习数据结构这门课程的兴趣 让同学们学会如何去查找资料和 整合处理这些资料的能力 也为以后的大学毕业 设计论文打下了 一个初步的基础 这些课程设计都是比较难的 要分成几个小项 目 几个学生一组 培养团队协作精神 最终帮助学生系统掌握 课程的主要内容 更好地完成教学任务 基本掌握面向过程程序 设计的基本思路和方法 2 达到熟练掌握数据结构的基本知识和 技能 3 能够利用所学的基本知识和技能 解决简单的程序设计 问题 指导教师 年月日 一 课程设计目的和意义 1 1 课程设计目的 1 2 课程设计意义 1 二 需求分析与要求 1 1 程序功能 1 2 基本要求 2 3 功能要求 2 1 信息录入功能 2 2 查询功能 2 3 插入功能 2 4 删除功能 2 5 输出功能 2 4 说明 2 5 输入输出的形式 3 6 开发环境 3 三 概要设计 3 四 模块图 5 五 详细设计 5 六 运行结果与分析 10 1 主界面 10 2 建立学生信息表 11 3 查询某学生的所有信息 11 4 插入学生信息 12 5 删除某学生的所有信息 13 七 总结 14 八 源代码 14 九 参考文献 19 1 一一 课程设计目的和意义课程设计目的和意义 1 课程设计目的 1 学会单链表结点的定义 2 掌握单链表的基本运算 熟悉对单链表的一些基本操作和具体函数的 定义 3 加深对链表的理解 逐步培养解决实际问题的编程能力 4 创建一个初始链表 通过调用定义的基本操作函数来实现单链表上的 插入 删除元素等操作 调试程序并对相应的输出做出分析 修改输入数据 预 期输出并验证输出的结果 加深对有 关 2 课程设计意义 一般来讲 课程设计教学实验复杂一些 深度更广并且更加接近实用 通过课 程设计的综合训练 培养学生实际分析问题 编程和动手能力 使学生 对数据结 构进行更深一层的了解 培养同学们对学习数据结构这门课程的兴趣 让同学们 学会如何去查找资料和整合处理这些资料的能力 也为以后的大学毕业 设计论 文打下了一个初步的基础 这些课程设计都是比较难的 要分成几个小项 目 几 个学生一组 培养团队协作精神 最终帮助学生系统掌握课程的主要内容 更 好地完成教学任务 基本掌握面向过程程序设计的基本思路和方法 2 达到熟 练掌握数据结构的基本知识和技能 3 能够利用所学的基本知识和技能 解决 简单的程序设计问题 二 需求分析与要求 二 需求分析与要求 1 程序功能 该系统实现对学生的基本信息的管理 其中包括学生的学号 姓名 2 性别 年龄 身份证号 家庭住址 联系 总成绩等 2 基本要求 1 要求利用 C 语言面向过程的编程思想来完成系统的设计 2 突出 C 语言的函数特征 以多个函数实现每一个子功能 3 画出功能模块图 4 进行简单界面设计 能够实现友好的交互 5 具有清晰的程序流程图和数据结构的详细定义 6 熟练掌握 C 语言对文件的各种操作 3 功能要求 1 信息录入功能 主要是输入和记录学生的基本信息 包括学生的学号 姓名 性别 年 龄 身份证号 家庭住址 联系 总成绩等 2 查询功能 通过输入学生的学号 找到该学生的所有信息 3 插入功能 用于实现学生信息的插入 4 删除功能 用于实现学生信息的删除 5 输出功能 输出所有学生的基本信息 4 说明 1 功能各方面越完善越好 2 自定义的数据结构使用数组 链表等 然后根据不同的数据结构 设 3 计不同的排序 查找算法 其中 排序算法至少有两种 可以使用多种数据结构 来存放数据 然后在其上使用不同的排序算法 3 若用数组 必须动态分配空间 文本文件中最好有一行表示学生人数 5 输入输出的形式 本系统是一个学生成绩管理系统 采用 VC 6 0 编译器作为开发 环境 这个环境是我们在学习 C 的平台 输入数据类型主要是 char int 等数据类型 输入内容包括 学生的学号 姓名 性别 年龄 身 份证号 家庭住址 联系 总成绩等 学号 姓名 性别 年龄 身份证号和号码 用户在输入学生 数据时要保证输入数据格式的正确性 系统不会自动检测输入的数据是 否正确 输出形式与输入形式类似 6 开发环境 Visual C 不仅仅是是一个 C 编译器 而是一个基于 Windows 操作系统的 可视化集成开发环境 IDE 这种环境开发出来的软件稳定性好 可移植性强 可 以编制各种各样的 Windows 应用程序 三 概要设计 三 概要设计 1 先编入系统所需的库函数和需要宏定义的变量以及结构体的定义 从而 使程序可运行 include define maxsize 100 typedef struct int num 学号 char name maxsize 姓名 char sex maxsize 性别 char ad maxsize 年龄 char adi maxsize 身份证号 char adr maxsize 家庭住址 char tel maxsize 联系 4 float score 总成绩 st typedef struct node st data maxsize struct node next list 2 Main 函数的设计 在main 函数中主要运用switch case选择判断语句来调用相关功能 模块 系统的运行是在一个永远重复循环里进行的 只有在主界面并选择 退出 时 才会跳出永真循环 并退出程序 3 主界面的设计 主界面 在此界面用户可以选择要操作的选项 回车之后即可进入相关的页 面进行操作 所有操作均有提示语 比较人性化的管理 易懂 简单 在主界面中包括 1 建立学生的基本信息 2 查找某学生信息 3 删除某 学生有关的基本信息 4 插入某学生的基本信息 5 输出所有学生的基本信息 6 退出等全部的功能 之所以设计这么一个主界面 一是因为能使用户对程序操作 的流程更加清晰简明 二是保证了用户同时只能对一个文件进行操作系统的要 求 保证了系统不会打开文件紊乱或者出现致命的错误 4 以下是函数声明 list create 函数功能 输入学生信息表 建立学生信息库 list insert list h 函数功能 插入某学生的所有相关信息 list reaserch list h 函数功能 利用通过学号查找某学生的所有信息 list delet list h 函数功能 利用通过学号查找某学生的所有信息病删除 掉 void output list h 函数功能 输出所有学生的所有信息 5 四 模块图 四 模块图 学 生 信 息 管 理 系 统 初始化链表 输入学生个数 保存所有学生信息 查找某学生的信息 删除某学生所有信息 输出所有学生信息 退出 五 详细设计 五 详细设计 1 先编入系统所需的库函数和需要宏定义的变量以及结构体的定义 从而 使程序可运行 2 建立 main 函数大致构建在算法的过程当中所需要调用的一些函数以及利 用 switch case 和 while 循环构造一个可以永远重复调用的环境 除非用户终 止循环也就退出了系统了 并且为了界面的友好化 可以利用 printf 函数 输出一些来美化界面的字和提示语 具体的函数如下 void main int i j 1 list p while j printf 6 n printf 学生信息管理 n printf n printf 1 登记学生信息 n printf 2 查询学生信息 n printf 3 插入学生信息 n printf 4 删除学生信息 n printf 5 输出所有学生信息 n printf n printf 请输入你的选择 n scanf d switch i case 1 p create break case 2 p reaserch p break case 3 p insert p break case 4 p delet p break case 5 output p break default printf 选择错误 重新开始 n printf t0 退出 n t1 继续 scanf d 3 建立单链表 储存学生信息 首先是将建立的链表初始化 并在初始化 以后利用 printf 函数输出接下来用户接下来要做事情的一些指令即提示 目的是使界面友好化 7 list create list p r int i n head list malloc sizeof list head next error r head printf 请输入学生人数 n scanf d for i 1 idata i num p next error r next p r r next return head 4 根据界面的提示信息 调用不同的函数 从而实现不同的算法功能 插 入函数功能是用来插入某个学生的相关信息 具体算法如下 具体操作根据提示 list insert list h list p q r head head h r h 8 p h next q list malloc sizeof list printf 输入待插入学生的学号 t姓名 t性别 t年龄 t 身份证号 t 家庭住址 t 联系 t 总成绩 n scanf d s s s s s s 2f q next error while p error r p p p next r next q r r next return head 5 查找函数式为了查找某学生信息时节约时间而设计的 从而实现对该学 生信息的管理 输入学生的学号即可 操作时有提示信息 具体算法如下 list reaserch list h int k list p p h next printf 输入要查找学生的学号 n scanf d while p if p printf 学号 t 姓名 t 性别 t 年龄 t 身份证号 t 家 庭住址 t 联系 t 总成绩 n printf d t s t s t s t s t s t s t 2f n p data num p data name p data sex p data ad 9 p data adi p data adr p data tel p data score return p else printf 没找到 n return NULL 6 若要删除某学生的所有信息即可调用删除函数 删除时根据学生的学号 可找到该学生的所有信息 并对该学生所有信息进行删除 list delet list h int k list p q q h p h next printf 请输入待删除学生的学号 n scanf d while p p p next if p q next p next free p else printf 没有这个学生信息 无法删除 n return h 10 7 输出函数式。












