C++课程设计-学生考勤管理系统(9)
发布时间:2021-06-06
发布时间:2021-06-06
3. 详细设计
学生考勤管理系统中四个类的类层次图为:
图2 学生考勤管理系统中中四个类的类层次图 学生考勤管理系统中各功能模块的实现:
图3 学生考勤管理系统中菜单函数的功能图
1、学生缺课信息录用功能模块:
图4 学生缺课信息录入的功能 2、修改某学生缺课信息功能的模块图
图5 学生考勤管理系统修改学生缺课信息功能图
图6 学生考勤管理系统查询学生缺课信息功能图 4、统计某段时间内旷课学生姓名及旷课节数功能模块:
图7统计某段时间内旷课学生姓名及旷课节数功能图
5、统计某段时间内,有学生旷课的课程及旷课人次功能模块
图8 统计某段时间内,有学生旷课的课程及旷课人次功能图
滨江学院课程设计报告
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*qstu +getqklx():char* qkechen 派 生 类 派 生 类
-jieshu:int -qst:int+qstu()
+getjieci():char* +getkechen():char* +gettime():int*
-renci:int -kcshu:int=0 +qkechen() +~qkechen() +getrc(st1[]:xinxi,n:int ,j:int):int +qkn[20]:char
+~qstu() +print(st1:xinxi &):void +getjs( st1[]:xinxi,n:int, j:int):int图 +setjs(js:int=0):int +qstn[20]:char 9 学生考勤管理系统中四个类的 UML 图
3. 系统调试
程序编写完成后,我进行了程序调试。调试过程中,出现了以下问题:当录入学生缺课信息时,出现了无法退出录入函数的情况,主要原因是输入函数中while循环语句没有设置跳出循环的条件。除此之外,修改某学生缺课信息时,如果没有该学生的缺课信息,系统没有提示要用户没有该学生信息,也没有建议用户重新输入要修改的学生姓名。由此我发现了该系统修改学生缺课信息的不足。于是,我对修改函数进行了修改与完善。在该函数中,我设置了if语句用来判断系统中是否存有用户要修改的学生缺课信息。如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在 循环语句中改变循环进行的条件从而终止循环。至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的信息类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实现显示功能。至于该系统的查询功能的实现,在调试时发现还有欠缺,当随便输入一个学生姓名时,系统没有显示该学生的缺课信息,也没有提示系统没有找到该学生的有关信息,经过在查询函数while循环中加入一个if 条件语句后,系统实现了提示用户的功能,如果系统中没有你要查询的学生缺课信息,系统将会提示用户,用户可以继续输入要查询的学生姓名也可以通过按系统设置的退出键选择退出查询环节。至于两个统计功能至今没有完善,主要是特定时间学生缺课次数和课程的缺课人次的统计问题尚待解决,现如今只完成了一两条学生缺课信息的统计。主要问题是特定时间这个前提条件对我造成了一定的障碍。对系统中存储的信息进行查找和统计运用对象指针比较方便,但我没有使用,也算有点遗憾。在调试过程中我出现的最严重的问题是函数形参引用对象数组,结果系统提示将近几十个错误,在我把函数形参改为对象数组后,错误一下减少了很多。还有比较突出的问题是整个程序不知哪掉了个 }号系统会提示有错,但就不懂那专业术语啥意思。还有就是我以为派生类公有继承的基类的保护成员在派生类内为公有成员,可编译时才发现是不对的。通过认真调试,我发现我有了收获。
5. 结果分析
上一篇:般若波罗蜜多心经 翻译
下一篇:幼儿园家长教师体验日活动方案