}
for(i=0;!feof(fp);i++) //读取文件
{
fscanf(fp,\CInfo.Cno,&StuInfo[i].CInfo.Cname); }
num=i;
if(num==N)
{
printf(\保存记录数超出结构体数组数的大小,请先修改N的值\\n\
menu();
}
printf(\请按照提示输入学生信息:\\n\\n\ printf(\姓名:\
scanf(\ do {
printf(\性别(男或女):\
scanf(\
if((strcmp(sex,\男\女\ {
printf(\输入错误,请输入男或女!\\n\ right=1;
getchar();
}
else right=0;
}while(right==1);
strcpy(StuInfo[num].Sex,sex); do {
printf(\学号(11位):\ scanf(\ if(strlen(sno)!=11) {
printf(\输入错误,学号长度应为11位数!\\n\
right=1; getchar(); }
else right=0;
for(i=0;i { if(strcmp(sno,StuInfo[i].Sno)==0) { - 36 - printf(\该学号已经存在,请重新输入!\\n\ right=1; getchar(); } } }while(right==1); strcpy(StuInfo[num].Sno,sno); do { printf(\年龄:\ scanf(\ if(age<=0||age>100) { printf(\年龄应在0-100之间,请重新输入年龄!\\n\ right=1; getchar(); } else right=0; }while(right==1); StuInfo[num].Age=age; do { printf(\班号(6位):\ scanf(\ if(strlen(cno)!=6) { printf(\输入错误,班号长度应为6位数!\\n\ right=1; getchar(); } else right=0; }while(right==1); strcpy(StuInfo[num].CInfo.Cno,cno); printf(\班名:\ scanf(\ //把该记录写到文件末尾 fprintf(fp,\Age,StuInfo[num].CInfo.Cno,StuInfo[num].CInfo.Cname); fclose(fp); printf(\保存成功!\\n\ printf(\请按enter键返回主菜单!\\n\ getchar(); getchar(); - 37 - menu(); } void modify() { int num; int i; int right; int age; char sex[20]; char cno[20]; char sno[20]; int found=-1; char StuNO[20]; FILE*fpr,*fpw; if((fpr=fopen(\ { printf(\文件打不开!\\n\ menu(); } for(i=0;!feof(fpr);i++) //读取文件 { fscanf(fpr,\CInfo.Cno,&StuInfo[i].CInfo.Cname); } num=i; fclose(fpr); printf(\请输入学号选择要修改的记录:\ scanf(\ for(i=0;i if(strcmp(StuNO,StuInfo[i].Sno)==0) { found=i; printf(\你要修改的学生信息为:\\n\\n\ printf(\姓名 性别 学号 年龄 班号 班名\\n\ //修改学生信息 printf(\o.Cno,StuInfo[i].CInfo.Cname); printf(\请按照提示输入学生的新信息:\\n\ printf(\姓名:\ scanf(\ do - 38 - { printf(\性别(男或女):\ scanf(\ if((strcmp(sex,\男\女\ { printf(\输入错误,请输入男或女!\\n\ right=1; getchar(); } else right=0; }while(right==1); strcpy(StuInfo[found].Sex,sex); do { printf(\学号(11位):\ scanf(\ if(strlen(sno)!=11) { printf(\输入错误,学号长度应为11位数!\\n\ right=1; getchar(); } else right=0; for(i=0;i if((i!=found)&&(strcmp(sno,StuInfo[i].Sno)==0)) { printf(\该学号已经存在,请重新输入!\\n\ right=1; getchar(); } } }while(right==1); strcpy(StuInfo[found].Sno,sno); do { printf(\年龄:\ scanf(\ if(age<=0||age>100) { printf(\年龄应在0-100之间,请重新输入年龄!\\n\ right=1; getchar(); } - 39 - else right=0; }while(right==1); StuInfo[found].Age=age; do { printf(\班号(6位):\ scanf(\ if(strlen(cno)!=6) { printf(\输入错误,班号长度应为6位数!\\n\ right=1; getchar(); } else right=0; }while(right==1); strcpy(StuInfo[found].CInfo.Cno,cno); printf(\班名:\ scanf(\ if((fpw=fopen(\ { printf(\文件打不开,保存失败!\\n\ menu(); } for(i=0;i { fprintf(fpw,\.CInfo.Cno,StuInfo[i].CInfo.Cname); } fclose(fpw); printf(\修改成功!\\n\ printf(\请按enter键返回主菜单!\\n\ getchar(); getchar(); menu(); } if(found<0) { printf(\没有找到该学号的记录:\\n\ printf(\请按enter键返回主菜单!\\n\ } getchar(); getchar(); menu(); - 40 -