学生成绩管理系统80_第1页
学生成绩管理系统80_第2页
学生成绩管理系统80_第3页
学生成绩管理系统80_第4页
学生成绩管理系统80_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

成绩评定 教师签名 嘉应学院嘉应学院 计算机学院计算机学院 数据结构数据结构 实验报告实验报告 课程名称 课程名称 数据结构 开课学期 开课学期 2016 2017 学年第 1 学期 班班 级 级 1401 指导老师 指导老师 钟治初 实验题目 实验题目 学生成绩管理系统 学学 号 号 141110043 姓姓 名 名 苏永达 提交时间 提交时间 2016 年 10 月 27 日 一 实验要求 1 设计一个学生成绩管理系统 模拟高考成绩的管理 功能至少包括数据输入 输出 查找 插入 删除 修改 排序 统计各成绩段的人数 考生成绩的排位 报考志愿的检索等 2 所有输入输出数据均使用文本文件进行读写 3 所有过渡性数据使用二进制文件进行读写和保存 4 设计使用平行志愿进行出档 5 设计使用非平行志愿行进出档 6 设计志愿时 可以设计 12 个志愿 如果平行志愿 则前后各 6 个分别为第一组和第二组 平行志愿处理 7 设计考生记录的字段时 可以预留补录志愿的字段 或者将未录取考生的数据进行备份 然后将志愿清空后再增加补录志愿 二 功能 1 按学号顺序输入学生信息 包括学号 姓名 性别 课程单科成绩 单 科成绩包括 C 语言 高数 大学语文 汇编 中近史 并存入文件中 2 从文件读取数据 3 删除学生信息 4 查询学生信息 查询可分为精确查询和模糊查询 5 修改学生信息 要求修改后 数据依然是按学号顺序排列 6 插入学生信息 要求插入后 数据依然是按学号顺序排列 7 附加功能 学生可自由发挥 如 排名 求各门课程平均分等 三 实验目的三 实验目的 1 掌握和巩固 C 语言编写的相关知识和技巧 特别是函数 指针 结构体 2 能够采用模块化思想调试程序 3 通过该课程设计的操作与实践 能够根据数据对象的特性 学会数据组织的 方法 把现实世界中的实际问题在计算机内部表示出来 并培养基本的 良好 的程序设计技能 全面提高学生的程序设计 开发能力 四 四 系统分析系统分析 4 1 相关基础知识相关基础知识 选择 循环 函数 指针 结构体 链表 4 2 总体方案总体方案 架构图 架构图 方案描述 方案描述 菜单 运用菜单 运用 switchswitch casecase 选择功能 在每个选择功能 在每个 casecase 中有相对应的调用语句 调用中有相对应的调用语句 调用 相对应的函数 相对应的函数 删除功能 调用删除函数 判断是否保存 如果保存写入文件 删除功能 调用删除函数 判断是否保存 如果保存写入文件 插入功能 运用链表插入 插入功能 运用链表插入 修改功能 调用删除函数跟插入函数 先删除再插入 从而实现修改功能 修改功能 调用删除函数跟插入函数 先删除再插入 从而实现修改功能 查询功能 调用菜单中的查询函数 用循环实现查询功能 查询功能 调用菜单中的查询函数 用循环实现查询功能 排名功能 调用菜单中的排名函数 通过冒泡排序法实现功能 排名功能 调用菜单中的排名函数 通过冒泡排序法实现功能 保存功能 运用写入文件 保存功能 运用写入文件 五 系统设计五 系统设计 定义一个 student 类型的结构体 里面包含学生信息 包括学号 姓名 性 别 课程单科成绩 单科成绩包括 C 语言 高数 大学语文 汇编 中近史 总分 平均成绩 5 1 新建功能新建功能 从键盘输入 N 个学生基本信息 包括学号 姓名 性别 课程单科成绩 单科成绩包括 C 语言 高数 大学语文 汇编 中近史 编程根据输入信 息计算各学生总分和平均分 创建动态链表 将学生信息存入链表中 在 DOS 屏幕上打印链表内所有学 生信息 新建一个文件 将动态链表中的数据 即输入的学生信息 存入文件中 5 2 打开功能打开功能 打开一个文件 从文件中读取学生信息 并新建链表 将数据存入动态链 表 在 DOS 屏幕上打印链表内所有学生信息 5 3 修改功能修改功能 在 DOS 屏幕上打印出当前的所有学生信息 输入待修改的学生学号 若不存在 输出 查无此人 若存在 则输入修 改的信息 并存回学生信息链表中 存回后学生信息链表依然是按学号顺序排 列 最后在 DOS 屏幕上打印出新的所有学生信息 5 4 插入功能插入功能 在 DOS 屏幕上打印出当前的所有学生信息 输入插入信息的条数 从第一条开始到最后一条 依次输入每条学生信息 包括学号 姓名 性别 课程单科成绩 单科成绩包括 C 语言 高数 大学语 文 汇编 中近史 根据输入信息计算各学生总分和平均分 若输入的学生学号已经存在 则输出 该学号已存在 无法操作 否则 将学生信息插入到链表中 插入后链表中的数据依然按照学号排列 最后在 DOS 屏幕上打印出新的所有学生信息 5 5 查询功能查询功能 查询分为 精确查询 模糊查询 精确查询 1 按姓名查询 输入待查询的姓名 根据顺序查询的方法 对学生的姓名依次查询 直到查询到与输入的信息 相匹配的信息 并在 DOS 屏幕上显示出来 若需要查询的信息不存在 系统则 会提示找不到此人 可重复查询 2 2 按学号查询 输入待查询的学号 根据顺序查询的方法 对学生的学号依次查询 直到查询到与输入的信息相 匹配的信息 并在 DOS 屏幕显示出来 若需要查询的信息不存在 系统则会提 示找不到此人 可重复查询 模糊查询 1 按姓氏查询 输入待查询的姓氏 根据顺序查询的方法 对学生的姓依次查询 当查询到与输入的信息相匹配 的信息 则在 DOS 屏幕显示出来 直到链表结束 若需要查询的信息不存在 系统则会提示找不到相关信息 可重复查询 2 按性别查询 输入待查询的性别 根据顺序查询的方法 对学生的性别依次查询 当查询到与输入的信息相匹 配的信息 则在 DOS 屏幕显示出来 直到链表结束 可重复查询 5 65 6 删除功能删除功能 在 DOS 屏幕上打印出当前的所有学生信息 1 按姓名删除 输入需要删除的学生姓名 根据顺序查询的方法 对学生的姓名依次查询 当查询到与输入的信息相匹 配的信息 则删除该生信息 并在 DOS 屏幕显示出新的所有学生信息 若需要 删除的信息不存在 系统则会提示删除失败 2 按学号删除 输入需要删除的学生学号 根据顺序查询的方法 对学生的学号依次查询 当查询到与输入的信息相匹 配的信息 则删除该生信息 并在 DOS 屏幕显示出新的所有学生信息 若需要 删除的信息不存在 系统则会提示删除失败 5 75 7 排名功能排名功能 可根据学生的总分进行排名 并在 DOS 屏幕上输出排名结果 5 85 8 关于我们 在 DOS 屏幕上输出系统相关信息 5 95 9 软件说明软件说明 5 105 10 退出保存 选择 0 退出系统 保存功能在每段函数结束后实现 5 10 运行结果 5 10 05 10 0 主界面主界面 5 10 15 10 1 新建文件 输入一组数据 存入文件中 新建文件 输入一组数据 存入文件中 5 10 25 10 2 打开文件 打开文件 读取文件数据存入链表 打开文件 打开文件 读取文件数据存入链表 5 10 35 10 3 修改功能修改功能 5 10 45 10 4 插入功能插入功能 5 10 55 10 5 查询功能查询功能 精确查询精确查询 按姓名查询按姓名查询 精确查询精确查询 按学号查询按学号查询 模糊查询模糊查询 按姓氏查询按姓氏查询 模糊查询模糊查询 按性别查询按性别查询 5 10 65 10 6 删除功能删除功能 按姓名删除按姓名删除 按学号删除按学号删除 5 10 75 10 7 总分排名功能总分排名功能 5 10 95 10 9 软件说明软件说明 5 10 105 10 10 退出保存退出保存 保存功能在每段函数结束后实现 保存功能在每段函数结束后实现 六 心得体会六 心得体会 通过这次实验我们更好的掌握和巩固 C 语言编写的相关知识和技巧 特别 是函数 指针 结构体 链表等功能 通过该课程设计的操作与实践 能够根 据数据对象的特性 学会数据组织的方法 把现实世界中的实际问题在计算机 内部表示出来 并培养基本的 良好的程序设计技能 虽然在设计过程中遇到 了不少问题麻烦 在教材数据的帮助下 完成了这次程序设计 七 源代码七 源代码 include include include define LEN sizeof struct student 结构体长度 define NEW struct student malloc LEN FILE fp 文件指针 struct student int num char name 20 int score1 score2 score3 score4 score5 char sex double aver float sum struct student next char filename 100 struct student creat struct student h struct student p q printf 需要输入几条信息 int i n scanf d printf n 请按学号顺序依次输入学生信息 n char c getchar h NULL for i 1 i n i p NEW if p NULL printf Allocation failure n exit 0 printf n printf 输入姓名 gets p name printf 输入学号 scanf d c getchar printf 输入性别 scanf c printf 输入 c 语言成绩 scanf d printf 输入高数成绩 scanf d printf 输入大学语文成绩 scanf d printf 输入汇编语言成绩 scanf d printf 输入中近史成绩 scanf d c getchar p sum p score1 p score2 p score3 p score4 p score5 p aver p score1 p score2 p score3 p score4 p score5 5 0 p next NULL if h NULL h 为空 表示新结点为第一个结点 h p 头指针指向第一个结点 else h 不为空 q next p 新结点与尾结点相连接 q p 使 q 指向新的尾结点 return h struct student paixu struct student head 总分排名 system cls printf 总分排名如下 n struct student op struct student p struct student p1 p2 p1 struct student malloc LEN p1 next head head p1 for op NULL op head op p for p p1 head p1 next next op p1 p1 next if p1 next sum next next sum p2 p1 next next p1 next next p2 next p2 next p1 next p1 next p2 p p1 next next p1 head head head next free p1 p1 NULL return head void prlist struct student head 输出函数 struct student p p head printf n 学号 姓名 性别 c 语言 高数 大学语文 汇编语言 中 近史 总分 平均分 n while p NULL printf d s c d d d d d 1f 2f n p num p name p sex p score1 p score2 p score3 p score4 p score5 p sum p aver p p next system pause write 将数据存入文件 void write struct student head struct student p p head if head NULL while p NULL fwrite p LEN 1 fp p p next printf 文件更新成功 n fclose fp system pause system cls read 将文件数据读入一个新链表 中 struct student read void struct student head struct student p1 p2 head NULL p1 NEW rewind fp 指向文件头 fread p1 LEN 1 fp while feof fp if head NULL head p1 else p2 next p1 p2 p1 p1 NEW fread p1 LEN 1 fp p2 next NULL fclose fp return head void find struct student head 查询功能 int t s i j struct student p q char x 10 y 2 0 c 2 char k f p head printf 精确查找 n 1 按姓名查找 n 2 按学号查找 n 模糊查找 n 3 按姓氏查找 n 4 按性别查找 n scanf d k getchar if s 1 printf 请输入姓名 gets x while p NULL if strcmp x p name 0 printf n 学号 姓名 性别 c 语言 高数 大学语文 汇 编语言 中近史 总分 平均分 n printf d s c d d d d d 1f 2f n p num p name p sex p score1 p score2 p score3 p score4 p score5 p sum p aver j 1 else i 1 q p p p next else if s 2 printf 按学号查找 n scanf d while p NULL if t p num printf n 学号 姓名 性别 c 语言 高数 大学语文 汇 编语言 中近史 总分 平均分 n printf d s c d d d d d 1f 2f n p num p name p sex p score1 p score2 p score3 p score4 p score5 p sum p aver j 1 else i 1 q p p p next else if s 3 printf 按姓氏查询 n gets c while p NULL if strncmp c p name 1 0 printf n 学号 姓名 性别 c 语言 高数 大学语文 汇 编语言 中近史 总分 平均分 n printf d s c d d d d d 1f 2f n p num p name p sex p score1 p score2 p score3 p score4 p score5 p sum p aver j 1 else i 1 q p p p next else if s 4 printf 按性别查询 n f getchar while p NULL if f p sex printf n 学号 姓名 性别 c 语言 高数 大学语文 汇编语 言 中近史 总分 平均分 n printf d s c d d d d d 1f 2f n p num p name p sex p score1 p score2 p score3 p score4 p score5 p sum p aver j 1 else i 1 q p p p next if i 1 system pause system cls struct student delstudent struct student head 删除功能 int s n m 1 char c struct student p q char x 10 while m printf 1 按学号删除 n 2 按姓名删除 n scanf d c getchar printf 已有信息如下 n prlist head if head NULL printf This is a empty list return head p head switch s case 2 printf 请输入姓名 gets x while strcmp x p name 0 p p next if strcmp x p name 0 if p head head p next else q next p next free p else printf Not found n continue m 0 break case 1 printf 请输入学号 scanf d c getchar while n p num p p next if n p num if p head head p next else q next p next free p else printf Not found n continue m 0 break default printf 输入错误 n break return head void about 关于我们 system cls printf n n printf n n printf Hi n n printf 成员介绍 n n printf 1 组长 n n printf 2 组员 n n printf 3 组员 n n printf 4 组员 n n printf 产品信息 n n printf 一 产品用途 主要用于学生成绩管理与查 询 n n printf 二 班级成绩管理系统主要包括 数据的录 入 n n printf 读取 显示 删除 插入 查找 修改 排 名 n n system pause system cls void end 退出系统 char s printf 是否退出系统 Y N n scanf c if s Y s y exit 0 else if s N s n return else printf 输入错误 请重新输入 n n system pause return struct student insert struct student head struct student op 插入功能 struct student p q if head NULL head op 空表时 插入结点 op next NULL else p head while op num p num p q next if op num p num printf n 该学号已存在 无法插入 n return head else if op numnum if p head head op 在表头插入结点 else q next op 在表中间插入结点 op next p else p next op 在表尾插入结点 op next NULL return head struct student xiugai struct student head 修改功能 struct student op NEW int c head delstudent head printf 请输入新名字 gets op name printf 请输入新学号 scanf d c getchar printf 请输入新性别 scanf c printf 请输入新 C 语言成绩 scanf d printf 请输入新高数成绩 scanf d printf 请输入新大学语文成绩 scanf d printf 请输入新汇编成绩 scanf d printf 请输入新中近史成绩 scanf d c getchar op sum op score1 op score2 op score3 op score4 op score5 op aver op score1 op score2 op score3 op score4 op score5 5 0 op next NULL head insert head op return head struct student ca struct student head 插入功能 struct student op NEW char c printf 请输入名字 gets op name printf 请输入学号 scanf d c getchar printf 请输入性别 scanf c printf 请输入 C 语言成绩 scanf d printf 请输入高数成绩 scanf d printf 请输入大学语文成绩 scanf d printf 请输入汇编成绩 scanf d printf 请输入中近史成绩 scanf d c getchar op next NULL head insert head op op sum op score1 op score2 op score3 op score4 op score5 op aver op score1 op score2 op score3 op score4 op score5 5 0 return head void help 软件说明 system cls printf n 说明 n n n printf 运行本软件需先使用新建文件或打开文件功能 否则 运行出错 n printf 每次使用修改 插入 删除等功能后需重新打开文件 读取数据 n printf 否则得到的数据是未保存的 每运行完一个功能会自 动返回到 n printf 主界面 n n n printf n n 纯属原创 禁止抄袭 n n system pause system cls 主函数 菜单 int main system color 9f char c r struct student head int z while 1 printf n printf n n printf 欢迎使用学生成绩管理系统 n n printf n n printf 菜单 n n printf n n printf 1 新建文件 2 打开 文件 printf n n printf 3 修改功能 4 插入 功能 printf n n printf 5 查询功能 6 删除 功能 printf n n printf 7 排名功能 8 关于 我们 printf n n printf 9 软件说明 0 退出

温馨提示

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

评论

0/150

提交评论