学生成绩管理系统11522
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嘉应学院计算机学院
《数据结构》实验报告
课程名称:数据结构
开课学期: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 总体方案
架构图:
方案描述:
菜单:运用switch case选择功能,在每个case中有相对应的调用语句,调用相对应的函数。
删除功能:调用删除函数,判断是否保存,如果保存写入文件。
插入功能:运用链表插入。
修改功能:调用删除函数跟插入函数,先删除再插入,从而实现修改功能。
查询功能:调用菜单中的查询函数,用循环实现查询功能。
排名功能:调用菜单中的排名函数,通过冒泡排序法实现功能。
保存功能:运用写入文件。
五、系统设计
定义一个student类型的结构体,里面包含学生信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史)、总分、平均成绩。
5.1 新建功能
从键盘输入N个学生基本信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史),编程根据输入信息计算各学生总分和平均分。
创建动态链表,将学生信息存入链表中。在DOS屏幕上打印链表内所有学生信息。
新建一个文件,将动态链表中的数据(即输入的学生信息)存入文件中。5.2 打开功能
打开一个文件,从文件中读取学生信息,并新建链表,将数据存入动态链表。
在DOS屏幕上打印链表内所有学生信息。
5.3 修改功能
在DOS屏幕上打印出当前的所有学生信息。
输入待修改的学生学号,若不存在,输出“查无此人”;若存在,则输入修改的信息,并存回学生信息链表中,存回后学生信息链表依然是按学号顺序排列。
最后在DOS屏幕上打印出新的所有学生信息。
5.4 插入功能
在DOS屏幕上打印出当前的所有学生信息。
输入插入信息的条数,从第一条开始到最后一条,依次输入每条学生信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史),根据输入信息计算各学生总分和平均分。
若输入的学生学号已经存在,则输出“该学号已存在,无法操作!”,否则将学生信息插入到链表中,插入后链表中的数据依然按照学号排列。
最后在DOS屏幕上打印出新的所有学生信息。
5.5 查询功能
查询分为:精确查询、模糊查询
精确查询:
(1)按姓名查询
输入待查询的姓名;
根据顺序查询的方法,对学生的姓名依次查询,直到查询到与输入的信息相匹配的信息,并在DOS屏幕上显示出来。若需要查询的信息不存在,系统则会提示找不到此人。可重复查询。
(2)按学号查询
输入待查询的学号;
根据顺序查询的方法,对学生的学号依次查询,直到查询到与输入的信息相匹配的信息,并在DOS屏幕显示出来。若需要查询的信息不存在,系统则会提示找不到此人。可重复查询。
模糊查询:
(1)按姓氏查询
输入待查询的姓氏;
根据顺序查询的方法,对学生的姓依次查询,当查询到与输入的信息相匹配的信息,则在DOS屏幕显示出来,直到链表结束。若需要查询的信息不存在,系统则会提示找不到相关信息。可重复查询。
(2)按性别查询
输入待查询的性别;
根据顺序查询的方法,对学生的性别依次查询,当查询到与输入的信息相匹配的信息,则在DOS屏幕显示出来,直到链表结束。可重复查询。
5.6 删除功能
在DOS屏幕上打印出当前的所有学生信息。
(1)按姓名删除