学生信息管理系统C语言版_第1页
学生信息管理系统C语言版_第2页
学生信息管理系统C语言版_第3页
学生信息管理系统C语言版_第4页
学生信息管理系统C语言版_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流学生信息管理系统C语言版.精品文档./交流学习/QQ:1194758555#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#include<windows.h>int k,n;struct student double yuwen; double shuxue; double yingyu; double zong; double pingjun; char name20; char num2

2、0; stu1000;void jiazai(struct student stu,int *num1);void baocun(struct student stu,int n);void find(struct student stu,int n);int findnum(struct student stu,int n,char *num);/查找学号;void shanchu(struct student stu,int *num1);void shanchuyi(struct student stu,int *num1);/删除一条记录;void shanchuquanbu(stru

3、ct student stu,int *num1);void tianjiayi(struct student stu,int i);/添加一记录;void tianjia(struct student stu,int *num1);/添加记录;void xiugai(struct student stu,int n);/修改一条记录;void output(struct student stu,int n,int x);/打印信息;void paixu(struct student stu,int n);/排序;int jianchaxuehao(struct student stu,cha

4、r *num);/检查学号的合法性;int jianchachengji(double num);/检查成绩的合法性;void outputone(struct student *stu,int i,int x);/输出一条信息void caidan();int main() int q; jiazai(stu,&n); caidan(); scanf("%d",&q); while(q>6) printf("输入错误请重新输入n请输入0-6的数字n"); scanf("%d",&q); Sleep(30

5、0); 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: output(stu,n,0); break; case 0: exit(0); return 0;void caidan() printf("n"); printf

6、("欢迎进入学生信息管理系统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(&

7、quot;n"); printf(" 6输出 n"); printf("n"); printf(" 0退出 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; retur

8、n; 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 void *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

9、(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"); printf("n"); printf(" 0:按学号降序排序 n"); printf("n"); printf(" 1:按语

10、文成绩降序排序 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("

11、;cls"); qsort(stu,n,sizeof(stu0),cmpa); output(stu,n,0);int xuehao(const void *a,const void *b) if(strcmp(struct student *)a)->num,(struct student *)b)->num)>0) return -1; else return 1;int yuwen(const void *a,const void *b) return (struct student *)a)->yuwen < (struct student *)

12、b)->yuwen ? 1 : -1;int shuxue(const void *a,const void *b) return (struct student *)a)->shuxue < (struct student *)b)->shuxue ? 1 : -1;int yingyu(const void *a,const void *b) return (struct student *)a)->yingyu < (struct student *)b)->yingyu ? 1 : -1;int zongchengji(const void *

13、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"); printf(" 欢迎进入学生信息删除页面 n"); printf("n"); printf("请输入需要删除的学号n"

14、); 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

15、); while(in<0) printf("该学生的信息不存在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")

16、; main(); Sleep(300); system("cls"); printf("n"); printf(" 欢迎进入学生信息删除页面 n"); printf("n"); printf("请输入需要删除的学号n"); scanf("%s",str); in=findnum(stu,*num1,str); for(i=in; i<*num1-1; i+) stui=stui+1; (*num1)-; if(fp=fopen("d:student.dat&

17、quot;,"w")=NULL) printf("打开失败n"); exit(0); Sleep(300); system("cls"); printf("n"); printf(" 欢迎进入学生信息删除页面 n"); printf("n"); printf("删除成功n"); baocun(stu,*num1); printf("继续删除(yes-y)返回上主菜单(no-n)n"); getchar(); scanf("%s

18、",y); while(strcmp(y,"y")&&strcmp(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,in

19、t *num1) char y20,a20; FILE *fp; printf("n"); printf(" 欢迎进入学生信息删除页面 n"); printf("n"); printf("是否全部删除?(yes-y)返回主菜单(no-n)n"); scanf("%s",y); while(strcmp(y,"y")&&strcmp(y,"n") printf("请输入y或nn"); scanf("%s"

20、;,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("返回主菜单(yes-y)结束(no-n)n"); scan

21、f("%s",a); while(strcmp(a,"y")&&strcmp(a,"n") 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"

22、); 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("n"); printf("n"); printf("请输入选择:n"); getchar()

23、; 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; i<n; i+) if(strcmp(stui.num,num)=0) return i; return -1;void baocun(struct student stu,int

24、n) FILE *fp; if(fp=fopen("d:student.dat","w")=NULL) printf("打开失败n"); exit(0); fwrite(stu,(n+1)*sizeof(stu0),1,fp); fclose(fp);void output(struct student stu,int n,int x) int i; char y20; if(n>0) printf("n"); printf("%-10s%-6s%-6s%-6s%-6s%-6s%-6s",

25、"学号","姓名","语文","数学","英语","平均","总成绩n"); /printf("n"); for(i=0; i<n; i+) outputone(&stui,n,x); printf("n"); if(x) char q10; printf("返回主菜单(yes-y)返回上级菜单(no-n)n"); scanf("%s",q); while(str

26、cmp(q,"y")&&strcmp(q,"n") printf("请输入y或nn"); scanf("%s",q); Sleep(300); system("cls"); if(!strcmp(q,"y") main(); while(!strcmp(q,"n") paixu(stu,n); else printf("没有任何记录,请先添加信息n"); printf("返回主菜单(yes-y)结束(no-n)

27、n"); scanf("%s",y); while(strcmp(y,"y")&&strcmp(y,"n") printf("请输入y或nn"); scanf("%s",y); Sleep(300); system("cls"); if(!strcmp(y,"y") main(); else return;void outputone(struct student *stu,int n,int x) if(!x) printf(&

28、quot;n"); printf("%-10s%-6s%-6.2lf%-6.2lf%-6.2lf%-6.2lf%-6.2lfn",stu->num,stu->name,stu->yuwen,stu->shuxue,stu->yingyu,stu->pingjun,stu->zong); else printf("n"); printf("%-8s%-6s%-6s%-6s%-6s%-6s%-6s","学号","姓名","语文"

29、,"数学","英语","平均","总成绩n"); printf("n"); printf("%-8s%-6s%-6.1lf%-6.1lf%-6.1lf%-6.1lf%-6.1lfn",stu->num,stu->name,stu->yuwen,stu->shuxue,stu->yingyu,stu->pingjun,stu->zong); printf("n");void tianjiayi(struct stud

30、ent 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); Sle

31、ep(300); system("cls"); printf("n"); printf(" 欢迎进入学生信息添加页面 n"); printf("n"); printf("请输入该学生姓名n"); scanf("%s",); printf("请输入语文成绩n"); scanf("%lf",&stui.yuwen); b=jianchachengji(stui.yuwen); while(b=0) printf(&

32、quot;输入错误请重新输入n"); scanf("%lf",&stui.yuwen); b=jianchachengji(stui.yuwen); printf("请输入数学成绩n"); scanf("%lf",&stui.shuxue); b=jianchachengji(stui.shuxue); while(b=0) printf("输入错误请重新输入n"); scanf("%lf",&stui.shuxue); b=jianchachengji(stu

33、i.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=stui.yuwe

34、n+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(); sca

35、nf("%s",p); while(strcmp(p,"n")&&strcmp(p,"y") printf("请输入y或nn"); getchar(); scanf("%s",p); Sleep(300); system("cls"); baocun(stu,*num1); printf("返回主菜单(yes-y)结束(no-n)n"); getchar(); scanf("%s",y); while(strcmp(y,

36、"n")&&strcmp(y,"y") printf("请输入y或nn"); getchar(); scanf("%s",y); if(!strcmp(y,"y") Sleep(300); system("cls"); main(); else return;void xiugai(struct student stu,int n) int in,b,c; char a10,q10; char str20,y10; printf("n");

37、 printf(" 欢迎进入学生信息修改页面 n"); printf("n"); printf("请输入要修改学生的学号n"); getchar(); scanf("%s",str); c=jianchaxuehao(stu,str); in=findnum(stu,n,str); while(c=0|in<0) if(in<0|(in<0&&c=1) printf("此条信息不存在n"); if(c=0) printf("输入不合法请重新输入n&qu

38、ot;); printf("重新输入(yes-y)返回主菜单(no-n)n"); scanf("%s",a); while(strcmp(a,"y")&&strcmp(a,"n") printf("请输入y或nn"); getchar(); scanf("%s",a); Sleep(300); system("cls"); printf("n"); printf(" 欢迎进入学生信息修改页面 n");

39、 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("修改前的信息如下:n"); outputone(&stuin,n,1); printf("是否修改姓?(yes-y,no-n)n&q

40、uot;); 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(!strcm

41、p(y,"y") printf("请输入姓名n"); scanf("%s",); printf("是否修改%s的成绩?(yes-y)返回主菜单(no-n)n",stuin.num); /getchar(); scanf("%s",q); while(strcmp(q,"y")&&strcmp(q,"n") printf("请输入y或nn"); getchar(); scanf("%s&quo

42、t;,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=jianchachengji(stuin.yuwen); printf("请输入%s的数学成绩n",stui

43、n.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

44、(stuin.yingyu); while(b=0) printf("输入错误请重新输入n"); scanf("%lf",&stuin.yingyu); b=jianchachengji(stuin.yingyu); if(!strcmp(q,"n") Sleep(300); system("cls"); main(); baocun(stu,n); printf("添加成功n返回主菜单(yes-y)结束(no-n)n"); getchar(); scanf("%s"

45、,y); while(strcmp(y,"y")&&strcmp(y,"n") printf("请输入y或nn"); getchar(); scanf("%s",y); if(!strcmp(y,"y") Sleep(300); system("cls"); main(); else return;void find(struct student stu,int n) int in,c; char str20,y20,q20; printf("n&q

46、uot;); 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(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论