#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(); /*计算每个学生平均分*/ 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(\ getchar(); }
void output() /*输出学生成绩函数(公共函数)*/ { int i,j;
printf(\;
printf(\学号 姓名 班级 专业 入学年 C语言 高数 大物 电路 模电\\n\
printf(\;
for(i=0;i printf(\ro,stu[i].year); for(j=0;j<5;j++) printf(\ printf(\ } stop(); } void init() /*系统初始化函数 */ { if(access(\判断文件是否存在*/ newfile(); /*若不存在,新建数据文件*/ else read1(); /*若存在,读取数据*/ } void newfile() /*建立新的数据文件 */ { int i; FILE *fp; if((fp=fopen(\创建二进制文件*/ { printf(\创建文件失败,请重新运行程序.\\n\显示\创建文件失败,请重新运行程序\ exit(0); /*终止程序*/ } printf(\初次运行,进行数据初始化...\\n\显示\初次运行,进行数据初始化...\ stop(); printf(\请输入学生人数:\显示\请输入学生人数:\ scanf(\ for(i=0;i printf(\请输入第 %d个学生的学号:\显示\请输入第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(\ printf(\语言成绩:\显示\语言成绩\ scanf(\ printf(\高数成绩:\显示\高数成绩\ scanf(\ printf(\大物成绩:\显示\大物成绩\ scanf(\ printf(\电路成绩:\显示\电路成绩\ scanf(\ printf(\模电成绩:\显示\模电成绩\ scanf(\ fwrite(&stu[i],1,sizeof(struct student),fp); /*把第i+1名学生成绩写入文件*/ } fclose(fp); printf(\ printf(\刚才输入的 %d 个数据为:\\n\显示\刚才输入的 num 个数据为:\ printf(\ output(); } void read1() /*从数据文件中读取数据 */ { FILE *fp; num=0; /*num为数据文件中实际存储的学生人数*/ fp=fopen(\ if(fp==NULL) /*数据文件不存在*/ {