c语言程序设计课程学籍管理系统源代码.docx

上传人:牧羊曲112 文档编号:3155396 上传时间:2023-03-11 格式:DOCX 页数:23 大小:41.20KB
返回 下载 相关 举报
c语言程序设计课程学籍管理系统源代码.docx_第1页
第1页 / 共23页
c语言程序设计课程学籍管理系统源代码.docx_第2页
第2页 / 共23页
c语言程序设计课程学籍管理系统源代码.docx_第3页
第3页 / 共23页
c语言程序设计课程学籍管理系统源代码.docx_第4页
第4页 / 共23页
c语言程序设计课程学籍管理系统源代码.docx_第5页
第5页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c语言程序设计课程学籍管理系统源代码.docx》由会员分享,可在线阅读,更多相关《c语言程序设计课程学籍管理系统源代码.docx(23页珍藏版)》请在三一办公上搜索。

1、c语言程序设计课程学籍管理系统源代码附表1.程序源码 #include #include #include #include #define N 100 struct student ; void mainprint; void scoreprint; void studentprint; void scoreInput; void scoreStat; void studentStatus; void bukao; /*生成并打印补考通知单*/ void tuixue; /*生成并打印退学通知单*/ void xinmingdan; /*生成并打印新名单*/ void sortAnhao;

2、/*按学号排序*/ void jisuanPingjun; /*计算平均分并排序*/ void tongjiFenshu; /*统计分数段*/ void fenxi; /*分析学生成绩,算出不及格门数*/ char num13; char name18; float math; float english; float cprogram; float circuit; float law; float pingjun; float score5; void mynew; /*创新功能*/ void outstudent; void outdanke; void teshutuixue; voi

3、d main void mainprint printf( |*|n); printf( | 欢迎使用学籍管理系统 |n); printf( |*|n); printf( | 请输入选项编号(04) |n); printf( |-|n); printf( | 1-录入成绩 |n); printf( | 2-统计成绩 |n); printf( | 3-处理学籍 |n); printf( | 4-创新功能 |n); printf( | 0- 退出 |n); char choose=0,yes_no=0; do system(color 4f); system(cls); mainprint; pr

4、intf( ); choose=getche( ); switch(choose) case1:scoreInput;break; /*成绩录入*/ case2:scoreStat;break; case3:studentStatus;break; case4:mynew;break; case0:break; default:printf(n %c是非法选项!n); if(choose=0) break; printf(n 即将进入主菜单,要继续选择吗(Y/N)?n); do yes_no=getche( ); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_

5、no!=n); break; while(yes_no=y|yes_no=Y); printf( |-|n); void scoreInput void scoreStat char choose=0,yes_no=0; system(color 9f); do system(cls); printf(n 欢迎选择成绩统计系统n); printf(n |-|); int i=0;char yes_no=0; struct student ex1N=0; FILE *fp=NULL; system(color 5f); system(cls); if(fp=NULL) printf(n 打开文件

6、失败!n); return; printf(n欢迎进入成绩录入系统n); fp=fopen(d:学生基本信息.txt,w); printf(n 请输入第%d个记录:n,i+1); printf(n输入学生学号:(用#结束程序); scanf(%s,ex1i.num); printf(n输入学生姓名:(用#结束程序); scanf(%s,ex1i.name); printf(n请依次输入学生的数学、英语、c编程、电路设计和法律基础的成绩:n); scanf(%f%f%f%f%f,&ex1i.math,&ex1i.english,&ex1i.cprogram,&ex1i.circuit,&ex1i

7、.law); while(ex1i.num0!=#&ex1i.name0!=#) fprintf(fp,%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex1i.num,ex1i.name,ex1i.math,ex1i.engl i+; printf(n 请输入第%d个记录:n,i+1); printf(n输入学生学号:(用#结束程序); scanf(%s,ex1i.num); printf(n输入学生姓名:(用#结束程序); scanf(%s,ex1i.name); printf(n请依次输入学生的数学、英语、c编程、电路设计和法律基础的成绩:n); scan

8、f(%f%f%f%f%f,&ex1i.math,&ex1i.english,&ex1i.cprogram,&ex1i.circuit,&ex1i.law); ish,ex1i.cprogram,ex1i.circuit,ex1i.law); fclose(fp); /*显示菜单*/ printf(n | 请输入选项编号(04) |); printf(n |-|); printf(n | 1-按学号排序 |); printf(n | 2-按平均分数排序 |); printf(n | 3-统计分数段 |); printf(n | 4-返回 |); printf(n | 0-退出系统 |); pri

9、ntf(n |-|n); choose=getch; switch(choose) case1:sortAnhao;break; case2:jisuanPingjun;break; case3:tongjiFenshu;break; case4:main; break; case0:break; default:printf(n %c是非法选项!n);break; if(choose=0) break; printf(n 要继续选择吗(Y/N)?n); do yes_no=getche; while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); whil

10、e(yes_no=y|yes_no=Y); void sortAnhao int i=0,j=0,n=0; struct student ex2N=0,temp=0; FILE *fp=NULL; system(color 9f); fp=fopen(d:学生基本信息.txt,r); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入按学号排序系统n); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,&ex2i.num,ex2i.name,&ex2i.math,&ex2i.en

11、glish, i+; n+; &ex2i.cprogram,&ex2i.circuit,&ex2i.law); fclose(fp); for(j=i+1;j0) temp=ex2i; ex2i=ex2j; for(i=0;in-1;i+) ex2j=temp; fp=fopen(d:按学号排序.txt,w); if(fp=NULL) printf(n 打开文件失败!n); return; fprintf(fp,序号 学号 姓名 高数 英语 编程 电路 法律n); for(i=0;in;i+) fprintf(fp,%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1fn,i

12、,ex2i.num,ex2i.name,ex2i.math,ex2i.englprintf(n 文件已保存至D:按学号排序.txtn); fclose(fp); ish,ex2i.cprogram,ex2i.circuit,ex2i.law); void jisuanPingjun int i=0,j=0,n=0; char c=0; struct student ex2N=0,temp=0; FILE *fp=NULL; system(color 9f); fp=fopen(d:学生基本信息.txt,r); if(fp=NULL) printf(n 打开文件失败!n); return; pr

13、intf(n 欢迎使用按学号排序系统n); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex2i.num,ex2i.name,&ex2i.math,&ex2i.english,&e i+; n+; x2i.cprogram,&ex2i.circuit,&ex2i.law); fclose(fp); for(i=0;in;i+) ex2i.pingjun=(ex2i.math+ex2i.english+ex2i.cprogram+ex2i.circuit+ex2i.law)/5; for(i=0;in-1;i+) for(j=i+1

14、;jn;j+) if(ex2i.pingjunex2j.pingjun) temp=ex2i; ex2i=ex2j; ex2j=temp; fp=fopen(d:按平均成绩排序.txt,w); if(fp=NULL) printf(n 打开文件失败!n); return; fprintf(fp,序号 学号 姓名 高数 英语 编程 电路 法律 平均n); for(i=0;in;i+) fprintf(fp,%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex2i.num,ex2i.name,ex2i.math,ex2i.english,ex2i.cpro

15、gram,ex2i.circuit,ex2i.law,ex2i.pingjun); printf(n 文件已保存至D:按平均成绩排序.txtn); fclose(fp); void tongjiFenshu ); printf(n -); printf(n 高数 | %3d | %3d | %3d | %3d | %3d printf(n -); printf(n 英语 | %3d | %3d | %3d | %3d | %3d printf(n -); int i=0,j=0,t=0,n=0,e=0,a55=0; char yes_no=0; float list55=0; struct s

16、tudent ex2N=0; FILE *fp=NULL; system(color 9f); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入分数段统计系统!); fp=fopen(d:学生基本信息.txt,r); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex2i.num,ex2i.name,&listi0,&listi1,&listi2, i+; n+; &listi3,&listi4); fclose(fp); for(j=0;j5;j+) a0j=0; for(

17、i=0;i100|listij0) e+; else t=(int)listij/10; switch(t) case 10:aj0+;break; case 9:aj0+;break; case 8:aj1+;break; case 7:aj2+;break; case 6:aj3+;break; default:aj4+;break; for(j=0;j5;j+) printf(nnnn 各门课、个分数段学生人数); printf(n -); printf(n | 90分以上 | 8089分 | 7079分 | 6069分 | 60分以下 ,a00,a01,a02,a03,a04); ,a

18、10,a11,a12,a13,a14); printf(n 编程 | %3d | %3d | %3d | %3d | %3d printf(n -); printf(n 电路 | %3d | %3d | %3d | %3d | %3d printf(n -); printf(n 法律 | %3d | %3d | %3d | %3d | %3d printf(n -); if(e!=0) printf(n 有%d个错误的成绩,请检查。n,e); ,a20,a21,a22,a23,a24); ,a30,a31,a32,a33,a34); ,a40,a41,a42,a43,a44); void st

19、udentStatus int i=1; char choose=0,yes_no=0; struct student ex3N=0; FILE *fp=NULL; if(fp=NULL) do system(cls); printf ( |-|n); printf ( | 请输入选项编号(0-4) |n); printf ( |-|n); printf ( | 1-生成并打印补考通知单 |n); printf ( | 2-生成并打印退学通知单 |n); printf ( | 3-生成并打印新名册 |n); printf ( | 4-返回 |n); printf ( | 0-退出系统 |n);

20、 printf ( |-|n); choose=getche; while(choose!=0&choose!=1&choose!=2&choose!=3&choose!=4) switch(choose) case 2:tuixue; break; printf( %c为非法选项!请重新输入:,choose); choose=getchar; printf(n 打开文件失败!n); return; system(color 2f); fp=fopen(d:学生基本信息.txt,r); case 1:bukao; break; case 3:xinmingdan; break; case 4:

21、main; break; case 0:break; if(choose=0) do printf(n); printf(感谢您的使用!n); break; printf(n 要继续选择吗(Y/N)?n); yes_no=getche( ); while(yes_no!=Y & yes_no!=y& yes_no!=N & yes_no!=n); while(yes_no=Y | yes_no=y); void bukao int i=0,j=0,count=0,n=0; struct student ex3N=0; FILE *fp=NULL; system(color 2f); if(fp

22、=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入生成并打印补考通知单系统!n); char time510=,site515=,sbj510=高数,英语,c语言编程,电路设计,法律基础; fp=fopen(d:学生基本信息.txt,r); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1 i+; n+; ,&ex3i.score2,&ex3i.score3,&ex3i.score4); fclose(

23、fp); for(i=0;i5;i+) for(i=0;i4;i+) for(j=i+1;j5;j+) while(strcmp(timei,timej)=0&strcmp(sitei,sitej)=0) printf(nn%s科目与%s科目相冲突,请重新输%s的考试时间、地点:scanf(%s%s,&timej,&sitej); printf(n请输入%s的补考时间、地点:,sbji); scanf(%s%s,&timei,&sitei); ,sbji,sbjj,sbjj); for(i=0;in;i+) for(j=0;j5;j+) if(ex3i.scorej0&count3) prin

24、tf(nn); printf(n%15s学生%d门课不及格,补考科目、时间、地点:,ex3i.name,count); for(j=0;j5;j+) if(ex3i.scorej60) switch(j) case 0:printf(ncase 1:printf(ncase case case 2:printf(nc3:printf(n4:printf(n高数:%3.1f, 时间%s, 地英语:%3.1f, 时间%s, 地语言编程:%3.1f,时间%s, 电路设计:%3.1f, 法律基础:%3.1f, 时间%s, 时间%s, 地地地点%s,ex3i.scorej,timej,sitej);br

25、eak; 点%s,ex3i.scorej,timej,sitej);break; 点%s,ex3i.scorej,timej,sitej);break; 点%s,ex3i.scorej,timej,sitej);break; 点%s,ex3i.scorej,timej,sitej);break; void tuixue int i=0,j=0,count=0,n=0,k=0; struct student ex3N=0; FILE *fp=NULL; system(color 2f); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 进入生成并

26、打印退学通知单系统!n); fp=fopen(d:学生基本信息.txt,r); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1i+; n+; fclose(fp); for(i=0;in;i+) count=0; for(j=0;j5;j+) if(ex3i.scorej60) count+; printf(nn%15s同学,您本学期共%d门不及格科目,满足退学标准。请尽快处理for(j=0;j5;j+) if(ex3i.scorej=4) ,&

27、ex3i.score2,&ex3i.score3,&ex3i.score4); n,ex3i.name,count); case 4:printf(法律基础:%-7.1f,ex3i.scorej);break; printf(n); for(k=i;kn-1;k+) ex3k=ex3k+1; n-; fp=fopen(d:升学名单.txt,w); if(fp=NULL) printf(n 打开文件失败!n); return; for(i=0;in;i+) fprintf(fp,%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex3i.num,ex3i.name,

28、ex3i.score0,ex3i.sfclose(fp); core1,ex3i.score2,ex3i.score3,ex3i.score4); void xinmingdan void mynew char choose=0,yes_no=0; do system(color 8f); system(cls); printf(n |*|); printf(n | 欢迎进入创新部分 |); printf(n |*|); printf(n | 1-查找学生 |); printf(n | 2-输出单科成绩 |); printf(n | 3-特殊原因退学 |); int i=0; struct s

29、tudent ex3N=0; FILE *fp=NULL; system(color 2f); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入生成并打印新名册系统!n); printf(n序号 学号 姓名 高数 英语 编程 电路 法律n); fp=fopen(d:升学名单.txt,r); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1printf(%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex3i.num

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号