学生考勤管理系统课程设计

上传人:545****25f 文档编号:163119293 上传时间:2022-10-20 格式:DOCX 页数:91 大小:174.04KB
收藏 版权申诉 举报 下载
学生考勤管理系统课程设计_第1页
第1页 / 共91页
学生考勤管理系统课程设计_第2页
第2页 / 共91页
学生考勤管理系统课程设计_第3页
第3页 / 共91页
资源描述:

《学生考勤管理系统课程设计》由会员分享,可在线阅读,更多相关《学生考勤管理系统课程设计(91页珍藏版)》请在装配图网上搜索。

1、滨江学院课程设计报告滨江学院 面向对象课程设计 题 目目 CC+课课程设计计 院 系 滨滨江学院院计算机机系专 业 网网络工程程 学生姓名 董义义伟 学 号 200092234660344 指导教师 姜青山山 二0 一一0 年年十二月月三十一一日面向对象课课程设计计指导书书及评分分标准课程设计选选题(11学时)由教师命题题,学生生自己选选择课题题,经教教师调整整审查后后确定。设计的课题题以实用用为主,反反映新技技术的发发展情况况,以获获得更好好的面向向对象实实践的训训练。课课题规模模、大小小适当,具具有一定定复杂度度,通过过激发学学生参加加开发实实践的积积极性与与创造性性,达到到综合应应用所学

2、学知识的的目的。学生可从下下列题目目中选择择(也可可以自己己选择其其它题目目):1、人事管管理系统统2、学生管管理系统统3、学生成成绩管理理系统4、图书借借阅管理理系统5、超市收收款管理理系统6、铁路售售票管理理系统7、长途汽汽车售票票管理系系统8、大剧院院售票管管理系统统9、运动会会成绩及及名次管管理系统统10、仓库库管理系系统(小小超市)12、航空空售票管管理系统统13、汽车车销售管管理系统统14、电脑脑彩票销销售及摇摇奖模拟拟系统15、网上上订票系系统16房屋租租赁管理理系统17、酒店店客房管管理系统统18、工资资管理系系统19、考勤勤管理系系统20、员工工培训管管理系统统考核方式:程序

3、演演示效果果+课程程设计报报告评分标准:等级制制(优秀秀、良好好、中等等、及格格、不及及格)1、需求分分析(110分)对系统的功功能及性性能要求求进行分分析,写写出需求求规格说说明书(可可行性分分析报告告、系统统的分层层DFDD图、加加工说明明及数据据词典)。(业业务逻辑辑正确,无无原则性性错误,结结构图、流流程图正正确,数数据字典典完善。)2、软件总总体设计计(200分) 确定系统总总体设计计方案,完完成系统统的模块块结构图图及模块块的功能能说明。(模模块结构构图正确确,模块块说明详详细、完完善、准准确。)3、软件详详细设计计(200分)对模块内部部过程及及数据结结构进行行设计等等编写出出该

4、项目目的详细细设计报报告。(数数据结构构合适,能能满足系系统需求求。)4、编码(335分)选择一种自自己熟悉悉的面向向对象程程序设计计语言,进进行程序序设计。5、总结(55分)本次课程设设计的收收获,经经验,启启示等。6、排版(110分)封面符合合要求,内内容排版版规范,图图、表规规整,语语言流畅畅,无错错别字。(A4纸打印,上边装订) 滨江学院课程设计报告课题:C+课程程设计(一)、课课程设计计题目:C+课程程设计(二)、目目的与要要求: 1、目的: (1)要求求学生达达到熟练练掌握CC+语语言的基基本知识识和技能能; (2)基本本掌握面面向对象象程序设设计的基基本思路路和方法法; (3)能

5、够够利用所所学的基基本知识识和技能能,解决决简单的的面向对对象程序序设计问问题。 2、基本要要求: (1)要求求利用面面向对象象的方法法以及CC+的的编程思思想来完完成系统统的设计计; (2)要求求在设计计的过程程中,建建立清晰晰的类层层次; (3)在系系统中至至少要定定义四个个类,每每个类中中要有各各自的属属性和方方法; (4)在系系统的设设计中,至至少要用用到面向向对象的的一种机机制。 3、创新要要求: 在基本要求求达到后后,可进进行创新新设计,如如根据查查找结果果进行修修改的功功能。 4、写出设设计说明明书 (三)、设设计方法法和基本本原理:1、问题描描述(功功能要求求): 考勤信息息记

6、录了了学生的的缺课情情况,它它包括:缺课日日期、第第几节课课(连续续多节课课用 bbegiin-eend 的形式式表示)、课程程名称(课课程名称称中不会会出现空空格)、学学生姓名名、缺课课类型(迟迟到、早早退、请请假及旷旷课)。试试设计考考勤管理理系统,使使之能提提供以下下功能:1)录入入学生的的缺课记记录:从从键盘输输入数据据(提示示:为避避免重复复从键盘盘输入数数据,测测试时可可将数据据存储在在文件中中,利用用输入重重定向功功能读入入),输输入格式式为:缺课日期第第几节课课 课程程名称学学生姓名名 缺课课类型每行一条纪纪录。例如:2008-04-29 3-44 C+程序序设计实实验 张张三

7、 迟迟到2008-04-28 3-44 C+程序序设计 李四 旷课2)修改改某个学学生的缺缺课记录录:可以以对缺课课纪录的的任意部部分进行行修改,然然后显示示一下修修改后的的纪录。3)查询询某个学学生的缺缺课情况况:查询询结果按按照日期期升序排排序,同同一天内内按照所所缺课程程的时间间升序排排序。4)统计计某段时时间内(以以天为单单位),旷旷课学生生姓名及及旷课节节数,查查询结果果先按旷旷课节数数降序排排序,旷旷课节数数相同的的学生按按姓名升升序排序序;5)统计计某段时时间内,有有学生旷旷课的课课程及旷旷课人次次,按旷旷课人次次由多到到少排序序,旷课课人次相相同的课课程按课课程名称称升序排排序

8、; 6)系统统以菜单单方式工工作。(所所谓菜单单指用户户可以自自由选择择所要执执行的功功能)2、问题的的解决方方案: 根据系统功功能要求求,可以以将问题题解决分分为以下下步骤: (1)应用用系统分分析,建建立该系系统的功功能模块块框图以以及界面面的组织织和设计计;(2)分析析系统中中的各个个实体及及它们之之间的关关系包括括属性和和行为; (3)根据据问题描描述,设设计系统统的类层层次; (4)完成成类层次次中各个个类的描描述(包包括属性性和方法法); (5)完成成类中各各个成员员函数的的定义; (6)完成成系统的的应用模模块; (7)功能能调试; (8)完成成系统总总结报告告以及系系统使用用说

9、明书书目 录1.系统需需求分析析12.总体设设计13.详细设设计14.系统调调试15.结果分分析16.总结11附录:源程程序清单单 1. 系统需求分分析考勤信息记记录了学学生的缺缺课情况况,它包包括:缺缺课日期期、第几几节课(连连续用bbegiin-eend的的形式表表示)、课课程名称称(课程程名称中中不会出出现空格格)、学学生姓名名、缺课课类型(迟迟到、早早退、请请假及旷旷课)。试试设计考考勤管理理系统,使使之能提提供以下下功能:1)录入入学生的的缺课记记录:从从键盘输输入数据据(提示示:为避避免重复复从键盘盘输入数数据,测测试时可可将数据据存储在在文件中中,利用用输入重重定向功功能读入入)

10、,输输入格式式为:缺缺课日期期 第几几节课 课程名名称学生生姓名 缺课类类型每行一条纪纪录。例如:2009-04-29 2-44 中国国近现代代文学史史 李云云龙 迟迟到2009-04-28 2-44 大学学生社交交礼仪 马志鹏鹏 旷课课2)修改改某个学学生的缺缺课记录录:可以以对缺课课纪录的的任意部部分进行行修改,然然后显示示一下修修改后的的纪录。3)查询询某个学学生的缺缺课情况况:查询询结果按按照日期期升序排排序,同同一天内内按照所所缺课程程的时间间升序排排序。4)统计计某段时时间内(以以天为单单位),旷旷课学生生姓名及及旷课节节数,查查询结果果先按旷旷课节数数降序排排序,旷旷课节数数相同

11、的的学生按按姓名升升序排序序;5)统计计某段时时间内,有有学生旷旷课的课课程及旷旷课人次次,按旷旷课人次次由多到到少排序序,旷课课人次相相同的课课程按课课程名称称升序排排序; 6)系统统以菜单单方式工工作。(所所谓菜单单指用户户可以自自由选择择所要执执行的功功能。学学生可以以通过以以上功能能录入信信息、修修改信息息、查询询信息、整整理统计计出所要要了解的的信息,除除了要实实现上述述的基本本功能之之外,本本系统还还应该在在细节上上下工夫夫,使用用户使用用方便,在在使用的的过程中中保持一一个愉快快的心情情。学生生考勤管管理系统统有广大大的用户户群,这这其中有有老师、有有教务处处主任、有有公司管管理

12、人员员,也可可以供给给一般用用户使用用。总之之该系统统可以满满足用户户需求,实实现对其其管理的的人员的的考勤工工作。2. 总体设计学生考勤管管理系统统包含五五个大的的功能,分分别是:录入学学生缺课课信息、修修改学生生缺课信信息、查查询某个个学生的的缺课情情况、统统计某段段时间内内(以天天为单位位),旷旷课学生生姓名及及旷课节节数和统统计某段段时间内内,有学学生旷课课的课程程及旷课课人次。学学生的缺缺课信息息主要包包含缺课课日期,第第几节课课、课程程名称,学学生姓名名,缺课课类型。在录入学生生缺课信信息时根根据系统统提示逐逐一输入入。每输输入完一一条信息息,系统统会提示示是否继继续输入入,用户户

13、可以选选择继续续或返回回主菜单单。在修改学生生缺课信信息时,用用户首先先输入要要修改的的学生姓姓名,系系统会检检索如果果系统中中有该学学生的相相关信息息则系统统首先会会提示用用户修改改该学生生的那一一部分信信息,用用户可自自行选择择。如果果系统中中没有该该学生的的相关信信息,则则系统会会给相关关提示,用用户可以以选择继继续输入入要修改改的学生生姓名或或选择退退出返回回主菜单单。在查询学生生缺课信信息时,用用户先输输入要查查询的学学生姓名名,系统统检索判判断是否否存在该该学生的信息息然后做做出相应应的提示示。总之之,用户户可以方方便的在在系统提提示下进进行使用用。学生考勤管管理系统统中功能能模块

14、图图:修改某学生的缺课信息查询某学生的缺课信息统计某段时间内旷课学生姓名及旷课节数统计某段时间内,有学生旷课的课程及旷课人次录入学生的缺课信息学生考勤管理系统录入缺课学生的姓名、缺课日期、缺课节次、缺课课程名称、缺课类型修改某学生的缺课日期、缺课节次、缺课课程名称、缺课类型查询某学生的缺课日期、缺课节次、缺课课程名称、缺课类型按时间升序显示旷课学生姓名及旷课节数按时间升序显示有学生旷课的课程及旷课人次3. 详细细设计学生考勤管管理系统统中四个个类的类类层次图图为:Time类Xinxi类qstu类qkechen类图2 学生考考勤管理理系统中中中四个个类的类类层次图图学生考勤管管理系统统中各功功能

15、模块块的实现现:菜单 统计某段时间内,有学生旷课的课程及旷课人次统计某段时间内旷课学生姓名及旷课节数查询某学生的缺课信息录入学生的缺课信息修改某学生的缺课信息图3 学生考考勤管理理系统中中菜单函函数的功功能图1、 学生缺课信信息录用用功能模模块:学生缺课信息录用功能录入学生缺课节次录入学生缺课日期录入学生缺课课程名称录入缺课学生姓名录入学生缺课类型图4 学生缺缺课信息息录入的的功能2、 修改某学生生缺课信信息功能能的模块块图修改某学生缺课信息功能修改某学生的缺课节次修改某学生的缺课日期修改某学生的缺课课程修改某学生的缺课类型图5 学学生考勤勤管理系系统修改改学生缺缺课信息息功能图图3 查询某某

16、学生缺缺课信息息功能图图:查询某学生缺课信息功能输入要查询的学生姓名显示要查询的学生缺课信息继续查询或返回菜单图6 学生生考勤管管理系统统查询学学生缺课课信息功功能图4、 统计某段时时间内旷旷课学生生姓名及及旷课节节数功能能模块:统计某段时间内旷课学生姓名及旷课节数功能统计某段时间内旷课学生姓名及旷课节数显示某段时间内旷课学生姓名及旷课节数返回菜单图7统计某某段时间间内旷课课学生姓姓名及旷旷课节数数功能图图5、统计某某段时间间内,有有学生旷旷课的课课程及旷旷课人次次功能模模块统计某段时间内,有学生旷课的课程及旷课人次统计某段时间内,有学生旷课的课程及旷课人次功能显示某段时间内,有学生旷课的课程

17、及旷课人次返回菜单图8统计某某段时间间内,有有学生旷旷课的课课程及旷旷课人次次功能图图Tine-year:int-month:int-day:int+time()+time()Xinxi-name20:char-kechen10:char-jieci3:char- queke10:char-tm3: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

18、(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+qkn20:charqstu-jieshu:int -qst:int+qstu()+qstu()+print(st1:xinxi &):void+getjs( st1:xinxi,n:int, j:int):int+setjs(js:

19、int=0):int +qstn20:char基类派生类派生类派生类 图 99 学生生考勤管管理系统统中四个个类的UUML图图3. 系统调试程序编写完完成后,我我进行了了程序调调试。调调试过程程中,出出现了以以下问题题:当录录入学生生缺课信信息时,出出现了无无法退出出录入函函数的情情况,主主要原因因是输入入函数中中whiile循循环语句句没有设设置跳出出循环的的条件。除除此之外外,修改改某学生生缺课信信息时,如如果没有有该学生生的缺课课信息,系系统没有有提示要要用户没没有该学学生信息息,也没没有建议议用户重重新输入入要修改改的学生生姓名。由由此我发发现了该该系统修修改学生生缺课信信息的不不足。

20、于于是,我我对修改改函数进进行了修修改与完完善。在在该函数数中,我我设置了了if语语句用来来判断系系统中是是否存有有用户要要修改的的学生缺缺课信息息。如果果没有,则则提示用用户没有有该学生生的缺课课信息,用用户可以以选择继继续输入入要修改改的学生生姓名或或者退出出修改环环节,可可以在循环语语句中改改变循环环进行的的条件从从而终止止循环。至至于在修修改后显显示该学学生的缺缺课信息息,运行行时发现现系统并并没有做做到这一一点,对对源代码码检查之之后发现现是修改改函数中中显示函函数的调调用出了了点问题题,显示示函数的的实参有有误,应应该把要要修改缺缺课信息息的学生生所在的的信息类类对象作作为实参参,

21、然后后用显示示函数的的形参引引用实参参对象,通通过对象象调用信信息类的的成员函函数,从从而实现现显示功功能。至至于该系系统的查查询功能能的实现现,在调调试时发发现还有有欠缺,当当随便输输入一个个学生姓姓名时,系系统没有有显示该该学生的的缺课信信息,也也没有提提示系统统没有找找到该学学生的有有关信息息,经过过在查询询函数wwhille循环环中加入入一个iif条件语语句后,系系统实现现了提示示用户的的功能,如如果系统统中没有有你要查查询的学学生缺课课信息,系系统将会会提示用用户,用用户可以以继续输输入要查查询的学学生姓名名也可以以通过按按系统设设置的退退出键选选择退出出查询环环节。至至于两个个统计

22、功功能至今今没有完完善,主主要是特特定时间间学生缺缺课次数数和课程程的缺课课人次的的统计问问题尚待待解决,现现如今只只完成了了一两条条学生缺缺课信息息的统计计。主要要问题是是特定时时间这个个前提条条件对我我造成了了一定的的障碍。对对系统中中存储的的信息进进行查找找和统计计运用对对象指针针比较方方便,但但我没有有使用,也也算有点点遗憾。在在调试过过程中我我出现的的最严重重的问题题是函数数形参引引用对象象数组,结结果系统统提示将将近几十十个错误误,在我我把函数数形参改改为对象象数组后后,错误误一下减减少了很很多。还还有比较较突出的的问题是是整个程程序不知知哪掉了了个 号系统统会提示示有错,但但就不

23、懂懂那专业业术语啥啥意思。还还有就是是我以为为派生类类公有继继承的基基类的保保护成员员在派生生类内为为公有成成员,可可编译时时才发现现是不对对的。通通过认真真调试,我我发现我我有了收收获。5. 结果果分析这次的课设设,我写写的程序序也没有有什么独独到之处处,我觉觉得唯一一可以从从我的程程序可以以看出的的是数组组用得比比较多,反反正是没没啥特色色,不仅仅如此,还还写得功功能不全全,实在在是惭愧愧。现在在在这里里也只能能说说它它的不足足之处了了。类层次不够够清晰,纵纵观整个个程序可可以发现现四个类类之间的的关系不不甚恰当当,我有有这个感感觉,但但我不知知如何改改进。函数参数设设定不够够完美,整整个

24、程序序中对指指针的运运用比较较少。对对于指针针的巧妙妙运用把把握得不不够。还还有就是是容易mmisssingg;或者者是,这这都是些些应该改改掉的毛毛病。除此以外,我我对于怎怎样用文文件保存存数据还还没深入入了解,但但我将数数据保存存到文件件后又因因文件打打不开而而无法访访问文件件中的数数据,对对于动态态链表,我我不是很很清晰,也也就是说说无法做做到熟稔稔运用。在在调试过过程中我我发现在在主函数数中把字字符数组组名naame赋赋值给字字符指针针p即pp=naame;然后用用couutp;语语句可以以输出字字符数组组里全部部的内容容,但利利用函数数返回指指针值却却不能做做到这一一点,在在我思考考

25、一番后后终于明明白了,这这与内存存中的地地址值有有关。具具体为什什么我是是解释不不清了在调用系统统的显示示功能时时,如果果在geetnaame()函数数前加一一个*号号输出的的只是一一个字符符,不加加反而能能输出所所有字符符。geetnaame()函数数的返回回值为指指针类型型,但前前面说过过利用函函数返回回指针类类型的值值并不能能输出字字符数组组中所有有的字符符,为什什么这里里又可以以呢?老老天,这这是为什什么?我我不知道道这一知知识,这这也算我我的程序序的不足足之处吧吧!对于两个统统计函数数的功能能不全,我我感到无无能为力力,我为为了这两两函数苦苦思了两两天,硬硬是没凑凑合来。到到后来,脑

26、脑子里都都乱了,运运行时屏屏幕上尽尽是些乱乱七八糟糟的东西西。老师师帮我看看看,看看有没有有什么简简单的方方法一下下搞定它它。结果不是很很好,但但过程够够了就行行。这也也是自欺欺欺人的的看法,让让我再一一次自责责吧。6.总结这次的程序序设计相相对于上上学期还还是有了了进步的的。学生生考勤管管理系统统要求至至少要有有四个类类,在起起初,对对于定义义哪四个个类我是是不清楚楚的,通通过仔细细的研读读问题描描叙终于于在脑海海里确定定了这四四个类。既既然是学学生考勤勤管理系系统,那那由学生生缺课信信息中的的日期我我想到了了时间类类,这是是一个很很简单的的类。从从系统的的几大功功能我又又想到了了系统的的基

27、础就就是缺课课学生的的缺课信信息,于于是我又又想到了了一个信信息类,还还有两个个类是根根据两个个统计功功能想到到的,在在现在看看来似乎乎有些不不妥。通通过这次次的课程程设计我我明白了了学习程程序设计计语言必必须要勤勤做实验验,通过过实验总总结经验验。平时时遇到的的一些小小问题一一定要重重视,越越是基础础的知识识越要理理解透彻彻。比如如指针与与数组方方面的知知识,一一旦没有有弄清楚楚,在设设计程序序时就会会吃亏。这次的课设设中,我我遇到了了很多的的问题,有有的通过过思考或或查看书书本解决决了,有有的还留留在脑子子里,只只有通过过孜孜不不倦的求求索我们们才会有有进步,不不懂得思思考就不不能真正正的

28、掌握握一门知知识。这这次的实实验给以以了我警警示,它它让我明明白我所所掌握的的知识还还很欠缺缺,对于于继承与与派生这这一章的的知识,我我以为自自己勉强强掌握了了,这次次实验后后我发现现我掌握握得还不不够。基基类的保保护成员员公有继继承到派派生类,类类外是否否可以通通过对象象来访问问呢,原原先我认认为是可可以的,经经过这次次程序设设计,我我知道我我错了。 总之之,我觉觉得做学学问不应应该马虎虎,对于于所学一一定要有有深入的的理解,这这也是我我这次课课设得到到的启示示。附录:源程程序清单单#inclludee#inclludee#inclludeeusingg naamesspacce sstd;

29、 /时间类类classs tiimepubllic: timme(iint y=00,innt mm=0,intt d=0) yeear=y;mmontth=mm;daay=dd; tiime()proteecteed: intt yeear,monnth,dayy; /信息息类 classs xxinxxi:ppubllic timme puubliic: xinxxi() ttiaooshuu+; xinnxi()ttiaooshuu-; voidd seetnaame(chaar *n)strrcpyy(naame,n); voidd seettiime(intt y,intt m,in

30、tt d)yeear=y;mmontth=mm;daay=dd; voidd seetqkklx(chaar *qk)sttrcppy(qquekke,qqk); voidd seetjiiecii(chhar *jcc)sstrccpy(jieeci,jc); voidd seetkeecheen(ccharr *kkc)strrcpyy(keecheen,kkc); charr *ggetnnamee()chaar *n;nn=naame;retturnn n; charr *ggetqqklxx()chaar *qk=queeke;retturnn qkk; charr *ggetjji

31、ecci()chhar *jcc;jcc=jiiecii;reeturrn jjc; charr *ggetkkechhen()ccharr *ggk;ggk=kkechhen;retturnn gkk; int *geettiime(); privvatee: chaar nnamee200;/姓名名 chaar jjiecci33,kkechhen10,quuekee100; intt tmm3; staaticc innt ttiaooshuu; ; int xinnxi:tiiaosshu=0; int *xiinxii:ggetttimee() intt *tt; t=ttm; tm

32、0=yeaar; tm1=monnth; tm2=dayy; retturnn t; /缺课课课程类类 classs qqkecchenn:puubliic xxinxxi pubblicc: qqkecchenn()kcsshu+; qqkecchenn()kcsshu-; innt ggetrrc(xxinxxi sst1,iint n,iint j); chhar qknn200;/公有有数据成成员 privvatee: innt rrencci; sttatiic iint kcsshu;/静静态数据据成员; int qkeecheen:kcsshu=0; int qkeecheen:

33、gettrc(xinnxi st11,intt n,intt j) rennci=0; reencii+; ffor(intt i=0;iin;i+) iif(*(stt1ii+1.geettiime()+11)=*(sst1j.getttimme()+1)&*(stt1ii+1.geettiime()+22)=*(sst1j.getttimme()+2)if(sstrccmp(qknn,stt1ii.ggetkkechhen()=0) rrencci+; reeturrn rrencci; /缺课学学生类 claass qsttu:ppubllic xinnxi pubblicc: qstt

34、u()qsst+; qsstu()qqst-; voiid pprinnt(xxinxxi &st11); intt geetjss(xiinxii stt1,innt nn,innt jj); intt seetjss(innt jjs=00) jiieshhu=jjs; chaar qqstnn200; priivatte: iint jieeshuu; sstattic intt qsst; /静静态数据据成员; intt qsstu:qsst=00; /类类的实现现 voiid qqstuu:pprinnt(xxinxxi &st11) coutt| 缺缺课日期期 | 第几几节课 |

35、课程名名称 | 缺缺课类型型|enndl; ccoutt|*sst1.getttimme()|*(st11.geettiime()+11)*(sst1.getttimme()+2)|stt1.ggetjjiecci()| st11.geetkeecheen()|stt1.ggetqqklxx()|enddl; intt qsstu:geetjss(xiinxii stt1,innt nn,innt jj) intt i=0,jjs=00; xiinxii miin; iff(*(st11j.geetjiiecii()+2)!=0) jjs=+2; ellse jjs+; foor(ii=0;i

36、nn;i+) iff(*(st11i+1.getttimme()+1)=*(stt1jj.ggetttimee()+1)&*(st11i+1.getttimme()+2)=*(stt1jj.ggetttimee()+2) iff(sttrcmmp(sst1i+11.ggetnnamee(),qsttn)=0) iff(*(st11i.geetjiiecii()+2)!=0) jjs=+2; ellse jjs+; jieeshuu=jss; retturnn jiieshhu; / 函函数声明明int sshurru(xxinxxi sst1);void chaaxunn(xiinxii st

37、t1,qsstu qt);void xiuugaii(xiinxii stt1,innt nn);void tonngjii1(xxinxxi sst1,qqstuu qtt1);void tonngjii2(xxinxxi sst1,qqkecchenn qkk1);void caiidann();void xiaansii(xiinxii &sst1);void settqsttn(xxinxxi sst1,qqstuu qtt1,innt nn);void settqknn(xiinxii stt1,qkkechhen qk,iint n);/全局变变量int gg,k=1,bb=1;i

38、nt qq=-11;char namme220,kecchenn100,qquekke110,jieeci3;int yy,m,d; /主函数数int mmainn() xiinxii tll155;/定义义15条条信息类类对象 qsstu qt10; qkkechhen qk6; innt cch; whiile(1)couut*欢迎进进入学生生考勤管管理系统统!*enndl; caaidaan(); coout-请选选择菜单单项:ch; swiitchh(chh) caase 1: g=sshurru(ttl); brreakk; casse 22: xxiuggai(tl,g); brr

39、eakk; casse 33: cchaxxun(tl,qt); bbreaak; casse 44: ttonggji11(tll,qtt); breeak; casse 55: ttonggji22(tll,qkk); breeak; casse 66: eexitt(0); retturnn 0; /菜单函函数 voiid ccaiddan() sysstemm(ccoloor AA);cout*enddl;cout* 学生考考勤管理理系统 *enndl;cout*enddl; couut1.-录入入学生的的缺课记记录-*eendll; ccoutt2.-修改学学生的缺缺课记录录-*en

40、ndl;cout33.-查查询学生生的缺课课情况-*enddl;cout44.-统计某某段时间间内旷课课学生姓姓名及旷旷课节数数-*enddl; cout55.-统计某某段时间间内旷课课的课程程及旷课课人次-*enndl;cout66.-退退出系统统-*eendll; /输入函函数 intt shhuruu(xiinxii stt1) chaar aa; couut-输入入开始!-enndl; do q+; couut请输输入学生生姓名nnamee; st11q.seetnaame(namme); coout请请输入课课程名称称kkechhen; st11q.seetkeecheen(kkec

41、hhen); couut请输输入缺课课日期yymmdd; st11q.seettiime(y,mm,d); couut请输输入缺课课类型qquekke; st11q.seetqkklx(queeke); couut请输输入缺课课节次jjiecci; st11q.seetjiiecii(jiiecii); couut是否否还要继继续输入入:(yy/n)aa;whiile(a=y);retturnn q+1; /修修改函数数 voiid xxiuggai(xinnxi st11,intt n) innt kk=1,j=00,a10; innt fflghh; innt hh; whiile(k=1

42、) ccoutt请输入入你要修修改缺课课记录的的学生姓姓名naame; fflghh=0; ffor(intt i=0;iin;i+) iif(sstrccmp(namme,sst1i.gettnamme()=0) ddo ajj=ii; couut1.修改日日期2.修改节节次3.修改课课程名称称4.修修改缺课课类型eendll; couut请输输入要选选择的数数值(11,2,3,44)bb; if(b=1) ccoutt请输入入新日期期yymmdd;sst1i.setttimme(yy,m,d); elsse iif(bb=22) coout请请输入新新节次jiiecii; stt1ii.s

43、setjjiecci(jjiecci); elsse iif(bb=33) coout请请输入新新课程名名称kecchenn; st11i.seetkeecheen(kkechhen); elsse iif(bb=44) ccoutt请输入入新缺课课类型qquekke; st11i.seetqkklx(queeke); flggh=11;j+;wwhille(bb4);iif(fflghh=00)couut没有有你要找找的学生生姓名,请请重试要要退出请请按0kk; elsse coout还还要继续续吗(110)退出请请按0k; forr(innt ii=0;ijj;i+) hh=ai; xii

44、anssi(sst1h); / 查询询函数 voidd chhaxuun(xxinxxi sst1,qqstuu qtt) chaar nn=yy;intt u10;whiile(n=y) innt jj=0;couut输入入你要查查询的学学生姓名名:namme; intt i=0;forr(;iig;i+) if(strrcmpp(naame,st11i.geetnaame()=0) ujj=ii; j+; iff(j=0) ccoutt没有你你所要的的学生名名字!;/没有找找到 ccouttn; forr(innt aa=0;ajj;a+) /只有一一条信息息iff(j2) ii=ua;

45、ccoutt| 缺缺课日期期 | 第几几节课 | 课程名名称 | 缺缺课类型型|enndl; ccoutt|*sst1i.getttimme()| *(stt1ii.ggetttimee()+1)| *(stt1ii.ggetttimee()+2)| stt1ii.ggetjjiecci()| stt1ii.ggetkkechhen()| st11i.geetqkklx()| enddl; /两条信信息以上上排序 ellse i=uua; if(*(sst1i.getttimme()+1)*(st11i+1.getttimme()+1) qti.priint(st11i);elseiif(*(

46、stt1ii.ggetttimee()+1)=*(st11i+1.getttimme()+1)&*(stt1ii.ggetttimee()+2)*(sst1i+11.ggetttimee()+2) qti.priint(st11i);else if(*(sst1i.getttimme()+1)=*(stt1ii+1.geettiime()+11)&*(sst1i.getttimme()+2)=*(stt1ii+1.geettiime()+22) iff(sttrcmmp(sst1i.gettjieeci(),sst1i+11.ggetjjiecci()=-1) qtti.prrintt(stt

47、1ii); coout是是否继续续查询(y/nn)继续续请按yy退出按按nn; /统计某某段时间间内旷课课学生姓姓名及旷旷课节数数 voiid ttonggji11(xiinxii stt1,qsstu qt11) intt d11=0,js=0;xinnxi minn;if(g=0)couut没有有你要统统计的学学生信息息请返回回菜单录录入学生生缺课信信息enndl; eelsee iff(g=1)ccoutt姓名:st110.geetnaame()enddl; if(*(sst10.gettjieeci()+22)!=00) jjs=+2; ellse jjs+;coout节节数:jjse

48、nddl; elsse/信息按按时间排排序intt i=0;forr(;ii(gg-1);i+) iff(*(st11i.geettiime()+11)*(stt1ii+1.geettiime()+11) mmin=st11i;stt1ii=sst1i+11;sst1i+11=sst1i; ellse if(*(sst1i.getttimme()+1)=*(stt1ii+1.geettiime()+11)&*(sst1i.getttimme()+2)*(st11i+1.getttimme()+2) mmin=st11i;stt1ii=sst1i+11;sst1i+11=sst1i; ellse if(*(sst1i.getttimme()+1)=*(stt1ii+1.geettiime()+11)&*(sst1i.getttimme()+2)=*(stt1ii+1.geettiime()+22) d11+; ffor(intt j=0;jj(gg-d11);jj+) coout*sst1j.getttimme()*(stt1jj.ggetttimee()+1)*(st11j.geettiime()+22)enddl; foor(ii=0;ikk;i+) settqsttn(sst1,qt11,g); couut姓名名:qtt1ii.qqstnneendll; coout节节数:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!