C++学生考勤系统(含源代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++语言程序设计
课程设计报告书
题目:
班级:
学号:
姓名:
指导教师:
周期:
·················以下由验收老师填写································
成绩:
年月日
一、课程设计的目的与要求
(一)课程设计目的与任务
C++作为一门程序设计语言,其学习的最终目的是应用,作课程设计可以让我们更好的理解C++语言的精髓,学习掌握C++的语言流程,初步了解编程的思路,并且有重点的练习我们C++中的类、对象等模块的,使我们对这些重中之重的语言模块掌握的更加灵活可以实现我们的一些初步的程序设计要求也可以提高我们的实践能力;在课程设计中我们也应该就产生的实际开发问题象老师请教学习,以最好的最高的水准完成设计任务。
(二)题目要求
考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:
(1).录入学生的缺课记录;
(2).修改某个学生的缺课记录;
(3).查询某个学生的缺课情况;
(4).统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
(5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
(6).系统以菜单方式工作。
二、设计正文
1、系统分析
考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、学生姓名、缺课类型(迟到、早退、请假及旷课)。设计一考勤管理系统,使之能提供以下功能:
(1).录入学生的缺课记录:从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。
例如:
张三2008-04-29 3-4 C++程序设计实验迟到
李四2008-04-28 3-4 C++程序设计旷课
(2).修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。
(3).查询某个学生的缺课情况
(4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序
(5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序(6).系统以菜单方式工作。
2、功能详细描述及框图
这是一个小型的学生考勤系统,它使用类来实现,充分体现面向对象的程序设计特点。它可以实现的主要功能有:录入学生的缺课记录;修改某个学生的缺课记录;查询某个学生的缺课情况;统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
框图:
3、主要功能逻辑过程和实现算法
此程序用到了大模块,分别是:主菜单模块;录入模块;修改模块;查询模块;查找人数模块;查找次数,每个模块可以实现不同的功能;
(1)、主菜单模块:对本程序的功能进行说明,然后出现同学通迅录的主界面;(2)、录入模块:录入学生的缺课记录:从键盘输入数据,输入格式为:学生姓名、缺课日期、第几节课、课程名称、缺课类型。
(3)、查询模块:查询某个学生的缺课情况
in>>name;
m.read((char *)&x, sizeof(x));
while(!m.eof())//原文件到头结束
{
if(!strcmp(name, x.getn()))
{
cout<<"姓名:"< cout<<"日期:"< cout<<"课时:"< cout<<"课程名称:"< cout<<"缺课类型:"< flag=1 ;} (5)、查找次数模块:统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序 (6)、查找人数模块:统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序。 5、界面设计 (1)主菜单界面 6、系统测试 (1)输入记录界面 (2)修改记录界面(3)旷课人名 (4)旷课课程名称(5)退出界面 三、小组成员分工说明 独立完成 四、课程设计总结或结论 1 课程设计过程中出现的技术难点和解决方法: 技术难点:对文件的使用不熟悉,不会使用。 解决方法:通过到图书馆查阅资料,以及课本上的讲解和老师的帮助让我会应用文件进行数据的输出与写入,从而完善了我的程序。 2 课程设计期间的主要收获: 这是上大学以来第一次作课程设计,刚开始有点不知所措,很茫然,但后来,开始有了思路,作起来也容易多了,虽然会在这呆一整天,但感觉时间过得很快。本次作课程设计让我更好的理解C++语言的精髓,也更加体会到了,只有理论与实践相结合才是真正的学会,而不是只有打高分才是真的学好,这次课程设计让我掌握了C++的语言流程,初步了解编程的思路,并且类、对象等模块更加深了了解的,特别是使用文件这块,我认为文件很难,刚开始,不会使用,但后来查了很多资料,也明白了应该怎么使用,作起来就顺手多了。作课程设计的目的就是要提高我们的实践能力;所以,我会以自己所掌握的知识高水准的完成此次设计任务。 源代码: #include "fstream.h" #include "iostream.h" #include "string.h" class student//声明一个类为people { private: char day[20]; char name[20]; int n; char kname[20]; char lx[20]; public://公有数据成员 void setn() { cin>>name;//输入姓名} void setd() { cin>>day;//输入日期 } void setk() {