您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 学生考勤管理系统课程设计
计算机与信息工程系《高级语言程序设计》课程设计报告1学号1208010217《高级语言程序设计》课程设计报告题目:学生考勤管理系统专业:计算机科学与技术班级:12(2)班姓名:李天栋指导教师:孙淮宁成绩:计算机与信息工程系2013年6月30日2012-2013学年第二学期计算机与信息工程系《高级语言程序设计》课程设计报告2目录1设计内容及要求.........................................31.1设计内容.....................................................31.2设计任务及具体要求...........................................32概要设计.........................................................42.1该系统的功能简介.............................................42.2总体程序框图.................................................42.3各个模块之间的主要关系........................................53设计过程或程序代码............................................53.1各个模块的程序流程图及运行界面................................53.2对关键代码加以分析说明.......................................104程序调试分析.....................................................145小结.............................................................17致谢...........................................................17参考文献...........................................................17附:源程序..........................................................18计算机与信息工程系《高级语言程序设计》课程设计报告31设计内容及要求1.1设计内容学生考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。1.2设计任务及具体要求任务:(1)给出软件结构,说明各模块的功能。(2)设计相关的类,并说明该类的作用。特别要用图形说明类之间的继承关系。(3)编写代码具体要求:(1)定义相关的数据,比如:学生学号学生姓名课程名称上课时间到课时间出勤状态[旷课/病假/事假/迟到/早退](2)能够进行以下操作:A.能够对数据进行增、删、改、查操作。B.能够按学号顺序列出某一课程的出勤状况计算机与信息工程系《高级语言程序设计》课程设计报告42概要设计2.1系统的功能简介考勤管理系统,有以下功能:(1).录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期第几节课课程名称学生姓名缺课类型每行一条纪录。例如:2013-04-292-4中国近现代文学史李云龙迟到2013-04-282-4大学生社交礼仪马志鹏旷课(2).修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。(3).查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。(4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序;(5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序。2.2总体程序框图计算机与信息工程系《高级语言程序设计》课程设计报告52.3各个模块之间的主要关系本程序用结构体新定义一种数据类型,系统包含一个主函数和6个子函数(insert(),check(),rivise(),Delete(),output(),deleteallchain()),6个子函数分别用来插入、查询、修改、删除、输出、收回动态分配的空间,在主函数中通过调用子函数来实现所需功能。3设计过程或程序代码3.1各个模块的程序流程图及运行界面修改某学生的缺课信息查询某学生的缺课信息统计某段时间内旷课学生姓名及旷课节数统计某段时间内,有学生旷课的课程及旷课人次录入学生的缺课信息学生考勤管理系统录入缺课学生的姓名、缺课日期、缺课节次、缺课课程名称、缺课类型修改某学生的缺课日期、缺课节次、缺课课程名称、缺课类型查询某学生的缺课日期、缺课节次、缺课课程名称、缺课类型按时间升序显示旷课学生姓名及旷课节数按时间升序显示有学生旷课的课程及旷课人次计算机与信息工程系《高级语言程序设计》课程设计报告6学生考勤管理系统中四个类的类层次图为:图2学生考勤管理系统中中四个类的类层次图学生考勤管理系统中各功能模块的实现:图3学生考勤管理系统中菜单函数的功能图1、学生缺课信息录用功能模块:Time类Xinxi类qstu类qkechen类菜单录入学生的缺课信息查询某学生的缺课信息修改某学生的缺课信息统计某段时间内,有学生旷课的课程及旷课人次统计某段时间内旷课学生姓名及旷课节数计算机与信息工程系《高级语言程序设计》课程设计报告7图4学生缺课信息录入的功能2、修改某学生缺课信息功能的模块图图5学生考勤管理系统修改学生缺课信息功能图修改某学生的缺课课程修改某学生的缺课类型学生缺课信息录用功能录入学生缺课节次录入学生缺课日期录入学生缺课课程名称录入缺课学生姓名录入学生缺课类型修改某学生的缺课日期修改某学生缺课信息功能修改某学生的缺课节次计算机与信息工程系《高级语言程序设计》课程设计报告83查询某学生缺课信息功能图:图6学生考勤管理系统查询学生缺课信息功能图4、统计某段时间内旷课学生姓名及旷课节数功能模块:图7统计某段时间内旷课学生姓名及旷课节数功能图5、统计某段时间内,有学生旷课的课程及旷课人次功能模块图8统计某段时间内,有学生旷课的课程及旷课人次功能图输入要查询的学生姓名统计某段时间内旷课学生姓名及旷课节数显示某段时间内旷课学生姓名及旷课节数返回菜单查询某学生缺课信息功能统计某段时间内旷课学生姓名及旷课节数功能统计某段时间内,有学生旷课的课程及旷课人次功能统计某段时间内,有学生旷课的课程及旷课人次返回菜单显示某段时间内,有学生旷课的课程及旷课人次显示要查询的学生缺课信息继续查询或返回菜单计算机与信息工程系《高级语言程序设计》课程设计报告9图9学生考勤管理系统中四个类的UML图Tine-year:int-month:int-day:int+time()+~time()Xinxi-name[20]:char-kechen[10]:char-jieci[3]:char-queke[10]:char-tm[3]:char-tiaoshu:int=0+xinxi()+~xinxi()+setname(n:char*):void+settime(y:int,m:int,d:int):void+setqklx(qk:char*):void+setjieci(jc:char*):void+setkechen(kc:char*):void+getname():char*+getqklx():char*+getjieci():char*+getkechen():char*+gettime():int*qkechen-renci:int-kcshu:int=0+qkechen()+~qkechen()+getrc(st1[]:xinxi,n:int,j:int):int+qkn[20]:charqstu-jieshu:int-qst:int+qstu()+~qstu()+print(st1:xinxi&):void+getjs(st1[]:xinxi,n:int,j:int):int+setjs(js:int=0):int+qstn[20]:char基类派生类派生类派生类计算机与信息工程系《高级语言程序设计》课程设计报告103.2对关键代码加以分析说明#includeiostream.h#includestring.h#includeiomanip.hstructchuqin{//用结构体定义一个新的数据类型出勤chuqincharname[10],number[20],subject[15],time1[15],time2[15],zhuangtai[10];chuqin*next;};//------------------------------------------------------------------------------------voidinsert(chuqin*&head1)//创建单向链表并插入数据{chuqin*n;//定义一个chuqin类型指针nwhile(1)//一个死循环{n=newchuqin;//用new运算符动态分配一个chuqin空间给指针ncout请依次输入姓名、学号、课程、上课时间、到课时间、出勤状态(第一个字母输入N表示结束插入):\n;//输出提示信息cinn-name;//输入姓名if(n-name[0]=='N')//判断刚才输入的第一个字母是否为N{deleten;//若输入的第一个字母为N,则用delete运算符收回刚才动态分配的空间break;//跳出死循环,结束插入}cinn-numbern-subjectn-time1n-time2n-zhuangtai;//若条件不满足,则继续输入学号、课程、上课时间到课时间等if(!head1)head1=n,n-next=NULL;/*假如head指针为空,则直接让head指针指向n指向的存储空间(head=n),将n-next赋值为空,即不指向任何存储空间*/elsen-next=head1,head1=n;//若head指针非空,则将n指向的存储空间插在最前面}}//------------------------------------------------------------------------------------voidcheck(chuqin*head)//子函数实现查询功能{charnumber1[10];//定义一个字符串数组name1临时存放要查询的姓名intflag=1;cout请输入要查询的学号:;//输出提示信息cinnumber1;//输入要查询的学号while(head)//用while循环检索查询是否有匹配的姓名{if(strcmp(number1,head-number)==0)//用函数strcmp()判断是否有匹配姓名计算机与信息工程系《高级语言程序设计》课程设计报告11{if(flag){cout找到!\nsetw(12)姓名setw(12)学号setw(12)课程;coutsetw(12)上课时间setw(12)到课时间setw(12)出勤状态\n;}/*若条件为真,则输出提示信息*/coutsetw(12)head-namesetw(12)head-numbersetw(12)head-subject;coutsetw(12)head-
本文标题:学生考勤管理系统课程设计
链接地址:https://www.777doc.com/doc-4248365 .html