#include<>
#include<>
#include<>
#include<>
/* strcmp函数原型包含*/
#define N 100
/*定义最大学生人数为100*/
struct student  /*学生结构体定义*/
{
char no[11];  /*学号,10位*/
char name[10];/*姓名,3个汉字*/
char grade[10];/*班级*/
char pro[20];/*专业*/
float score[5];/*储存5门功课的成绩*/
float ave;/*储存平均分*/
int year;/*入学年*/
}stu[N];
int num;
void panduani(int);          /*通过i的值,判断信息要查的信息是否存在*/ void output();            /*输出学生成绩函数(公共函数)*/
void init();              /*系统初始化函数*/
void newfile();            /*建立新的数据文件*/
void read1();              /*从数据文件中读取数据*/
void weihu();              /*维护界面函数*/
void new1();              /*新增一个学生成绩函数*/
void xiugai();            /*修改学生成绩*/
void xgcj(int);            /*修改成绩*/
void delete1();            /*删除学生信息函数*/
void tongji();            /*统计界面函数*/
void tongji1();            /*计算每个学生平均分*/
fopen函数失败void tongji2();            /*计算每门课程的平均分*/
void paixu1();            /*排序函数*/
void paino();              /*按学号排序*/
void paiave();            /*按平均分排序*/
void paidkcj();            /*按单科成绩排序*/
void change(int,int);      /*交换结构体数组中的两个记录*/ void outputx(int);        /*选择输出单科成绩*/
void find1();              /*查界面函数*/
int find(char sno[]);      /*按学号查*/
int findname(char cname[]);/*按姓名查*/
void findyear(int cyear);  /*按入学年查*/
void save();              /*保存文件*/
void stop();              /*停顿函数*/
void stop()      /*停顿函数(公共函数)*/
{
printf("Press Any Key \n");
getchar();
}
void output()  /*输出学生成绩函数(公共函数)*/
{
int i,j;
printf("===================================================================\n") ;
printf("学号姓名班级专业入学年  C语言高数大物电路模电\n");
printf("===================================================================\n") ;
for(i=0;i<num;i++)
{
printf("%s    %s    %s    %s    %d",stu[i].no,stu[i].name,stu[i].grade,stu[i].p ro,stu[i].year);
for(j=0;j<5;j++)
printf("  %.1f",stu[i].score[j]);
printf("\n");
}
stop();
}
void init()  /*系统初始化函数 */
{
if(access("",0))  /*判断文件是否存在*/
newfile();            /*若不存在,新建数据文件*/
else
read1();  /*若存在,读取数据*/
}
void newfile()  /*建立新的数据文件 */
{
int i;
FILE *fp;
if((fp=fopen("","wb"))==NULL) /*创建二进制文件*/
{
printf("创建文件失败,请重新运行程序.\n");    /*显示"创建文件失败,请重新运行程序"*/
exit(0);  /*终止程序*/
}
printf("初次运行,进行数据初始化...\n");/*显示"初次运行,进行数据初始化..."*/ stop();
printf("请输入学生人数:");/*显示"请输入学生人数:"*/
scanf("%d",&num);
for(i=0;i<num;i++)
{
printf("请输入第 %d个学生的学号:",i+1); /*显示"请输入第i+1个学生的学号:"*/  getchar();  /*吃回车*/
gets(stu[i].no);
printf("姓名:"); /*显示"姓名:"*/
gets(stu[i].name);
printf("班级:"); /*显示"班级:"*/
gets(stu[i].grade);
printf("专业:"); /*显示"专业:"*/
gets(stu[i].pro);
printf("入学年n:");/*显示"入学年"*/
scanf("%d",&stu[i].year);
printf("C语言成绩:");/*显示"C语言成绩"*/
scanf("%f",&stu[i].score[0]);
printf("高数成绩:");/*显示"高数成绩"*/
scanf("%f",&stu[i].score[1]);
printf("大物成绩:");/*显示"大物成绩"*/
scanf("%f",&stu[i].score[2]);
printf("电路成绩:");/*显示"电路成绩"*/
scanf("%f",&stu[i].score[3]);
printf("模电成绩:");/*显示"模电成绩"*/
scanf("%f",&stu[i].score[4]);
fwrite(&stu[i],1,sizeof(struct student),fp);  /*把第i+1名学生成绩写入文件*/ }
fclose(fp);
printf("========================\n");
printf(" 刚才输入的 %d 个数据为:\n",num);  /*显示"刚才输入的 num 个数据为:"*/ printf("========================\n\n");
output();
}
void read1()  /*从数据文件中读取数据 */
{
FILE *fp;
num=0; /*num为数据文件中实际存储的学生人数*/
fp=fopen("","r");
if(fp==NULL) /*数据文件不存在*/
{