学生考勤管理系统88005
手机考勤系统

手机考勤系统篇一:手机考勤定位管理系统手机考勤定位管理系统()20XX年10月V3.0版20XX年9月V1.0正式运营深圳市澎和科技有限公司目录11.11.21.3系统概述.................................................................................................................. .....................3需求概述.................................................................................................................. .................3对企业的帮助.................................................................................................................. .........3重要作用.................................................................................................................. .. (4)远程报到.................................................................................................................. (4)杜绝虚报费用.................................................................................................................. . (5)签到统计.................................................................................................................. (6)业务专用电子地图.................................................................................................................. .. (8)1.422.12.2技术优势.................................................................................................................. .................9系统详解.................................................................................................................. .....................9系统设备.................................................................................................................. ...............10主要功 (10)系统登录.....................................................................................................错误!未定义书签。
学生考勤管理系统

设计内容与设计要求1.设计内容:学生考勤管理系统1、问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。
考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。
2、功能要求(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。
添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
还可以按课程名、学生姓名对缺课记录进行查询。
(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。
能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。
需要排序。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
目录一、需求分析 (6)1.系统设计目的与意义 (6)2. ................................................................................................................ 系统功能需求(系统流程图). (6)3. ................................................................................................................ 系统功能流程图. (7)4. ................................................................................................................ 输入输出的要求. (7)二、总体分析 (7)1.系统功能分析 (8)2. ................................................................................................................ 系统功能结构图 (8)三、详细设计 (9)1.类设计: (11)四、界面设计与各功能模块的实现 (12)1. 界面设计 (12)五、系统调试 (14)1.首页进入学籍管理系统主菜单 (14)2 录入学生信息缺课界面: (15)3................................................................................................................ 显示学生信息缺课界面 (16)4................................................................................................................ 查找学生信息界面 (17)5................................................................................................................ 删除学生信息界面 (18)6................................................................................................................ 修改学生信息 (18)7................................................................................................................ 统计学生信息: (19)六、使用说明及心得体会 (20)七、附件 (20)一、需求分析1.系统功能流程图主程序3.输入输出的要求1.输入的要求:通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。
学生考勤管理系统

学生考勤管理系统学生考勤管理系统是一种信息化管理工具,它通过电脑软件与硬件相结合的方式,实现对学生考勤记录的自动化管理。
它的主要目的是提高学校考勤管理的效率,规范学生考勤的行为,保障学校教学秩序和学生的学习效果。
本文主要是对学生考勤管理系统的概述、功能、特点等方面进行详细介绍。
概述学生考勤管理系统是一种利用信息技术手段,实现学生考勤自动化管理的工具。
它通过硬件设备(刷卡器、条形码扫描器、指纹识别仪等)采集学生考勤数据,并通过软件平台进行处理和管理。
学生考勤管理系统可以对学生的学习情况进行记录和分析,为教师和学校管理者提供大量实用的信息支持。
功能1.自动化考勤:学生考勤管理系统可以采用各种现代化的硬件设备,实现自动化考勤,大大提高了考勤的准确度和效率,避免了人为因素的影响。
2.远程考勤:学生考勤管理系统可以通过互联网远程管理学生考勤数据,这样可以让学生在离校期间进行考勤,提高考勤管理的及时性。
3. 实时监测:学生考勤管理系统可以实时监测学生考勤情况,如缺勤、迟到、早退等,及时发出预警提示,提醒老师或学生注意。
4. 数据分析:学生考勤管理系统可以对学生的考勤数据进行统计分析,如出勤率、迟到次数、早退次数等,为教师和学校管理者提供有用的信息支持。
5. 科学管理:学生考勤管理系统可以实现对学生考勤的规范化管理,提高了管理工作的科学性和效率。
特点1.高效性:学生考勤管理系统实现了对考勤数据的自动化处理,极大提高了考勤的效率和准确性。
2.灵活性:学生考勤管理系统可以采用多种硬件设备进行考勤,可以根据学校的实际情况进行选择,灵活适应不同的教育场景。
3.可扩展性:学生考勤管理系统可以根据学校的需要,通过软件升级、硬件更换等方式实现功能的扩展和升级,满足不断变化的考勤管理需求。
4.安全性:学生考勤管理系统可以为学生的考勤数据提供安全保护措施,防止学生考勤数据泄露。
5.管理多样化:学生考勤管理系统可以通过软件平台实现对学生考勤数据的维护管理,解放了教师的劳动力,能够更好地应对学生考勤管理工作的多样性和复杂性挑战。
考勤管理系统(项目管理课设)

河北科技大学课程设计报告学生姓名:*******学号:************ 专业班级:软件****班课程名称:项目管理与案例分析学年学期:2 015 —2 016 学年第1 学期指导教师:王会勇2015 年11 月课程设计成绩评定表一、设计内容在课程设计时间内,学生自由分组,组成一个开发团队,完成一个中小型软件项目的开发。
开发过程中用软件项目管理的基本理论知识,解决并行开发中遇到的各种问题。
二、设计关键步骤(1)确定项目的生存期模型。
根据对考勤管理系统的初步分析,我们选择了比较方便的增量模型。
该模型假设需求可以分段成为一系列增量产品,每一增量可以分别的开发。
可以避免一次性投资太多带来的风险,将主要的功能或者风险大的功能首先实现,然后逐步完善,保证投入的有效性。
可以更快地开发出可以操作的系统。
减少开发过程中用户需求的变更。
(2)对项目进行需求分析。
考勤管理系统对学校全体学生的资料和考勤情况进行管理,通过每日的打卡把出勤信息输入到学校的考勤管理中心,保存学生每日的的出勤情况,以便于统计学生的出勤情况。
同时方便教务人员、老师查阅,即节省了人力,又省去了中间的很多容易出错的步骤。
让学校学生的考勤管理更具有透明性,且方便管理。
此外系统还涉及系统数据安全和用户管理的问题、各种代码使用和维护问题、数据安全和数据维护问题、统计报表生成和输出等问题,因此还要求系统具有系统管理和事务处理功能。
总而言之,要求通过系统的开发,达到系统项目的总体目标是:在整个系统的框架下,结合学生在学校的实际出勤情况的需要实现对数据更新、数据查询、数据统计、数据分析等功能进行有效的管理。
并提供用户友好接口,满足学校管理需求的软件,提高学校对学生的管理效率,从而完善学校的管理制度。
(3)对项目进行任务分解。
(4)项目估算与进度计划。
根据WBS的分解情况,进一步细化后可得到项目的甘特图:(5)成本计划①成本估算②成本预算根据每人的分工不同,得到每人的成本也不同可以得到资源费用比例图表:根据图表可以得到甘特图:还可以得到成本预算掩饰表:(6)质量计划。
《班级管理课件-学生考勤管理系统操作详解》

实时检测学生的异常考勤情况,并发送提醒通知给班主任。
3 统计报表
生成详细的考勤统计报表,方便班级管理和教学分析。
4 数据安全
保护学生考勤相关信息的安全,只有授权人员可访问。
操作流程
1
步骤一
登录系统,进入课堂管理界面。
2
步骤二
选择班级,进入学生考勤页面。
3
步骤三
录入学生考勤情况并保存。
常见问题
采用先进的数据加密技术,确保 考勤信息安全。
加强沟通
提升学校与家长之间的信息共享 和互动。
引用
学业,考勤,纪律 - 三位一体,班级管理不可或缺。 — 班级管理专家
总结
通过学生考勤管理系统,教师可以更轻松地进行班级管理和教学分析,提高 工作效率。学生考勤管理系统是实现数字化、智能化管理的重要工具。
我忘记密码了怎么办?
在登录界面点击"忘记密码" 链接,按照提示找回密码。
如何导出考勤报表?
在考勤记录页面点击"导出报 表"按钮,选择导出格式和保 存路径。
怎样设置异常考勤提醒?
在系统设置中配置异常考勤 提醒的方式和接收人。
学生考勤管理系统优势
高效便捷
通过智能技术,实现快速准确的 考勤管理。
安全可靠
班级管理课件——学生考 勤管理系统操作详解
在本课件中,我们将详细介绍学生考勤管理系统的操作步骤,让您轻松掌握 班级管通过输入用户名和密码登录 系统。
选择班级
从班级列表中选择要管理的 班级。
查看考勤记录
浏览学生的考勤记录和统计 信息。
功能特点
1 智能考勤
系统自动记录学生进出校门的时间和地点,准确统计考勤情况。
学生考勤管理系统

学生考勤管理系统正文:1. 引言学生考勤管理系统是一种用于记录和管理学生出勤情况的软件工具。
该系统可以帮助教育机构更好地监控学生的出勤状况,提高校园安全性,并为教职员工提供方便快捷的数据统计与分析功能。
2. 系统概述本章节将介绍整个学生考勤管理系统的总体架构、主要模块以及各模块之间的关系。
2.1 总体架构在这里描述整个系统采用什么样的技术框架进行开发,包括前端界面设计、后台数据库等相关内容。
2.2 主要模块- 学生信息录入:负责输入并保存每位学员基本信息;- 考勤记录:实时跟踪和存储每次课程中所有参与者(包括老师和同班同学)是否到场;- 数据查询与报表:支持按时间段、班级或其他条件对考勤数据进行灵活查询,并能够导出相应报表;3. 功能需求详解此处了针对不同角色用户所需要完成任务清单:3.x 角色A - 例如管理员/老师:- 登录账号;- 添加/修改/删除学生信息;- 创建/编辑课程表;- 查看考勤记录等。
4. 系统设计与实现本章节将详细介绍系统的具体功能模块,包括每个模块的输入输出、流程图以及相关算法或技术。
4.x 模块A:输入:用户提供所需数据(例如学生基本信息);输出:保存到数据库中,并返回相应提示给用户;5. 数据库设计此处描述了系统使用的数据库结构和关系。
列出各张表格名称、字段名及其类型,并解释它们之间的联系。
6. 用户界面设计在这里展示并说明软件前端页面布局和交互方式,确保易用性和友好性。
7. 测试计划与结果分析该部分阐述测试方法论以及对于不同场景下进行验证得到反馈意见,在最后总结整个项目开发过程中遇到问题并加以改进措施。
附件:- 学生考勤管理系统原型文件(.xd)- 数据库脚本文件(.sql)法律名词注释:1) GDPR: General Data Protection Regulation (欧洲通用数据保护条例),是指为增强公民隐私权利而制定的一项监管框架。
2) COPPA: Children's Online Privacy Protection Act (儿童在线隐私保护法),旨在保护13岁以下儿童在互联网上的个人信息安全。
学生考勤管理系统(C++)

#include ”iostream”#include 〈conio 。
h〉#include ”string.h"#include 〈fstream> using namespace std;#define Size 1000class Record{public:Record () ;void Entersystem () ;void GetPwd();void SetDate ();void SetPwd ();void ReadDate();void SaveData () ;void PutRecord ();void FindRecord ();void ShowRecord ();void Order();void ModifyDate();void DelRecord (); private:int int int int int renshu;chidao;zaotui;kuangke;qingjia;//构造函数//进入系统函数//获取密码//输入设置学生信息//修改登录密码//读取文本信息函数//向文本保存信息函数//输入考勤函数//查找学生信息函数//输出所有学生信息//按学号排序//修改学生信息//删除学生信息//学生人数//迟到次数//早退次数//旷课次数//请假次数long ID;char Name [20]; char password[20] ; void ShowDate(int i) ; //学生学号//学生姓名//登录密码};///////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////类的实现///////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////构造函数Record::Record (){ renshu=0;chidao=0;zaotui=0;qingjia=0;kuangke=0;ID=0;Name[20] =0;password [20] =0;}Record CRecord[Size];char pwd []= {'1’ ,'2' ,'3' ,’4’ ,'5’ ,’6’};///////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////输出函数void Record::ShowDate(int i){ cout〈<"\t"<<CRecord [i]。
学生考勤管理系统

学生考勤管理系统正文:1·系统介绍1·1 目的学生考勤管理系统旨在实现对学生的考勤情况进行有效管理和监控,提高学校考勤工作的效率和准确性。
1·2 背景传统的学生考勤管理方式存在着诸多问题,如人工记录容易出错、管理不便等。
因此,开发学生考勤管理系统能够帮助学校实现自动化考勤,提升工作效率。
1·3 功能概述学生考勤管理系统主要包括以下功能:●学生信息管理:包括学生基本信息、班级信息等。
●考勤记录管理:记录学生的每次考勤情况,包括考勤时间、考勤状态等。
●统计分析功能:根据考勤记录各类统计报表,提供数据分析支持。
●考勤预警功能:根据设定的规则和条件,对学生的考勤情况进行预警。
●系统设置功能:包括权限管理、数据备份与恢复等。
1·4 目标用户本系统主要面向学校教务管理人员、班主任和学生,以及家长等相关人员。
2·系统需求2·1 功能需求2·1·1 学生信息管理●添加学生信息:包括学生姓名、学号、班级等。
●查看学生信息:提供按条件查询学生信息的功能。
●编辑学生信息:可以修改学生的基本信息。
2·1·2 考勤记录管理●添加考勤记录:记录学生的每次考勤情况,包括考勤时间、考勤状态等。
●查询考勤记录:提供按条件查询考勤记录的功能。
●编辑考勤记录:可以修改考勤记录的相关信息。
2·1·3 统计分析功能●考勤报表:根据考勤记录各类统计报表,如学生考勤统计、班级考勤统计等。
●数据分析支持:提供数据分析功能,帮助教务管理人员进行决策。
2·1·4 考勤预警功能●设置预警规则:根据学校的具体需求,设置考勤预警规则。
●预警通知:当学生的考勤情况触发预警规则时,通过系统通知相关人员。
2·1·5 系统设置功能●权限管理:设置不同用户的权限,保证系统安全。
●数据备份与恢复:提供数据备份和恢复的功能,防止数据丢失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计内容与设计要求1.设计内容:学生考勤管理系统1、问题描述学生信息包括:学号、姓名、性别、年龄、班级等信息。
考勤信息包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假和旷课)。
2、功能要求(1)添加功能:程序能够添加学生的记录和缺课记录,提供选择界面供用户选择所要添加的类别。
添加学生记录时,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
还可以按课程名、学生姓名对缺课记录进行查询。
(3)显示功能:可显示当前系统中所有学生的记录和缺课记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。
如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。
能按课程名统计出学生旷课的信息、还可以按姓名统计出任一学生的旷课情况。
需要排序。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
目录一、需求分析 (6)1.系统设计目的与意义 (6)2.系统功能需求(系统流程图) (6)3.系统功能流程图 (7)4.输入输出的要求 (7)二、总体分析 (7)1.系统功能分析 (8)2.系统功能结构图 (8)三、详细设计 (9)1.类设计: (11)四、界面设计与各功能模块的实现 (12)1.界面设计 (12)五、系统调试 (14)1.首页进入学籍管理系统主菜单 (14)2录入学生信息缺课界面: (15)3.显示学生信息缺课界面 (16)4.查找学生信息界面 (17)5.删除学生信息界面 (18)6.修改学生信息 (18)7.统计学生信息: (19)六、使用说明及心得体会 (20)七、附件 (20)一、需求分析1.系统功能流程图3.输入输出的要求1.输入的要求:通过主函数体调用其他函数应用系统主控界面包括学生信息录入,查找等功能模块。
学生信息录入功能完成学生信息和缺课信息的输入。
记录查询功能可以对数据各分类的记录进行查询。
2.输出的要求:1)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
2)可以统计全部学生缺课类型,及其缺课次数。
3)如果检索不到相应的信息应提示用户。
二、总体分析系统功能分析能够从屏幕上读取一个学生的信息和缺课信息并将信息存入到数据文件中。
能够将指定的信息从文件中删除。
能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
可以统计全部学生缺课次数,及其缺课类型。
要求有错误提示功能。
如果检索不到相应的信息应提示用户。
三、详细设计1.类设计:类:Person数据成员学号,姓名,性别,年龄,班级缺课类型,缺课次数,指针域double num; //学号char Name[20]; //姓名char sex;//性别double old;//年龄long double G;//班级int Duty; //缺课类型(1-迟到,2-早退,3-请假,4-旷课)double Salary; //缺课次数Person *next; //指针域、成员函数Person() //基类构造{next=0; //指针域设置为空}virtual ~Person() //基类虚析构{}virtual void Input()=0; //从键盘输入数据virtual void Input(ifstream& ifs)=0; //从文件输入数据virtual void Output()=0; //向屏幕输出数据virtual void Output(ofstream& ofs)=0; //向文件输出数据virtual double Incoming()=0; //计算次数friend class College;类:Teacher(公共继承与Person类)数据成员:protected:int Hours; //第几节课char B;//迟到日期char Z;//课程名称class school成员函数:Tercher(){}void Input()void Input(ifstream& ifs)void Output(ofstream& ofs)double Incoming()迟到类:class Assistant:virtual public Person 数据成员:protected:int Allowance;int Hours; //第几节课char B;//早退日期char Z;//课程名称成员函数:Assistant()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream& ofs)double Incoming()请假类:class Manager:virtual public Person 数据成员:protected:int Allowance;int Hours; //第几节课char B;//请假日期char Z;//课程名称成员函数:Manager()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream& ofs)double Incoming()旷课类:class Teacher_Assistant:public Teacher,public Assistant 成员函数:Teacher_Assistant()void Input()void Input(ifstream& ifs)void Output()void Output(ofstream& ofs)double Incoming()学生类:class College数据成员private:Person *PL;void Clear();int College::Cfind(int ID,Person **p1,Person **p2)成员函数:public:College(); //构造~College(); //析构void Add(); //退出void Delete(); //删除void Modify(); //修改void Print(); //输出void Save(); //信息存盘void Load(); //信息装入void Find(); //查找void Build(); //导引void Stat(); //统计四、界面设计与各功能模块的实现1.界面设计1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。
2.功能模块实现设计通过主窗体调用其他窗体。
应用系统主控界面包括学生信息录入,查找等功能模块。
学生信息录入功能完成学生信息和成绩的输入。
记录查询功能可以对数据各分类的记录进行查询。
具体举例如下:1)输入函数:void Input(){cout<<"\n学号:"; cin>>num;cout<<"\n姓名:"; cin>>Name;cout<<"\n性别:"; cin>>sex;cout<<"\n年龄:"; cin>>old;cout<<"\n班级:"; cin>>G;cout<<"\n第几节课:"; cin>>Hours;Salary=Incoming(); } 2)删除函数void school::del(){student *p,*p2;int num;cout<<"请输入编号: ";cin>>num;if( !find(&p,num,"^") ){cout<<"SORRY!找不到你要删除的内容!"<<endl;return;}(p->next)->output();p2=p->next;p->next=p2->next;delete p2;school::setkey(1);}2.类的派生之间的示意图五、系统调试1.首页进入学生考勤管理系统主菜单2录入学生信息界面:3.显示学生信息界面:4.修改学生信息六、使用说明及心得体会此次c++课程设计,在指导教师的精心教导下,我学会了如何用C++编写一个简单的应用程序。
首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。
程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。
七、附件源文件代码:#include <fstream.h> 文件操作头文件#include <string.h> 字符串流class Person //人员类(抽象类) {protected:double num; //学号char Name[20]; //姓名char sex;//性别double old;//年龄long double G;//班级int Duty; //缺课类型(1-迟到,2-早退,3-请假,4-旷课)double Salary; //缺课次数Person *next; //指针域public:Person() //基类构造{ next=0; //指针域设置为空}virtual ~Person() //基类虚析构{ }virtual void Input()=0; //从键盘输入数据virtual void Input(ifstream& ifs)=0; //从文件输入数据virtual void Output()=0; //向屏幕输出数据virtual void Output(ofstream& ofs)=0; //向文件输出数据virtual double Incoming()=0; //计算次数friend class College; };class Teacher:virtual public Person //迟到类{ protected:int Hours; //第几节课char B;//迟到日期char Z;//课程名称public:{ Duty=1;Salary=800; }void Input() //键盘补充输入其它数据{ cout<<"\n学号:"; cin>>num;cout<<"\n姓名:"; cin>>Name;cout<<"\n性别:"; cin>>sex;cout<<"\n年龄:"; cin>>old;cout<<"\n班级:"; cin>>G;cout<<"\n第几节课:"; cin>>Hours;Salary=Incoming(); }void Input(ifstream& ifs){ ifs>>num>>Name>>sex>>old>>G>>Duty>>Hours>>Salary; }void Output(){ cout<<num<<"\t"<<Name<<"\t"<<sex<<"\t"<<old<<"\t"<<G<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Salary<<"\t"<<endl; } void Output(ofstream& ofs){ ofs<<num<<"\t"<<Name<<"\t"<<sex<<"\t"<<old<<"\t"<<G<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Salary<<"\t"<<endl; } double Incoming(){ if(Hours>120)return Salary+(Hours-120)*20;elsereturn Salary; } };class Assistant:virtual public Person //早退{ protected:int Allowance;int Hours; //第几节课char B;//早退日期char Z;//课程名称public:Assistant() {Duty=2;Salary=650;Allowance=150; }void Input(){ cout<<"\n学号:"; cin>>num;cout<<"\n姓名:"; cin>>Name;cout<<"\n性别:"; cin>>sex;cout<<"\n年龄:"; cin>>old;cout<<"\n班级:"; cin>>G;cout<<"\n第几节课:"; cin>>Hours;Salary=Incoming(); }void Input(ifstream& ifs){ ifs>>num>>Name>>sex>>old>>G>>Duty>>Hours>>Salary; }void Output(){ cout<<num<<"\t"<<Name<<"\t"<<sex<<"\t"<<old<<"\t"<<G<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Salary<<"\t"<<endl; } void Output(ofstream& ofs){ ofs<<num<<"\t"<<Name<<"\t"<<sex<<"\t"<<old<<"\t"<<G<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Salary<<"\t"<<endl; } double Incoming(){if(Salary>70)return Salary+Allowance+(Hours-70)*20;elsereturn Salary+Allowance; } };class Manager:virtual public Person //请假{ protected:int Allowance;int Hours; //第几节课char B;//请假日期char Z;//课程名称public:Manager() {Duty=3;Salary=750;Allowance=250; }void Input(){ cout<<"\n学号:"; cin>>num;cout<<"\n姓名:"; cin>>Name;cout<<"\n性别:"; cin>>sex;cout<<"\n年龄:"; cin>>old;cout<<"\n班级:"; cin>>G;Salary=Incoming(); }void Input(ifstream& ifs){ ifs>>num>>Name>>sex>>old>>G>>Duty>>Hours>>Salary; }void Output(){ cout<<num<<"\t"<<Name<<"\t"<<sex<<"\t"<<old<<"\t"<<G<<"\t"<<Duty<<"\t"<<Hours<<"\t"<<Salary<<"\t"<<endl; } class College{private:Person *PL;void Clear();int College::Cfind(int ID,Person **p1,Person **p2);public:College(); //构造~College(); //析构void Add(); //退出void Delete(); //删除void Modify(); //修改void Print(); //输出void Save(); //信息存盘void Load(); //信息装入void Find(); //查找void Build(); //导引void Stat(); //统计};College::College() //构造函数(创建1个头结点的链表){Person *p=new Teacher;PL=p; cout<<"自动装入数据……………………\n";Build();} College::~College() //析构函数(仅保留1个头结点){Person *p=PL;while(p) //逐个删除结点,包括头结点{PL=p->next;delete p;p=PL;}PL=0;}void College::Add() //增加{char c; do{ cout<<"\n** 增加**\n";Person *p=PL; Teacher *pt; Assistant *pa; Manager *pm;Teacher_Assistant *pta;switch(ch) {case 1: pt=new Teacher; pt->Input();p->next=pt;break;case 2: pa=new Assistant; pa->Input();p->next=pa;break;case 3: pm=new Manager; pm->Input();p->next=pm;break;case 4: pta=new Teacher_Assistant; pta->Input();p->next=pta;break;default: return;}cout<<"是否进行循环?y/n\n";cin>>c;}while(c=='y'||c=='Y');Save();}/查找void College::Find(){double ID;Person *p1;Person *p2;cout<<"输入你要查询的编号:";cin>>ID;p1=PL->next;p2=PL;while(p1){if(p1->num==ID)break; //找到else{p2=p1; //继续查找p1=p1->next;}}if(!p1) {cout<<"找不到你所查询的人!!!\n请确认你所查询的编号是否出错!!!\n";return;} else{ cout<<"\n** 出勤信息表**\n";p1->Output();}}//查找缺课结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针) int College::Cfind(int ID,Person **p1,Person **p2){*p1=PL->next;*p2=PL;while(*p1){if((*p1)->num==ID)break; //找到else{*p2=*p1; //继续查找*p1=(*p1)->next;}return *p1?1:0;}void College::Delete() //删除{cout<<"\n** 删除**\n";int num; Person *p1,*p2;cout<<"编号:"; cin>>num;if(!Cfind(num,&p1,&p2)){cout<<"指定的人员没有找到!\n";}else{p2->next=p1->next; //连接delete p1;cout<<"正确删除!\n";}Save();}void College::Modify() //修改{cout<<"\n** 修改**\n";int num;Person *p1,*p2;cout<<"编号:"; cin>>num;if(!Cfind(num,&p1,&p2)){cout<<"指定的人员没有找到!\n";{p1->Output(); //输出原来的出勤信息(做提示)p1->Input(); //输入新的出勤信息(更新)cout<<"修改完成!\n";}Save(); }void College::Print() //输出出勤信息{cout<<"\n** 出勤信息表**\n";cout<<"学号姓名性别年龄班级缺课类型缺课次数\n"; Person *p=PL->next;if(!p){cout<<"无出勤记录!\n";return;}while(p) //遍历链表,输出出勤信息{p->Output();p=p->next;}}void College::Save() //出勤信息存盘?{ofstream f("Person.dat",ios::out); //打开文件Person *p=PL->next;while(p){p->Output(f);p=p->next;}f.close(); //关闭文件cout<<"职工信息已经保存在Person.dat.\n";}void College::Build() //出勤信息{char buf[81]; //临时空间int Duty; //人员类型Person *p2; //新建结点的指针long t; //读写位置Clear();ifstream f("Person.dat",ios::in);Person *p=PL; //尾结点指针t=f.tellg();f>>buf>>buf>>Duty;if(f){ switch(Duty) {case 1: p2=new Teacher; break;case 2: p2=new Assistant; break;case 3: p2=new Manager; break;case 4: p2=new Teacher_Assistant; break;default: f.close(); return;}p->next=p2;p=p->next;f.seekg(t);p->Input(f);}elsebreak;f.close();}void College::Load() //出勤信息录入{char ah;int c;cout<<"\n** 出勤信息录入**\n";do{cout<<"输入要录入的出勤人员个数:\n";cin>>c;for(int i=1;i<=c;i++){Person *p=PL;while(p->next)p=p->next;int ch;cout<<"输入出勤分类码[1-迟到,2-早退,3-请假,4-旷课]:"; cin>>ch; Teacher *pt;Assistant *pa;Manager *pm;Teacher_Assistant *pta;switch(ch){case 1: pt=new Teacher; pt->Input();p->next=pt;break;p->next=pa;break;case 3: pm=new Manager; pm->Input();p->next=pm;break;case 4: pta=new Teacher_Assistant; pta->Input();p->next=pta;break;default: return;}}Save();cout<<"是否还要继续录入出勤信息?? y/n\n";cin>>ah;}while(ah=='Y'||ah=='y');}void College::Stat(){Person *p1;Person *p2;double Sa=0;int a,b,i=0;double c,d;cout<<"选择你要统计的类别\n[1-类别;2-次数;3-缺课总次数;]\n"; cin>>a;if(a==1){cout<<"输入你要统计的类别:\n[1-迟到,2-早退,3-请假,4-旷课]\n"; cin>>b;p1=PL->next;p2=PL;while(p1){if(p1->Duty==b){i++;//找到p2=p1; //继续查找p1=p1->next;}else{p2=p1; //继续查找p1=p1->next;}cout<<b<<"类缺课次数是:"<<i<<endl; } else if(a==2) {cout<<"输入出勤下限:";cin>>c;cout<<"\n输入出勤上限:";cin>>d;p1=PL->next;p2=PL;while(p1){if(p1->Salary>=c&&p1->Salary<=d){p1->Output();//找到p2=p1; //继续查找p1=p1->next;}else{p2=p1; //继续查找p1=p1->next;}else if(a==3){Person *p=PL->next;while(p) //遍历链表{Sa=Sa+(p->Salary);p=p->next;}cout<<"缺课总数是:"<<Sa<<endl;}else if(a==4){ Person *p=PL->next;while(p){i=i+1;p=p->next;}cout<<"缺课次数是:"<<i<<endl;cout<<"统计完成!!!\n";}void main(){char ch;College c; //定义大学对象docout<<"\n☆☆学生考勤管理系统☆☆\n"; cout<<"1-添加\n";cout<<"2-查询\n";cout<<"3-编辑\n";cout<<"4-删除\n";cout<<"5-统计\n";cout<<"6-读取\n";cout<<"7-退出\n"<<"请选择:\n";cin>>ch;switch(ch){case '1': c.Load(); break;case '2': c.Find(); break;case '3': c.Modify(); break;case '4': c.Delete(); break;case '5': c.Stat(); break;case '6': c.Print(); break;case '7': c.Add; break;}}while(ch!='7');}。