《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 2011年 5 月nn);printf(tttt 土本工程专
2、业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-数据排序|n);printf(|7-程序说明|n);printf(|0-退出系统|n);printf(|.|n);void edit()system(cls);printf
3、(nnn);printf(|*编辑子菜单*|n);名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -printf(|.|n);printf(|请选择菜单序号(03)|n);printf(|.|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(|.|
4、n);printf(|1-查看选定记录|n);printf(|2-显示全部记录|n);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-计算最低分|n);printf(|0-返回上
5、级菜单|n);printf(|.|n);void sort()system(cls);printf(nnn);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -printf(|*排序子菜单*|n);printf(|.|n);printf(|请选择菜单序号(02)|n);printf(|.|n);printf(|1-按升序排序|n);printf(|2-按降序排序|n);printf(|0-返回上级菜单|n);printf(|.|n);void maxsco(struct student stu,int n)/最示成绩最大值 float max;int i,maxid;ma
6、x=stu0.score;for(i=1;imax)max=stui.score;maxid=i;printf(成绩最高分的学生是:%s,成绩为:=%fn,stumaxid.name,max);getchar();void minsco(struct student 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(
7、);void sumave(struct student stu,int n)/显示成绩之和和平均值 float sum=0,ave;int i;for(i=0;in;i+)sum=sum+stui.score;ave=sum/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.
8、scorestuj+1.score)t=stuj.score;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.
9、score=t;printf(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;i+)if(
10、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(sno=stui.num)printf(nt%dt%st%st%dt%f,stui.num,stui.name,stui.sex,stui.age,stui.score);g
11、etchar();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);getchar();void disfault(struct student stu,int n)/显示不及格的记录 int i;printf(tt学号 t 姓名 t 性别 t 成绩 tn)
12、;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%st%dt%f,&stuno-1.num,&stuno-1.name,&stuno-1.sex,&stuno-1.age,&stuno-1.score);printf(最终记录为:n);for(i=0;in;i+)名师资料
13、总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -printf(t%dt%st%st%dt%fn,stui.num,stui.name,stui.sex,stui.age,stui.score);getchar();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.
14、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,stui.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.修改姓
15、名-n);printf(-3.修改性别4.修改年龄-n);printf(-5.修改成绩-n);printf(n请输入你的修改项:);scanf(%d,&choose);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);strc
16、py(stuno-1.sex,ssex);getchar();break;case 4:printf(请输入你所修改的年龄值:);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%dt%fn,stui.num,stui.na
17、me,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,n);printf(文件保存成功 n);fclose(fp);get
18、char();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);printf(%dt%st%st%dt%fn,stui.num,stui.name,stui.sex
19、,stui.age,stui.score);fclose(fp);getchar();名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 9 页 -void main()int num,calnum,snum,dnum,ednum;system(cls);cover();printf(请按回车键进入系统主界面n);getchar();do mainmenu();printf(tt请输入序号:);scanf(%d,&num);switch(num)case 1:open(stu,5);getchar();break;case 2:save(stu,5);getchar();break;
20、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:modify(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();
21、break;case 2:disall(stu,5);getchar();break;case 3:do sort();printf(tt请输入序号:);scanf(%d,&snum);switch(snum)case 1:asort(stu,5);getchar();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;w
22、hile(dnum!=0);break;case 5:do calculate();printf(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(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 页 -