1、C程序学生成绩管理系统代码#include #include#includeint c;void information(); /*学生信息*/void menu(); /*主菜单*/void choose(); /*是否返回主菜单的选择*/void error(); /*报错*/void output_(); /*输出后问是否返回主菜单*/void output_2(); /*输出*/void find(); /*查询*/void delete_(); /*删除*/void rank(); /*排序*/void e(); /*退出*/struct student char num10; /*
2、学号*/ char name8; /*学生姓名*/ char sex3; /*性别*/ char snum10; /*课程号*/ char subject10; /*课程名*/ int credit; /*学分*/ int score1; /*平时分*/ int score2; /*实验分*/ int score3; /*卷面分*/ double add; /*平均分*/ double final; /*最后学分*/stu10,temp;void main() /*主函数*/ int b; printf(nn -学生管理系统-nn); printf( 制作者:游义娟 n); printf( *
3、n); printf( | 1学生成绩输入 |n); printf( | 2输出表格 |n); printf( | 3查询 |n); printf( | 4删除学生记录 |n); printf( | 5排序 |n); printf( | 6退出 |n); printf( *nn); printf( *如果文件中无学生数据,请先输入数据*nn); printf( 请输入您要执行的功能对应的数字:); scanf(%d,&b); switch(b) case 1:information();break; case 2:output_();break; case 3:find();break; ca
4、se 4:delete_();break; case 5:rank();break; case 6:e();break; if(b!=1&b!=2&b!=3&b!=4&b!=5) error();void menu() /*菜单*/ int b; printf(nn -主菜单-nn); printf( *n); printf( | 1学生成绩输入 |n); printf( | 2输出表格 |n); printf( | 3查询 |n); printf( | 4删除学生记录 |n); printf( | 5排序 |n); printf( | 6退出 |n); printf( *nn); print
5、f( 请输入您要执行的功能对应的数字:); scanf(%d,&b); switch(b) case 1:information();break; case 2:output_();break; case 3:find();break; case 4:delete_();break; case 5:rank();break; case 6:e();break; if(b!=1&b!=2&b!=3&b!=4&b!=5) error();void choose() /*选择*/ int f; printf(nn *是否返回主菜单*n); printf( -n); printf( | | 1是 |
6、| n); printf( | | 2退出 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&f); if(f=1) menu(); else if(f=2) e(); else error();void error() /*报错*/ int f; printf(nn *您的输入错误,是否返回主菜单*n); printf( -n); printf( | | 1是 | | n); printf( | | 2退出 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&f); if(f=1) menu
7、(); else if(f=2) e(); else error();void information() /*输入*/ int i;/ FILE *fp; printf(n * 请输入学生的个数=10 *nn 请输入你要输入的学生的个数:); scanf(%d,&c); if(c=10) for(i=0;ic;i+) printf(nn请输入第 %d个学生的信息:n,i+1); printf(学号:); scanf(%s,stui.num); printf(姓名:); scanf(%s,stui.name); printf(性别:); scanf(%s,stui.sex); printf(课
8、程号:); scanf(%s,stui.snum); printf(课程名:); scanf(%s,&stui.subject); printf(学分:); scanf(%d,&stui.credit); printf(平时成绩:); scanf(%d,&stui.score1); printf(实验成绩:); scanf(%d,&stui.score2); printf(卷面成绩:); scanf(%d,&stui.score3); stui.add=stui.score1*0.15+stui.score2*0.15+stui.score3*0.7; switch(int)(stui.add
9、)/10) case 10:stui.final=stui.credit;break; case 9:stui.final=stui.credit;break; case 8:stui.final=stui.credit*0.8;break; case 7:stui.final=stui.credit*0.75;break; case 6:stui.final=stui.credit*0.6;break; case 5:stui.final=0;break; case 4:stui.final=0;break; case 3:stui.final=0;break; case 2:stui.fi
10、nal=0;break; case 1:stui.final=0;break; case 0:stui.final=0;break; else printf(n !您输入的数已超出范围,请重新输入!n); information(); /* fp=fopen(stud,w); for(i=0;ic;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp);*/ printf(n 输入完毕n); choose();void output_() /*输出*/ FILE *fp
11、; int i;/ if(fp=fopen(stud,r)=NULL)/ / printf(can not open file.n);/ exit(0);/ / fp=fopen(stud,r); for(i=0;ic;i+) / fread(&stui,sizeof(struct student),1,fp); printf(nn学号t姓名t性别t课程编号 课程名称 n); for(i=0;ic;i+) printf(%st%st %s t %s t %sn,stui.num,stui.name,stui.sex,stui.snum,stui.subject); printf(nn学分 平时
12、成绩 实验成绩 卷面成绩 综合 实得学分n); for(i=0;ic;i+) printf(%d t%dt %dt %dt%3.2ft%1.2fn,stui.credit,stui.score1,stui.score2,stui.score3,stui.add,stui.final); choose();void output_2()/ FILE *fp; int i;/* if(fp=fopen(stud,r)=NULL) printf(can not open file.n); exit(0); */ printf(nn*原始数据:*n); printf(n学号t姓名t性别t课程编号 课程
13、名称 n); for(i=0;ic;i+) printf(%st%st %s t %s t %sn,stui.num,stui.name,stui.sex,stui.snum,stui.subject); printf(nn学分 平时成绩 实验成绩 卷面成绩 综合 实得学分n); for(i=0;ic;i+) printf(%d t%dt %dt %dt%3.2ft%1.2fn,stui.credit,stui.score1,stui.score2,stui.score3,stui.add,stui.final); void find() /*查询*/ FILE*fp; int k,j,f,q
14、,judge=0; char m10;/* if(fp=fopen(stud,r)=NULL) printf(can not open file.n); exit(0); */ printf(n *是否输出原始数据*n); printf( -n); printf( | | 1是 | | n); printf( | | 2否 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&k); printf(n); if(k=1) output_2(); else if(k=2); else printf( *您的输入错误,请重新输入选择*n); find
15、(); printf(nn -查询学生信息-n); printf( *n); printf( | 1-按名字查询 |n); printf( | 2-按学号查询 |n); printf( *n); printf(请选择:); scanf(%d,&f); if(f=1) printf(n请输入您要查询的人的名字:); scanf(%s,m); for(j=0;jc;j+) if(strcmp(m,stuj.name)=0) printf(nn*您要查询的信息为*n); printf(n学号t姓名t性别t课程编号 课程名称 n); printf(%st%st %s t %s t %sn,stuj.n
16、um,stuj.name,stuj.sex,stuj.snum,stuj.subject); printf(n学分 平时成绩 实验成绩 卷面成绩 综合 实得学分n); printf(%d t%dt %dt %dt%3.2ft%1.2fn,stuj.credit,stuj.score1,stuj.score2,stuj.score3,stuj.add,stuj.final); judge=1; else if(f=2) printf(n请输入您要查询的人的学号:); scanf(%s,m); for(j=0;jc;j+) if(strcmp(m,stuj.num)=0) printf(nn*您要
17、查询的信息为*n); printf(n学号t姓名t性别t课程编号 课程名称 n); printf(%st%st %s t %s t %sn,stuj.num,stuj.name,stuj.sex,stuj.snum,stuj.subject); printf(nn学分 平时成绩 实验成绩 卷面成绩 综合 实得学分n); printf(%d t%dt %dt %dt%3.2ft%1.2fn,stuj.credit,stuj.score1,stuj.score2,stuj.score3,stuj.add,stuj.final); printf(n); judge=1; else error();
18、if(judge=0) printf(nn *数据库中无此人的信息,是否重新输入?*n); printf( -n); printf( | | 1是 | | n); printf( | | 2返回主菜单 | | n); printf( | | 3退出 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&q); if(q=1) find(); else if(q=2) menu(); else if(q=3) e(); else error(); choose();void delete_() /*删除*/ FILE*fp; int i,j,fla
19、g=0,k,v,r,q; char m10;/* if(fp=fopen(stud,r)=NULL) printf(can not open file.n); exit(0); */ printf(nn *是否输出原始数据*n); printf( -n); printf( | | 1是 | | n); printf( | | 2否 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&k); if(k=1) output_2(); else if(k=2); else printf( *您的输入错误,请重新输入选择*n); delete_();
20、/ fclose(fp); printf(nn *删除学生记录*n); printf( -n); printf( | | 1按名字删除 | | n); printf( | | 2按学号删除 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&v); if(v=1) printf(n 请输入您要删除的人的名字:); scanf(%s,m); for(i=0;ic;i+) if(strcmp(m,stui.name)=0) for(j=i;jc-1;j+) strcpy(stuj.name,stuj+1.name); stuj=stuj+1; fl
21、ag=1; else if(v=2) printf(n 请输入您要删除的人的学号:n); scanf(%s,m); for(i=0;ic;i+) if(strcmp(m,stui.num)=0) for(j=i;jc-1;j+) strcpy(stuj.num,stuj+1.num); stuj=stuj+1; flag=1; else error(); if(flag=1) c=c-1; else printf(nn *找不到您要删除的数据,是否重新输入?*n); printf( -n); printf( | | 1是 | | n); printf( | | 2返回主菜单 | | n); p
22、rintf( | | 3退出 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&q); if(q=1) delete_(); else if(q=2) menu(); else if(q=3) e(); else error(); printf(nn *是否输出删除后的数据*n); printf( -n); printf( | | 1是 | | n); printf( | | 2否 | | n); printf( -nn); printf( 请输入您的选择:); scanf(%d,&r); if(r=1) printf(nn*删除后的数据*n);/* if(fp=fopen(stud,w)=NULL) printf(can not open filen); e
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1