宿舍管理系统论文 宿舍管理系统设计.docx
《宿舍管理系统论文 宿舍管理系统设计.docx》由会员分享,可在线阅读,更多相关《宿舍管理系统论文 宿舍管理系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
![宿舍管理系统论文 宿舍管理系统设计.docx](https://file1.bdocx.com/fileroot1/2023-1/22/c7ac4252-9a5d-47d9-9c9d-5ce48651e9ea/c7ac4252-9a5d-47d9-9c9d-5ce48651e9ea1.gif)
宿舍管理系统论文宿舍管理系统设计
目录
论文摘要-3-
关键词-3-
开发背景-3-
第一章 系统需求分析-4-
1.1功能需求-4-
1.1.1基本功能需求-4-
1.1.2报表需求-5-
1.1.3用户界面需求-5-
1.2性能需求-5-
1.2.1系统安全性-5-
1.3数据库选择-5-
1.4环境-5-
第二章相关知识点介绍-6-
2.1C#和.NETFramework知识介绍-6-
2.2SQLServer2000知识介绍-7-
第三章 宿舍管理系统详细设计-8-
3.1系统功能模块图-8-
3.1.1 系统管理模块-9-
3.1.2 公寓管理模块-9-
3.1.3 学生管理模块-9-
3.1.4 信息查询模块-9-
3.1.5 出入登记模块-9-
3.1.6 信息修改模块-9-
3.2系统E-R图-9-
3.3系统所需表-10-
3.3.2表的说明-13-
3.4具体模块设计-13-
3.4.1用户判断-13-
3.4.2公寓管理-14-
3.4.3学生管理-15-
3.4.4信息查询-15-
3.4.5出、入登记-16-
3.4.6信息修改-16-
第四章系统测试-17-
4.1所遇问题-17-
4.2系统测试-18-
参考文献-19-
论文摘要
高校学生宿舍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。
而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。
我们使用Mricosofe公司的VisualStudio2008和SQLServer2000数据库为开发工具,ASP.net是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。
通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。
ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序。
由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存储量大。
这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。
关键词:
高校学生宿舍管理系统VS2008SQL2000
开发背景
学生宿舍管理系统对于一个学校来说是必不可少的组成部分。
目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。
而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。
当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。
信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。
21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。
个人针对如此,设计了一套小型学生宿舍管理系统。
学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。
由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。
这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。
本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。
第一章 系统需求分析
目前,我们学校的宿舍管理采用的还是最低级人工来进行管理的,面对目前学校发展的实际状况,我通过实地调研之后,对宿舍管理系统的设计开发做了一个详细的概述。
1.1功能需求
1.1.1基本功能需求
本课题要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。
系统在实现上应该具有如下功能:
1.系统要求用户必须输入正确的用户名和密码才能进入系统。
2.系统应该提供学生住宿情况的基本登记。
3.系统应提供学生在校期间物品出入宿舍楼的详细情况登记。
4.系统应提供查询功能,以方便用户对学生基本信息的查询(要实现按多种条件的查询)及楼房信息的查询。
5.系统应提供增加、删除、修改用户帐户的功能。
6.系统还应具有添加、修改、删除学生基本信息的功能。
1.1.2报表需求
学生宿舍管理系统的某些信息应当能够以报表形式打印出来。
基本上应该能够实现学生基本信息的报表打印、某宿舍具体住宿情况的报表打印、某栋宿舍楼的所有学生信息打印、、及学生物品出入的信息打印等的功能。
1.1.3用户界面需求
学生宿舍管理系统应提供简单、层次关系明了、清晰的操作界面,使用户一目了然。
尽可能的为用户的录入、查询等功能操作提供方便。
快捷按钮的创建也是非常需要的,以方便用户操作。
1.2性能需求
1.2.1系统安全性
对于系统为方便学校管理学生宿舍而开发,便于统一管理,设一个超级用户,及几个普通用户(便于输入相关信息)。
在登录时,使用用户验证控件,来确认用户是否为合法用户,以保证信息安全。
1.3数据库选择
由于用到的数据表格多,另外考虑到实际情况,学生基本信息的变动,还有员工信息的多少的变化,我们选用SQLServer2000作为数据库开发,而不用Access,主要是因为Access存放的记录,在实际运用中容易出错,导致相关信息丢失故不适合此系统;而SQLServer2000是一种常用的关系数据库,能存放和读取大量的数据,管理众多并发的用户,故选用SQLServer2000数据库。
1.4环境
本系统是以Windows系统为操作平台,用c#2.0编程语言和.Net框架、ASP.NETWebApplication服务和SQLServer2000数据库来实现高校学生宿舍管理系统所需功能的。
第二章相关知识点介绍
2.1C#和.NETFramework知识介绍
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
在进行宿舍管理系统开发时,用到了许多重要控件,下面将主要组件进行逐一说明。
TreeView控件显示Node对象的分层列表,每个Node对象均由一个标签和一个可选的位图组成例Node文档是学生宿舍,子文档是1号床铺,2号床铺等,,创建了TreeView控件之后,可以通过设置属性与调用方法对各Node对象进行操作,这些操作包括添加、删除、对齐和其它操作。
ADO.NET最重要的特点是:
它们以断开连接方式工作。
ADO.NET是一组用于和数据源进行交互的面向对象类库。
通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。
ADO.NET允许和不同类型的数据源以及数据库进行交互。
ADO.NET提供与数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。
使用sqlConnection和数据库交互,连接数据库所需要的其它参数。
connection对象会被command对象使用,读取数据源到DateSet,之后关闭数据源,这样既可以保护数据又可以实现多人访问数据。
GridView控件:
功能上丰富,因为提供了智能标记面板更加易用方便,常用的排序、分页、更新、删除等操作可以零代码实现!
具有PagerTemplate属性,可以自定义用户导航页面,也就是说分页的控制更加随心所欲。
2.2SQLServer2000知识介绍
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,它继承了SQLServer7.0版本的优点,同时又为它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成度高等优点,应用程序的操作系统支持所有Windows版本。
在SQLServer中,使用的是T-SQL语言,T-SQL是ANSISQL的加强版语言,它提供了标准的SQL命令,由于SQL语言功能丰富、语言简洁,使用方法灵活,倍受用户和计算机业界的青睐,被众多的计算机公司和软件公司采用。
经过多年的发展,SQL语言已成为关系数据库的标准语言。
SQL语言主要有数据定义语言、数据操纵语言、数据控制语言和其他类语言要素组成。
T-SQL的分类也有类似于SQL语言的分类,不过做了许多扩充。
T-SQL语言的分类如下:
变量说明语句、数据定义语言(用来建立数据库、数据库对象和定义其列,大部分是以数据操纵语言、数据控制语言、流程控制语言、内嵌函数、其他命令。
在数据库中,可以进行数据的修改、添加、删除等操作。
数据查询是通过SELECT语句来完成的。
SELECT语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回。
第三章 宿舍管理系统详细设计
3.1系统功能模块图
系统管理模块
用户登录
修改秘密
增加用户
公寓管理模块
楼号管理
学生宿舍管理系统
宿舍管理
学生基本信息录入
学生管理模块
学生财物登记
按姓名查询
按学号查询
信息查询模块
按寝室号查询
按班级查询
信息修改模块
学生基本信息修改块
个人财物信息修改块
进楼物品登记
出入登记模块
出楼物品登记
块
图3.1 系统功能模块图
在整体设计中,我们将宿舍管理系统分为五个大的模块:
系统管理模块、公寓管理模块、学生管理模块、信息查询模块、信息修改模块、出入登记模块。
每个模块将实现不同的功能。
下面将具体进行介绍。
3.1.1 系统管理模块
系统管理模块包括:
用户登录、用户增加、用户密码修改三个部分。
3.1.2 公寓管理模块
公寓管理模块包括:
楼房管理、宿舍管理二个大的部分。
3.1.3 学生管理模块
学生管理模块包括:
学生基本信息录入、学生财物登记二项功能.。
3.1.4 信息查询模块
信息查询模块基本上包括:
按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询四个部分。
3.1.5 出入登记模块
出入登记模块包括:
进楼物品登记、出楼物品登记二个功能模块。
3.1.6 信息修改模块
信息修改模块包括:
学生基本信息修改、个人财物信息修改二个功能。
3.2系统E-R图
在我所设计的模块中,主要涉及学生、楼房、寝室这三个实体,所以在E-R图中我只是将这三个实体的属性进行了详细说明。
图3.2系统E-R图
3.3系统所需表
综合以上分析,要实现上面的所有功能模块,共需要设计6个表,它们分别是:
用户表、学生基本情况表、寝室表、楼房表、学生财产表、物品出入楼表
表3.1 用户表(LoginIn)
字段名
描述
数据类型
数据长度
NULL
Primarykey
UserName
用户名
varchar
10
N
Y
UserPassword
用户密码
varchar
10
N
Y
表3.2 学生基本情况表(Student)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
Stu_Name
姓名
nchar
10
Y
N
Stu_Sex
性别
nvarchar
2
Y
N
Dor_Id
寝室号
nchar
10
N
F
Stu_Enr
入学日期
nvarchar
10
Y
N
Stu_Study
所学专业
nchar
10
Y
N
Stu_Class
班级
nchar
10
Y
N
Stu_Polit
政治面貌
nchar
10
Y
N
Stu_Add
家庭住址
nvarchar
50
Y
N
Stu_Tel
联系方式
nvarchar
50
Y
N
Stu_Sta
状态
nvarchar
50
Y
N
Stu_Des
备注
nvarchar
50
Y
N
表3.3 寝室表(Dorm)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Dor_Id
寝室号
nchar
10
N
N
Dor_Sex
居住性别
nvarchar
2
Y
N
Dor_Num
应住人数
nchar
10
Y
N
Dor_Fact
实住人数
nchar
10
Y
N
Dor_Des
备注
nvarchar
50
Y
N
表3.4 物品出入楼表(Goodsmove)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
Go_In
进楼物品
nchar
10
Y
N
Go_Out
出楼物品
nchar
10
Y
N
Go_Date
时间
nvarchar
10
Y
N
Watch
值班人
nchar
10
Y
N
Go_Des
备注
nvarchar
50
Y
N
表3.5 楼房表(House)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Hou_Id
楼房号
char
10
N
Y
Hou_Num
楼层数
nchar
10
Y
N
Hou_Rom
房间数
nchar
10
Y
N
Hou_Peo
应住人数
nchar
10
Y
N
Hou_Fact
实住人数
nchar
10
Y
N
Hou_Des
备注
nvarchar
50
Y
N
表3.6学生财产表(Riches)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
15
N
Y
Dor_Id
寝室
nchar
10
Y
F
Bed
床位
nvarchar
50
Y
N
Stool
凳子
nvarchar
50
Y
N
Desk
桌子
nvarchar
50
Y
N
Box
箱子
nvarchar
50
Y
N
Bedding
被子
nvarchar
50
Y
N
Description
备注
nvarchar
50
Y
N
3.3.2表的说明
本管理系统共用到6个表:
用户表(LoginIn)、学生基本情况表(Student)、寝室表(Dorm)、物品出入楼表(Goodsmove)、楼房表(House)、学生财产表(Riches)
3.4具体模块设计
3.4.1用户判断
图3.3
关键代码:
stringuserName=this.txtName.Text.Trim();
stringuserPWD=this.txtPWD.Text.Trim();
SqlConnectionconn=DBClass.GetStrConn();
stringsqlStr=string.Format("Select*FromLoginWhereUserName='{0}'",userName);
SqlDataReaderdr=DBClass.GetReader(sqlStr);
if(dr.Read())//Read()方法读取dr,但在Read(),之前指针停留在第一条记录之前
{if(userPWD==dr["UserPassword"].ToString()){lbl.Text="登录成功";
Response.Redirect("Default.aspx");//转到Defalut.aspx页面}
else{lbl.Text="密码错误";}}
else{lbl.Text="用户名错误";}
dr.Dispose();
图3.4图3.5
说明:
在添加用户之前,应先判断新添加的用户在Login中是否存在,然后,应用公共类DBClass连接数据库,执行插入InsertIntoSql(strInsert);或更新UpDataSql(sqlStr);(详细附源码)
3.4.2公寓管理
图3.6图3.7
说明:
在查询之前,应先判断在House或Drom中是否存在,然后,应用公共类DBClass连接数据库,执行查询方法publicstaticDataSetGetDataSet(stringsqlStr,stringtableName);(详细附源码)
3.4.3学生管理
图3.8图3.9
说明:
在录入之前,应先判断在Stu_Id或Dor_Id在数据库表中是否存在,然后,应用公共类DBClass连接数据库,执行插入方法publicstaticintInsertIntoSql(stringsqlStr);(详细附源码)
3.4.4信息查询
图3.10图3.11
说明:
在查询之前,应先判断在Stu_Id在数据库表Student或Riches中是否存在,然后,应用公共类DBClass连接数据库,执行插入方法publicstaticDataSetGetDataSet(stringsqlStr,stringtableName);(详细附源码)
3.4.5出、入登记
图3.12图3.13
说明:
在操作之前,应先判断在Stu_Id在数据库表Goodsmove中是否存在,然后,应用公共类DBClass连接数据库,执行插入方法publicstaticintInsertIntoSql(stringsqlStr)或删除publicstaticintDeleteSql(stringsqlStr);(详细附源码)
3.4.6信息修改
图3.14图3.15
说明:
在修改之前,应先判断在Stu_Id在数据库表Student或Riches中是否存在,然后,应用公共类DBClass连接数据库,publicstaticintUpDataSql(stringsqlStr);(详细附源码)
第四章系统测试
4.1所遇问题
1.在开发过程,往往每个页面的代码都特别多,特别是连接数据库,每个用户的数据DBMS地址以及所用的数据库名不一样,为了解决这个问题,在网站配置文件web.config中,找到节点,添加用户数据库相关信息如下:
创建一个PublicClass,编写
publicstaticSqlConnectionGetStrConn()
{stringstrConn=ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;
SqlConnectionconn=newSqlConnection(strConn);
returnconn;}
连接到数据库,其他操作数据库等代码都封装在公共类中,以便使用时,调用。
更便于多个用户使用。
2.在VS里面给页面进行布局时,直接利用VS2008,发现难度有点大,所以,可以间接使用DW,在DW中建立站点时,路径指到VS网站下,服务器技术选择c#,然后用DW打开正在vs2008中操作的文件并进行相关布局,注意,完成后,必须保存,然后再vs2008中要选择“全部修改”,不然在VS中不能实现页面布局。
之后,我们就可以在vs2008中向也面添加相应的Web控件,实现目标
3.在设计数据库时,好多地方考虑的不够周到,例,财务进出表,由于每个学生进入的物品不止一件,也不再同一时间进入,但我在设计数据库表Goddsmove时,把Stu_Id设置为主键了,这样,Stu_Id就不能重复,为了维护数据的安全性,也为了解决这个问题,可以再设置一个Stu_IdSign,对于一个学生,Stu_IdSign设置为学号后三位,这样就可以解决问题
在开发过程中,遇到了许多的难题,通过老师、同学帮助,终于完成一项艰巨的工程,它让我感受到了真正学到知识的那种充实感,幸福感。
4.2系统测试
1.在系统测试阶段修改一些错误,比如在查询模块如果按学号进行查询,刚开始只是判断输入的学号不能为空。
后来发现在用户输入学号后,系统应该还能够进行判断该学号到底存不存在,可以将学号作为sql查询语句的where参数,然后调用publicstaticSqlDataReaderGetReader(stringsqlStr),返回一个SqlDataRearder对象sdr,可以使用属性sdr.Hasrows,来判断学号的存在与否。
如果没有就应该提示用户输入了不存在的学号,清楚掉输入的学号,重新进行输入。
2.往往在拼凑数据库SQL语句的时候,会带来不可想象的麻烦。
由于拼凑必须把变量插入到Sql语句中来,单引号(“‘”)和双引号(““”)合起来使用,会导致语句非常的复杂,甚至当用户输入:
“……dropdatabase数据库名”就会删除整个数据库,所以我们是用string.Format(),来指定操作SQL语句。
也可以使用sqlCommand类的cmd.Parameters.AddWithValue()来操作。
参考文献
[1]萨师煊,王珊.数据库系统概论[M].北京:
高等教育出版社,1983
[2]李志敏,黄静.《C#高级编程第4版》[M].北京:
清华大学出版社,2007.9
[3]周绪.SQLServer2000中文版入门提高[M].北京:
清华大学出版社,2003
[4]张跃廷、顾彦玲