《2022年c语言程序设计课程学籍管理系统源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言程序设计课程学籍管理系统源代码 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、附表 1.程序源码#include #include #include #include #define N 100 struct student char num13; char name18; float math; float english; float cprogram; float circuit; float law; float pingjun; float score5; ; void mainprint(); void scoreprint(); void studentprint(); void scoreInput(); void scoreStat(); void s
2、tudentStatus(); void bukao(); /* 生成并打印补考通知单*/ void tuixue(); /* 生成并打印退学通知单*/ void xinmingdan(); /* 生成并打印新名单*/ void sortAnhao(); /*按学号排序 */ void jisuanPingjun(); /* 计算平均分并排序*/ void tongjiFenshu(); /*统计分数段 */ void fenxi(); /*分析学生成绩,算出不及格门数*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
3、心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - void mynew(); /*创新功能 */ void outstudent(); void outdanke(); void teshutuixue(); void main() char choose=0,yes_no=0; do system(color 4f); system(cls); mainprint(); printf( ); choose=getche( ); switch(choose) case1:scoreInput();break; /*成绩录入 */ case2:sc
4、oreStat();break; case3:studentStatus();break; case4:mynew();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); while(yes_no=y|yes_no=Y); void mainprint() printf( |*|n); p
5、rintf( | 欢迎使用学籍管理系统|n); printf( |*|n); printf( | 请输入选项编号 (04) |n); printf( |-|n); printf( | 1-录入成绩|n); printf( | 2-统计成绩|n); printf( | 3-处理学籍|n); printf( | 4-创新功能|n); printf( | 0- 退出|n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - print
6、f( |-|n); void scoreInput() int i=0;char yes_no=0; struct student ex1N=0; FILE *fp=NULL; system(color 5f); system(cls); 学生基本信息 .txt,w); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入成绩录入系统n); printf(n 请输入第 %d 个记录 :n,i+1); printf(n 输入学生学号: (用#结束程序 ); scanf(%s,ex1i.num); printf(n 输入学生姓名: (用#结束程
7、序 ); scanf(%s,ex1i.name); printf(n 请依次输入学生的数学、英语、c 编程、电路设计和法律基础的成绩:n); scanf(%f%f%f%f%f,&ex1i.math,&ex1i.english,&ex1i.cprogram,&ex1i.circuit,&ex1i.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.english,ex1i.cprogram,ex1i.
8、circuit,ex1i.law); i+; 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.law); fclose(fp); void scoreSt
9、at() char choose=0,yes_no=0; system(color 9f); do system(cls); printf(n 欢 迎 选 择 成 绩 统 计 系 统 n); /*显示菜单 */ printf(n |-|); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - printf(n | 请输入选项编号 (04) |); printf(n |-|); printf(n | 1-按学号排序|); print
10、f(n | 2-按平均分数排序|); printf(n | 3-统计分数段|); printf(n | 4-返回|); printf(n | 0-退出系统|); printf(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;
11、 printf(n 要继续选择吗 (Y/N) ?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(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); 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; printf(n 欢迎进入按学号排序系统n);
12、while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,&ex2i.num,ex2i.name,&ex2i.math,&ex2i.english,&ex2i.cprogram,&ex2i.circuit,&ex2i.law); i+; n+; fclose(fp); for(i=0;in-1;i+) for(j=i+1;j0) temp=ex2i; ex2i=ex2j; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 1
13、4 页 - - - - - - - - - ex2j=temp; 按学号排序 .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,ex2i.num,ex2i.name,ex2i.math,ex2i.english,ex2i.cprogram,ex2i.circuit,ex2i.law); printf(n 文件已保存至按学号排序 .txtn); fcl
14、ose(fp); void jisuanPingjun() int i=0,j=0,n=0; char c=0; struct student ex2N=0,temp=0; FILE *fp=NULL; system(color 9f); 学生基本信息 .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.english,&
15、ex2i.cprogram,&ex2i.circuit,&ex2i.law); i+; n+; 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;jn;j+) if(ex2i.pingjunex2j.pingjun) temp=ex2i; ex2i=ex2j; ex2j=temp; 按平均成绩排序.txt,w); if(fp=NULL) printf(n 打开文件失败! n); ret
16、urn; 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.cprogram,ex2i.circuit,ex2i.law,ex2i.pingjun); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - -
17、- - - - - - printf(n 文件已保存至按平均成绩排序.txtn); fclose(fp); void tongjiFenshu() int i=0,j=0,t=0,n=0,e=0,a55=0; char yes_no=0; float list55=0; struct student ex2N=0; FILE *fp=NULL; system(color 9f); 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败!n); return; printf(n 欢迎进入分数段统计系统!); while(feof(fp)=0) fscanf(fp,
18、%3d%15s%16s%f%f%f%f%fn,&i,ex2i.num,ex2i.name,&listi0,&listi1,&listi2,&listi3,&listi4); i+; n+; fclose(fp); for(j=0;j5;j+) a0j=0; for(j=0;j5;j+) for(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; d
19、efault:aj4+;break; printf(nnnn 各门课、个分数段学生人数); printf(n -); printf(n | 90 分以上| 8089 分| 7079 分| 6069 分| 60 分以下); printf(n -); printf(n 高数| %3d | %3d | %3d | %3d | %3d ,a00,a01,a02,a03,a04); printf(n -); printf(n 英语| %3d | %3d | %3d | %3d | %3d ,a10,a11,a12,a13,a14); printf(n -); 名师资料总结 - - -精品资料欢迎下载 -
20、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - printf(n 编程| %3d | %3d | %3d | %3d | %3d ,a20,a21,a22,a23,a24); printf(n -); printf(n 电路| %3d | %3d | %3d | %3d | %3d ,a30,a31,a32,a33,a34); printf(n -); printf(n 法律| %3d | %3d | %3d | %3d | %3d ,a40,a41,a42,a43,a
21、44); printf(n -); if(e!=0) printf(n 有%d 个错误的成绩,请检查。n,e); void studentStatus() int i=1; char choose=0,yes_no=0; struct student ex3N=0; FILE *fp=NULL; 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败!n); return; system(color 2f); do system(cls); printf ( |-|n); printf ( | 请输入选项编号 (0-4) |n); printf ( |-|n);
22、 printf ( | 1- 生成并打印补考通知单|n); printf ( | 2- 生成并打印退学通知单|n); printf ( | 3- 生成并打印新名册|n); printf ( | 4- 返回|n); printf ( | 0- 退出系统|n); printf ( |-|n); choose=getche(); while(choose!=0&choose!=1&choose!=2&choose!=3&choose!=4) printf( %c 为非法选项!请重新输入:,choose); choose=getchar(); switch(choose) case 1:bukao()
23、; break; case 2:tuixue(); break; case 3:xinmingdan(); break; case 4:main(); break; case 0:break; if(choose=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - printf(n); printf( 感谢您的使用!n); break; printf(n 要继续选择吗 (Y/N) ?n); do yes_no=getche(
24、 ); 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; char time510=,site515=,sbj510=高数 ,英语 ,c 语言编程,电路设计 ,法律基础 ; struct student ex3N=0; FILE *fp=NULL; system(color 2f); 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; printf
25、(n 欢迎进入生成并打印补考通知单系统!n); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1,&ex3i.score2,&ex3i.score3,&ex3i.score4); i+; n+; fclose(fp); for(i=0;i5;i+) printf(n 请输入 %s 的补考时间、地点:,sbji); scanf(%s%s,&timei,&sitei); for(i=0;i4;i+) for(j=i+1;j5;j+) while(str
26、cmp(timei,timej)=0&strcmp(sitei,sitej)=0) printf(nn%s科 目 与 %s 科 目 相 冲 突 , 请 重 新 输 %s 的 考 试 时 间 、 地 点 :,sbji,sbjj,sbjj); scanf(%s%s,&timej,&sitej); for(i=0;in;i+) for(j=0;j5;j+) if(ex3i.scorej0&count3) printf(nn); printf(n%15s 学生 %d 门课不及格,补考科目、时间、地点:,ex3i.name,count); for(j=0;j5;j+) 名师资料总结 - - -精品资料欢
27、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - if(ex3i.scorej60) switch(j) case 0:printf(n高数:%3.1f,时间 %s, 地点%s,ex3i.scorej,timej,sitej);break; case 1:printf(n英语:%3.1f,时间 %s, 地点%s,ex3i.scorej,timej,sitej);break; case 2:printf(nc语言编程:%3.1f,时间%s, 地点%s,ex3i.s
28、corej,timej,sitej);break; case 3:printf(n电路设计:%3.1f,时间%s, 地点%s,ex3i.scorej,timej,sitej);break; case 4:printf(n法律基础:%3.1f,时间%s, 地点%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); 学生基本信息 .txt,r); if(fp=NULL) printf(n
29、打开文件失败! n); return; printf(n 进入生成并打印退学通知单系统!n); while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1,&ex3i.score2,&ex3i.score3,&ex3i.score4); i+; n+; fclose(fp); for(i=0;in;i+) count=0; for(j=0;j5;j+) if(ex3i.scorej=4) printf(nn%15s同学,您本学期共%d 门不及格科目,满足退学
30、标准。请尽快处理n,ex3i.name,count); for(j=0;j5;j+) if(ex3i.scorej60) switch(j) case 0:printf( 高数 :%-7.1f,ex3i.scorej);break; case 1:printf( 英语 :%-7.1f,ex3i.scorej);break; case 2:printf(c 语言编程 :%-7.1f,ex3i.scorej);break; case 3:printf( 电路设计 :%-7.1f,ex3i.scorej);break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
31、 - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - case 4:printf( 法律基础 :%-7.1f,ex3i.scorej);break; printf(n); for(k=i;kn-1;k+) ex3k=ex3k+1; n-; 升学名单 .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.nam
32、e,ex3i.score0,ex3i.score1,ex3i.score2,ex3i.score3,ex3i.score4); fclose(fp); void xinmingdan() int i=0; struct student ex3N=0; FILE *fp=NULL; system(color 2f); 升学名单 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; printf(n 欢迎进入生成并打印新名册系统!n); printf(n 序号学号姓名高数英语编程电路法律 n); while(feof(fp)=0) fscanf(fp,
33、%3d%15s%16s%f%f%f%f%fn,&i,ex3i.num,ex3i.name,&ex3i.score0,&ex3i.score1,&ex3i.score2,&ex3i.score3,&ex3i.score4); printf(%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex3i.num,ex3i.name,ex3i.score0,ex3i.score1,ex3i.score2,ex3i.score3,ex3i.score4); i+; fclose(fp); void mynew() char choose=0,yes_no=0; do syst
34、em(color 8f); system(cls); printf(n |*|); printf(n | 欢迎进入创新部分|); printf(n |*|); printf(n | 1-查找学生|); printf(n | 2-输出单科成绩|); printf(n | 3-特殊原因退学|); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - printf(n | 0-退出|); printf(n |-|); printf(n
35、输入你的选择:); scanf(%s,&choose); while(choose!=1&choose!=2&choose!=3&choose!=0) printf(n 请正确输入的您选择:); scanf(%c,&choose); switch(choose) case1:outstudent();break; case2:outdanke();break; case3:teshutuixue();break; case0:break; if(choose=0) break; printf(n 要继续选择吗 (Y/N) ?n); do yes_no=getche(); while(yes_n
36、o!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(yes_no=y|yes_no=Y); void outstudent() int i=0,j=0,count=0,n=0; char ch20=,yes_no=0; struct student ex4N=0; FILE *fp=NULL; 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%f%f%fn,&i,ex4i.num,ex4i.name,&ex4i
37、.score0,&ex4i.score1,&ex4i.score2,&ex4i.score3,&ex4i.score4); i+; n+; fclose(fp); do system(color 8f); system(cls); printf(n 欢迎进入查询学生系统!n); printf(n 请输入要查学的学生的姓名:); scanf(%s,&ch); for(i=0;in;i+) if(strcmp(ex4i.name,ch)=0) printf(n 您查询的是学号为%s的学生,他的成绩如下:,ex4i.num); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
38、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - printf(n 高数 :%-7.1f, 英语 :%-7.1f,c语言编程:%-7.1f, 电路设计:%-7.1f, 法律基础:%-7.1fn,ex4i.score0,ex4i.score1,ex4i.score2,ex4i.score3,ex4i.score4); break; if(i=n)printf(n 查无此人 .n); printf(n 要继续选择查询学生吗(Y/N) ?n); do yes_no=getche(); while(yes
39、_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(yes_no=y|yes_no=Y); void outdanke() int i=0,j=0,count=0,n=0; char sbj510=math,english,cprogram,circuit,law; char ch20=,yes_no=0; struct student ex4N=0; FILE *fp=NULL; 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; while(feof(fp)=0) fscanf(fp,%3d
40、%15s%16s%f%f%f%f%fn,&i,ex4i.num,ex4i.name,&ex4i.score0,&ex4i.score1,&ex4i.score2,&ex4i.score3,&ex4i.score4); i+; n+; fclose(fp); do system(color 8f); system(cls); printf(n 欢迎进入查询单科成绩系统!n); printf(n 备选科目名称:math,english,cprogram,circuit,lawn); printf(n 请输入要查寻的科目名称:); scanf(%s,&ch); for(i=0;i5;i+) if(s
41、trcmp(sbji,ch)=0) j=i; printf(n 序号学号姓名%s ,sbjj); for(i=0;in;i+) printf(n%3d%15s%16s%7.1f,i,ex4i.num,ex4i.name,ex4i.scorej); break; if(i=5) printf(n 您的输入有误! n); printf(n 要继续选择输出单科成绩吗(Y/N) ?n); do 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - -
42、 - - yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(yes_no=y|yes_no=Y); void teshutuixue() int i=0,j=0,count=0,n=0; char ch20=,yes_no=0; struct student ex4N=0; FILE *fp=NULL; 学生基本信息 .txt,r); if(fp=NULL) printf(n 打开文件失败! n); return; while(feof(fp)=0) fscanf(fp,%3d%15s%16s%f%f%
43、f%f%fn,&i,ex4i.num,ex4i.name,&ex4i.score0,&ex4i.score1,&ex4i.score2,&ex4i.score3,&ex4i.score4); i+; n+; fclose(fp); do system(color 8f); system(cls); printf(n 欢迎进入其他原因退学系统!n); printf(n 请输入要查学的学生的学号:); scanf(%s,&ch); for(i=0;in;i+) if(strcmp(ex4i.num,ch)=0) for(j=i;jn-1;j+) ex4j=ex4j+1; n-; break; if
44、(i=n)printf(n 查无此人 .n); printf(n 要继续选择退学学生吗(Y/N) ?n); do yes_no=getche(); while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n); while(yes_no=y|yes_no=Y); 学生基本信息 .txt,w); if(fp=NULL) printf(n 打开文件失败! n); return; for(i=0;in;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
45、13 页,共 14 页 - - - - - - - - - fprintf(fp,%3d%15s%16s%7.1f%7.1f%7.1f%7.1f%7.1f%7.1fn,i,ex4i.num,ex4i.name,ex4i.score0,ex4i.score1,ex4i.score2,ex4i.score3,ex4i.score4); printf(n 文件已更新 n); fclose(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -