文档介绍:#include""
#include""
#include""
#include<>
int tem1,tem2,long1,long2; //全局变量,tem1,tem2代表管理员和普通账号的所存结构体的编号。long1,long2表管理员和普通账号的总个数
struct zhanghao //账号的结构体
{
char zh[20];
char mima[20];
}zhh[100];
struct student //学生成绩的结构体
{
char name[10];
char num[20];
int gaoshu;
int c;
int lisan;
int yuanli;
int yingyu;
int sum;
}stu,tem;
struct ls //学生成绩的结构体(链表)
{
char name[10];
char num[20];
int gaoshu;
int c;
int lisan;
int yuanli;
int yingyu;
int sum;
struct ls*next;
};
void add(); //增加单个学生信息
void shuchu(); //全部输出
void dangechaxun(); //单个查询学生信息
void paixu(); //按学号排序
void gaoshupai(); //按高数成绩排序
void cpai(); //按c语言成绩排序
void lisanpai(); //按离散成绩排序
void yuanlipai(); //按原理成绩排序
void yingyupai(); // 按英语成绩排序
void shenqing(); //账号普通成员申请
void denglu1(); //管理员账号登陆
void denglu2(); //普通账号登陆
void caidan1(); //管理员菜单
void caidan2(); //普通账菜单
void caidan3(); //分类排序菜单
void xiugaimima1(); //管理员密码修改
void xiugaimima2(); //普通成员密码修改
void danketongji(); //单科成绩的各种统计
void gaoshutongji(struct ls *head); //高数成绩统计
void ctongji(struct ls *head) ; //c语言成绩统计
void lisantongji(struct ls *head) ; //离散成绩统计
void yuanlitongji(struct ls *head) ; //原理成绩统计
void yingyutongji(struct ls *head) ; //英语成绩统计
void chongxiutongji();
void guaketongji();
void create(struct ls*head) //创建链表,把学生信息全部读入链表
{
struct ls*p,*q;
q=head;
FILE *fp;
fp=fopen("","rt");
while(feof(fp)==0)
{
fread(&stu,sizeof(struct student),1,fp);
p=(struct ls*)malloc(sizeof(struct ls));
if(p==NULL) break;
if(strcmp(,)==0) break;
strcpy(p->name,);
strcpy(p->num,);
p->gaoshu=;
p->c=;
p->lisan=;
p->yuanli=;
p->yingyu=;
p->sum=;
q->next=p;
q=p;
strcpy(,); //最后一次读写重复就跳出
}
q->next=NULL;
}
void zidongxieru(struct ls*head) //自动把按序号排好的链表写入文件
{
struct ls*p=head->next;
FILE *fp;
fp=fopen("student