1、/交流学习/QQ:1194758555includestdio。hincludestring。hincludestdlib.hinclude6) printf(”输入错误请重新输入n请输入0-6的数字n”);scanf(”d”,q); Sleep(300);system(”cls”);switch(q) case 1 :tianjia(stu,n);break;case 2:xiugai(stu,n);break;case 3:paixu(stu,n);break;case 4:find(stu,n);break;case 5:shanchu(stu,n);break;case 6:outpu
2、t(stu,n,0);break;case 0:exit(0); return 0;void caidan() printf(”n); printf(欢迎进入学生信息管理系统n”); printf(”n”); printf(” 1添加学生成绩 n”); printf(”n); printf( 2修改学生成绩 n); printf(”n); printf( 3排序 n); printf(”n”); printf(” 4查找 n); printf(n”); printf(” 5删除 n); printf(”n); printf(” 6输出 n); printf(”n”); printf( 0退出
3、n”); printf(”n); printf(”n); printf(”请输入选择:n”);void jiazai(struct student stu,int num1) FILE fp;int i;if(fp=fopen(”d:student.dat,r”))=NULL) *num1=0;return; for(i=0; fread(stui,sizeof(struct student),1,fp)!=0; i+) num1=i;fclose(fp);void paixu(struct student stu,int n)int xuehao(const void a,const voi
4、d *b);int yuwen(const void a,const void *b);int shuxue(const void a,const void b);int yingyu(const void *a,const void *b);int zongchengji(const void *a,const void b);int (cmp)(const void a,const void b)= xuehao,yuwen,shuxue,yingyu,zongchengji;int a; printf(n); printf(” 欢迎进入学生信息排序页面 n); printf(n”); p
5、rintf(”n”); printf(” 0:按学号降序排序 n); printf(”n”); printf(” 1:按语文成绩降序排序 n); printf(”n”); printf(” 2:按数学成绩降序排序 n); printf(n); printf( 3:按英语成绩降序排序 n); printf(”n”); printf(” 4:安总成绩降序排序 n”); printf(”n”); printf(请输入选择:n);scanf(%d,&a);Sleep(300);system(cls);qsort(stu,n,sizeof(stu0),cmpa);output(stu,n,0);int
6、xuehao(const void *a,const void b)if(strcmp((struct student )a)-num,(struct student )b)num)0)return 1;elsereturn 1;int yuwen(const void *a,const void b)return ((struct student )a)yuwen yuwen ? 1 : -1;int shuxue(const void *a,const void b)return ((struct student *)a)shuxue shuxue ? 1 : -1;int yingyu(
7、const void a,const void *b)return (struct student *)a)yingyu ((struct student *)b)yingyu ? 1 : 1;int zongchengji(const void *a,const void b)return (struct student )a)-zong ((struct student )b)-zong ? 1 : 1;void shanchuyi(struct student stu,int num1)int i,in,c;char y20; FILE fp;char str20; printf(”n)
8、; printf(” 欢迎进入学生信息删除页面 n”); printf(”n”); printf(”请输入需要删除的学号n);scanf(”%s,str); c=jianchaxuehao(stu,str);while(c=0) printf(输入的学号不合法请重新输入n);scanf(”s”,str); c=jianchaxuehao(stu,str); Sleep(300);system(”cls”); printf(”n”); printf(” 欢迎进入学生信息删除页面 n”); printf(n”);in=findnum(stu,*num1,str);while(in0) printf
9、(该学生的信息不存在n”); printf(重新输入(yes-y)返回主菜单(no-n)n);scanf(”s”,y);while(strcmp(y,”y”)strcmp(y,”n) printf(”请输入y或nn”);scanf(s”,y); if(!strcmp(y,”n”)) Sleep(300);system(cls);main(); Sleep(300);system(”cls); printf(”n); printf(” 欢迎进入学生信息删除页面 n); printf(n); printf(请输入需要删除的学号n”);scanf(s,str);in=findnum(stu,num1
10、,str); for(i=in; i*num1-1; i+)stui=stui+1; (num1)-;if((fp=fopen(d:student.dat,”w))=NULL) printf(”打开失败n);exit(0); Sleep(300);system(”cls); printf(n); printf(” 欢迎进入学生信息删除页面 n”); printf(n); printf(”删除成功n”);baocun(stu,num1); printf(”继续删除(yesy)返回上主菜单(non)n);getchar();scanf(”s,y);while(strcmp(y,”y)strcmp(
11、y,”n”)) printf(请输入y或nn”);getchar();scanf(”s”,y); Sleep(300);system(cls);if(!strcmp(y,n))main();if(!strcmp(y,y”))shanchuyi(stu,num1);void shanchuquanbu(struct student stu,int num1)char y20,a20; FILE *fp; printf(”n); printf(” 欢迎进入学生信息删除页面 n”); printf(n”); printf(”是否全部删除?(yesy)返回主菜单(no-n)n);scanf(”s”,y
12、);while(strcmp(y,”y)&strcmp(y,”n”) printf(”请输入y或nn);scanf(s”,y); Sleep(300);system(”cls); printf(”n”); printf( 欢迎进入学生信息删除页面 n”); printf(”n”);if(!strcmp(y,”y”)) fp=fopen(”d:student。dat”,w”); num1=0; printf(删除完成n);fclose(fp); printf(返回主菜单(yesy)结束(no-n)n”);scanf(”%s,a);while(strcmp(a,”y”)strcmp(a,”n”))
13、 printf(”请输入y或nn”);scanf(”%s”,a); Sleep(300);system(cls);if(!strcmp(a,y))main();else Sleep(300);system(cls);return; else Sleep(300);system(cls”);main(); void shanchu(struct student stu,int num1)int q; printf(”n”); printf(删除n”); printf(”n”); printf(”1:删除指定信息n”); printf(”n”); printf(2:删除全部信息n); printf
14、(”n”); printf(”n); printf(”请输入选择:n);getchar();scanf(”d,q);system(cls”);switch(q) case 1:shanchuyi(stu,num1);break;case 2:shanchuquanbu(stu,num1);break; int findnum(struct student stu,int n,char *num)int i;for(i=0; i0) printf(”n); printf(”%10s6s%6s%6s6s6s-6s”,”学号”,”姓名,”语文,”数学”,英语”,平均,”总成绩n); /printf(
15、”n”);for(i=0; iname,stuyuwen,stu-shuxue,stuyingyu,stupingjun,stu-zong); else printf(n”); printf(8s6s6s-6s6s6s%-6s”,学号”,姓名,”语文,”数学”,英语”,平均”,总成绩n”); printf(”n”); printf(8s6s%6。1lf6.1lf6。1lf6.1lf%6.1lfn”,stunum,stu-name,stu-yuwen,stu-shuxue,stuyingyu,stu-pingjun,stuzong); printf(”n); void tianjiayi(str
16、uct student stu,int i)int a,b; printf(”请输入学生学号n);getchar();scanf(s”,stui.num); a=jianchaxuehao(stu,stui.num);while(a=0|a=2) if(a=0) printf(”输入的学号不合法请重新输入n”);if(a=2) printf(”输入的学号与已有的重复请重新输入n);scanf(”s”,stui。num); a=jianchaxuehao(stu,stui。num);Sleep(300);system(cls); printf(”n”); printf( 欢迎进入学生信息添加页面
17、 n”); printf(”n”); printf(”请输入该学生姓名n);scanf(”%s,stui.name); printf(”请输入语文成绩n”);scanf(”lf,stui。yuwen); b=jianchachengji(stui。yuwen);while(b=0) printf(输入错误请重新输入n”);scanf(%lf,stui.yuwen); b=jianchachengji(stui。yuwen); printf(”请输入数学成绩n);scanf(”lf”,stui.shuxue); b=jianchachengji(stui。shuxue);while(b=0) p
18、rintf(”输入错误请重新输入n”);scanf(”%lf”,&stui。shuxue); b=jianchachengji(stui。shuxue); printf(请输入英语成绩n);scanf(”%lf,stui。yingyu); b=jianchachengji(stui。yingyu);while(b=0) printf(输入错误请重新输入n”);scanf(lf,stui.yingyu); b=jianchachengji(stui.yingyu); stui.pingjun=(stui。yuwen+stui.shuxue+stui。yingyu)/3;stui.zong=stu
19、i。yuwen+stui。shuxue+stui。yingyu;void tianjia(struct student stu,int num1)char p10=”y”,y10; printf(n); printf(” 欢迎进入学生信息添加页面 n”); printf(n”);while(!strcmp(p,y)) tianjiayi(stu,*num1); (*num1)+=1; printf(”是否继续添加(yes-y,no-n)n”);getchar();scanf(”s,p);while(strcmp(p,n”)&strcmp(p,”y”)) printf(”请输入y或nn”);ge
20、tchar();scanf(”%s,p); Sleep(300);system(”cls”); baocun(stu,num1); printf(返回主菜单(yes-y)结束(no-n)n);getchar();scanf(”s”,y);while(strcmp(y,”n”)&strcmp(y,”y”)) printf(”请输入y或nn);getchar();scanf(”s,y); if(!strcmp(y,”y”) Sleep(300);system(cls”);main(); elsereturn;void xiugai(struct student stu,int n)int in,b
21、,c;char a10,q10;char str20,y10; printf(”n”); printf(” 欢迎进入学生信息修改页面 n”); printf(”n”); printf(”请输入要修改学生的学号n);getchar();scanf(”s,str); c=jianchaxuehao(stu,str);in=findnum(stu,n,str);while(c=0|in0) if(in0|(in0&c=1) printf(此条信息不存在n”);if(c=0) printf(输入不合法请重新输入n); printf(重新输入(yesy)返回主菜单(no-n)n”);scanf(”s”,
22、a);while(strcmp(a,”y”)&strcmp(a,”n) printf(”请输入y或nn”);getchar();scanf(”s,a); Sleep(300);system(”cls); printf(n”); printf(” 欢迎进入学生信息修改页面 n); printf(”n);if(!strcmp(a,”n”)) Sleep(300);system(”cls”);main(); printf(”请输入要修改学生的学号n”);scanf(%s”,str); c=jianchaxuehao(stu,str);in=findnum(stu,n,str); printf(”修改
23、前的信息如下:n);outputone(&stuin,n,1); printf(”是否修改姓?(yesy,non)n”);getchar();scanf(s,y);while(strcmp(y,”y”)&strcmp(y,n)) printf(”请输入y或nn”);getchar();scanf(”%s”,y); Sleep(300);system(cls); printf(n); printf(” 欢迎进入学生信息修改页面 n”); printf(”n”);if(!strcmp(y,”y) printf(”请输入姓名n);scanf(”s,stuin。name); printf(”是否修改%
24、s的成绩?(yes-y)返回主菜单(non)n”,stuin。num); /getchar();scanf(”%s”,q);while(strcmp(q,”y)strcmp(q,”n”)) printf(”请输入y或nn);getchar();scanf(”s”,q); if(!strcmp(q,”y”)) printf(”请输入%s的语文成绩n”,stuin。num);scanf(”lf”,&stuin。yuwen); b=jianchachengji(stuin.yuwen);while(b=0) printf(”输入错误请重新输入n);scanf(lf,stuin。yuwen); b=j
25、ianchachengji(stuin。yuwen); printf(”请输入s的数学成绩n,stuin。num);scanf(%lf”,stuin.shuxue); b=jianchachengji(stuin。shuxue);while(b=0) printf(输入错误请重新输入n”);scanf(%lf,stuin。shuxue); b=jianchachengji(stuin。shuxue); printf(”请输入%s的英语成绩n,stuin。num);scanf(”%lf,stuin.yingyu); b=jianchachengji(stuin。yingyu);while(b=0) printf(”输入错误请重新输入n);scanf(lf”,stuin.yingyu); b=jianchachengji(stuin.yingyu); if(!strcmp(q,n”)