}
for(i=0;!feof(fp);i++) {
fscanf(fp,\&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,
&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname); }
num=i; fclose(fp);
printf(\请输入学生学号:\ scanf(\ for(i=0;i { if(strcmp(no,StuInfo[i].Sno)==0) { found=i; printf(\该学生的信息为:\\n\\n\ printf(\姓名 性别 学号 年龄 班号 班名\\n\ printf(\nfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname); } } if(found<0) printf(\没有找到该班号的记录!\\n\ printf(\请按enter键返回上级菜单!\\n\ getchar(); getchar(); quiry(); } 5.6.2 根据姓名查找某学生的学生证信息: void bySname() { int found=-1; int num; int i; char name[20]; FILE*fp; if((fp=fopen(\ { printf(\文件打不开!\\n\ menu(); } for(i=0;!feof(fp);i++) - 16 - { fscanf(fp,\&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age, &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname); } num=i; fclose(fp); printf(\请输入学生姓名:\ scanf(\ for(i=0;i { if(strcmp(name,StuInfo[i].Sname)==0) { found=i; printf(\该学生的信息为:\\n\\n\ printf(\姓名 性别 学号 年龄 班号 班名\\n\ printf(\Info[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname); } if(found<0) printf(\没有找到该班号的记录!\\n\ printf(\请按enter键返回上级菜单!\\n\ getchar(); getchar(); quiry(); } } 5.6.3 根据班号查询某个班级所有学生的 学生证信息: void byCno() { int found=-1; int num; int i; char ClaNO[20]; FILE*fp; if((fp=fopen(\ { printf(\文件打不开!\\n\ menu(); } for(i=0;!feof(fp);i++) { - 17 - fscanf(fp,\&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age, &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname); } num=i; fclose(fp); printf(\请输入班号:\ scanf(\ printf(\该班级的学生信息为:\\n\\n\ printf(\姓名 性别 学号 年龄 班号 班名\\n\ for(i=0;i if(strcmp(ClaNO,StuInfo[i].CInfo.Cno)==0) { found=i; printf(\nfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname); } } if(found<0) //found小于0,说明不存在班号的学生记录 printf(\没有找到该班号的记录!\\n\ printf(\请按enter键返回上级菜单!\\n\ getchar(); getchar(); quiry(); } 5.7 统计模块 该模块实现了基本的统计功能,包括 分别统计男女生的人数、平均年龄,以及 全体学生的人数和基本年龄; void stastic() { int chose; int right; do { printf(\全体男生\\t2-全体女生 \\t3-全体学生\\t4-返回\\n\ printf(\请输入数字选择:\ scanf(\ if(chose<1||chose>4) - 18 - { right=1; getchar(); } else right=0; }while(right==1); switch(chose) { case 1: Male(); //男生的统计信息 printf(\请按enter键返回上级菜单!\\n\ getchar(); getchar(); stastic(); break; case 2: Female(); //女生的统计信息 printf(\请按enter键返回上级菜单!\\n\ getchar();getchar(); stastic(); break; case 3: StuMsg(); //全体学生的统计信息 printf(\请按enter键返回上级菜单!\\n\ getchar();getchar(); stastic(); } } break; case 4:menu(); 5.7.1 统计男生信息子模块 void Male() { int num; //人数 float mg; //平均年龄 num=MaleNum(); mg=MaleMG(); printf(\男生总人数为:%d\\n平均年 龄为:%f\\n\} 5.7.1.1 返回男生人数子函数 int MaleNum() { - 19 - int num; int count=0; int i; FILE*fp; if((fp=fopen(\ { printf(\文件打不开!\\n\ menu(); } for(i=0;!feof(fp);i++) { fscanf(fp,\Info[i].CInfo.Cno,&StuInfo[i].CInfo.Cname); } fclose(fp); num=i; for(i=0;i { count++; } } return count; } 5.7.1.2 返回男生平均年龄 float MaleMG() { int num; int count=0; int found; float mAge=0; int i; FILE*fp; if((fp=fopen(\ { printf(\文件打不开!\\n\ menu(); } for(i=0;!feof(fp);i++) { fscanf(fp,\ &StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age, - 20 -