欢迎来到天天文库
浏览记录
ID:47514109
大小:1.29 MB
页数:41页
时间:2020-01-12
《学生成绩管理系统(链表版)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《C语言应用》实验报告题目学生成绩管理系统(链表版)目录第1章需求分析3第2章总体设计32.1系统的程序流程图32.2系统的全局变量和常量32.3系统的函数介绍3第3章详细设计33.1主函数设计33.2录入函数设计43.3排序函数设计43.4查找函数设计43.5修改函数设计43.6插入函数设计43.7删除函数设计43.8保存函数设计43.9显示函数设计43.10退出函数设计4第4章测试5总结5参考文献5附录程序源代码5第1章第1章需求分析(1)能完成学生成绩的插入、查询、修改、删除、输出等功能;(2)采用单链表存储结构实现;(3)所有数据以外部文件方
2、式保存第2章第2章总体设计2.1系统的程序流程图绘制一个系统的总体程序流程图,主要展示系统从开始以后,可以经过哪些流程,最后结束。按姓名修改某位同学的成绩按姓名修改某位同学的成绩输出链表内容输出链表内容进入系统浏览初始学生信息按姓名修改某位同学的成绩输入同学的相关信息查找按姓名删除某位同学的成绩初始学生成绩排序浏览所有同学的信息及排名插入新的成绩查看初始学生总分及平均分保存最终结果到可浏览文件退出系统主菜单统计学生信息录入2.2系统的全局变量和常量系统全局变量intn;chara;头文件:#include"stdio.h"#include"time.
3、h"#include"string.h"#include"stdlib.h"#include"conio.h"2.3系统的函数介绍把系统中的每个函数的原型列出来,解释一下函数的返回值及形式参数的含义;最后,再介绍一下每个函数的功能。voidCreate(intn)//创建链表voidList()//输出链表内容voidlist()//输出链表所有内容voidsave()//文件保存voidsave1()//文件保存voidread()//文件读取voidread1()//文件读取voidSAVE(){//保存到可浏览文件voidSAVE1()//保存
4、到可浏览文件voidsort_data_copy(Lstu*p,Lstu*s)//交换排序时的值voidsort()//对初始成绩进行排序voidsort1()//对所有数据进行排序voidsearch_print(Lstu*p)//输出查找信息voidsearch_choose()//选择按分数段查找方式voidsearch()//查找voidmodify_choose(Lstu*p,intn)//选择修改方式voidmodify()//按姓名修改voidInsert()//按序号插入voiddel()//按姓名删除voidstatistics()
5、//成绩统计intmenu()//菜单(主界面)第1章第3章详细设计按函数,写出函数的原型声明,并画出每个函数的程序流程图。3.1主函数设计函数3.2录入函数设计添加的信息包括学号(不允许重复)、姓名(不允许重复)、语文成绩、数学成绩和英语成绩,如流程图所示:开始插入数据输入学生成绩信息调用类成员函数采用单链表保存数据结束调用类成员函数保存数据到文件中本程序采用的是尾插法,就是每次将新申请的结点插在终端结点的后面,其执行过程如图所示。尾插法建立单链表操作示意图3.3排序函数设计可按照学号、语文成绩、数学成绩、英语成绩和平均分分别排序。如图所示:结束输
6、入排序编号判断抱歉,没有此排序输出学生的信息排序开始NY3.4查找函数设计按姓名、学号和分数段查找学生成绩的流程图分别如下图4.3所示。结束输入要查找姓名判断抱歉没有该学生输出该学生的信息按姓名查找开始NY图4.3按姓名查找学生成绩信息流程图在单链表中,即使知道被访问结点的位置i,也不能像顺序表那样直接按序号访问,而只能从头指针出发,设置一个工作指针p,顺next域逐个结点往下搜索。当p指向某个结点时判断是否为第i个结点,若是则查找成功;否则,将工作指针p后移,即将p指向原来所指结点的后继结点。直到p为NULL时查找失败。单链表查找过程如图4.4所示
7、。图4.4单链表查找过程的示意图按学号查询学生成绩信息同按姓名查找学生成绩信息,此处不再详细列出。(3)学生成绩修改模块3.5修改函数设计首先要查找与要修改数据相匹配的信息,若没有则返回失败。否则把相应的信息输出,然后再重新输入新的数据并保存到单链表。返回主菜单开始修改操作输入姓名姓名一致执行修改功能NY3.6插入函数设计首先要确定插入数据的位置,执行插入操作,然后再输入数据并保存到单链表。开始插入操作选择要插入的位置判断插入的位置执行插入功能NY返回主菜单3.7删除函数设计当选择删除功能时,首先输入要删除的同学的姓名,然后输入要删除的同学的学号,如
8、果该同学存在并且姓名与学号匹配的上,则进行删除操作,否则返回失败。其流程图如下:开始删除操作输入姓名姓名姓名
此文档下载收益归作者所有