您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 学生考勤管理系统设计报告
C/C++程序设计专题实验报告题目:学生考勤管理系统设计班级:电子信息科学与技术131姓名:邬帅斌1目录目录......................................................................1摘要........................................................................21.设计要求和目的...........................................................................................错误!未定义书签。1.1设计目的................................................................31.2问题描述................................................................31.3功能要求................................................................31.4问题的解决方案..........................................................32设计思路和方法...........................................................................................................................43主模块设计....................................................................................................................................54.运行测试及结果.........................................................................................................................135.总结...........................................................................................................................................16参考文献.........................................................................................................................................16源代码..............................................................................................................................................172摘要随着信息技术在管理上越来越深入的应用,管理信息系统的实施在技术上已经逐步成熟。管理信息系统是一个不断发展的学科,任何单位要生存要发展,要提高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的信息管理系统。由于学校的学生管理系统缺乏开发,而学生人数不断增加,学生信息的不断更新,所以,学生考勤管理系统的建立就显得非常重要了。本设计是基于VisualbasicC++6.0开发环境,至上而下,层次化地设计学生考勤管理,综合考虑学生考勤管理所涉及的多方面问题,结合学校和教师的情况,有步骤,条理清晰的设计,操作简单,很方便的实现了学校和老师对学生考勤的管理。关键词:学生考勤管理C++信息录入查询31.设计要求和目的1.1设计目的(1)进一步锻炼学生对C++课程基础知识和实践技能的掌握和运用;(2)要求学生基本掌握面向对象程序设计的基本思路和方法;(3)要求学生能够利用所学的基础知识和技能,解决简单的面向对象设计问题。1.2问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。1.3功能要求(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。还可以按课程名、学生姓名对缺课记录进行查询。(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)统计功能:能根据多种参数进行统计。能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。需要排序。(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。1.4问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;4(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。(7)功能调试;(8)完成系统总结报告。2.设计思路和方法2.1设计思路根据设计要求,经分析可将整个系统划分为7个功能模块。数据管理中可以对学生的基本信息、课程的基本信息、学生缺课的查询、添加、删除和修改。查询管理通过根据学生姓名,课程姓名时间段儿等信息,查询单个学生的缺课记录,单科课的旷课记录,单个学生的旷课记录。功能模块图如下图所示:学生考勤管理程序修改学生缺课记录查看学生旷课记录查看单科旷课记录查询学生缺课记录建立学生缺课记录储存学生旷课记录载入学生旷课记录2.2数据结构设计structxueke{charxueke_name[50];intpeople_num;};这是定义了一个xueke结构体,用来存放一个学科名及其相应的旷课人数;structstudent{charname[50];longtime;intlesson_time;charlesson_name[50];intchidao_num;5intzaotui_num;intqingjia_num;intkuangke_num;structstudent*next;};这是定义了一个student的结构体,用来存放一个学生的考勤记录,其中有,字符数组name[50],lesson_name[50],分别存放学生名字,缺课课程名字;int型变量lesson_time,chidao_num,zaotui_num,qingjia_num,kuangke_num,分别来存放,缺课节次,迟到次数,早退次数,请假次数,旷课次数long型变量time,记录时间。3.主模块设计3.1建立学生缺课记录子模块建立的学生人数,学生基本信息(包括缺课时间、学生姓名、课程名称、节次、迟到次数、早退次数、请假次数、旷课次数),用creat()函数,如下图:开始inti,b;structstudent*head,*p1,*p2;printf(请输入要建立资料的学生人数:);scanf(%d,&b);head=p2=NULL;p1=(structstudent*)malloc(LEN);输入第一个学生成绩head=p1;p2=p1;i=0;student_num++;ib;请输入第%d名学生信息:,i+1p2-next=p1;p2=p1;student_num++;i++p2-next=NULL结束YN63.2修改学生缺课记录子模块charxiugai_name[50];charxiugai_xueke_name[50];intk;开始printf(请输入要修改的学生姓名与学科名称:);scanf(%s%s,xiugai_name,xiugai_xueke_name);structstudent*p1,*p2;p2=(structstudent*)malloc(LEN);p1=head;strcmp(xiugai_name,p1-name)!=0&&(p1-next!=NULL)&&strcmp(xiugai_xueke_name,p1-lesson_name)!p1=p1-next;strcmp(xiugai_name,p1-name)==0&&strcmp(xiugai_xueke_name,p1-lesson_name)==0显示修改菜单选择修改项目并完成修改结束73.3修改学生缺课记录子模块开始printf(请输入要查询的人名:);scanf(%s,chaxun_name);inti=0;charchaxun_name[50];structstudent*p;p=head;istudent_numstrcmp(chaxun_name,p-name)==0输出p所指向的结构体数据i++结束3.4查看单科旷课记录子模块根据学科名称和时间范围查出所有在该范围内旷课的学生以及次数,如下图:8开始structstudent*p1,*p2,*p3;charlesson[50];longlook_time1,look_time2;intxunhuan_num=0;p3=(structstudent*)malloc(LEN);p1=head;p2=p1-nextxunhuan_numstudent_nump2!=NULLp2-kuangke_nump1-kuangke_nump1=p2;p2=p2-next;p1=head;p2=p1-next;xunhuan_num++;交换p1与p2指向数据printf(请输入要查看的学科名称:);scanf(%s,lesson);printf(请输入要查看的时间范围);scanf(%ld%ld,&look_time1,&look_time2);p1=head;p1!=NULLstrcmp(lesson,p1-lesson_name)==0&&look_time1=p1-time&&p1-time=look_time2输出学生姓名和旷课次数p1=p1-next;结束YNYYNN3.5查看学生旷课记录子模块根据要查询的学科名称及时间段查出在改时间段内该门课上旷课的人数,如下图:9开始intn,i,j,zhongjian;structstudent*p1;charzhongjian_name[50];longlook_time1,look_time2;printf(请输入第%d个学科名称:,i+1);scanf(%s,a[i].xueke_name);a[i].people_num=0;printf(请输入要查看的时间范围由小到大);scanf(%ld%ld,&look_time1,&look_time2);p1=head;i=0;inp1!=NULL&&look_time1=p1-time&&p1-time=look_time2(strcmp(a[i].xueke_name,p1-lesson_na
本文标题:学生考勤管理系统设计报告
链接地址:https://www.777doc.com/doc-2756278 .html