APP下载

基于Java的系务管理信息系统的设计与实现

2024-05-19林菲菲吴荣珍

电脑知识与技术 2024年7期
关键词:MySQL数据库信息系统构件

林菲菲 吴荣珍

摘要:目前系务管理借用多个系统进行,导致效率低、交互性不强,数据处理带来了不少的困难,为系部管理人员、教师、学生提供一个方便、实时的交流和沟通的平台成为不可忽略的问题,鉴于此,设计系务管理系统。系统前台使用多线程可移植的Java进行开发,后台采用高效开源的MySQL进行设计,主要设计了教师信息、教学计划、课程安排、 教材管理、成绩管理、毕业管理、学生信息变更、班级调整、学籍变更、奖惩信息管理等功能模块。结果表明,保证数据一致性,减少冗余,提高系务处理效率和管理水平。

关键词:系务管理;Java;构件;MySQL数据库;信息系统

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2024)07-0053-04

开放科学(资源服务)标识码(OSID)

0 引言

系作为学校二级管理机构,其基本事务的管理是系部管理工作中的重要组成部分,使用计算机对各种资源进行管理,能够极大地提高工作效率,也是使各系管理工作趋向科学化、正规化的重要前提和手段。目前学校系基本事务管理仍是借用学生管理系统和教务管理系统进行,这种管理方式效率低、操作复杂、交互性不强[1],给查找信息、修改和保存数据都带来了不少的困难。开发一套基于系综合事务管理的信息系统,为系务管理信息化提供辅助手段,为教学/学生管理人员、教师/辅导员、学生提供一个交流和沟通的平台。

1 系统需求分析

系统采用具有分布式与面向对象、多线程与动态性[2]、安全性及可移植等特点的Java作为前台开发工具[3],后台使用速度快、体积小且开源免费的MySQL 数据库管理系统进行开发[4]。包括教师基本信息管理、教学计划、课程教材、成绩、毕业管理、学生基本信息管理、学籍變更管理、奖惩信息管理、班级管理等。实现数据库功能如增、删、改、查、排序、打印及大量原始数据自动检索,提取有用信息进行更高层次的操作功能,减少因复杂的信息和繁多的项目带来管理不便,以提高办公效率。

1.1 功能需求分析

系统的主要功能有:对基本信息进行增、删、改、查等操作;制定教学计划,生成新的课表并删除旧课表,并对各门课程所使用的教材的管理;对学生成绩、毕业信息、学籍变更情况以及学生奖惩信息等的操作管理;进行用户管理,使用密码登录,进行数据库备份与还原,保证系统的安全。各模块需求如下:

教师基本信息:对教师信息操作。

教学计划:对教学计划制定的基本操作。

课程教材:对教师选择的教材信息进行管理。

课程安排:旧课表的删除和新课表的生成。

成绩管理:包括成绩录入、修改、查询和学分统计等操作。

毕业管理:对学生毕业信息的基本操作。

学生基本信息管理:对学生信息的基本操作。

学籍变动管理:对学生学籍变动信息的管理。

学生奖惩信息管理:包括奖励信息和惩罚信息的操作。

系统管理:包括系统设置和用户管理以及数据库维护。

1.2 数据需求

系务管理信息系统是一个综合管理信息系统,所涉及高校管理的两个最基本的也是最重要的内容即学生和教学,数据量大,为了减少冗余,由学院统一管理的信息就不再涉及,系统需要管理的数据仅仅涉及日常管理的一些信息。派生或一些小类信息并未列入其中,主要包括基本信息类、教学类、学生管理类等。系统总体数据类如表1所示。

各类数据需求分析:

基本数据:在校生和本系教职员工的基本信息,不涉及详细的信息,避免数据冗余。

教学管理数据:系内教师、外聘教师、兼职教师等的授课信息、课程信息汇总、调停课、考试安排等。

学生信息管理数据:学生奖惩、学籍变更、班级管理、学业预警等数据。

1.3 系统业务流程图

系统主要是对教学和学生信息进行管理,系务管理信息系统业务流程图,见图1所示。

教研室主任:根据制定教学计划进行排课,供教师选教材,并把排课和选择教材汇总数据反馈给教务秘书,教务秘书将选教材结果上报校教务处统一征订教材,并排课,课程结束后经过考核,录入成绩。

教务秘书:输入教师信息,并管理学生成绩,根据学生成绩确定学生学分是否够,是否准许毕业。

学生管理人员:输入学生信息、班级信息,及时更新学生由于退学、转专业、休学等情况发生的学籍变更,并告知有关教师及班主任和学生管理人员。录入学生及班级奖惩信息,以确定学生是否准许毕业,教师根据学生考勤情况,决定是否给予期末考试。

学生:可以查询自己在校,奖惩信息、毕业信息及个人基本信息。系统业务流程图如图1所示。

1.4 系统用例

1) 教学计划用例。教学计划管理主要完成教学计划的制定、修改、删除以及根据教学计划对教师进行排课并选择相应的课程教材。教学计划用例图如图2所示。

2) 成绩管理用例。成绩管理主要提供成绩单的录入、修改、学分统计等,并能根据查询条件进行成绩查询、打印等功能。

3) 教材管理用例。教材管理主要完成教材选择和统计功能。

4) 毕业管理用例。毕业管理用例完成对学生毕业信息的录入、查询、修改、统计等操作。毕业管理用例图如图3所示。

5) 奖惩管理用例。奖惩管理用例主要是对在校学生奖惩信息的录入、查询、修改等操作。

2 系统设计

2.1 功能模块设计

本系统分大模块,12个功能小模块,分别是:教师信息管理、教学计划、课程安排、 教材管理、成绩管理、毕业管理、学生基本信息、班级管理、学籍变更信息、奖惩信息等功能模块。系统功能模块图如图4所示。

2.2 数据库设计

根据系统需求分析和系统设计,选择一些合适信息单位作为本系统使用基本实体,如学生、班级、教师、毕业等,本系统中主要的实体联系有教材、成绩、变更说明等,系统概念结构设计(ER图)如图5所示。

通过E-R图向关系模型转换的方法得到如下数据模型。

教师信息:(教工号、姓名、性别、职称、出生日期、民族、政治面貌、毕业院校、所学专业、学历、联系电话、E-mail、备注)

教学计划:(课程代号、课程名称、课程类别、理论教学时数、实训教学时数、总学时、学分、学期周时数)

课表:(课程代号、班级编号、课程名称、总学时、教学起止周、周学时、课程类别、任课教师、星期一、星期二、星期三、星期四、星期五)

教材:(课程代号、教工号、教材名称、出版社、单价、作者、书号、课程简介、是否高职高专教材、备注)

成绩:(学号、课程代号、课程名称、平时成绩、期末成绩、总评成绩、补考成绩、重修成绩、备注)

毕业信息:(毕业证编号、姓名、班级名称、毕业时间、备注)

学生信息:(学号、姓名、性别、出生日期、民族、班级、家庭住址、生源地、联系电话、电子邮件、备注)

班级:(班级编号、班级名称、所属系年级、专业、学制、辅导员/班主任)

学籍变更:(记录号、记录对象、变更情况、记录时间、班级名称、详细描述)

奖惩信息:(记录号、级别、处分对象、记录时间、详细描述、是否生效)

变更说明:(学号、记录号、变更原因)

奖惩发布:(学号、记录号、班号、奖惩原因)

毕业证领取:(毕业证号、学号、领取时间、签名、备注)

登录日志:(用户名、用户权限、登录时间)

系统账号:(登录用户名、用户口令、用户权限)

权限:(用户名、登录用户名、权限类型)

根据本系统的特点,在后台数据库中建立以下的索引和视图:

1) 在学生基本信息表上,建立属性“姓名”和“年龄”的组合索引。

2) 在成绩表中,建立属性“成绩”索引。

3) 教师基本情况表中,建立“职称”“年龄”两个索引。

由于在输出学生情况和教师教学情况时会同时,涉及多个表,因此,有必要创建视图,以简化数据的操作。

1) 教师教学情况视图,该视图所包括的字段有工号、姓名、授课名称、授课班级、授课学期、课程性质等。所涉及的表有教师基本信息表、教学计划表、班级信息表等。

2) 学生在校情况视图,该视图包括的字段有学号、姓名、总学分、奖惩名称、毕业证书编号等。所涉及的表有学生基本信息表、成绩表、奖惩信息表及毕业信息表等。

4 系统实现主要技术

4.1 翻页查询小构件设计

主要功能是对系务管理信息系统较大的表进行全表扫描[5],将每一頁查询的数据控制在一定数量范围内,降低对数据库压力[6],实现数据查询完整性。实现方法是把翻页部分抽象成公共脚本,单独定义各个具体业务逻辑。通过定义select函数、转化函数及处理函数,以及调用数据持有的容器[7],同时调用的翻页查询构件[8],该构件具有支持定义翻页数量、处理总数与起始编号、翻页睡眠时间等功能。

1) 实现的SQL语句代码如下:

select Items.id= FirstPage - ResulType=com. Items

select from items where Deleted-0

if tests=beginId<>null then

tests= isFirst is true and items.id

order by items.id limit 0;

查询构件主要思路是,首先查询起始的id,首次可为空,从第二次开始取最后1个记录的id,并设置每次查询的个数,将查询结果转化为数据处理函数的参数、处理结果保存在数据持有容器中。

function queryFunction = this: : doPaperQueryPage;//创建查询函教

funct ion transformFunction = this: : doPaperTransfc// 将参数转化函数

Funct ion dealFunction = this: :dealPaperList; //逻辑处理函数

Map< Integer, Record> dataContainMap = new HashMap<>();//数据持有容器

2) 进行数据查询:

quryParm=(T) new QueryParm( firstPgeId, pagSize, isFirst) ;

quryResu=quryFuntion. apply( quryParm) ;

if (quryResult== null|| ! queyResul. isHasNext())

Then logger . info( logPref ix+" ResulIs NULL OR Empty");

3) 将查询结果转化为数据处理函数的参数:

dealPram=tranformFunction . apply( quryResu);

dealPram . setResulContain( resuContain);

IntcurSize=quryResult. getSize() count+=curSize;

4) 對数据进行处理:

logger . info( logPrefix+" End, spend:{ }”,System. currentTimeMillis()-start);

4.2 事务提醒功能的设计

事务提醒功能是指系务日常事务工作的提醒。包含补考重修考试安排、学业预警通知、休学复学到期通知等的提醒。以保证工作能得到及时的处理。在系统中设计TRIGGER(inout),同时结合Java的分布式及多线程技术特点,业务提醒作了并行处理并使用Reminder Thread类开启提醒线程,设计一个信息提示二维表,监视各事务到点办理通知,触发一个timer控件不间断地从消息表里提取数据,到达设置时限即触发事务提醒功能。主要代码如下:

SimpleDateFormat x=newSimpleDateFormat("hh: mm:ss" ); // 从系统获取时间

Remind r1=new  Remind(time, null, remindMessage); // 创建提醒线程对话框

Thread qThread=new Thread (r1) ;

qThread. start () ;

1) 获取系统当前的日期时间:

FROMSysDateTime y1=FromnewSysdatetime( YY-MM-DD HH:MM:SS) ;

2) 事务提醒线程的可视化提示框的创建:

TransaThread X1=new TransaThread(Datetime, NotNull, TransaMessage);

3) 事务开始:

KTransaThread. start () ;

5 结论

根据二级学院系务管理实际问题,进行系统详细设计并给出实现技术。通过使用该系统,可以实现系务管理信息化,解决了效率低、操作复杂、交互性不强、数据源获取困难等问题,减少错误率,促进二级学院各项工作有序开展,提高工作效率。但是,随着信息化校园的推进,数据变得越来越庞大且杂乱无序[6],数据的安全性和完整性以及私有库的设计等方面还须进一步完善。

参考文献:

[1] 庄帅,吕波.基于Java设计实现职工信息管理系统[J].信息系统工程,2022(7):149-152.

[2] 聂旭.B/S架构网络系统数据库访问性能提升技术及其应用研究[D].武汉:华中科技大学,2017.

[3] 王梓屹.基于Java的在线家庭体育作业系统的设计与实现研究[D].长春:吉林大学,2022.

[4] 唐倩文,陈良育.基于复杂网络理论的Java开源系统演化分析[J].计算机科学,2018,45(8):166-173.

[5] 刘杰,孙浩,郭东旭,等.基于Spring MVC及MyBatis框架的在线教育平台的设计与实现[J].沈阳师范大学学报(自然科学版),2019,37(3):268-273.

[6] 王烁宇,张宸豪,肖志仁,等.基于Java的可加密校园即时通信系统设计与实现[J].电脑编程技巧与维护,2023(8):170-173.

[7] 张军.基于Java的企业人力资源管理系统的设计与实现[J].中国信息化,2022(3):42-44.

[8] 李月萍.职业院校教务管理系统的优化与创新[J].现代信息科技,2019(12):119-120,123.

【通联编辑:唐一东】

猜你喜欢

MySQL数据库信息系统构件
企业信息系统安全防护
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
充电桩状态实时监控系统与C/S框架设计
建筑构件
建筑构件
建筑构件
建筑构件
基于SG-I6000的信息系统运检自动化诊断实践
改进的SSH框架技术在医药管理系统中的研究及应用