《2022年C语言学生选课管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言学生选课管理系统 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include #include #include struct student int num; char name10; char sex3; int age; float score; stu5=1001,张 林 , 男 ,18,80,1002,陈 明 , 男 ,19,58,1003,李 红 , 女,20,89,1004, 王小 , 女 ,19,85; void cover() system(cls); printf(nnn); printf(ttt 班级学生成绩管理系统nn); printf(tttt 版本号 :1.0nn); printf(nnn); printf(tttt 201
2、1年 5 月nn); printf(tttt 土本工程专业n); void mainmenu() system(cls); printf(nnn); printf( | * * * * * 学生成绩管理系统* * * * * |n); printf( |.|n); printf( | 请选择菜单序号(06) |n); printf( |.|n); printf( | 1- 打开文件|n); printf( | 2- 保存文件|n); printf( | 3- 编辑数据|n); printf( | 4- 显示数据|n); printf( | 5- 数据计算|n); printf( | 6- 数据
3、排序|n); printf( | 7- 程序说明|n); printf( | 0- 退出系统|n); printf( |.|n); void edit() system(cls); printf(nnn); printf( | * * * * * 编辑子菜单 * * * * * |n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - printf( |.|n); printf( | 请选择菜单序号(03) |n); print
4、f( |.|n); printf( | 1- 增加记录|n); printf( | 2- 删除记录|n); printf( | 3- 修改记录|n); printf( | 0- 返回上级菜单|n); printf( |.|n); void display() system(cls); printf(nnn); printf( | * * * * * 查看子菜单 * * * * * |n); printf( |.|n); printf( | 请选择菜单序号(04) |n); printf( |.|n); printf( | 1- 查看选定记录|n); printf( | 2- 显示全部记录|n)
5、; printf( | 3- 显示排序记录|n); printf( | 4- 显示不及格记录|n); printf( | 0- 返回上级菜单|n); printf( |.|n); void calculate() system(cls); printf(nnn); printf( | * * * * * * * 计算子菜单 * * * * * * |n); printf( |.|n); printf( | 请选择菜单序号(03) |n); printf( |.|n); printf( | 1- 计算总成绩和平均成绩|n); printf( | 2- 计算最高分|n); printf( | 3-
6、 计算最低分|n); printf( | 0- 返回上级菜单|n); printf( |.|n); void sort() system(cls); printf(nnn); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - printf( | * * * * * 排序子菜单 * * * * * * * |n); printf( |.|n); printf( | 请选择菜单序号(02) |n); printf( |.|n); pr
7、intf( | 1- 按升序排序|n); printf( | 2- 按降序排序|n); printf( | 0- 返回上级菜单|n); printf( |.|n); void maxsco ( struct student stu,int n) /最示成绩最大值 float max; int i,maxid; max=stu0.score; for(i=1;imax) max=stui.score; maxid=i; printf( 成绩最高分的学生是:%s,成绩为 : =%fn,stumaxid.name,max); getchar(); void minsco (struct studen
8、t stu,int n) /显示成绩最小值 float min; int i,minid; min=stu0.score; for(i=1;in;i+) if (stui.scoremin) min=stui.score; minid=i; printf( 成绩最低分的学生是:%s,成绩为 : =%fn,stuminid.name,min); getchar(); void sumave( struct student stu,int n) /显示成绩之和和平均值 float sum=0,ave; int i; for(i=0;in;i+) sum=sum+stui.score; ave=su
9、m/n; printf( 全班总成绩为:%f, 平均成绩为:%fn,sum,ave); getchar(); void asort(struct student stu,int n) /成绩的升序排序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - float t; int i,j; for(i=0;in-1;i+) for(j=0;jn-1-i;j+) if(stuj.scorestuj+1.score) t=stuj.scor
10、e; stuj.score=stuj+1.score; stuj+1.score=t; printf(the sorted arrary :n); for(i=0;in;i+) printf(%st%f ,stui.name,stui.score); getchar(); void dsort(struct student stu,int n) /成绩的降序排序 float t; int i,j; for(i=0;in-1;i+) for(j=0;jstuj+1.score) t=stuj.score; stuj.score=stuj+1.score; stuj+1.score=t; prin
11、tf(the sorted arrary :n); for(i=0;in;i+) printf(%st%f ,stui.name,stui.score); getchar(); void cdis(struct student stu,int n) /指定记录的查找 int i,no,sno; char sname20; printf(-1. 按姓名查询2.按学号查询 -n); printf(n 请输入你要查询的类别:); scanf(%d,&no); switch(no) case 1: printf(nn请输入你所查询的姓名:); scanf(%s,&sname); for(i=0;in;
12、i+) if(strcmp(stui.name,sname)=0) printf(nt%dt%st%st%dt%f,stui.num,stui.name,stui.sex,stui.age,stui.score);getchar();break; case 2: printf(nn 请输入你所查询的学号:); scanf(%d,&sno); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - for(i=0;in;i+) if(sn
13、o=stui.num) printf(nt%dt%st%st%dt%f,stui.num,stui.name,stui.sex,stui.age,stui.score); getchar(); break; case 0: break; getchar(); void disall(struct student stu,int n) /显示全部记录 int i; printf(tt学号 t 姓名 t 性别 t 成绩 tn); for(i=0;in;i+) printf(tt%dt%st%st%fn,stui.num,stui.name,stui.sex,stui.age,stui.score)
14、; getchar(); void disfault(struct student stu,int n) /显示不及格的记录 int i; printf(tt学号 t 姓名 t 性别 t 成绩 tn); for(i=0;in;i+) if(stui.scoreno-1;i-) stui.num=stui-1.num; strcpy(stui.name,stui-1.name); strcpy(stui.sex,stui-1.sex); stui.age=stui-1.age; stui.score=stui-1.score; printf( 请输入插入的记录n); scanf(%dt%st%s
15、t%dt%f,&stuno-1.num,&stuno-1.name,&stuno-1.sex,&stuno-1.age,&stuno-1.score); printf( 最终记录为 :n); for(i=0;in;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - printf(t%dt%st%st%dt%fn,stui.num,stui.name,stui.sex,stui.age,stui.score); getchar
16、(); void dele(struct student stu,int n) /删除记录 int i,no; printf( 请输入你要删除的记录号:); scanf(%d,&no); for(i=no-1;i4;i+) stui.num=stui+1.num; strcpy(stui.name,stui+1.name); strcpy(stui.sex,stui+1.sex); stui.age=stui+1.age; stui.score=stui+1.score; for(i=0;in;i+) printf(t%dt%st%st%dt%fn,stui.num,stui.name,stu
17、i.sex,stui.age,stui.score); getchar(); void modify(struct student stu,int n)/修改记录 int no,i,choose,snum; char sname20; char ssex3; int sage; float sscore; printf( 请输入你要编辑的记录号:); scanf(%d,&no); printf(-1. 修改学号2.修改姓名 -n); printf(-3. 修改性别4.修改年龄 -n); printf(-5.修改成绩 -n); printf(n请输入你的修改项:); scanf(%d,&choo
18、se); switch(choose) case 1:printf( 请输入新学号 :); scanf(%d,&snum); stuno-1.num=snum; getchar();break; case 2: printf( 请输入新姓名:); scanf(%s,&sname); strcpy(stuno-1.name,sname);getchar();break; case 3: printf( 请输入你所修改的性别:); scanf(%s,&ssex); strcpy(stuno-1.sex,ssex);getchar();break; case 4: printf( 请输入你所修改的年
19、龄值:); scanf(%d,&sage); stuno-1.age=sage;getchar();break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - case 5: printf( 请输入你所修改的成绩:); scanf(%f,&sscore); stuno-1.score=sscore;getchar();break; default: break; for(i=0;in;i+) printf(t%dt%st%st
20、%dt%fn,stui.num,stui.name,stui.sex,stui.age,stui.score); getchar(); void save(struct student stu,int n) /保存文件 FILE *fp; int i; if(fp=fopen(c:111.txt,w)=NULL) printf(the file not openn); exit(0); for(i=0;in;i+) fprintf(fp,tt%dt%st%st%dt%fn,stui.num,stui.name,stui.sex,stui.age,stui.score); fprintf(fp,
21、n); printf( 文件保存成功 n); fclose(fp); getchar(); void open(struct student stu,int n) FILE *fp; int i=1; if(fp=fopen(c:111.txt,r)=NULL) printf(cannot open this filen); exit(0); rewind(fp); printf(ttnumbertnametsexagetscoren); fseek(fp,i*sizeof(struct student),0); fread(stu,sizeof(struct student),1,fp);
22、printf(%dt%st%st%dt%fn,stui.num,stui.name,stui.sex,stui.age,stui.score); fclose(fp); getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - void main() int num,calnum,snum,dnum,ednum; system(cls); cover(); printf( 请按回车键进入系统主界面n); getcha
23、r(); do mainmenu(); printf(tt请输入序号: ); scanf(%d,&num); switch(num) case 1: open(stu,5);getchar();break; case 2: save(stu,5);getchar();break; case 3: do edit(); printf( 请输入序号 :n); scanf(%d,&ednum); switch(ednum) case 1: insert(stu,5);getchar();break; case 2: dele(stu,5);getchar();break; case 3: modif
24、y(stu,5);getchar();break; case 0: break; while(ednum!=0);break; case 4: do display(); printf( 请输入序号 :n); scanf(%d,&dnum); switch(dnum) case 1:cdis(stu,5);getchar();break; case 2: disall(stu,5); getchar();break; case 3: do sort(); printf(tt请输入序号 :); scanf(%d,&snum); switch(snum) case 1:asort(stu,5);g
25、etchar();break; case 2: dsort(stu,5);getchar();break; case 0:break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - while(snum!=0);break; case 4: disfault(stu,5);getchar();break; case 0:break; while(dnum!=0);break; case 5: do calculate(); p
26、rintf(tt请输入序号 :); scanf(%d,&calnum); switch(calnum) case 1: sumave ( stu,5 );getchar();break; case 2: maxsco ( stu,5 );getchar();break; case 3: minsco ( stu,5 );getchar();break; case 0: ;break; while(calnum!=0); break; case 6: do sort(); printf(tt请输入序号 :); scanf(%d,&snum); switch(snum) case 1:asort(
27、stu,5);getchar();break; case 2: dsort(stu,5);getchar();break; case 0:break; while(snum!=0);break; case 7: printf( 程序说明 !n);getchar();break; case 0: printf( 退出程序 !n);getchar();break; default: printf( 输入错 !n);getchar(); while(num!=0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -