您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 学生成绩管理系统-源代码
#includestdio.h#includeconio.h#includestdlib.h#includestring.h#includewindows.htypedefchariteamtype;//=========================类型定义============================typedefstructStuIF//学生成绩信息studentintormation{iteamtypeNAME[10],STNB[20],Phone[20];//姓名name,学号studentnumberfloatfirst,second,third;//第一科、第二科、第三科floatSUM,AVGE;//总和、平均分}perStu;typedefstructnode//pernode每一个结点,perstu第一个学生,perstu里面存信息{//prior前指针,next后指针,串联成链表perStuPerStu;structnode*prior,*next;}PerNode;PerNode*H;intLodeFlag=0;PerNode*InitNode()//链表初始化{PerNode*L;L=(PerNode*)malloc(sizeof(PerNode));if(L){L-prior=NULL;L-next=NULL;}returnL;}voidDplyone(PerNode*Q1)//UpDisplayone打印一个学生的全部信息{if(!Q1)return;else{printf(|%-9s,Q1-PerStu.NAME);printf(|%-12s,Q1-PerStu.STNB);printf(|%-5.1f,Q1-PerStu.first);if(Q1-PerStu.first60)printf(!);elseprintf();printf(|%-5.1f,Q1-PerStu.second);if(Q1-PerStu.second60)printf(!);elseprintf();printf(|%-5.1f,Q1-PerStu.third);if(Q1-PerStu.third60)printf(!);elseprintf();printf(|%-7.1f,Q1-PerStu.SUM);printf(|%-5.1f,Q1-PerStu.AVGE);if(Q1-PerStu.AVGE60)printf(!|);elseprintf(|);printf(\n);}//return;}//======================搜索分数段====================================PerNode*Srchone(PerNode*Q2,intflag)//searchone通过查找学生学号查找到信息{//flag=1时,按学号查找;flag=2时,按姓名查找charstnb[20];PerNode*L;L=Q2-next;if(!L)printf(\n亲,系统中没有任何信息哦,查找失败!\n);else{scanf(%s,stnb);if(flag==1)while(L&&(strcmp(L-PerStu.STNB,stnb))!=0){L=L-next;}if(flag==2)while(L&&(strcmp(L-PerStu.NAME,stnb))!=0){L=L-next;}if(!L)printf(\n亲,系统中无此相关信息,查找失败!\n);}returnL;}voidConSrchFirst(PerNode*Q3)//通过输入两个分数显示对应分数段的学生成绩,3个子函数分别对应3门成绩{//第一门高数PerNode*L,*p=Q3-next;floatf1,f2,f3;intflag;do{flag=1;printf(\n\n亲,请输入分数段(以-分隔):);scanf(%f-%f,&f1,&f2);if(f1==f2){flag=0;printf(\n\n亲,输入的分数无法确定查找分数段!\n);}elseif(f1f2){f3=f1;f1=f2;f2=f3;}//保证f1小f2大}while(!flag);flag=0;L=p;while(L){if((L-PerStu.first)=f1&&(L-PerStu.first)=f2){flag++;if(flag==1){printf(|-----------------------------------------------------------------------------|\n);printf(|姓名|学号|高等数学|大学物理|电路分析|总分|平均分|\n);printf(|-----------------------------------------------------------------------------|\n);}Dplyone(L);}L=L-next;}printf(|-----------------------------------------------------------------------------|\n);if(!flag)printf(\n亲,系统中无该分数段的学生记录!\n);return;}voidConSrchSecond(PerNode*Q4)//第二门大学物理{PerNode*L,*p=Q4-next;floatf1,f2,f3;intflag;do{flag=1;printf(\n\n亲,请输入分数段(以-分隔):);scanf(%f-%f,&f1,&f2);if(f1==f2){flag=0;printf(\n\n亲,输入的分数无法确定查找分数段!\n);}elseif(f1f2){f3=f1;f1=f2;f2=f3;}//保证f1小f2大}while(!flag);flag=0;L=p;while(L){if((L-PerStu.second)=f1&&(L-PerStu.second)=f2){flag++;if(flag==1){printf(|-----------------------------------------------------------------------------|\n);printf(|姓名|学号|高等数学|大学物理|电路分析|总分|平均分|\n);printf(|-----------------------------------------------------------------------------|\n);}Dplyone(L);}L=L-next;}printf(|-----------------------------------------------------------------------------|\n);if(!flag)printf(\n亲,系统中无该分数段的学生记录!\n);return;}voidConSrchThrid(PerNode*Q5)//第三门电路分析{PerNode*L,*p=Q5-next;floatf1,f2,f3;intflag;do{flag=1;printf(\n\n亲,请输入分数段(以-分隔):);scanf(%f-%f,&f1,&f2);if(f1==f2){flag=0;printf(\n\n亲,输入的分数无法确定查找分数段!\n);}elseif(f1f2){f3=f1;f1=f2;f2=f3;}//保证f1小f2大}while(!flag);flag=0;L=p;while(L){if((L-PerStu.third)=f1&&(L-PerStu.third)=f2){flag++;if(flag==1){printf(|-----------------------------------------------------------------------------|\n);printf(|姓名|学号|高等数学|大学物理|电路分析|总分|平均分|\n);printf(|-----------------------------------------------------------------------------|\n);}Dplyone(L);}L=L-next;}printf(|-----------------------------------------------------------------------------|\n);if(!flag)printf(\n亲,系统中无该分数段的学生记录!\n);}voidConSrchSum(PerNode*Q6)//第4项总分{PerNode*L,*p=Q6-next;floatf1,f2,f3;intflag;do{flag=1;printf(\n\n亲,请输入分数段(以-分隔):);scanf(%f-%f,&f1,&f2);if(f1==f2){flag=0;printf(\n\n亲,输入的分数无法确定查找分数段!\n);}elseif(f1f2){f3=f1;f1=f2;f2=f3;}//保证f1小f2大}while(!flag);flag=0;L=p;while(L){if((L-PerStu.SUM)=f1&&(L-PerStu.SUM)=f2){flag++;if(flag==1){printf(|-----------------------------------------------------------------------------|\n);printf(|姓名|学号|高等数学|大学物理|电路分析|总分|平均分|\n);printf(|-----------------------------------------------------------------------------|\n);}Dplyone(L);}L=L-next;}printf(|-----------------------------------------------------------------------------|\n);if(!flag)printf(\n亲,系统中无该分数段的学生记录!\n);}voidConSrchAve(PerNode*Q7)//第5项平均分{PerNode*L,*p=Q7-next;floatf1,f2,f3;intflag;do{flag=1;printf(\n\n亲,请输入分数段(以-分隔):);scanf(%f-%f,&f1,&f2);if(f1==f2){flag=0;printf(\n\n亲,输入的分数无法确定查找分数段!\n);}elseif(f1f2){f3=f1;f1=f2;f2=f3;}//保证f1小f2大}while(!flag);flag=0;L=p;while(L){if((L-PerStu.AVGE)=f1&&(L-PerStu.AVGE)=f2){flag++;if(flag==1){printf(|-----------------------------------------------------------------------------|\n);printf(|姓名|学号|高等数学|大学物理|电路分析|总分|平均分|\n);printf(|-----------------------------------------------------------------------------|\n);}Dplyone(L);}L=L-next;}printf(|------
本文标题:学生成绩管理系统-源代码
链接地址:https://www.777doc.com/doc-6347148 .html