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

本文介绍了一个学生考勤管理系统的实现,包括录入缺勤记录、修改记录、查询特定学生缺勤情况、统计旷课学生及旷课课程等功能。系统使用C++编程,结构清晰,具备菜单操作界面。
摘要由CSDN通过智能技术生成

题目:学生考勤管理系统
考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续多节课用 begin-end 的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:
1. 录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:
缺课日期 第几节课 课程名称 学生姓名 缺课类型
每行一条纪录。
例如:
2008-04-29 3-4 C++程序设计实验 张三 迟到
2008-04-28 3-4 C++程序设计 李四 旷课
2.修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改。
3.查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。
4.统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序;
5.统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序;
6.系统以菜单方式工作。

通过几天的奋斗终于将这个设计做出来了,如下是该程序的详细过程

#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <stdexcept>
#include <string>
#include <iterator>
#include <map>

using namespace std;

struct Student_info{
int year,month,day,lesson1,lesson2;
std::string course,name,type;
std::istream& read(std::istream&);
};

istream& Student_info::read(istream& in)
{
in>>year>>month>>day>>lesson1>>lesson2>>course>>name>>type;
return in;
}

istream& read_record(istream& in,vector<Student_info>& s)//第一个模块--------------输入学生的缺课记录
{
Student_info record;
s.clear();//调用s.clear()来清空s的记录
while(record.read(in))
{
s.push_back(record);
}
in.clear();//将记录的错误状态恢复正确,以继续读取记录
return in;
}

bool is_empty(vector<Student_info>& s)//判断输入学生的记录是否为空,为空则返回真
{
return s.empty();
}

bool compare(Student_info& x,Student_info& y)//按照时间排序,若日期相等则看课程时间

{
if(x.year==y.year&&x.month==y.month&&x.day==y.day){
return x.lesson1<y.lesson1;
}
else if(x.year==y.year&&x.month==y.month&&x.day!=y.day){
return x.day<y.day;
}
else if(x.year==y.year&&x.month!=y.month){
return x.month<y.month;
}
else {
return x.year<y.year;
}
}


bool time(const Student_info& stud,int y1,int m1,int d1,int y2,int m2,int d2)//筛选符合输入时间段的数据
{

if ((y1 == stud.year && stud.month == m1 && stud.day < d1) || (y2 == stud.year && stud.month == m2 && stud.day > d2))
return 0;
else if ((y1 == stud.year && stud.month < m1) |

目 录 目 录 I 摘 要 I ABSTRACT II 第1章 问题定义 1 1.1 引言 1 1.2开发背景 1 1.3问题描述 1 第2章 可行性分析 3 2.1 引言 3 2.2 目的和意义 3 2.3 可行性分析 3 第3章 需求分析 5 3.1 引言 5 3.2 用户需求描述 5 3.2.1学生用户需求描述 5 3.2.2任课老师用户需求描述 5 3.2.3班主任用户需求描述 6 3.2.4院(系)领导用户需求描述 6 3.2.5学校领导用户需求描述 6 3.2.6系统管理员用户需求描述 6 3.3功能需求描述 7 3.4系统开发工具 7 3.5相关开发工具简介 7 3.5.1 B/S(浏览器/服务器)简介 7 3.5.2 JAVA/JSP简介 8 3.6 系统功能划分 8 3.7 数据字典 9 3.8 数据流图 11 3.9运行需求 12 3.9.1 最低配置 12 3.9.2 建议配置 12 第4章 总体设计 13 4.1 引言 13 4.2 系统布局设计 13 4.3 总体结构图 14 4.4 本人主要工作任务 15 第5章 详细设计 16 5.1 引言 16 5.2 系统功能流程图 16 5.3系统目录结构设计 17 5.4 数据库设计与实现 17 5.4.1 实体模型 17 5.4.2 E-R模型 18 5.4.3 数据库的逻辑设计 19 5.4.4 数据库表的创建 19 5.4.5 数据库的建立 21 5.5 前端操作页面设计 21 5.5.1 系统登陆设计 21 5.5.2 学生用户功能设计 21 5.5.3 任课老师用户功能设计 22 5.5.4 班主任用户功能设计 23 5.5.5 院系领导用户功能设计 23 5.5.6 学校领导用户功能设计 24 第6章 编码 25 6.1用户操作页面编码 25 6.1.1 系统登陆编码 25 6.1.2 学生用户功能编码 27 6.1.3 任课老师用户功能编码 30 6.1.4 班主任用户功能编码 34 6.1.5 院系领导用户功能编码 35 6.2 数据库连接池编码 38 6.2.1数据库连接池程序编码 38 6.2.2 连接池配置文件 41 第7章 软件测试 43 7.1 引言 43 7.2 测试方案 43 7.2.1 黑盒测试 43 7.2.2 白盒测试 43 7.2.3 其它测试方案 43 7.2.4 本系统所采用测试方案 43 7.3 测试过程 44 7.3.1 用户登陆测试 44 7.3.2 页面使用安全测试 44 7.3.3学生用户测试 45 7.3.4任课老师用户测试 46 7.3.5班主任用户测试 46 7.3.6院系领导/学校领导用户测试 47 总 结 48 参考文献 49 致 谢 50 附 录 51 附录一:文献资料 51 原文 51 译文 53 附录二、系统部署及使用手册 57 开发工具的安装与配置 57 系统部署 59 用户操作手册 60
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值