当前位置:首页 > 学生管理系统
//学生成绩信息的结构体定义 typedef struct grade {string xuehao;//学号
string courseno; //课程号 string coursename; //课程名称 int xuefen; //学分
int pingshi; //平时成绩 int shiyan; //实验成绩 int juanmian;//卷面成绩 float zonghe;//综合成绩 float shide;//实得学分 grade *next; }grade;
2.2 基本操作
(1)数据录入功能 (2)查询功能 (3)删除功能 (4)排序功能
(5)显示所有学生信息 (6)保存 (7)退出
3 详细设计 3.1 流程图
各个算法的设计如下: 1.主函数:int main( );
从A.txt中读取存储的学生基本信息到内存,以便进行处理,过程如图
1 3
开始 创建存储学生信息的 单链表的头结点
将学生信息读取到内存
调用菜单函数
结束
图 1
2.菜单函数:void menu(student *stu,grade *head,grade *gra); stu是指向学生基本信息数组的指针,head是指向学生成绩信息链表头结点的指针,gra是指向学生成绩信息链表最后一个结点的指针。
用于进行指示进行各种操作,是与每个函数都相联系的一个函数,功能操作见图2
开始 菜单 输入i 4排序 6保存 3删除 2查询 5显示学生信息 1数据录入 结束
其他有误误 0退出 4
图2
3.数据录入函数:void luru(grade *gra);
其中gra是指向单链表最后一个结点的指针,用于后插法中进行插入。 将学生成绩信息依次输入单链表中,其中单链表边输入边创建,综合成绩和实得学分可由计算机自己计算。流程图见图3
开始 输入学生的学号 输入学生课程编号 输入学生学分 输入学生平时成绩 输入学生实验成绩 输入学生卷面成绩 Y N gra->shiyan=-1 综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% 综合成绩=平时成绩*30%+卷面成绩*70% 判断成绩范围 90-100 80-90 70-80 60-70 60以下 应得学分=0 应得学分=学分*75% 应得学分=学分*60% 应得学分=学分*100% 应得学分=学分*80% 结束
5
图3
4.查询功能:void lookfor(student *p,grade *head); P为指向学生基本信息数组的指针,head为指向学生成绩链表的头结点的指针。
有学生基本情况查询和成绩查询两种大功能,基本情况查询又分为按学号或姓名查找单个学生基本信息,也可输入宿舍号查询整个宿舍学生的基本信息。成绩查询只要输入学号便可查询相应学生的成绩信息。见图4 开始 输入i A:学生基本情况查询 B:成绩查询 输入j 输入学号 1.输入一个学号或姓名 2.输入一个宿舍号码 输出相应学生所有成绩 b 按姓名查找 a 按学号查找 输出一个宿舍学生信息 输出相应学生信息 结束
图4
5.删除功能:void del(student *stu,grade *head);
stu为指向学生基本信息数组的指针,head为指向学生成绩链表的头结点的指针。
执行删除功能时在存储学生基本信息的数组中与存储学生成绩信息的链表中同时删除该学生信息,以便进行下面操作与向文件中存储信息。功能见图5
6
共分享92篇相关文档