当前位置:首页 期刊杂志

三层架构的宿舍管理系统设计与实现

时间:2024-12-29

刘云萍

(太原工业学院 计算机工程系,山西 太原 030008)

三层架构的宿舍管理系统设计与实现

刘云萍

(太原工业学院 计算机工程系,山西 太原 030008)

通过对两层架构与三层架构优缺点的对比研究,利用Visual Studio 2012开发平台与SqlServer2008R2数据库技术设计开发了基于三层架构模式宿舍管理系统,三层架构属于瘦客户的模式,用户端只需要一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能.通过使用本系统可以使得管理人员提高管理学生宿舍管理的效率,同时提高数据的安全性,降低人员利用率,降低成本.

宿舍管理;三层架构;瘦客户

0 引言

随着信息网络广泛普及,计算机信息化技术的创新.信息化管理系统已经普遍应用于各个行业,高校的信息化建设不仅仅只涵盖软硬件设备、人员技术的问题.目前它需要管理者加深对高等教育的理解,增强接受新事物的能力,有能力制定长远发展规划.现阶段如果仍采取人工进行管理不仅速度慢,同时也存在诸多失误,准确率低,导致资源浪费.虽然国内关于学生宿舍管理系统的研究开发的比较早,应用于学生管理方面的系统软件有很多,这些系统虽然具备很多优点,也解决了管理工作中大量而繁琐的问题,很大程度上提高了管理效率,但是也存在一些问题.本系统采用三层架构模式去开发,有利于将来群体开发,使得协同工作效率加倍,更好的支持分布式计算环境,用户端通过逻辑层来访问数据层,减少了入口点,把很多的系统功能都加以屏蔽.本系统能很好解决以往学生宿舍管理管理成本高、人员利用率相对低的缺点.

1 系统体系结构

两层结构如图1所示:当某个方面改变时,系统整体都需要重新开发.把“多层”放在一层,分工不明确且耦合度高——维护性及扩展性低,难以适应需求变化.

图1 两层结构图

三层结构如图2所示:如有发生变化,只需更改该层,不需更改整个系统.层次清晰,每层之间耦合度低,分工明确——提高了效率,适应需求变化,可维护性高,可扩展性高.

图2 三结构图

三层架构主要由UI(表现层), BLL(业务逻辑层),DAL(数据访问层)三层构成.表现层(UI):就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等.三层之间联系主要靠实体层(Entity),Entity(实体层)它不属于三层中的任何一层,但是它是必不可少的一层.Entity在三层架构中的作用:实现面向对象思想中的"封装";贯穿于三层,在三层之间传递数据;每一层(UI—>BLL—>DAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现.因此三层及实体层之间的依赖关系如下图3所示:

2 系统实现

2.1 接口设计

图3 三层结构图

(1)接口:IEnumerableListAll()

函数原型:publicIEnumerableListAll()

参数说明:为Model层中定义的类型

返回值说明:list

功能:新建泛型集合将数据库中的数据中存入表中.

(2)接口:GetById(Guid id)

函数原型:publicGetById(Guid id)

参数说明:Guid类型id

返回值说明:集合Rows

功能:根据id查询获取数据内容.

(3)接口:Update(Guid id, string name)

函数原型:public void Update(Guid id, string name)

参数说明:Guid类型 id, string类型 name

返回值类型:无

功能:进行更新操作.

(4)接口:Insert(string name)

函数原型:public void Insert(string name)

参数说明:string类型name

返回值类型:无

功能:进行插入数据操作.

(5)接口:DeleteById(Guid id)

函数原型:public void DeleteById(Guid id)

参数说明:Guid类型id

返回值类型:无

功能:根据所选id删除行内容.

2.2 类图设计

下图为学生信息类和宿舍信息类的类图设计,分别如图4及图5所示

其他的类图设计与其相似,下面不将一一赘述.

2.3 数据库结构设计

学生宿舍管理系统的数据库设计包括,T_AllDorm表、T_Department表、T_Dorm表、T_EleCount表、T_IdName表、T_Operator表、T_Passport表、T_Student表、T_Relation表、T_SanitaryExam表、T_SanitaryRating表、T_Visitor表的设计.

2.4 错误处理设计

在使用本软件时,若出现错误操作则会抛出错误Message显示错误处理操作内容,因此用户在进行数据操作时候严格按照数据范围以及相关的正确处理方式进行操作软件.

图4 学生信息查询类图

图5 宿舍信息查询

3 界面设计

3.1 框架设计

本系统主要使用Visual Studio 2012进行代码编写,使用SqlServer2008R2 进行相关的数据库存储数据,构建DAL层、Model层、UI层进行对于数据库的交互处理.当用户进行处理操作时通过调用DAL层中的方法进行相关数据的处理操作.Model层主要存储的是对于定义对象的字段属性,UI层则为用户看到的使用界面.本系统主要实现功能为学生信息管理、宿舍信息管理、宿舍卫生与电费管理、出入人员信息管理、对于宿舍证的打印操作等,下面为对各个框架的具体描述.

(1)管理员信息管理:可以对管理员进行管理,添加修改删除管理员信息,进行设置用户名和密码.

(2)学生信息管理:对学生进行学生信息的录入,包括学生姓名、学号、生日、政治面貌、系别、籍贯、专业、宿舍号、邮件、身份证号、紧急联系人、入住日期、离宿日期、备注、性别、职务、班级照片信息进行录入并存入到数据库当中,用户可以进行将存储的学生信息导入到Excel中再进行相应的使用操作,还包括对于学生信息的添加删除修改等操作.

(3)宿舍信息管理:进行查询宿舍现在的入住状态,通过此状态可以判断是否可以添加学生入住,达到后期分配宿舍的目的.同时可以查询各个宿舍内的学生与是否住满的信息.通过对于查询结果的处理可以进行将预入住的学生分配到未住满的宿舍操作.

(4)宿舍卫生管理:可以进行对于宿舍卫生的评分,可以查询出各个宿舍的卫生状况,并可以导出宿舍卫生成绩Excel.

(5)宿舍电费管理:可以查询各个宿舍的电费信息,可以查询出各个宿舍电费的状况与缴纳记录情况,并可以导出各个宿舍的电费信息以及缴纳情况的电费表单Excel.

(6)宿舍证打印:进入该模块选择需要进行宿舍证打印操作的学生信息,通过使用水晶报表将宿舍证打印出来.

3.2 功能类

(1)Model层:AllDorm、Department、Dorm、EleCount、IdName、Operator、Passport、Relation、SanitaryExam、SanitaryRating、Student、Visitor以上所有的类分别声明所有类中的参数的声明,并为后台调用做准备.

(2)DAL层:AllDormDAL、DepartmentDAL、DormDAL、EleCountDAL、IdNameDAL、OperatorDAL、PassportDAL、RelationDAL、SanitaryExamDAL、StudentDAL、SanitaryRatingDAL、VisitorDAL本层所有的类声明了对数据库进行的处理操作.一般为通过Id获取值,获取整段信息列表,增加、删除、修改等操作.

(3)UI层:主要为前台显示页面类,即前台显示页面.

(4)数据访问类:主要进行连接数据库操作,并通过调用SqlHelper类来完成DAL层访问数据库的操作.

4 部分功能设计实现

4.1 学生信息头像录入实现

通过添加WPFMediaKit程序集,在后台调用本地摄像头,创建生成头像的区域将照片以二进制字节形式存入到数据库中,下面为调用WPFMediaKit.dll程序集中的方法来完成此项操作的代码:

RenderTargetBitmap bmp = new RenderTargetBitmap(

(int)captureElement.ActualWidth, (int)captureElement.ActualHeight,

96, 96, PixelFormats.Default);

bmp.Render(captureElement);

BitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Frames.Add(BitmapFrame.Create(bmp));

using (MemoryStreamms = new MemoryStream())

{

encoder.Save(ms);

CaptureData = ms.ToArray();

}

DialogResult = true;

用户登录的主系统界面进入学生信息添加模块进行学生头像获取功能,选择摄像头进行操作,利用本地摄像头获取头像的操作界面如图6所示.

图6 学生头像本地获取界面

4.2 学生宿舍分配界面实现

宿舍表单中创建标识列IsFulled标志来判断,在进行查询宿舍的操作附加条件为IsFulled的值为False,若IsFulled为False即该宿舍未住满可将学生添加到该宿舍去.宿舍的容量值Size默认为8,宿舍的Size不为8则IsFulled的值为False(未住满状态),若为8则IsFulled的值为True(住满状态),

通过查询AllDorm表中各个宿舍的入住状态获取未住满宿舍的信息,然后再讲学生添加到未住满的宿舍中.

代码的实现则为调用数据库公用类SqlHelper进行对于宿舍信息的操作,操作处理为DAL层中的DormDAL中的方法,并将数据显示在页面的DategridView中.

其他界面(学生信息管理界面、宿舍电费与卫生管理界面、出入信息管理界面等)和功能的实现基本与上述基本一致,只是对数据的管理方法略有区别,整体详细设计基本与任务书所需功能保持一致,这里不再赘述.

4.3 数据导出Excel表单实现

在本地引用中添加NPOI.dll程序集,此程序集中的方法优势在于不需要本地已经装有Office应用Excel,并能生成.xls的文件,只要用Excel软件打开即可.并且在应用此程序集的方法时不会每次都占用进程,这样不会另内存使用添加负担,造成系统崩溃.

5 结论

目前,经过测试,本系统已开始在学校适用运行,基本达到预期效果.本系统还可方便进行升级,以适应对数据量进一步扩大和安全性的需要.本管理系统为解决高校的使用需求为基础,分析和解决学院在宿舍管理方面面临的实际问题,某些功能由于自己知识的欠缺和时间不足使得系统开发不够精细,功能实现不够完善.另外系统在功能分析上可能存在不足之处,这些都有待进一步的改善.

[1] 张海藩.软件工程导论[M].第五版.北京:清华大学出版社,2008

[2] 牛丽平.UML面向对象设计与分析[M].北京:清华大学出版社,2008

[3] 章立民.ASP.NET开发实战范例宝典(使用C#)[M].北京:科学出版社,2010

[4] 刘 烨,吴中元.C#编程及应用程序开发教程[M].北京:清华大学出版社,2003

[5] 赵 杰.SQL SERVER数据库管理设计与实现教程[M].北京:清华大学出版社,2004

Three-tier Architecture of the Design and Implementation of the Dormitory Management System

Liu Yunping

(Department of Computer Engineering, Taiyuan Institute of Technology, Taiyuan 030008, China)

To base on the comparative Analysis of the Pros and cons between 2-tier architecture And 3-tier architecture, Using Visual Studio 2012 development platform and SqlServer2008R2 database technology to design and develop the Dormitory Management System that based on 3-tier architecture.The 3-tier architecture belongs to the thin client mode, the clients only need a smaller hard disk、the smaller memory and the slower CPU to attain good performance. By using this system can make the administrative staff to improve the efficiency of management of student dormitory management, while increasing data safety, reducing of personnel utilization and cutting the cost.

dormitory management;three-tier architecture;thin clients

2015-01-12

刘云萍(1980-), 女,山西太原人,硕士,太原工业学院讲师,主要从事数据库系统设计研究.

1672-2027(2015)01-0061-05

TP311.1

A

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!