学生管理系统 联系客服

发布时间 : 星期四 文章学生管理系统更新完毕开始阅读315a9202a8114431b90dd86b

开始

输入要删除学生的学号

在学生基本信息中删除 在学生成绩基本信息中删除

结束

图5

6.排序功能:void sort(grade *head);

head为指向学生成绩链表的头结点的指针。

下面流程图实现的是按综合成绩升序排序,使用的选择排序法,虽说使用的存储结构为链式存储结构,但排序时并非改变的指针指向,而是只修改存储的信息,指针指向不用改变。如图6

7

开始 head=head->next N head->next!=NULL

Y p=head->next

N P!=NULL Y N head->zonghe>p->zonghe Y 交换相邻节点中数据

p=p->next

head=head->next

结束 图6

7.显示所有学生信息:void show(student *stud); stud为指向学生基本信息数组的指针

用于显示内存中学生基本情况信息,以便更好了解学生的一些情况.

8

开始

i=1

stud[i].xuehao!=\ N

Y 输出学号,姓名,性别, 宿舍,电话号

i++

结束

图7

8.保存功能:void save1(student *stud); void save2(grade *head);

stud为指向学生基本信息数组的指针,head为指向学生成绩链表的头结点的指针。函数用于将内存中数据存储到文件中以便更好保存信息。

开始

输入i

N i==1

Y N I==2

保存学生基本信 Y 息到A.TXT 输入有误,

重新操作! 保存学生成绩信 息到B.TXT

结束

9

图8

3.2 源程序

#define num 10

#include . #include

#include //定义文件输入输出流 using namespace std;

//学生基本信息的结构体定义 typedef struct student {string xuehao; //学号 string name; //姓名 string gender; //性别 string sushe; //宿舍号 string tel;//电话 }student;

//学生成绩信息的结构体定义 typedef struct grade {string xuehao;//学号

string courseno; //课程号 string coursename; //课程名称 int xuefen; //学分

int pingshi; //平时成绩 int shiyan; //实验成绩 int juanmian;//卷面成绩 float zonghe;//综合成绩 float shide;//实得学分 grade *next; }grade;

void luru(grade *gra);

void menu(student *stu,grade *head,grade *gra); void lookfor(student *p,grade *head); void sort(grade *head); void out(grade *head); void sort1(grade *head);

void del(student *stu,grade *head); void show(student *stu); void save1(student *stud); void save2(grade *head);

10