您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C语言学生成绩管理系统课程设计报告
C语言课程设计报告一.问题描述:题目七:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单要求:使用二进制文件方式存储数据,系统以菜单方式工作学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)等。要求使用二进制文件方式存储数据,系统以菜单方式工作,实现对学生成绩的录入,修改,统计,排序,查询,输出等功能。二.设计目的设计“学生成绩管理系统”使其具有以下功能:(1)能完成对学生成绩的录入(2)能按班级统计学生的成绩,求学生的总分及平均分,排序(3)能按班级,学期输出学生的成绩单和不及格科目及学生名单(4)能查询单个学生成绩(5)能修改单个学生信息三.要求系统以菜单方式工作四.功能1输入功能:可以一次完成无数条信息的输入。2输出功能:能按班级输出学生的成绩单。3修改功能:完成对单个学生成绩的修改。4查找功能:完成对单个学生信息查找,并显示。5排序功能:按学生成绩进行排序,并显示。6有一个清晰美观界面来调用各个功能五.模块图六.详细内容整个系统除了主函数外,另外还有5个函数,实现六大功能:输入功能、输出功能、修改功能,查找并显示功能、排序并显示功能。各个函数的详细设计说明分别如下:信息录入voidinput成绩统计voidsort查询voidsearch姓名charname[10]学号intnum成绩intscore[4]学号stu[i].num、班级stu[i].classes,姓名stu[i].name、四门课成绩stu[i].score能按学号查询单个学生成绩按班级统计学生的成绩,求学生的总分及平均分,排序成绩输出voidprint能按班级,学期输出学生成绩单和不及格科目及学生名单结构数组structstudent学期intterm班级intclasses主流程修改单个学生信息修改voidmonify1.定义结构体及宏定义#includestdlib.h#includestdio.h#includestring.h#defineNUM100structstudent{intterm;intnum;intclasses;charname[10];intscore[4];intsum;floataverage;}stu[NUM];2.主函数main()利用无限次循环for(;;)和swithch()进行菜单选择来实现各函数的调用,系统根据输入的数字选项来调用相应的函数。等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!voidmain(){zcd();}/*主函数界面*/voidzcd(){intn=0;charm;system(cls);/*清屏*/printf(按任一键进入主菜单\n);/*按任一键进入主菜单*/printf(********************************************************************************\n);printf(\t\t华中科技大学文华学院欢迎您\n);printf(\n\t\t\t---------欢迎使用学生管理系统\n\n\t\t\t\t\t-----------\n);printf(*************************************MENU***************************************\n);printf(\t\t\t1.输入学生成绩记录Inputtherecord\n);/*输入学生成绩记录*/printf(\t\t\t2.排序并显示Sorttomakenewafile\n);/*排序*/printf(\t\t\t3.按班级显示成绩单Printtherecord\n);/*显示*/printf(\t\t\t4.查找个人成绩Searchrecordonname\n);/*查找*/printf(\t\t\t5.修改Modifyarecord\n);/*修改*/printf(\t\t\t6.退出Quit\n);/*退出*/printf(********************************************************************************\n);printf(\n\t\t\t输入你的选择Enteryourchoice(1~7):);fflush(stdin);m=getchar();do{switch(m){case'1':input();zcd();break;case'2':sort();system(pause);zcd();break;case'3':print();system(pause);break;case'4':search();zcd();break;case'5':modify();system(pause);zcd();break;case'6':exit(0);/*如菜单返回值为7则程序结束*/default:printf(错误命令);getchar();zcd();}}while(1);}3输入信息函数voidinput(){system(cls);inti;chara;for(i=0;iNUM;i++){printf(\n请输入学生的学期:);scanf(%d,&stu[i].term);printf(\n请输入学生的学号:);fflush(stdin);scanf(%d,&stu[i].num);printf(\n请输入学生的班级:);scanf(%d,&stu[i].classes);printf(\n请输入学生的姓名:);scanf(%s,stu[i].name);printf(\n请输入学生的语文成绩:);scanf(%d,&stu[i].score[0]);printf(\n请输入学生的数学成绩:);scanf(%d,&stu[i].score[1]);printf(\n请输入学生的英语成绩:);scanf(%d,&stu[i].score[2]);printf(\n请输入学生的计算机成绩:);scanf(%d,&stu[i].score[3]);stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];//算总分和平均stu[i].average=(float)stu[i].sum/4.0;printf(是否要继续添加(按N&n退出));fflush(stdin);a=getchar();if(a=='n'||a=='N')break;}}4、排序并显示函数voidsort(){inti,j=0;floattemp;for(i=0;iNUM;i++){stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];stu[i].average=(float)stu[i].sum/4.0;}for(i=0;iNUM-1;i++){for(j=i+1;jNUM;j++){if(stu[i].sumstu[j].sum){temp=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=temp;}}}printf(学号\t姓名\t班级语文数学英语计算机总分平均分\n);for(i=0;iNUM;i++)printf(%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n,stu[i].num,stu[i].name,stu[i].classes,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average);/*输出学生信息*/}}}system(pause);system(cls);print();}5查找并显示一个记录voidsearch(){system(cls);/*清屏*/intnumber=0,i;printf(\t\t\t请输入要查找学生的学号:);scanf(%d,&number);printf(学号\t姓名\t班级语文数学英语计算机总分平均分\n);for(i=0;iNUM;i++)if(number==stu[i].num)break;/*查找判断*/if(iNUM){printf(%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n,stu[i].num,stu[i].name,stu[i].classes,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average);/*输出学生信息*/}elseprintf(没找到该学生的信息\n);system(pause);}6.按学期、按班级输出成绩函数voidprint(){system(cls);chara;printf(1、按学期输出\n);printf(2、按班级输出\n);printf(3、返回\n);fflush(stdin);a=getchar();switch(a){case'1':print1();case'2':print2();case'3':zcd();default:print();}}voidprint1()//按学期{inti,m;printf(请输入学期:\n);scanf(%d,&m);printf(学号\t姓名\t班级语文数学英语计算机总分平均分\n);for(i=0;iNUM;i++){if(m==stu[i].term)printf(%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n,stu[i].num,stu[i].name,stu[i].classes,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average);/*输出学生信息*/}system(pause);system(cls);print();}voidprint2()//按班级{inti,j,k;printf(请输入班级:\n);scanf(%d,&k);printf(学号\t姓名\t班级语文数学英语计算机总分平均分\n);for(i=0;iNUM;i++){if(k==stu[i].classes){stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];stu[i].average=stu[i].sum/4.0;printf(%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n,stu[i].num,stu[i].name,stu[i].classes,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average);/*输出学生信息*/}}printf(输出不及格学生名单及成绩:\n);printf(学号\t姓名\t班级语文数学英语计算机\n);for(i=0;iNUM;i++){for(j=0;j4;j++){if(stu[i].score[j]60&&k==stu[i].classes)/*输出不及格学生名单及成绩*/printf(%d\t%s\t%d%5d
本文标题:C语言学生成绩管理系统课程设计报告
链接地址:https://www.777doc.com/doc-4457969 .html