太原理工大学学生公寓管理系统.docx
《太原理工大学学生公寓管理系统.docx》由会员分享,可在线阅读,更多相关《太原理工大学学生公寓管理系统.docx(35页珍藏版)》请在冰点文库上搜索。
![太原理工大学学生公寓管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-5/18/77cf13d3-5590-4ebc-9cc3-1c336cbde4af/77cf13d3-5590-4ebc-9cc3-1c336cbde4af1.gif)
太原理工大学学生公寓管理系统
第一章引言
学生宿舍管理系统对于一个学校来说是必不可少的组成部分。
目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。
而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。
当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。
信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。
21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。
我们针对如此,设计了一套学生宿舍管理系统。
学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。
由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。
这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。
本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。
第二章系统需求分析
目前,我们学校的宿舍管理采用的还是人工来进行管理的,面对目前学校发展的实际状况,我们通过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。
2.1功能需求
2.1.1基本功能需求
本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。
系统在实现上应该具有如下功能:
1.系统要求用户必须输入正确的用户名和密码才能进入系统。
2.系统应该提供学生住宿情况的基本登记。
3.系统应提供学生每学期学生的离校处理。
4.系统应提供人员来访登记及结束访问的详细登记。
5.系统应提供学生在校期间物品出入宿舍楼的详细情况登记。
6.系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)。
7.系统应提供增加、删除、修改用户帐户的功能。
8.系统还应具有添加、修改、删除学生基本信息的功能。
2.1.2报表需求
学生宿舍管理系统的某些信息应当能够以报表形式打印出来。
基本上应该能够实现扣分统计、和卫生评比的报表打印功能。
2.1.3用户界面需求
学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。
尽可能的为用户的录入、查询等功能操作提供方便。
快捷按钮的创建也是非常需要的,以方便用户操作。
2.2性能需求
2.2.1系统安全性
学生宿舍管理系统中的增加用户、学生毕业离校等的某些模块都是相联系在一起的,所以在系统的管理权限上应当进行严格控制,具体思想如下:
1.要想对该学生宿舍管理系统进行操作就应当具有某些操作权限。
没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。
2.在上述要求基础上可以为该系统设定三种登录方式,程序开始运行所有功能将是不可使用的,只有系统管理员登录、普通用户登录和只读用户三个窗口可以使用,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统进行操作。
3.在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于大部分的很关键的模块是无权使用的。
只读用户只能观看数据对任何模块都无权修改。
2.3数据库选择
数据库是数据管理的最新技术,是计算机科学的重要分支。
十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。
由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
我们选用的是SQLServer2008R2。
2.4环境
本系统是以Windows系统为操作平台,用C#编程语言和SQLServer2008R2数据库来实现高校学生宿舍管理系统所需功能的。
第三章宿舍管理系统概要设计
3.1系统功能模块图
系统功能模块图
在整体设计中,我们将宿舍管理系统分为五个大的模块:
用户帐号模块、宿舍管理模块、学生信息查询模块、卫生评比模块、出入登记模块。
每个模块将实现不同的功能。
下面将具体进行介绍。
3.1.1用户帐号模块
系统分支(用户帐号模块)功能模块图
用户帐号模块包括:
用户设置,退出系统二个部分。
1.用户设置:
实现系统管理人员、普通人员登录和密码修改。
2.退出系统:
实现正常退出宿舍管理系统。
3.1.2宿舍管理模块
系统分支(宿舍管理模块)功能模块图
公寓管理模块包括:
入住管理、退宿管理、员工管理、晚归管理、公物报修五个大的部分。
1.入住管理:
登记学校所有住宿楼情况。
2.退宿管理:
登记学校所有宿舍退宿人员的情况。
3.公物报修:
登记学校所有住宿楼公物损坏上报情况。
3.1.3信息查询模块
系统分支(信息查询模块)功能模块图
信息查询模块基本上包括:
学生查询(要实现按多种条件的查询)。
1.学生查询:
实现每个学生基本信息情况的查询功能。
3.1.4卫生评比模块
系统分支(卫生评比模块)功能模块图
卫生评比模块基本上包括:
周扣分、扣分统计卫生评比。
1.周扣分:
纪录每周每个宿舍楼每个宿舍每个人的扣分情况
2.扣分统计:
按班级和宿舍两种不同分法在一段时间内的个人扣分的名单的统计情况。
3.卫生评比:
实现宿舍先进集体和先进个人的名单的统计。
3.1.5出入管理模块
系统分支(出入管理模块)功能模块图
出入登记模块包括:
来访登记、进出楼登记、两个功能模块。
1.来访登记:
详细登记进入宿舍楼的外来人员情况和离开情况。
2.进出楼登记:
详细登记某学生搬入和搬出宿舍楼的物品情况。
3.2系统所需数据字典
1.用户数据字典:
登记管理人员的用户名、密码及登录权限。
2.学生基本情况数据字典:
详细登记学生基本信息及学生住宿情况。
5.人员来访数据字典:
登记所有来访人员的详细情况。
6.物品出入数据字典:
详细登记学生物品出楼信息。
7.退宿数据字典:
登记所有宿舍楼退宿情况。
8.报修数据字典:
登记每个公寓每个宿舍公物损坏上报情况。
字段名
描述
数据类型
数据长度
NULL
Primarykey
name
用户名
varchar
20
N
Y
password
用户密码
varchar
20
Y
N
power
用户权限
tinyint
N
N
用户数据字典(user0)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
9
N
YandF
Stu_Name
姓名
char
8
N
N
Stu_Sex
性别
char
2
Y
N
Stu_Class
班级
char
7
N
N
Stu_Polit
政治面貌
char
4
N
团员
Stu_Sta
状态
char
4
N
待分
dorm_no
楼号
tinyint
3
Y
N
Dor_Id
寝室号
char
10
Y
N
bed_no
床号
tinyint
Y
N
own_pc
有无电脑
char
2
N
无
nativity
入学日期
varchar
20
Y
N
birthday
出生日期
date
Y
N
department
所学专业
varchar
20
Y
N
学生基本情况表(Student0)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Vis_Name
来访人姓名
char
10
N
N
Vis_Host
被访人姓名
char
10
Y
N
Dor_Id
宿舍
char
10
N
F
Relation
所属关系
char
10
Y
N
Vis_Data
来访日期
date
10
Y
N
Vis_Time
来访时间
time
10
Y
N
Lea_Time
离开时间
time
10
Y
N
Vis_Watch
值班人
char
10
Y
N
Vis_Cred
证件名称
char
10
Y
N
Vis_Des
备注
char
50
Y
N
人员来访数据字典(Visit)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
G_In
进楼物品
char
10
Y
N
G_Out
出楼物品
char
10
Y
N
G_Date
时间
datetime
10
Y
N
Watch
值班人
char
10
Y
N
G_Des
备注
char
50
Y
N
物品出入楼数据字典(Goodsmove)
字段名
描述
数据类型
数据长度
NULL
Primarykey
stu_id
学号
char
20
N
Y
stu_name
姓名
char
10
Y
N
stu_sex
性别
char
10
Y
N
hou_id
楼号
char
10
Y
N
dor_id
房号
char
10
Y
N
rx_enr
入学日期
data
N
N
ts_enr
退宿日期
data
N
N
stu_study
所学专业
char
10
N
N
stu_class
班级
char
10
N
N
qu_sta
去向
char
50
N
N
stu_des
备注
char
50
N
N
退宿数据字典(ts)
字段名
描述
数据类型
数据长度
NULL
Primarykey
lossdate
报修时间
Timestamp
N
Y
losswupin
报修物品
char
50
Y
N
quantity
报损数量
float
10
Y
N
cause
损坏原因
varchar
100
Y
N
isreport
是否上报
char
1
Y
N
susheh
报修宿舍
integer
Y
N
renyuan
报修人员
char
10
Y
N
报损数据字典(loss)
第四章宿舍管理系统详细设计
4.3具体模块设计
在系统功能模块介绍时,我们将宿舍管理系统分为五个大的模块:
用户帐号模块、宿舍管理模块、学生信息查询模块、卫生评比模块、出入登记模块。
4.3.1账户信息模块的详细设计
1、账户注册与删除详细设计:
设计思想:
当宿舍管理系统需要进入时,具有使用不同功能权限的各用户,以不同的权限、用户名称、用户密码登录该系统。
像我们的后勤服务总公司中的管理人员,值班老师的组长就应该具有系统管理员的权限,宿舍楼房管理人员就应该具有一般用户的权限。
一些关键性的数据是没有访问权的。
如帐号密码的修改,和员工信息的增删改。
要是以浏览者身份登陆该系统的话就只有只读的权限,凡是有增删改和好多关键性的窗口都无权更改和访问。
2.修改密码:
设计思想:
为了防止密码被恶意盗用可以经常性的修改你的密码以增强系统的安全性,密码修改对于所有具有访问该系统的用户来说都可以使用。
具体实现:
(1).首先通过控件实现该功能模块与数据库的关联。
(2).其次为了确保该功能的完整性,在点击确认之后,需要判断一下所有的编辑框中的输入都不能为空。
(3).最后在确认时,还需要编程实现的是判断原始用户名和密码是否一致,只有一致才有权限修改你的密码。
同是为了确保新密码的正确性,还添加了一个确认密码框,新密码和确认密码两者所输内容是要求完全一样,方能修改密码成功。
4.3.2宿舍管理模块的详细设计
1.入住登记、个人信息修改、删除记录
设计思想:
入住登记管理是对每栋宿舍楼的每个学生的基本信息进行录入,具体实现:
(1).由于需要和数据库表相关联,所以也添加了两个数据窗口控件实现两者之间的关联。
(2).在具有在基本的增加、删除、保存、退出功能外还具有数据窗口共享,在右边的自由表内输入数据,左边的表只能对数据浏览,同时当鼠标在左边的表中选中一个人的信息,相应在右边的数据窗口的自由表中会出现和其相同的数据。
(3).在具体实现时需要设置像楼房号这样的具有唯一确定性的字段是不能为空的。
其他字段在输入时没有太大限制,录入人员在录入时需根据自身情况再进行添加。
2.公物报修
公物报修登记窗口完成的是记录宿舍损坏公物的功能。
操作人员可以通过在窗口中同时选中各项公物损失信息,然后利用“存盘”功能将信息保存到数据库中中。
4.3.3信息查询窗口详细设计
1.学生查询
按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询这4个查询功能在具体编程实现上基本上是一样的,因为都是针对学生信息的查询。
以下是这四个功能模块的详细实现过程。
具体实现:
1.按学号查询
设计思想:
在按学号查询时首先要通过编程判断一下,数据库的学生信息表中是否存在该编号的学生,如果没有系统将不会显示数据所以只有存在学号才能进行查询。
上述完成之后,输入所查询的学号,那么所需学生信息就会在下面表格中显示出来了。
2.按姓名进行查询
设计思想:
按学生姓名实现的查询,虽然这样查出来的学生有可能不止一名,但在有些情况下(比如家人、朋友来访时,只记得学生姓名,在不清楚其学号、宿舍号的情况下,可以通过学生信息中的其它信息确定所要找的学生)可以调用此功能来实现。
3.按班级进行查询
设计思想:
实现某个班级所有学生基本信息及住宿情况的查询。
通过该功能模块我们可以统计某个班级的宿舍分配情况,这个班级的学生都住在哪些寝室中。
4.按寝室号查询
设计思想:
在输入寝室号时可以把该宿舍所住的所有学生的信息都统计出来,方便详细了解某宿舍的学生住宿情况。
4.3.4卫生评比模块详细设计
设计思想:
(1).由于需要和数据库表相关联,所以也添加了两个数据窗口控件实现两者之间的关联
(2).具有基本的增加、删除、保存、退出功能,由于考虑到数据被有意的、数据的输入与修改必须取得相应的权限。
(3).为方便对评比情况的统计,只要选择相应的排序条件,在窗口中显示结果。
4.3.5出入管理模块详细设计
1.来访登记与物品出入登记
设计思想:
来访登记管理是对每栋宿舍楼来访人员或物品出入的基本信息进行录入,具体实现:
(1).由于需要和数据库表相关联,所以也添加了两个数据窗口控件实现两者之间的关联。
(2).在具有在基本的增加、删除、保存、退出功能外还具有数据窗口共享,在下边的自由表内输入数据,上边的表只能对数据浏览,同时当鼠标在上边的表中选中一个人的信息,相应在下边的数据窗口的自由表中会出现和其相同的数据。
(3).在具体实现时需要设置像楼房号这样的具有唯一确定性的字段是不能为空的。
其他字段在输入时没有太大限制,录入人员在录入时需根据自身情况再进行添加。
数据库与数据表设计
数据库分析与创建
宿社管理系统主要记录一个学校中的所有学生的住宿情况。
SQLExpress数据库在安全性,准确性和运行速度方面有觉对的优势,并且处理数据量大、效率高,所以本系统采用了SQLExpress数据库作为后台数据库。
数据库命名为dormMISDataSet,其中包含了7张数据表,用于存储不同的信息,数据库详细信息如下图:
2创建数据表
1.Student(学生表)
2.Repair(学生宿舍修理表)
3.Register(学生宿舍来访登记表)
4.CheckInfo(学生宿舍卫生检查表)
5.dorm(宿舍表)
6.userInfo(系统管理员表)
7.Charge(水电收费表)
3数据表逻辑关系
第五章.创建项目
在VisualStudio2010中创建项目
1.运行ViualStudio2010
2.依次单击【文件】|【新建】|【空白解决方案】,打开新建项目对话框,
在【项目类型】中选择【VisualStudio解决方案】,填写合适的名称和位置,
单击确定按钮,建立一个空白解决方案。
3.在【解决方案资源管理器】中,右击建立的解决方案,单击【添加】
|【新建项目】,打开添加新项目对话框,在左侧的【项目类型】中选择
【VisualC#项目】,在右侧的【模板】中选择【Windows应用程序】,填写合
适的名称,单击确定按钮,就建立了一个新的项目。
第六章.登录模块设计
6.1设计登录窗体
本模块使用数据表:
userInfo
登录模块主要是通过输入正确用户名和密码进入主窗体。
他可以提高程序的安全性,保护数据资料不外泄。
登录窗体如下图:
6.2登录功能的实现
当用户输入用户名和密码正确时点击确定按钮便进入主窗体,若有错则提示用户。
详细代码如下:
namespaceDormMIS
{
publicclassLogin:
System.Windows.Forms.Form
{
privateSystem.Windows.Forms.ButtonbtClose;//取消按钮
privateSystem.Windows.Forms.ButtonbtAdd;
privateSystem.Windows.Forms.TextBoxpassword;
privateSystem.Windows.Forms.TextBoxname;
privateSystem.Windows.Forms.Labellabel3;
privateSystem.Windows.Forms.Labellabel2;
privateSystem.Windows.Forms.Labellabel1;
publicLogin(){
//Windows窗体设计器支持所必需的
InitializeComponent();
this.oleConnection1=newOleDbConnection(DormMIS.database.dbConnection.connection);
}
privatevoidInitializeComponent()
{
this.btClose=newSystem.Windows.Forms.Button();
this.btAdd=newSystem.Windows.Forms.Button();
this.password=newSystem.Windows.Forms.TextBox();
this.name=newSystem.Windows.Forms.TextBox();
this.label3=newSystem.Windows.Forms.Label();
this.label2=newSystem.Windows.Forms.Label();
this.label1=newSystem.Windows.Forms.Label();
this.SuspendLayout();
this.btClose.FlatStyle=System.Windows.Forms.FlatStyle.Popup;
this.btClose.ForeColor=System.Drawing.Color.Black;
this.btClose.Location=newSystem.Drawing.Point(168,156);
this.btClose.Name="btClose";
this.btClose.TabIndex=20;
this.btClose.Text="取消";
this.btClose.Click+=newSystem.EventHandler(this.btClose_Click);
this.btAdd.FlatStyle=System.Windows.Forms.FlatStyle.Popup;
this.btAdd.ForeColor=System.Drawing.Color.Black;
this.btAdd.Location=newSystem.Drawing.Point(48,156);
this.btAdd.Name="btAdd";
this.btAdd.TabIndex=19;
this.btAdd.Text="确定";
this.btAdd.Click+=newSystem.EventHandler(this.btAdd_Click);
//password
this.password.BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;
this.password.Location=newSystem.Drawing.Point(128,116);
this.password.Name="password";
this.password.PasswordChar='*';
this.password.TabIndex=18;
this.password.Text="admin";
//name
this.name.BorderStyle=System.Windows.Forms.BorderStyle.FixedSingle;
this.name.Location=newSystem.Drawing.Point(128,76);
this.name.Name="name";
this.name.TabIndex=17;
this.name.Text="admin";
this.label1.Font=newSystem.Drawing.Font("楷体",18F,System.Drawing.FontStyle.Bold,System.Drawing.GraphicsUnit.Point,((System.Byte)(134)));
this