/*修改学生信息*/ void Student_Modify() {
while(1) {
char id[20]; int index;
printf(\请输入要修改的学生的学号:\ scanf(\ getchar();
index=Student_SearchByIndex(id); if (index==-1) {
printf(\学生不存在!\\n\ } else {
printf(\你要修改的学生信息为:\\n\ Student_DisplaySingle(index); printf(\请输入新值--\\n\ printf(\请输入学号:\
scanf(\ getchar();
printf(\请输入姓名:\
scanf(\ getchar();
printf(\请输入年龄:\
scanf(\ getchar();
printf(\请输入数学:\
scanf(\ getchar();
printf(\请输入英语:\
scanf(\ getchar();
printf(\请输入物理:\
scanf(\ getchar();
students[index].Total=Tol(students[index]); }
printf(\是否继续?(Y/N)\ if (getchar()=='N') {
- 16 -
break; } } }
/*删除学生信息*/ void Student_Delete() { int i; while(1) {
char id[20]; int index;
printf(\请输入要删除的学生的学号:\ scanf(\ getchar();
index=Student_SearchByIndex(id); if (index==-1) {
printf(\学生不存在!\\n\ } else {
printf(\你要删除的学生信息为:\\n\ Student_DisplaySingle(index); printf(\是否真的要删除?(Y/N)\ if (getchar()=='Y') {
for (i=index;i students[i]=students[i+1]; } num--; } getchar(); } printf(\是否继续?(Y/N)\ if (getchar()=='N') { break; } } } - 17 - /*按姓名查询*/ void Student_Select() { while(1) { char name[20]; int index; printf(\请输入要查询的学生的姓名:\ scanf(\ getchar(); index=Student_SearchByName(name); if (index==-1) { printf(\学生不存在!\\n\ } else { printf(\你要查询的学生信息为:\\n\ Student_DisplaySingle(index); } printf(\是否继续?(Y/N)\ if (getchar()=='N') { break; } } } /*按学号排序*/ void Student_SortByID() { int i,j; struct Student tmp; for (i=0;i for (j=1;j if (strcmp(students[j-1].ID,students[j].ID)==1) { tmp=students[j-1]; students[j-1]=students[j]; students[j]=tmp; - 18 - } } } } /*显示学生信息*/ void Student_Display() { int i; printf(\学号\姓名\年龄\数学\英语\物理\总成绩\ printf(\ for (i=0;i printf(%udents[i].Age, students[i].Math,students[i].English,students[i].Physics,students[i].Total); } } /*将学生信息从文件读出*/ void IO_ReadInfo() { FILE *fp; int i; if ((fp=fopen(\ { printf(\不能打开文件!\\n\ return; } if (fread(&num,sizeof(int),1,fp)!=1) { num=-1; } else { for(i=0;i fread(&students[i],sizeof(struct Student),1,fp); } } fclose(fp); - 19 - } /*将学生信息写入文件*/ void IO_WriteInfo() { FILE *fp; int i; if ((fp=fopen(\ { printf(\不能打开文件!\\n\ return; } if (fwrite(&num,sizeof(int),1,fp)!=1) { printf(\写入文件错误!\\n\ } for (i=0;i if (fwrite(&students[i],sizeof(struct Student),1,fp)!=1) { printf(\写入文件错误!\\n\ } } fclose(fp); } /*主程序*/ void main() { char choice; IO_ReadInfo(); while(1) { printf(\学生成绩管理系统------\\n\ printf(\:插入一个新的学生记录\\n\ printf(\:修改学生记录\\n\ printf(\:删除一个学生记录\\n\ printf(\:按姓名查询单个同学信息\\n\ printf(\:按学号排序\\n\ printf(\:浏览全班成绩\\n\ printf(\请选择(A-F):\ scanf(\ - 20 -