您好,欢迎访问三七文档
目录一、系统开发的背景....................................1二、系统分析与设计....................................1(一)系统功能要求....................................1(二)系统模块结构设计............................1三、系统的设计与实现................................2(一)学生基本信息浏览:BASIC_B()........3(二)……………….....错误!未定义书签。四、系统测试................................................9(一)测试MAIN_FORM()函数...................15(二)………….............错误!未定义书签。五、总结......................................................18六、附件(代码、部分图表)..................191学生综合测评系统一、系统开发的背景为了方便快捷的记录学生的考勤信息,因此用C语言设计了一个方便的考勤系统。二、系统分析与设计(一)系统功能要求功能:设计一考勤系统。考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)。系统具有以下要求:(1)录入学生的缺课记录;(2)修改某个学生的缺课记录;(3)查询某个学生的缺课情况;(4)统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;(5)统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;(6)系统以菜单方式工作。(二)系统模块结构设计通过对系统功能的分析,学生考勤系统功能如下图所示。2图1学生考勤系统功能图通过上图的功能分析,把整个系统划分为5个模块:1、学生基本信息录入,该模块主要实现:学生基本信息(缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)的输出,借助函数voidenter()来实现;2、修改,该模块主要实现:对某个学生的基本信息(缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)的修改,借助函数voidmodify()来实现;3、查询,该模块主要实现:对某个学生的基本信息(缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)的查询,借助函数voidsearch()来实现;4、统计1,该模块主要实现:统计某段时间内,旷课学生姓名及旷课考勤系统录入模块修改模块查询模块统计模块1统计模块23次数,按旷课次数由多到少排序;借助函数voidStatistic_1()来实现;5、统计2,该模块主要实现:统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;借助函数voidStatisti_2()来实现;三、系统的设计与实现(一)学生基本信息的录入voidenter()该模块的具体代码如下所示。voidenter(){inti,j,n;printf(\n***********************录入***********************\n);printf(请输入日期:);scanf(%d,%d,%d,&DATE[40].year,&DATE[40].month,&DATE[40].day);printf(请输入学号初值:);scanf(%d,&n);printf(\n-----注:在姓名栏输入#返回上一层\n);for(i=n-1;i43;i++){STUDENT[i].num=i+1;printf(\n\n学号:%.2d\n,STUDENT[i].num);printf(请输入姓名:);scanf(%s,&STUDENT[i].name);if(STUDENT[i].name[0]=='#'){STUDENT[i].name[0]=0;printf(\n\n\n);printf(返回\n);printf(\n);break;/*作用:if语句执行结束break到main函数*/}for(j=0;;j++){printf(注:已到请输入0,迟到请输入1,早退请输入2,旷课请输入3,请假请输入4,无课请输入5!\n);printf(节数:);scanf(%d,&STUDENT[i].C1);printf(请输入数学考勤情况:);4scanf(%d,&STUDENT[i].math);if(STUDENT[i].math=5&&STUDENT[i].math=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(节数:);scanf(%d,&STUDENT[i].C2);printf(请输入英语考勤情况:);scanf(%d,&STUDENT[i].english);if(STUDENT[i].english=5&&STUDENT[i].english=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(节数:);scanf(%d,&STUDENT[i].C3);printf(请输入计算机考勤情况:);scanf(%d,&STUDENT[i].computer);if(STUDENT[i].computer=5&&STUDENT[i].computer=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(节数:);scanf(%d,&STUDENT[i].C4);printf(请输入马原考勤情况:);scanf(%d,&STUDENT[i].my);if(STUDENT[i].my=5&&STUDENT[i].my=0){break;}5elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(节数:);scanf(%d,&STUDENT[i].C5);printf(请输入体育考勤情况:);scanf(%d,&STUDENT[i].pe);if(STUDENT[i].pe=5&&STUDENT[i].pe=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}/*{if(STUDENT[i].math==3)STUDENT_1.summath++;if(STUDENT[i].english==3)STUDENT_1.sumenglish++;if(STUDENT[i].computer==3)STUDENT_1.sumcomputer++;if(STUDENT[i].my==3)STUDENT_1.summy++;if(STUDENT[i].pe==3)STUDENT_1.sumpe++;}*/{if(STUDENT[i].math==3)STUDENT[i].sum++;if(STUDENT[i].english==3)STUDENT[i].sum++;if(STUDENT[i].computer==3)STUDENT[i].sum++;if(STUDENT[i].my==3)STUDENT[i].sum++;if(STUDENT[i].pe==3)STUDENT[i].sum++;printf(旷课次数:%d,STUDENT[i].sum);}}}分析:首先输出菜单,然后依次按照条件录入每位同学信息。6输入日期DATE输入学号初值ni43YN输入学号STUDENT[i].num输入姓名STUDENT[i].name输入节数、数学出勤STUDENT[i].c1STUDENT[i].math输入节数、英语出勤STUDENT[i].c2STUDENT[i].english输入节数、计算机出勤STUDENT[i].c3STUDENT[i].computer开始7}}(二)修改某个学生的缺课记录voidmodify();分析:首先输出菜单,然后依次按照条件修改每位同学的基本信息。流程图如下图所示。输入节数、马原出勤STUDENT[i].c4STUDENT[i].my输入节数、体育出勤STUDENT[i].c5STUDENT[i].pe结束8输入修改日期DATE修改学号初值ni43YN修改学号STUDENT[i].num修改姓名STUDENT[i].name修改节数、数学出勤STUDENT[i].c1STUDENT[i].math修改节数、英语出勤STUDENT[i].c2STUDENT[i].english修改节数、计算机出勤STUDENT[i].c3STUDENT[i].computer开始9该模块的具体代码如下所示voidmodify(){inti,j,n;printf(\n);printf(\n***********************修改***********************\n);printf(注:已到0,迟到1,早退2,旷课3,请假4,无课5!\n);for(i;;i++){printf(请输入修改的时间:);scanf(%d,%d,%d,&DATE[40].year,&DATE[40].month,&DATE[40].day);printf(请输入需要修改出勤情况的学生的学号:);scanf(%d,&n);printf(\n学号:%.2d\n姓名:%s\n节次:%d\n数学出勤:%d\n节次:%d\n英语出勤:%d\n节次:%d\n计算机出勤:%d\n节次:%d\n体育出勤:%d\n节次:%d\n马原出修改节数、马原出勤STUDENT[i].c4STUDENT[i].my修改节数、体育出勤STUDENT[i].c5STUDENT[i].pe结束10勤:%d\n,STUDENT[n-1].num,STUDENT[n-1].name,STUDENT[n-1].C1,STUDENT[n-1].math,STUDENT[n-1].C2,STUDENT[n-1].english,STUDENT[n-1].C3,STUDENT[n-1].computer,STUDENT[n-1].C5,STUDENT[n-1].pe,STUDENT[n-1].C4,STUDENT[n-1].my);printf(请输入要修改的姓名:);scanf(%s,&STUDENT[n-1].name);for(j=0;;j++){printf(请输入需要修改的数学节次:);scanf(%d,&STUDENT[n-1].C1);printf(请输入需要修改的数学考勤:);scanf(%d,&STUDENT[n-1].math);if(STUDENT[n-1].math=5&&STUDENT[n-1].math=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(请输入需要修改的英语节次:);scanf(%d,&STUDENT[n-1].C2);printf(请输入需要修改的英语考勤:);scanf(%d,&STUDENT[n-1].english);if(STUDENT[n-1].english=5&&STUDENT[n-1].english=0){break;}elseprintf(\n*********输入有误,请重新输入*********\n\n);}for(j=0;;j++){printf(请输入需要修
本文标题:考勤系统
链接地址:https://www.777doc.com/doc-940319 .html