学生考勤信息管理系统C++.docx
《学生考勤信息管理系统C++.docx》由会员分享,可在线阅读,更多相关《学生考勤信息管理系统C++.docx(16页珍藏版)》请在冰豆网上搜索。
学生考勤信息管理系统C++
信阳师范学院
课程设计
课程C++程序设计
题目学生考勤信息管理系统
院系计算机与信息技术学院
专业班级2013级软件工程
学生姓名
学生学号
指导教师
2016年1月2日
课程设计成绩评价表
课程名称
C++程序设计
题目名称
学生考勤信息管理系统
学生姓名
学号
指导教
师姓名
职称
讲师
序号
评价项目
指标
满分
评分
1
工作量与工作态度
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,善于与他人合作。
10
2
课程设计书质量
程序设计合理,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
功能完整
能够实现课程设计要求的基本功能,并产生正确输出,程序具有一定的容错能力。
40
4
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
总分
指导教师:
2015年1月9日
C++程序设计课程设计任务书
课程C++程序设计
题目学生考勤信息管理系统
专业软件工程姓名学号
主要内容:
记录学生缺课情况,包括:
缺课日期,第几节课,课程名称,学生姓名,缺课类型(迟到、早退、请假及旷课)。
设计学生考勤管理系统,使之能提供以下功能:
1.录入学生缺课记录;
2.修改某个学生缺课情况;
3.查询某个学生的缺课情况;
4.统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
5.统计某段时间内,所有学生旷课的课程及旷课人次,按旷课人数由多到少排序。
基本要求:
1)采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理,学生也可根据自己对题目的理解增加新的功能模块。
2)程序算法说明清晰,运行情况良好,实验数据测试无误,容错性强。
3)编程风格良好。
完成期限2015.12.7至2016.1.4
指导教师
2015年12月15日
1背景介绍
随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。
如今针对师生的成绩查询系统、教务管理系统、招生就业系统、BBS、校园网站等系统在各大高校纷纷出现,对全校师生的学习、生活、管理、办公带来了便利。
因此学生考勤管理系统能进一步加强高校学风建设,维护正常的教学秩序,给学生创造一个优良的学习环境。
目前高校学生上课考勤管理都是以任课老师上课点名,记录学生上课情况,对于时间比较长的请假,需要通过递交请假申请让班主任、院系领导都批准方能生效。
这种模式在目前高校管理中暴露了不可避免的弊端:
1、学生请假不方便;
2、学生请假对任课老师不透明;
3、学生对自己整个学期的上课出勤情况没有整体的统计信息;
4、班主任对本班学生整个学期的上课出勤情况不易查看;
5、院系领导、学校领导不容易把握学生上课的出勤情况。
因此一个好的学生考勤管理系统在一定程度上可以解决这些弊端。
本系统主要针对目前高校学生在线请假以及学生上课出勤管理而设计的信息系统。
2概要设计
2.1设计思路
根据课题要求,可将系统分为五部分来实现。
1)添加学生缺课信息;
2)查询学生缺课信息;
3)修改学生缺课信息;
4)将一段时间内某个学生的缺课情况按缺课次数由多到少排序;
5)将一段时间内的所有学生的缺课情况全部按4)排序;
2.2总体方案框图
图1基本原理框图
3详细设计
3.1数据结构
图2.类图
代码包含两个类的头文件,一个日期类Date,一个记录信息的类Queke,两个类的数据成员及成员函数如上图所示。
代码的主函数包含修改函数alter(),查询函数select(),添加函数add(),排序函数Onepaixu()及Allpaixu()用来实现考勤管理系统所需要的功能。
3.2模块设计
在主文件中使用各个函数来实现不同的模块功能:
voidadd():
实现增加功能;
voidselect():
实现查找功能;
voidalter():
实现修改功能;
voidcount():
找出满足要求的一段时期内的缺课记录;
voidOnepaixu():
实现对某个学生的缺课情况按缺课次数由多到少排序;
voidAllpaixu():
实现对所有学生的缺课情况按缺课次数由多到少排序;
在主函数中设置菜单用来满足用户选择与函数调用相连接。
4代码实现与测试
4.1模块源代码(只给出部分代码)
1.添加学生缺课信息:
2.修改学生缺课信息(包括查询):
4.2测试模块
各个模块在code:
:
blocks中测试均成功
4.3测试结果与分析
测试数据如下:
d.add(2015,11,20);
a[0].set("小明","c++","迟到","3-4",d);
a[1].set("小明","组成原理","迟到","1-2",d);
a[2].set("小明","c++","旷课","3-4",d);
a[3].set("小明","c++","迟到","7-8",d);
a[4].set("小李","c++","迟到","3-4",d);
a[5].set("小李","组成原理","迟到","1-2",d);
a[6].set("小李","c++","旷课","3-4",d);
测试结果1:
测试结果2:
测试结果3:
测试结果4:
保存的文件:
5总结
本次设计作业让我对c++的掌握更加熟练,同时也认识到了自己的不足和缺陷。
这次作业对类的使用使自己对书上的知识有了更加深刻的了解,对编程过程中出现的各种错误也有了解,大大提高了改错的能力。
也认识到了从设计到实现的过程比自己想象的更加复杂。
在这次编程过程中遇到很多问题,数组的越界,类私有成员必须通过成员函数来访问,数据生存周期,数据使用范围,循环执行的问题,do…while语句,switch…case语句等等。
花费了好长的时间来一一改正自己的问题。
最后一点就是数据的保存本来可以弄得更好一点不过时间有点来不及所以只是简单的输出了一下并没有完善。
没有实践就没有体会,自己动手做了才知道自己的问题在哪里,今后一定多动手提高自己的能力。
参考文献
[1]谭浩强.C语言程序设计(第三版).北京:
清华大学出版社
[2]林碧英.C语言程序设计教程. 北京:
中国电力出版社,2006
[3]美赫伯特.希尔特,王子恢等译.C语言大全. 北京:
电子工业出版社.2006
附录: