蒋银虎
关键词:请假管理系统;UML;活动图;E-R图;ASP.NET
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2023)21-0038-04
0 引言
目前,部分高校学生请假仍然是以传统的手工纸质签批方法为主,以昆明幼儿师范高等专科学校为例,学生反映最为突出的问题之一就是请假问题,学生撰写申请条,需要找辅导员、学院甚至是学生处进行签字审批,审批完成后,还需向宿舍管理员进行反馈,这样做效率低、程序复杂,给学生、辅导员、学院、学生处带来了很多的困扰。使用UML建模,首先需要描述系统需求,然后根据需求建立系统的静态模型,构建系统结构,最后补充系统的行为[1]。文章结合学校的实际情况,通过使用UML模型中的用例图、类图、活动图对整个系统进行了分析与设计,构建了系统的初步模型,同时,使用E-R图构建了系统数据库的实体关系模型,使用ASP.NET对系统进行了实现。
1 需求分析
1.1 问题描述
根据学校的实际,学生向辅导员提出请假申请,辅导员进行审批,如果请假的天数大于2天,辅导员批准后还需由学院进行审批,如果请假的天数大于5天,学院批准后还需要由学生处进行审批,审批完成后学生才能请假。同时,辅导员需把完成请假手续的学生名单向宿管员人员报备。
1.2 系统用例图
在UML模型中,用例图是用户与系统交互最简单的表示形式,展现了系统中的用例、参与者以及它们两者之间的关系[2]。根据需求分析中问题的描述,绘制系统用例图如图1。
系统中共有5个参与者:学生、辅导员、学院管理人员、学生处管理人员和宿管人员,这些都是用户的子类,继承了用户的属性和方法,可进行登录和个人信息管理操作。学生主要在系统中提出请假申请,辅导员、学院管理人员、学生处管理人员根据学生提交的请假信息进行审批,如果批准了,则学生的请假信息会推送给宿管人员。
2 系统总体设计
2.1 总体类图设计
类图是逻辑视图的重要组成部分,用于對系统的静态结构建模[3]。它表示系统中类的属性与方法,以及类与类之间的关系。
根据系统的需求分析,系统中共有9个类,分别为用户类、学生类、辅导员类、学院管理人员类、学生处管理人员类、宿管人员类、班级类、请假信息类。其中学生类、辅导员类、学院管理人员类、学生处管理人员类、宿管人员类是用户类的子类,继承了用户类的属性和方法,又有一些自己的属性和方法。在属性上,学生是属于班级的,辅导员是属于学院的。在方法上,学生类有提出请假申请的方法,而辅导员类、学院管理人员类、学生处管理人员类有审批学生请假信息的方法。而宿管人员类有查询学生请假信息的方法。学生类、辅导员类与班级类之间存在聚合的关系,学院管理人员类与学院类也存在着聚合的关系。学生类、辅导员类、学院管理人员类、学生处管理人员类、宿管人员类都会使用到请假信息类,因此它们之间存在着依赖的关系。
2.2 系统总体活动图设计
活动图是一种表述过程机理、业务过程以及工作流的技术[4]。它用来描述系统中活动的顺序和流程,是UML进行系统动态建模的常用工具。根据需求分析、系统用例图和系统的整体类图,设计了请假系统的总体活动图,如图3。
学生向辅导员提出请假申请,辅导员对申请进行审批,如果不批准则活动结束,如果批准,系统判断学生的请假天数,如果不大于2天,则把请假信息反馈给宿管人员,活动结束;如果请假天数大于2天,则申请将流到学院管理人员处,由学院管理人员再进行审批,如果学院管理人员不批准请假,则活动结束,如果批准请假,系统判断学生的请假天数,如果不大于5 天,则将请假信息反馈至宿管人员处,活动结束;如果请假天数大于5天,则申请将流到学生处管理人员处,再由学生处管理人员进行审批,如果学生处管理人员不批准,则活动结束,如果批准请假,则将请假信息反馈至宿管人员处,活动结束。
3 系统数据库设计
3.1 E-R 模型设计
E-R模型为建立数据库实体,以及实体间的关系提供了识别的解决方案[5]。根据总体图和活动图的设计,系统中共需7个数据库的实体,分别为:学生信息、班级信息、学院信息、辅导员信息、学院管理人员信息、宿管人员信息、请假信息,具体的E-r 图如图4 所示。
图4系统基本信息E-R图中,描述了系统基本实体信息的关系。学生是属于班级,1个班级有多名学生,而学生只能在1个班级,因此它们之间是1对多的关系;1个班级都有1个辅导员,但1个辅导员可以带多个班级,所以它们之间是1多对的关系;班级属于学院,1个学院有多个班级,所以它们是1对多的关系;辅导员和学院管理人员都属于学院,1个学院有多名管理人员和辅导员,所以它们之间也是1对多的关系。
图5审批请假信息E-R图中描述了系统中审批请假信息的实体关系。请假信息由学生来申请,1个学生可进行多次请假,因此学生与请假信息之间是1 对多的关系;而请假信息需要辅导员、学院管理人员、学生处管理人员进行审批,每个审批人员都会审批多条请假信息,因此它们之间是1对多的关系。
3.2 主要数据库表的设计
4 系统实现
系统使用ASP.NET(C#) 语言进行开发,运行于.Net平台。
4.1 登录模块
系统分为前台和后台,前台主要由学生使用,后台主要由学生管理人员使用。当选择学生用户登录成功后,系统进入学生请假模块。
当用户选择后台登录后,如果是辅导员,则进入到辅导员审批模块;如果是学院管理人员,则进入学院管理人员审批模块;如果是学生处管理人员,则进入学生处管理人员审批模块;主要代码如下:
switch(RoleId){
case 1: Response. Redirect("CounsellorRtifyMag.aspx");break;
case 2: Response. Redirect("CollegeRtifMag. aspx");break;
case 3:Response.Redirect("StudentManagementRti?fyMag.aspx");break;}
4.2 学生请假模块
学生请假模块主要由学生用户填写请假单,相当在数据库请假信息表中新增了一条记录,其主要代码如下:
string sqlinsert = string. Format("insert intoLeaveInfo(LeaveBeginTime, LeaveEndTime, LeaveRea?son, LeaveSysTime, CounsellorID, CounsellorRtify,CounsellorRtifyTime, CollegeID, CollegeRtify, Colleg?eRtifyTime, StudentManagementID, StudentManage?mentRtify, StudentManagementRtifyTime) values({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12})", Studen?tID, LeaveBeginTime, LeaveEndTime, LeaveReason,LeaveSysTime, CounsellorID, CounsellorRtify, Counsel?lorRtifyTime, CollegeID, CollegeRtify, CollegeRtifyTime,StudentManagementID, StudentManagementRtify, Stu?dentManagementRtifyTime);
MySqlDataBase mysqlInsert = new MySqlData?Base();
if (mysqlInsert.Insert(sqlinsert, mysqlInsert.DBconn()) == true)
{ MessageLabel.Text = "请假申请成功!等待审批"; }
else MessageLabel.Text = mysqlInsert.ErrorMessage;
其中,MySQLDataBase 是MySQL 数据库的操作类,用于操作MySQL数据库,主要有Insert()、Update()、Delete()、Select()这几个方法;其中Insert()方法用于执行数据库中的插入语句;Update()方法用于执行数据库中的更新语句;Delete()方法用于执行数据库中的删除语句;Select()方法用于执行数据库中的查询语句。
4.3 辅导员审批模块
辅导员进入审批模块后,对所管理学生的请假信息进行审批,把数据库字段中CounsellorRtify修改为true或者false,同时,将班主任的审批时间设为当前时间,可使用MySQL数据库中的函数now()来获取当前时间。最后,如果审批成功则返回成功提示,如果失败则返回错误的原因。其主要代码如下:
string sqlupdate = string.Format("update LeaveInfoset CounsellorRtify= {0}, CounsellorRtifyTime=now()where LeaveID={1}",counsellorRtify, LeaveID);
MySqlDataBase mysqlUpdate = new MySqlData?Base();
if (mysqlUpdate. Update(sqlupdate, mysqlUpdate.DBconn()) == true)
{MessageLabel.Text = "审批成功"; }
else MessageLabel.Text = mysqlUpdate.ErrorMes?sage;
4.4 学院管理人员审批模块
當请假的时间大于等于3天并且辅导员已经同意时,才会由学院管理人员来审批,判断请假时间大于等于3天且辅导员已经同意可以使用以下代码:
string sqClollegeSelect = string. Format("select *from leaveinfo where CounsellorRtify=true and CollegeID={0}", collegeID);;//取出辅导员已同意请假并且由该学院管理人员进行审批学生假条的SQL语句
MySqlDataBase mysqlSelectCollege = new MySql?DataBase();
DataSet ds = mysqlSelectCollege. Select(sqClolleg?eSelect, mysqlSelectCollege.DBconn());
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{ if ((Convert. ToDateTime(ds. Tables[0]. Rows[i]["LeaveEndTime"]) - Convert.ToDateTime(ds.Tables[0].Rows[i]["LeaveBeginTime"])).Days < 3)
s.Tables[0].Rows.RemoveAt(i);//将请假时间在3天内的数据行从ds中移除;} }
GridView1.DataSource = ds;
GridView1.DataBind();//将数据显示在GridView1 控件内
当请假天数大于等于3天并且辅导员同意请假申请时,由学院管理人员来进行审批,把数据库字段CollegeRtify修改为true或者false,主要代码如下:
string sqlUpdateCollegeRtify = string. Format("up?date LeaveInfo set CollegeRtify= {0}, CollegeRtifyTime=now() where LeaveID={1}", collegeRtify, LeaveID);
MySqlDataBase mysqlUpdate = new MySqlData?Base();
if (mysqlUpdate. Update(sqlUpdateCollegeRtify,mysqlUpdate.DBconn()) == true)
{ MessageLabel.Text = "审批成功"; }
else MessageLabel.Text = mysqlUpdate.ErrorMes?sage;
4.5 学生处管理人员审批模块
当请假的时间大于5天并且辅导员和学院管理人员都同意请假申请时,才会由学生处管理人员审批,判断是否由学生处管理人员审批的代码与判断是否由学院管理人员进行审批的代码相似,在SQL语句中加入“StudentManagementRtify=true”的判定语句,在for 循环语句内判断请假天数改为“>5”。
当请假天数大于5天且辅导员和学院管理人员都同意请假申请时,将由学生处管理人员进行审批,把数据库字段StudentManagementRtify 修改为true或者false,主要代码如下:
string sqlUpdateStudentManagementRtify = string.Format("update LeaveInfo set StudentManagementRtify={0},StudentManagementRtifyTime=now() where LeaveID={1}", studentManagementRtify, LeaveID);
MySqlDataBase mysqlUpdate = new MySqlData?Base();
if (mysqlUpdate. Update(sqlUpdateStudentManage?mentRtify, mysqlUpdate.DBconn()) == true)
{ MessageLabel.Text = "审批成功"; }
else MessageLabel.Text = mysqlUpdate.ErrorMes?sage;
5 结束语
文章基于UML模型对昆明幼儿师范高等专科学校学生请假系统进行了分析、设计与实现,使用用例图对系统的角色与功能进行描述;使用类图对系统类以及类与类之间的关系进行整体的设计;使用活动图对系统中请假活动和审批请假活动进行描述;使用E-R图表述数据实体之间的关系;使用ASP.NET对系统进行实现。通过对高校请假系统的分析设计与实现,使学生的请假更为高效,辅导员、学院、学生处审批更为及时,进一步提高了学生管理的效率。今后,将进一步完善系统,例如与任课教师的课堂点名结合,继续推进学校的信息化发展水平。