




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JavaEE练习测试卷及答案
- 多媒体设计师的跨领域知识整合试题及答案
- 初三生物上册试题及答案
- 逻辑考试题库及答案
- 设计师考试的复习心态调整试题及答案
- MS Office使用总结与2025年考试题
- 监护室病案试题及答案
- 2025高中毕业典礼暨高考总动员高中校长精彩讲话:终期大冶再熔炼愿托扶摇翔碧虚
- 转让合同撤销协议书范本
- EHS-5G无线硬件-通信基础-更新练习测试卷
- 最简单封阳台安全免责协议书
- SH/T 3533-2024 石油化工给水排水管道工程施工及验收规范(正式版)
- 用友人力资源管理HR解决方案样本
- 北京市西城区三帆中学2023-2024学年七年级下学期期中数学试题(无答案)
- 药物残留溶剂分析报告书
- 肿瘤医院推广方案
- 动物出血性肺炎预防与治疗
- 公路工程安全风险辨识与防控手册
- 研究生开题报告评审表
- 统编版语文二年级下册《黄帝的传说》教学课件
- 海南大学本科毕业论文正文范文
评论
0/150
提交评论