您好,欢迎访问三七文档
湖北理工学院《大型软件项目实训》实训报告实训报告学号:201340420224编号:B04731017教学院计算机课程名称大型软件项目实训专业网络工程班级二班姓名何娟2016年9月20日湖北理工学院《大型软件项目实训》实训报告1一.实训内容1.实训目的与要求1.1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。1.2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。1.3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。2项目背景2.1对现有系统的分析目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课情况。对于请假需要通过向辅导员递交请假条并获得同意方能生效。这种模式在目前高校管理中暴露了不可避免的弊端:a)学生对自己整个学期的上课出勤情况没有整体的统计信息b)班主任及辅导员对本班学生整个学期的上课出勤情况不易查看;c)学生请假不方便,如:学生生病或有其他急事需请假,必须找辅导员批假条,而辅导员事情比较多不可能经常坐在办公室里等着;d)在这种方式下,由于学生考勤信息需要多次登记、反复输入,因而出错率较高,效率也低下。e)各学院与学生考勤管理中心各自记录所有学生的考勤情况,对于各考勤表,考勤管理员要反复的执行登记、核对、统计,稍不注意就出错,对于错误的改正,更是麻烦。浪费人力并且效率低。f)数据不能共享,无法互相利用,互相参照,导致大量数据冗余。g)难避免考勤中的弄虚作假现象。在这种情况下,学生考勤管理中心只能一次又一次地扩大员工队伍,期望借此提高效率。但是事实上,工作效率不但没有改善,工资支出却年年增高,增加了学校的经济支出。在此情况下,开发一个新的、高效的、更加灵活方湖北理工学院《大型软件项目实训》实训报告2便、能实时记录学生考勤信息的学生考勤管理系统迫在眉睫。2.2处理流程和数据流程人工的考勤系统主要包括请假系统,考勤系统,管理中心,主要供学生,辅导员,任课老师,班主任所使用。如下为系统流程图:在请假系统中,学生想要请假需要向辅导员老师写请假条并说明原因,获得辅导员的同意才能请假成功,否则失败。而学生的请假情况记录在请假条的存根上,在向任课老师请假时也需自己或请同学向老师出示请假条并说明原因,由任课老师在学生名单上记录为“请假”。辅导员、任课老师、学生只有通过查询请假条的存根或考勤表才可知道请假情况。湖北理工学院《大型软件项目实训》实训报告32.3局限性该系统会浪费很多的时间而且会很麻烦,当学生需要请假时必须找到辅导员写请假条才行,另外课堂上由于是由任课老师通过点名的方式考勤所以会造成混乱不清更问题。因此,开发一个新的高校学生考勤管理系统迫在眉睫,同时,我们的系统也应运而生。3.功能需求这是一个记录学生上课情况的一个考勤系统,方便记录、查询、统计学生考勤信息。学生考勤管理系统用于记录学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学号、缺课类型(迟到、早退、请假及旷课)。优化界面使学生使用更加便捷,在保证信息共享的同时又注重了信息的安全性而不被篡改。该系统除了用于学生课堂的考勤,还可用于学生出早操情况的考核,开会出勤情况的考核等。而且可以进一步开发,与教务处学生成绩数据库相连接,将考勤结果作为平时成绩或期末成绩及评优的参考。另外该系统还可作为请假系统代替传统写请假条请假的问题。在安全方面,登陆系统时,需验证身份和密码,只有通过验证的身份才能进入系统进行相关的操作。系统间信息的传递也需要进行安全设置,以防止学生的考勤信息被恶意篡改。主要分为6大模块,分为录入学生的缺课记录、修改某个学生的缺课记录、查询某个学湖北理工学院《大型软件项目实训》实训报告4生的缺课情况、统计旷课学生姓名及旷课节数、统计旷课课程及旷课人次和系统以菜单方式工作。具体需求如下:考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计考勤管理系统,使之能提供以下功能:1).录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期第几节课课程名称学生姓名缺课类型每行一条纪录。例如:2016-04-292-4C++面向对象程序设计李强迟到2009-04-282-4高数马志旷课2).修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。3).查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序;5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序;6).系统以菜单方式工作。(所谓菜单指用户可以自由选择所要执行的功能)学生可以通过以上功能录入信息、修改信息、查询信息、整理统计出所要了解的信息,除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便,在使用的过程中保持一个愉快的心情。学生考勤管理系统有广大的用户群,这其中有老师、有教务处主任、有公司管理人员,也可以供给一般用户使用。总之该系统可以满足用户需求,实现对其管理的人员的考勤工作。4、总体设计学生考勤管理系统包含五个大的功能,分别是:录入学生缺课信息、修改学生缺课信息、查询某个学生的缺课情况、统计某段时间内(以天为单位),湖北理工学院《大型软件项目实训》实训报告5旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。学生的缺课信息主要包含缺课日期,第几节课、课程名称,学生姓名,缺课类型。在录入学生缺课信息时根据系统提示逐一输入。每输入完一条信息,系统会提示是否继续输入,用户可以选择继续或返回主菜单。在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。如果系统中没有该学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。在查询学生缺课信息时,用户先输入要查询的学生姓名,系统检索判断是否存在该学生的信息然后做出相应的提示。总之,用户可以方便的在系统提示下进行使用。学生考勤管理系统中功能模块图:修改某学生的缺课信息查询某学生的缺课信息统计某段时间内旷课学生姓名及旷课节数统计某段时间内,有学生旷课的课程及旷课人次录入学生的缺课信息学生考勤管理系统录入缺课学生的姓名、缺课日期、缺课节次、缺课课程名称、缺课类型修改某学生的缺课日期、缺课节次、缺课课程名称、缺课类型查询某学生的缺课日期、缺课节次、缺课课程名称、缺课类型按时间升序显示旷课学生姓名及旷课节数按时间升序显示有学生旷课的课程及旷课人次湖北理工学院《大型软件项目实训》实训报告65、详细设计我在我们小组中负责的是修改某学生缺课信息功能和统计学生旷课的课程及旷课人次等这两大功能模块。1、修改某学生缺课信息功能的模块图图1学生考勤管理系统修改学生缺课信息功能图2、统计某段时间内,有学生旷课的课程及旷课人次功能模块图2统计学生旷课的课程及旷课人次功能图此系统不仅可以直接统计某段时间内的旷课课程及旷课人次,除此之外,还可以查看学生的旷课课程及旷课人次。下面是部分代码分析//时间类classtime{public:time(inty=0,intm=0,intd=0)修改某学生的缺课日期统计某段时间内,有学生旷课的课程及旷课人次功能统计某段时间内,有学生旷课的课程及旷课人次返回菜单显示某段时间内,有学生旷课的课程及旷课人次修改某学生缺课信息功能修改某学生的缺课节次修改某学生的缺课课程修改某学生的缺课类型湖北理工学院《大型软件项目实训》实训报告7{year=y;month=m;day=d;}~time(){}protected:intyear,month,day;};这是一个基类,用来记录时间信息,记录年份,月份以及时刻点,以供其它类来进行派生。//信息类classxinxi:publictime{public:xinxi(){tiaoshu++;}~xinxi(){tiaoshu--;}voidsetname(char*n){strcpy_s(name,n);}voidsettime(inty,intm,intd){year=y;month=m;day=d;}voidsetqklx(char*qk){strcpy_s(queke,qk);}voidsetjieci(char*jc){strcpy_s(jieci,jc);}voidsetkechen(char*kc){strcpy_s(kechen,kc);}char*getname(){char*n;n=name;returnn;}char*getqklx(){char*qk=queke;returnqk;}char*getjieci(){char*jc;jc=jieci;returnjc;}char*getkechen(){char*gk;gk=kechen;returngk;}int*gettime();private:charname[20];//姓名charjieci[3],kechen[10],queke[10];inttm[3];staticinttiaoshu;};这是一个信息类,用来记录学生的姓名,以及上课课程名,还有缺课课程名和节次,以供后期查询。湖北理工学院《大型软件项目实训》实训报告8//缺课课程类classqkechen:publicxinxi{public:qkechen(){kcshu++;}~qkechen(){kcshu--;}intgetrc(xinxist1[],intn,intj);charqkn[20];//公有数据成员private:intrenci;staticintkcshu;//静态数据成员};intqkechen::kcshu=0;intqkechen::getrc(xinxist1[],intn,intj){renci=0;renci++;for(inti=0;in;i++)if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].gettime()+2))if(strcmp(qkn,st1[i].getkechen())==0)renci++;returnrenci;}//缺课学生类classqstu:publicxinxi{public:qstu(){qst++;}~qstu(){qst--;}voidprint(xinxi&st1);湖北理工学院《大型软件项目实训》实训报告9intgetjs(xinxist1[],intn,intj);intsetjs(intjs=0){jieshu=js;}charqstn[20];private:intjieshu;staticintqst;//静态数据成员};/菜单函数voidcaidan(){system(colorA);cout*************************************************************endl;cout*学生考勤管理系统*endl;cout***************************************************
本文标题:考勤系统设计
链接地址:https://www.777doc.com/doc-7632649 .html