搜索
您的当前位置:首页《web学生宿舍管理系统》的设计与实现毕业论文DOC

《web学生宿舍管理系统》的设计与实现毕业论文DOC

来源:世旅网


学生宿舍管理系统的设计

与实现

二级学院 专 业 班 级 学生姓名 学 号 指导教师

2013年3月

诚 信 声 明

我声明,所呈交的毕业论文(设计)是本人在老师指导下进行的研究工作及

取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文(设计)中的所有内容均真实、可信。

毕业论文(设计)作者(签名):

年 月 日

学生宿舍管理系统的设计与实现

【摘要】学生宿舍管理系统实现计算机来管理宿舍和学生的信息,把宿舍管

理部门的工作人员从日常繁杂的事务中解脱出来。通过使用学生宿舍管理系统可以提高高校宿舍管理部门的工作效率;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的。因此,根据实际情况,本系统是在Visual Studio 2010的开发平台下,采用ASP.NET、ADO.NET、三层架构技术,并结合SQL Server 2005,开发一个基于Web的学生宿舍管理系统。

本系统的用户主要分为学生、维修人员、管理员三种角色。学生的主要功能是:搜索宿舍相关信息、浏览下载通知公告、上报维修信息、留校登记、完善个人信息、留言等。维修人员的主要功能是:查看报修情况、报修审核、处理报修信息。管理员主要功能是:宿舍管理、登记管理、公告栏管理、班级管理、信息查询、留言管理、资料管理、系统管理。

【关键词】学生宿舍管理;ASP.NET; ADO.NET;三层架构;SQL Server 2005

Development And implementation Of Dormitory

Management System

[Abstract] The student dormitory management system will realize computer management of dormitory and student informations, and help the student dormitory management staff to release from the cockamamie daily affair.Through the use of the student's dormitory management system can improve the managerial efficiency and convenient dormitory management staff to grasp of student accommodation fully, etc. According to the actual situation, therefore, this system is developed in Visual Studio 2010 platform, ASP.NET, ADO.NET, Three layer architecture technology, and combined with SQL Server 2005, develop a student's dormitory management system based on Web.

The user of this system is mainly divided into three roles : maintenance personnel, administrator and student. Student's main function is: search dormitory information, browse the download report and announcements, maintenance information, stay in registration, perfecting the personal information, and leave a message. Maintenance personnel's main function is: check the repair situation review, handle the repair information and repair service. Administrator main function is: dormitory management, register management, bulletin management, class management, information query, message management, information management, systems management.

[Keywords] Student's Dormitory Management System ASP.NET ADO.NET Three Layer Architecture Technology SQL Server 2005

目 录

1 前言 .................................................. 1

1.1 系统开发的背景 ............................................... 1 1.2 系统的现状 ................................................... 1 1.3 课题研究的目的和意义 ......................................... 2 1.3.1 课题研究的目的 ................................................ 2 1.3.2 课题研究的意义 ................................................ 2

2 主要开发技术简介 ...................................... 3

2.1 ASP.NET 4.0和Microsoft Visual Studio 2010 ....................... 3 2.2 C#开发语言 ................................................... 3 2.3 SQL Server 2005 ............................................... 4 2.4 三层架构 ..................................................... 4 2.5 B/S体系结构 .................................................. 4 2.6 数据库访问技术——ADO.NET ................................... 5 2.6.1 ADO.NET概述 ................................................. 5 2.6.2 数据库连接 .................................................... 6 2.6.3 执行数据操作 .................................................. 6 2.6.4 数据绑定 ...................................................... 6

3 系统分析 .............................................. 7

3.1 系统概述 ..................................................... 7 3.2 需求分析 ..................................................... 7 3.2.1功能需求 ...................................................... 7 3.2.2性能需求 ...................................................... 8 3.3 可行性分析 ................................................... 9 3.3.1技术可行性 .................................................... 9 3.3.2经济可行性 .................................................... 9 3.3.3管理可行性 .................................................... 9

3.4 系统流程图 .................................................. 10 3.5 系统用例图和用例图分析....................................... 10 3.5.1 客户端用例图 ................................................. 10 3.5.2 管理端用例图 ................................................. 15

4 系统总体设计 ......................................... 20

4.1 总体设计概述 ................................................ 20 4.2 功能模块设计 ................................................ 21 4.2.1 系统层次模块图 ............................................... 21 4.3 数据库设计 .................................................. 22 4.3.1 数据库管理系统的选择 ......................................... 22 4.3.2 数据库的概念结构设计 ......................................... 23 4.3.3 数据库的逻辑结构设计 ......................................... 24 4.3.4 数据库的物理结构设计 ......................................... 29

5 详细设计 ............................................. 30

5.1 系统架构 .................................................... 30 5.2 项目结构 .................................................... 30 5.3 系统架构web.config配置文件 .................................. 31 5.4 SQLHelper类的介绍 ........................................... 31 5.5 系统主要功能的实现 .......................................... 34 5.5.1 用户登录 ..................................................... 34 5.5.2 新生角色功能模块实现 ......................................... 38 5.5.3 学生角色功能模块实现 ......................................... 39 5.5.4 维修人员角色功能模块实现 ..................................... 44 5.5.5 管理员角色功能模块实现 ....................................... 46

6 系统测试 ............................................. 46 7 结论 ................................. 错误!未定义书签。 参考文献 ............................................... 47 致 谢 ................................. 错误!未定义书签。

1 前言

1.1 系统开发的背景

随着计算机技术的发展,信息管理系统已经应用于各个行业,学生宿舍管理是一项繁琐复杂的工作,若以人工管理,必然存在许多缺点,如:工作量大、耗费许多人力和时间、计算量大、容易出错、效率低等。高校学生宿舍是大学生学习、生活和交往的基本场所,对大学生的身心发展有直接的影响。随着高校后勤的社会化,高校学生宿舍管理也应有所变化[1]。

随着计算机技术的快速发展以及网络的推广,基于计算机和网络的高校管理软件得到广泛的应用。对于学校而言,学生宿舍管理是必不可少的组成部分。目前大多数学校停留在宿舍管理部门的工作人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。因此,开发一个基于Web的学生宿舍管理系统是十分必要的。

1.2 系统的现状

目前,计算机管理信息系统逐渐普及,许多高校教学管理系统得到广泛应用,学生宿舍管理系统是管理系统的一种,是高校学生宿舍结合网络技术的应用例子。然而,针对高校学生宿舍管理而设计的管理系统十分少见,大多数高校的学生宿舍管理处于人工管理阶段,从管理角度来讲,有一定的缺陷和漏洞,对学生的具体情况,分布等等,不能及时查询,然而,由于手工操作,使得宿舍管理部门的工作人员的劳动量大,存在管理不及时、有一定误差的情况。随着高校信息化发展,人工管理方式必将被淘汰,宿舍工作需要一种新的管理方式。针对学校的实际情况,设计一套针对学生宿舍的管理信息系统是十分必要的。学生宿舍管理系统提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,

1

物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统------学生宿舍管理系统,来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分必要的。

1.3 课题研究的目的和意义 1.3.1 课题研究的目的

学生宿舍管理信息量大,工作量大,采用人工管理方式容易出错,效率低,管理困难,已经不再满足办公自动化和信息化管理的需求。因此,结合学校实际需求,设计并实现学生宿舍管理系统,一方面是为了摆脱现阶段的人工管理方式,实现计算机处理和信息化管理,提高宿舍管理的效率,确保数据正确性,方便数据管理和维护;另一方面是为了满足现代化高校学生宿舍管理的需要,不但能够实现方便快捷的数据管理和维护,而且能够对今后改革和管理进行指导。运用信息技术对教学、学生工作进行管理,是提高工作效率的一种途径。

1.3.2 课题研究的意义

为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统------学生宿舍管理系统,来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分必要的。

专用系统是一个信息管理系统,它将实现检索迅速和查找方便;信息的录入,修改和删除功能;以及对新入校学生进行宿舍安排等功能,学生登录系统可以进行查看宿舍相关信息和查看管理员发布的通知公告的信息。它简化了手工处理的繁琐,提高了效率,确保数据正确性,方便数据管理和维护,使管理工作更加公平化、合理化和科学化。当今社会是知识经济时代,网络化和信息化是基本的存在形式,基于B/S模式的学生宿舍管理系统适应了知识经济时代的要求,充分发挥了人的智力,有效地利用了校园网等资源,促进了科技、经济和人的和谐统一。

2

2 主要开发技术简介

目前有许多软件开发人员都开发了该系统,他们所选择的技术都各有不同。数据库技术方面:可以采用SQL、ACCESS、DB2、ORACLE、MySQL等;应用模式方面:可以采用B/S模式、C/S模式、B/S+C/S混合模式;开发工具方面:可以采用ASP、ASP.NET、PHP、JSP、VB等。这些技术都有这各自的优点和缺点,通过不同的技术的选择搭配,所开发出来的系统的效果也不同。但是根据系统的经济可行性和操作可行性,本系统采用B/S模式,主要利用ASP.NET技术、三层框架技术,并结合C#、JavaScript等基础知识完成。

2.1 ASP.NET 4.0和Microsoft Visual Studio 2010

本系统的设计采用了ASP.NET技术,使用Microsoft Visual Studio 2010集成

开发工具,ASP.NET也对应是4.0版本。ASP.NET是由Microsoft公司提出的动态网站设计技术与程序框架,它带给人们的是全新的技术,和由此产生的开发效率的提高,网站性能的提升。使用ASP.NET提供的内置服务器控件或第三方生成的控件,可以创建既复杂又灵活的用户界面,大幅度减少了生成动态网页所需的代码,同时,ASP.NET能够在服务器上动态编译和执行这些控件代码[2]。ASP.NET的核心是.NET框架,它提供了大量的类库、组件和API等,开发人员可以直接使用。

2.2 C#开发语言

Visual Studio.NET 2010集成了Visual Basic、Visual C#、Visual C++等多种开发语言,本系统开发使用的是C#程序设计语言。C#是一种简单、现代、类型安全和面向对象的程序设计语言,它的优越性得益于.NET平台提供的支持[3]。面向对象语言的特点是抽象性、继承性和封装性,对象、类是基本的概念。对于需要保护的对象的数据,可以封装起来,保证数据和程序的安全性。使用C#语言开发的应用程序具有代码重用、安全性保证、支持跨系统运行的优点[4]。

3

2.3 SQL Server 2005

本系统采用的数据库是SQL Server 2005数据库管理系统,是一个关系型的数据库管理系统,与Visual Studio 2008开发工具紧密集成[5],为开发人员提供更加方便的数据管理方式。SQL Server 2005数据库是一个全面的数据库平台,其数据引擎是企业数据管理解决方案的核心,集成了商业智能工具、分析、报表等功能,为用户提供企业级的数据管理[6]。SQL Server 2005可以为开发人员、数据库管理员、信息工作者以及决策者提供了创新的解决方案,帮助用户从数据中获取更多的收益。SQL Server 2005数据库的数据引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能 的数据应用程序。

2.4 三层架构

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。

三者具体应用的原则是:DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理;UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。而各个层之间的引用关系是UI -> BLL -> DAL。

采用三层结构的技术使系统具有性能好,安全性强,可维护性高,扩展性强,高内聚,低耦合等优点。系统根据面向对象的思想,采用此三层架构技术对系统的代码进行分层封装,这样大大提高代码的重用率,使其整体上更加简洁和有效。

2.5 B/S体系结构

本系统是一个基于Web技术的管理信息系统,采用B/S体系结构,即

Browser/Server结构,它实质也是一种客户端/服务器结构,只不过它的客户端是浏览器。在B/S体系结构中,用户通过浏览器向Web服务器发出请求,服务器对浏览器的请求进行处理,然后将处理结果返回到浏览器并通过HTML呈现给

4

用户。采用该体系结构的系统具有以下优点:

 无需开发客户端软件,维护和升级方便;

 可跨平台操作,任何一台机器只要装有WWW浏览器软件,都可以作为

客户机访问系统;

 具有良好的开放性和可扩充性;

 可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理

信息系统的新需求[7]。

B/S体系结构是一种三层结构,即表示层、应用逻辑层、数据层,如下图2-1所示:

图2-1 B/S体系结构

客户端 (表示层) 服务器 (应用逻辑层) 数据库服务器 (数据层) 表示层主要为客户端提供应用程序的访问入口,传递用户的请求以及返回请求处理后的数据;服务器主要是响应客户端发来的请求并进行处理,然后将处理的结果返回到客户端;数据层为服务器进行数据查询和操作提供数据服务[8]。三层结构是一种逻辑上的结构,各自分工,减轻了服务器的负担。

2.6 数据库访问技术——ADO.NET

2.6.1 ADO.NET概述

ADO.NET是.NET 框架提供的数据访问的类库,对Microsoft SQL Server、Oracle、OLEDB等数据源提供一致的访问,应用程序使用ADO.NET连接到这些数据源,并查询和更新所包含的数据[9]。本系统实现时的数据访问是通过ADO.NET进行的,它可以使系统从SQL Server数据源中快速访问数据。ADO.NET用于数据访问的类库包含.NET 框架数据提供程序和DataSet两个组件。.NET 框架数据提供程序包含四个核心的类,分别是Connection类、Command类、DataReader类和DataAdapter类。DataSet是ADO.NET的核心组件,专门用来处理数据源中读出的数据,是独立于数据源的数据访问形式。

5

2.6.2 数据库连接

连接数据库使用ADO.NET的Connection类,通过Connection对象实现应用程序与数据之间的通信,连接到指定的数据源。该对象的ConnectionString属性用于获取或设置打开数据库连接的字符串,然后通过调用Open()方法打开数据库连接,进行数据访问。不同的.NET 数据提供程序使用不同的Connection类进行连接,本系统采用SQL Server数据库管理系统,因此使用SqlConnection类的对象连接数据库。

2.6.3 执行数据操作

从数据库中读取到数据以后,需要对数据进行操作,包括查询、添加、删除和修改的操作,Command对象就是用于执行对数据操作命令的。先创建Command对象,通过该对象的CommandText属性传递sql语句,然后执行数据操作命令。

2.6.4 数据绑定

数据绑定是ASP.NET环境中提供的多种服务器控件使程序员更加快速高效地完成数据的呈现,复杂的数据绑定控件还提供了大量的功能实现对数据的操作,例如排序、新增、修改和删除等,使数据的呈现和操作变得更加简单灵活[12]。这些数据绑定控件的实现过程是先查询返回要呈现的数据源,填充到DataSet对象或者DataTable对象,然后将其设置为绑定控件的DataSource属性,调用DataBind()方法即可将指定数据源绑定显示。本系统主要使用了DropDownList、GridView控件等。

6

3 系统分析

3.1 系统概述

本系统根据学生宿舍管理实际需求把学生宿舍管理系统的用户分为学生、维修人员、管理员。本系统主要具备的以下功能:刚入学的新生不需要登录系统,直接点击登录界面的“新生指南”就可以进入新生管理界面,指导新生下载相应的资料,从而查看本人的相关信息,再使用本系统;学生具有完善个人资料、宿舍相关信息查询、水电费查询、浏览和下载通知公告、阅读相关公告和信息平台、报修登记和查询、留校登记、晚归查询、文明宿舍查询、违规宿舍查询、留言、快速导航的功能;维修人员具有查询学生上报维修信息的情况、审核维修信息、处理维修信息的功能;管理员具有宿舍管理、登记管理、公告栏管理、班级管理、信息查询、留言管理、资料管理、系统管理的功能。

本系统是一个采用ASP.NET技术开发的Web应用系统,方便使用,简单快捷。

本系统应该达到以下要求:

1、系统能够提供友好的用户界面,使操作人员的工作量最大限度地减少。 2、系统具有良好的运行效率,能够达到提高效率的目的。

3、系统具有良好的可扩充性,可以在原有的功能基础上进行扩充。

3.2 需求分析

3.2.1功能需求

学生宿舍管理系统充分利用计算机的功能实现对信息管理、信息录入、信息查询、信息修改、信息打印等的自动化控制,将会使学生宿舍管理工作大大减轻,方便友好的信息管理用户界面,简便的操作,完善的数据库管理,将会使得信息管理系统应用于现代化学生宿舍管理中,成为管理人员的得力助手。

对于本系统,用户的权限主要分为学生、维修人员、管理员。

 学生:完善个人资料;宿舍查询;水电费查询;浏览通知公告;下载重

要文件;阅读相关公告和信息平台;报修登记和查询;留校登记;晚归

7

查询;文明宿舍查询;违规宿舍查询;留言;快速导航。

 维修人员:查询学生上报维修信息的情况;审核维修信息;处理维修信

息。  管理员:

 宿舍管理:宿舍分配;学生入住安排;

 登记管理:宿舍违规管理;水电费管理;夜归统计;评分录入;来

访登记;

 公告栏管理:公告上传;在线编辑;  班级管理:学院管理;专业管理;

 信息查询:学生信息查询;辅导员查询;宿舍信息查询;学生留校

查询;宿舍评分查询;文明宿舍查询;学生夜归查询;来访信息查询;

 留言管理:回复和删除留言的功能;

 资料管理:水电费导出和打印;文明宿舍评分导出和打印;留校统

计导出和打印;

 系统管理:添加用户;密码修改;删除用户;

3.2.2性能需求

本系统由Web服务器和数据库服务器以及客户端(浏览器)组成,对软硬件

环境的要求如下: (1)硬件环境

 处理器:Intel Pentium 4或以上;  内存:256MB或以上;  硬盘空间:80GB以上。 (2)软件环境

 操作系统:建议采用Windows Server 2003/XP/Windows 7;  数据库:Microsoft SQL Server 2005;  浏览器:IE6.0或以上。

操作系统对采用ASP.NET技术开发的本系统影响不是很大,但性能好的操作系统可以使系统运行得更加流畅,减少系统崩溃的可能性[13]。

8

3.3 可行性分析

3.3.1技术可行性

本系统是一个基于B/S模式的管理信息系统,随着Internet技术的快速发展,

B/S模式的系统架构方式已经很成熟。采用ASP.NET技术,为基于Web应用实现动态交互网页提供技术环境支持,MS SQL Server 2005提供良好的数据存储和管理方式,这使得本系统的实施具有可行性。

3.3.2经济可行性

本系统对软硬件的要求不是很高,随着学校信息化管理水平的提供,学校拥有良好的硬件和软件环境,以及畅通的校园宽带,以现有的设备足以配置一个新的系统,并且十分方便,不需要购进新的硬件设备和软件而增加开支。计算机在校园中逐渐普及,学生可以在自己的电脑通过浏览器访问本系统,而无需购买特殊的客户端软件,使用系统很方便。此外,通过本系统开展学生宿舍管理,不必再用手工登记资料,避免人员浪费,也方便对数据的管理,为学生和管理员节省时间,提高了效率。

3.3.3管理可行性

学校已有管理信息系统应用的案例,学生和管理员使用这些管理软件不再是难事。本系统界面友好,操作简单,不需要对学生、管理员进行专门的培训便可掌握使用本系统。学校拥有专业的老师和管理人员,使管理和维护本系统成为可能。

综上所述,学生宿舍管理系统充分利用了计算机软硬件资源和网络资源,技术成熟,成本低廉,操作简单,管理方便,使宿舍管理摆脱手工处理方式,实现自动化处理和信息化管理,因此,本系统的实施是可行的。

9

3.4 系统流程图

学生宿舍管理系统的系统流程图如图3-1所示:

图3-1 学生宿舍管理系统流程图

3.5 系统用例图和用例图分析

3.5.1 客户端用例图

1、刚入学的新生不需要登录系统,直接点击登录界面的“新生指南”就可以进入新生管理界面,并指导新生下载相应的资料,从而查看本人的相关信息,再使用本系统。学生需要登录系统,才可以实现登记,查看等功能。维修人员需要登录系统,才可以查看报修情况,对相应的宿舍报修情况进行审核和处理报修信息。

学生宿舍管理系统客户端用例图如图3-2所示:

10

图3-2 学生宿舍管理系统客户端用例图

2、具体用例描述: 2.1登录

新生刚入学时不知道本人的学号、密码、宿舍号等相关信息,所以不需要登录学生宿舍管理系统,只要在本系统的登录界面点击“新生指南”就可以进入新生管理模块,新生通过浏览入学注意事项,并下载指定的文件来查看本人的学号、密码、宿舍号等相关信息。

学生必须在系统的登录界面输入学号、密码、选择学生角色、验证码,若通过系统验证才可以进入学生宿舍管理系统的学生首页。

维修人员必须在系统的登录界面输入管理员设定的账号与密码、选择维修人员角色、验证码,若通过系统验证则进入学生宿舍管理系统的维修人员主页面。

2.2完善个人资料

学生进入系统后必须完善个人基本信息。具体描述如下:

用例描述:填写基本信息,包括登录密码、确认密码、民族、出生日期、家庭住址、邮箱、辅导员姓名,系统自动显示宿舍号、人数、宿舍电话号码;

执行者:学生;

11

前置条件:学生已登录学生宿舍管理系统;

后置条件:得到修改个人基本信息成功的提示并更新数据库。 基本路径:

a) 进入管理系统,点击导航条的“个人资料”;

b) 填写学生基本信息,包括登录密码、确认密码、民族、出生日期、

家庭住址、邮箱、辅导员姓名;

c) 填写信息经校验合法后,提示修改成功,并存入数据库。 2.3 报修登记

学生需要报修时,只有宿舍长才能进入报修登记界面,系统自动识别学号和姓名,宿舍长需要填入报修的内容,提交报修记录时系统自动存储当前的时间。具体描述如下:

用例描述:宿舍长填入报修的内容; 执行者:宿舍长;

前置条件:学生已登录学生宿舍管理系统; 后置条件:提示提交成功,并存入数据库。 基本路径:

a) 进入管理系统,点击导航条的“报修登记”;

b) 宿舍长需要填入报修的内容,提交报修记录时系统自动存储当前

时间;

c) 系统提示记录成功的信息并存入数据库中。 2.4留校登记

学校放假的时候,留在学校的学生需要登记自己的留校情况,系统自动识别登录学生的学号和姓名。具体描述如下:

用例描述:只有登录者本人才能输入自己的信息; 执行者:学生;

前置条件:学生已登录学生宿舍管理系统; 后置条件:提示登记成功,并存入数据库。 基本路径:

a) 进入管理系统,点击导航的“报修登记”;

12

b) 登录者本人选择放假假期,登记时间;

c) 登记成功后,系统提示登记成功的信息,并显示学号、姓名、班级、

假期、登记时间。

2.5查询

学生在系统中可进行宿舍查询、报修宿舍查询、晚归查询、文明宿舍查询、违规信息查询、水电费查询,根据输入的条件,查找出相应的信息。具体描述如下:

用例描述:学生查询功能; 执行者:学生;

前置条件:学生已登录学生宿舍管理系统; 后置条件:提示查询成功,并显示相应的查询信息。 基本路径:

a) 进入管理系统,点击导航的相应查询功能; b) 输入查询的条件;

c) 点击“搜索”按钮,显示相应的信息。 2.6留言板

学生可对学校存在的情况进行建议或者投诉或者表扬,后台会对留言内容进行过滤非法言语。具体描述如下:

用例描述:学生留言; 执行者:学生;

前置条件:学生已登录学生宿舍管理系统;

后置条件:留言成功后,存入数据库中,并在留言板显示出来。 基本路径:

a) 进入管理系统,点击留言板;

b) 点击“我要留言”,进入留言界面,再输入150字以内的留言,后

台会对留言内容进行过滤非法言语,如:与脏话、色情、政府等相关的信息;

c) 可以重新输入自己不满意的留言,或者删除自己不满意的留言;

13

2.7浏览通知公告

学生进入管理系统,在首页会显示5条最新发布的通知公告,学生可以直接点击标题,就可以浏览相应的通告的内容。具体描述如下:

用例描述:学生浏览通知公告; 执行者:学生;

前置条件:学生已登录学生宿舍管理系统; 后置条件:浏览相应的通知公告。 基本路径:

a) 进入管理系统的首页,点击“通知公告”旁的“更多”;

b) 进入公告栏界面,分页显示所有发布的通知公告的标题和发布时间; c) 点击需要浏览公告的标题,既可以成功浏览公告的内容。 2.8下载通知公告

学生进入管理系统的公告栏界面,可以点击“下载”。具体描述如下: 用例描述:学生下载重要的通知公告; 执行者:学生;

前置条件:学生已登录学生宿舍管理系统;

后置条件:点击“下载”按钮之后,下载文件到用户指定的目录下。 基本路径:

a) 点击要下载的公告;

b) 点击“下载”按钮,选择下载存放路径; c) 提示下载成功信息。 2.9 宿舍维修审核

维修人员登录系统后,可以对学生上报的维修信息进行查看,审核宿舍维修信息。具体描述如下:

用例描述:维修人员对宿舍报修情况进行审核; 执行者:维修人员;

前置条件:维修人员已登录学生宿舍管理系统; 后置条件:审核成功,并存放入数据库。 基本路径:

14

a) 进入维修人员管理界面,搜索宿舍报修信息; b) 对报修情况进行审核并输入维修处理意见; c) 点击“审核”,提示审核成功,并存放入数据库。 3.0 处理维修信息

维修人员登录系统后,对维修人员已经上门维修的信息进行删除。具体描述如下:

用例描述:维修人员处理维修信息; 执行者:维修人员;

前置条件:维修人员已登录学生宿舍管理系统; 后置条件:提示处理成功,并更新数据库。 基本路径:

a) 进入维修人员管理界面,搜索宿舍报修信息; b) 对已经维修的信息进行删除; c) 提示处理成功,更新数据库。

3.5.2 管理端用例图

1、管理员必须在系统的登录界面输入设定的账号与密码、选择管理员角色、验证码,若通过系统验证则进入系统的后台管理主页面。管理员主要有宿舍管理、登记管理、公告栏管理、班级管理、信息查询、留言管理、资料管理、系统管理这8大模块。

学生宿舍管理系统管理端用例图如图3-3所示:

15

图3-3 学生宿舍管理系统管理端用例图

2、具体用例描述: 2.1 宿舍管理

宿舍管理包括宿舍分配和学生入住安排。具体描述如下: 用例描述:宿舍管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台; 后置条件:更新数据库。 基本路径:

a) 进入宿舍管理的宿舍分配,管理员输入宿舍信息,包括宿舍号、宿

舍类别、宿舍人数、宿舍电话,并成功保存入数据库中。 b) 进入宿舍管理的学生入住安排,输入学号、姓名、性别、宿舍号、

宿舍身份,学院名称、专业名称、班级名称3个联动选择; c) 点击“添加”,提示添加成功,显示刚才添加的学生信息并保存入数

据库中,能对相应的信息进行编辑和删除;

16

2.2 登记管理

宿舍管理包括宿舍违规管理、水电费管理、夜归统计、评分录入、来访登记5个小模块。具体描述如下:

用例描述:登记管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台;

后置条件:如果登记信息维护完成,会把相关信息保存入数据库中。 基本路径:

a) 进入登记管理的各个模块,输入相关的信息;

b) 如果登记管理信息维护完成,会把相关信息保存入数据库中。 2.3 公告栏管理

管理员有两种方式上传文件,一种是上传已经存在的文件,另外一种是在线编写通知,根据数据流的方式来保存文件,管理员根据需要来选择这两种方式,并以时间顺序显示上传的文件,可以删除上传的文件。具体描述如下:

用例描述:公告栏管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台;

后置条件:如果公告栏信息维护完成,则上传方式会把相关信息保存在数据库中。

基本路径:

a) 进入公告栏管理的公告上传或者进入公告栏管理的在线编辑; b) 上传文件或者编辑文本,点击上传或保存; c) 可以保存到数据库中。 2.4 班级管理

班级管理包括对学院的管理和对专业的管理,可以在学院的管理中添加、删除、修改、查询学院,可以在专业管理中添加、删除、修改、查询专业。具体描述如下:

用例描述:班级管理; 执行者:管理员;

17

前置条件:管理员已登录学生宿舍管理系统后台;

后置条件:如果学院、专业信息维护完成,则相应信息将记录到数据库中。 基本路径:

a) 分别进入学院管理和专业管理,显示目前系统已经添加了的信息; b) 分别输入信息,显示输入的信息;

c) 如果学院、专业信息维护完成,则相应信息将记录到数据库中。 2.5 信息查询管理

管理员在后台可输入相应的条件进行查询。具体描述如下: 用例描述:信息查询管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台; 后置条件:提示查询成功,并显示相应的查询信息。 基本路径:

a) 进入管理系统的信息查询,输入查询的条件; b) 提示查询成功,并显示相应的查询信息。 2.6 留言管理

管理员可浏览学生的留言,可对学生的留言进行回复和删除。具体描述如下: 用例描述:留言管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台; 后置条件:留言信息维护完成,则更新数据库。 基本路径:

a) 进入留言管理界面,显示目前系统已有的留言; b) 可以回复相应的留言; c) 可以删除不合理的留言。 2.7 资料管理

使用水晶报表对水电费表、文明宿舍表、留校表进行显示,管理员可以对水电费表、文明宿舍表、留校表进行导出和打印。具体描述如下:

用例描述:资料管理;

18

执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台; 后置条件:导出到用户指定的目录下或打印出表。 基本路径:

a) 进入相应的资料管理界面,显示目前系统的信息; b) 点击报表的“导出”和“打印”; c) 导出表到用户指定的目录下,打印出表。 2.8 系统管理

管理员可以对用户信息进行查看、添加、删除、修改。具体描述如下: 用例描述:系统管理; 执行者:管理员;

前置条件:管理员已登录学生宿舍管理系统后台;

后置条件:如果用户信息维护完成,则用户的相应信息将记录到数据库中。 基本路径:

a) 进入系统管理界面,显示目前系统的用户的信息; b) 可以添加用户账号、用户密码、用户姓名、用户类型; c) 可以删除和修改用户;

19

4 系统总体设计

4.1 总体设计概述

系统设计是系统开发过程中的核心,从需求出发,总体上描述系统架构应该

包含的组成要素。架构是指将应用系统的每个功能部分分解到独立的组件中,并将各种组件划分到各个逻辑层中[14]。本系统采用三层架构,它将系统的功能单元分到三个逻辑层中,是为了便于开发项目后维护及变更的一种有效实用的架构模式,在各种B/S项目中被广泛的采用。

学生宿舍管理系统的整体架构设计如图4-1所示:

图4-1 学生宿舍管理系统整体架构设计

本系统采用了三层架构,对其进一步细化分层,可得出如下的层次结构:  数据访问层(DAL):主要是对数据的增、删、改、查操作,负责保存系

统的数据,并当有请求时把它们发送给业务层。

 业务逻辑层(BLL):包含了项目中的业务逻辑,负责调用DAL中的方

法实现业务的处理,并在表示层与数据访问层之间起到衔接的作用。  表示层(webUI):用于显示数据和接受用户输入数据的一层,即为用户

界面。

在三层架构模型中,有一个很重要的约束是在层之间的数据传递必须遵从特定的顺序。表示层只能访问业务层,而永远不能直接访问数据层。业务层就像中间的“大脑”,负责与其他层通信,处理和协调所有信息流。

20

4.2 功能模块设计

4.2.1系统层次模块图

学生宿舍管理系统主要有3个角色:学生、维修人员、管理员。本系统主要具备以下功能:刚入学的新生不需要登录系统,直接点击登录界面的“新生指南”就可以进入新生管理界面,指导新生下载相应的资料,从而查看本人的相关信息,再使用本系统;学生具有完善个人资料、宿舍相关信息查询、水电费查询、浏览和下载通知公告、阅读相关公告和信息平台、报修登记和查询、留校登记、晚归登记和查询、文明宿舍查询、违规宿舍查询、留言;维修人员具有查询学生上报维修信息的情况、审核维修信息、处理维修信息;管理员具有宿舍管理、登记管理、公告栏管理、班级管理、信息查询、留言管理、资料管理、系统管理。

学生宿舍管理系统客户端总体功能结构图如图4-2所示:

图4-2 学生宿舍管理系统客户端总体功能结构图

21

学生宿舍管理系统管理端总体功能结构图如图4-3所示:

图4-3 学生宿舍管理系统管理端总体功能结构图

4.3 数据库设计

4.3.1 数据库管理系统的选择

数据库技术是信息资源管理最有效的手段,是建立数据库及其应用系统的核心和基础。它要求对于指定的应用环境,构造出较优的数据库模式,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息,满足用户的各种应用需求(信息要求、处理要求、数据的及时性要求) [15] 。

一个好的数据库管理系统对管理信息系统的应用有着举足轻重的影响。在数据库管理系统的选择上,主要考虑:(1)数据库的性能;(2)数据库系统的系统平台;(3)数据库管理系统的安全保密性能;(4)数据的类型。目前市场上的数据库产品有IBM DB2、Microsoft SQL Server、Oracle等系列,这些产品都是基于SQL语言,并且拥有精密复杂的安全控制以适应不同的商业需要。本系统采用Microsoft SQL Server数据库系统,性能优越,安全性高,而且与服务器Microsoft操作系统和ASP.NET技术平台结合性好,既可以使用Visual Studio 2010集成的数据库系统,又可以使用独立的数据库管理软件管理本系统的数据。

22

4.3.2 数据库的概念结构设计

概念设计用来反映现实世界中的实体、属性和它们之间的关系的数据形式,建立数据库的每一幅用户视图。实体是客观存在并可相互区别的事物,可以是具体的人、事、物,也可以是抽象的概念或联系。实体所具有的某一特性称为属性,一个实体可以由若干个属性来刻画。实体与实体之间存在着联系,分为一对一、一对多、多对多联系三种。

E-R图所表示的概念模型与具体的DBMS所支持的数据模型相独立,是各种数据模型的共同基础,因而是抽象和描述现实世界的有力工具[16]。E-R图用矩形表示实体,菱形表示实体之间的关系,无向边把菱形和实体连接起来。

学生宿舍管理系统的ER图如图4-4所示:

图4-4 数据库ER图

23

ER图各实体的具体属性如下:

1、 管理员:用户号、用户名、登录密码、用户类型;

2、 学生:学号、学生姓名、登录密码、性别、民族、出生日期、家庭地址、

邮箱、入学时间、班级ID、宿舍ID、辅导员、宿舍身份; 3、 班级:班级ID、班级、专业ID; 4、 专业:专业ID、专业、学院ID; 5、 学院:学院ID、学院;

6、 宿舍:宿舍ID、宿舍号、宿舍类别、宿舍人数、宿舍电话;

7、 留言:留言ID、学号、留言标题、留言时间、留言内容、回复人、回复

内容、回复时间;

8、 水电费:水电费ID、宿舍ID、学年、学期、水表数、电表数、总费用; 9、 宿舍报修:报修ID、学号、内容、报修登记时间、审核、审核时间、审

核意见;

10、 宿舍违规:违规ID、宿舍ID、违规内容、违规时间; 11、 晚归:晚归ID、学号、原因、时间;

12、 宿舍评分表:宿舍评分表ID、宿舍评分、学年、学期、宿舍ID、是

否文明宿舍;

13、 来访:来访ID、来访姓名、身份证 、学生学号、来访时间; 14、 公告:公告ID、标题、发布公告时间; 15、 图片:图片ID、地址;

16、 留校表:留校ID、学号、学年、留校假期、登记时间。

4.3.3 数据库的逻辑结构设计

数据库的逻辑结构设计是将E-R图进行分解、合并后重新组织起来形成数据

库全局逻辑结构,包括所确定的关键字、属性、记录结构、所建立的数据之间的相互关系。数据的逻辑结构用二维表表示,本系统涉及的表主要有:

24

(1)管理员表: admin

表4-1管理员表

字段名称 id adminname adminpwd admintype

数据类型 varchar(6) varchar(6) varchar(20) varchar(1)

主/外键 主键 — — —

允许空 no no no no

说明 用户号 用户名 登陆密码 用户类型

(2)学生表:users

表4-2学生表

字段名称 useid username userpwd usersex userminzu userbirthday useraddress useremail enterdate classid homeid teacher shenfen

数据类型 varchar(10) varchar(20) varchar(8) varchar(8) varchar(8) varchar(8) varchar(8) varchar(8) varchar(8)

int int varchar(20) varchar(10)

主/外键 主键 — — — — — — — — 外键 外键 — —

允许空 no no no yes yes yes yes yes yes no no yes no

说明 学号 学生姓名 学生密码 性别 民族 出生日期 家庭地址 邮箱 入学时间 班级ID 宿舍ID 辅导员 宿舍身份

(3)班级表:class

表4-3班级表

字段名称 id classname pid

数据类型 int varchar(50)

int

主/外键 主键 — 外键

允许空 no no no

说明 班级ID 班级 专业ID

(4)专业表:profession

表4-4 专业表

字段名称 id profession cid

25

数据类型 int varchar(50)

int

主/外键 主键 — 外键

允许空 no yes yes

说明 专业ID 专业 学院ID

(5)学院表:college

表4-5 学院表

字段名称 id academy

数据类型 int varchal(50)

主/外键 主键 —

允许空 no no

说明 学院ID 学院

(6)宿舍表:home

表4-6 宿舍表

字段名称 homeid homehao homesex homecount homephone

数据类型 int varchar(5) varchar(4) varchar(50) varchar(30)

主/外键 主键 — — — —

允许空 no no no no yes

说明 宿舍ID 宿舍号 宿舍类别 宿舍人数 宿舍电话

(7)留言表:guestbook

表4-7 留言表

字段名称 id userid title edittime content reply rename replytime

数据类型 int varchar(10) varchar(50) varchar(50) varchar(250) varchar(250) varchar(50) varchar(50)

主/外键 主键 外键 — — — — — —

允许空 no no no no no yes yes yes

说明 留言ID 学号 留言标题 留言时间 留言内容 回复内容 回复人 回复时间

(8)水电费:billinfo

表4-8 水电费表

字段名称 id homeid year month watercube electricdegree

cost

数据类型 int int varchar(50) varchar(50)

int int varchar(50)

主/外键 主键 外键 — — — — —

允许空 no no no no no no no

说明 水电费ID 宿舍ID 学年 学期 水表数 电表数 总费用

26

(9)宿舍报修表:homebad

表4-9 宿舍报修表

字段名称 id userid content datatime shenhe time idea

数据类型 int varchar(10) varchar(100) varchar(50) varchar(4) varchar(50) varchar(250)

主/外键 主键 外键 — — — — —

允许空 no no no no yes yes yes

说明 宿舍报修ID

学号 报修内容 报修登记时间

审核 审核时间 审核意见

(10)宿舍违规表:illegal

表4-10 宿舍违规表

字段名称 id homeid homeillegal time

数据类型 int int text varchar(50)

主/外键 主键 外键 — —

允许空 no no no no

说明 宿舍违规ID 宿舍ID 宿舍违规内容 违规时间

(11)晚归表:nightreturn

表4-11 晚归表

字段名称 id userid reason time

数据类型 int varchar(10) varchar(250) varchar(50)

主/外键 主键 外键 — —

允许空 no no no no

说明 晚归ID 学号 原因 时间

(12)宿舍评分表:scores

表4-12宿舍评分表

字段名称 id homescores schoolyear term homeid homeyn

数据类型 int varchar(50) varchar(50) varchar(50)

int varchar(2)

主/外键 主键 — — — 外键 —

允许空 no no no no no no

说明 宿舍评分ID 宿舍评分 学年 学期 宿舍ID 是否文明宿舍

27

(13)来访表:visitors

表4-13 来访表

字段名称 id visitorname idcard visituserid time

数据类型 int varchar(50) varchar(18) varchar(10) varchar(50)

主/外键 主键 — — 外键 —

允许空 no no no no no

说明 来访ID 来访者姓名 身份证 学生学号 来访时间

(14)公告表:news

表4-14 公告表

字段名称 id title createtime

数据类型 int

varchar(100) varchar(50)

主/外键 主键 — —

允许空 no no no

说明 公告ID 公告标题 发布公告时间

(15)图片表:image

表4-15 图片表

字段名称 id url

数据类型 int

varchar(100)

主/外键 主键 —

允许空 no no

说明 图片ID 地址

(16)留校表:leaveschool

表4-16 留校表

字段名称 id userid year holiday time

数据类型 int varchar(10) varchar(50) varchar(50) varchar(50)

主/外键 主键 外键 — — —

允许空 no no no no no

说明 留校ID 学号 学年 留校假期 登记时间

在确定了各个表主键字段的基础上,依据表与表相关字段之间的联系建立各个表之间的关系。

28

学生宿舍管理系统的数据库关系图如图4-5所示:

图4-5数据库关系图

4.3.4 数据库的物理结构设计

信息存储结构的设计在系统的设计中至关重要,要考虑到数据冗余、系统执

行效率、信息控制以及维护等方面的要求。信息的管理离不开数据库的支持,本系统采用Microsoft SQL Server 2005数据库管理系统来组织数据。数据库文件应该存放在非系统卷上,避免系统崩溃时丢失数据。

29

5 详细设计

5.1 系统架构

三层架构通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。

学生宿舍管理系统的系统架构图如图5-1所示:

图5-1系统架构图

5.2 项目结构

学生宿舍管理项目结构图如图5-2所示:

图5-2项目结构图

30

5.3 系统架构web.config配置文件

在建立数据连接之前,首先在web.config配置文件中建立一个连接字符串,然后建立数据库连接。进行web.config配置也是为了方便程序的应用,为版本控制提供更好的支持。另外,系统的实现需要反复查询、操作数据库中的数据,配置统一的连接串减少重复代码的编写,遵循代码重用的原则。web.config配置连接数据库代码如下:

Catalog=studenthome;Integrated Security=True\"/>

5.4 SQLHelper类的介绍

SQLHelper类的作用是数据库操作组件,组件中包含了数据库的操作方法,

用于简化那些数据库操作的代码。

SQLHelper类主要代码如下:

#region

public class SQLHelper {

private SqlConnection conn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null; public SQLHelper() {

//获取web.config配置的数据库连接串

string connStr =

ConfigurationManager.ConnectionStrings[\"connStr\"].ConnectionString; conn = new SqlConnection(connStr); //连接数据库 }

private SqlConnection GetConn() {

if (conn.State == ConnectionState.Closed)//状态的改变 {

conn.Open(); }

return conn; }

31

///

/// 执行不带参数的增删改SQL语句,并且返回受影响的行数 ///

/// 增删改SQL语句 /// 命令类型 ///

public int ExecuteNonQuery(string cmdText, CommandType ct) {

int res; try {

cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; res = cmd.ExecuteNonQuery(); }

catch (Exception ex) {

throw ex; } finally {

if (conn.State == ConnectionState.Open) {

conn.Close(); } } return res; }

///

/// 执行带参数的增删改SQL语句,并且返回受影响的行数 ///

/// 增删改SQL语句 /// 命令类型 ///

public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct) {

int res; try {

cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); }

32

catch (Exception ex) {

throw ex; } finally {

if (conn.State == ConnectionState.Open) {

conn.Close(); } } return res; }

///

/// 执行查询SQL语句,并返回数据集 ///

/// 查询SQL语句 /// 命令类型 ///

public DataTable ExecuteQuery(string cmdText, CommandType ct) {

DataTable dt = new DataTable();

cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct;

using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) {

dt.Load(sdr); } return dt; }

///

/// 执行带参数的查询SQL语句 ///

/// 查询SQL语句 /// 参数集合

/// 命令类型

///

public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct) {

DataTable dt = new DataTable();

cmd = new SqlCommand(cmdText, GetConn()); cmd.CommandType = ct; cmd.Parameters.AddRange(paras);

using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))

33

{

dt.Load(sdr); } return dt; }

#endregion

5.5 系统主要功能的实现

5.5.1 用户登录

5.5.2 新生角色功能模块实现

新生刚入学时不知道本人的学号、密码、宿舍号等相关信息,所以不需要登录学生宿舍管理系统,只要在本系统的登录界面点击“新生指南”就可以进入新生管理模块,新生通过浏览入学注意事项,并下载指定的文件来查看本人的学号、密码、宿舍号等相关信息。

新生进入系统的首页如图5-4所示:

5.5.3 学生角色功能模块实现

学生登录系统后,进入首页界面如图5-5所示:

图5-5学生角色首页界面

学生具体功能包括:在个人资料中修改密码和完善个人信息,可以进行报修登记、报修查询、留校登记、宿舍查询、晚归查询、文明宿舍查询、违规信息查询、水电费查询、浏览通知公告、下载通知公告、阅读服务指南和信息平台、快速导航到本学校的系统、留言。

学生角色的关键模块的具体实现: (1) 水电费查询:

学生登录系统后,可以对本宿舍的水电费用情况进行查询,学生选择宿舍号、学年、月份范围就可以查询相应的信息,也可以分别查询大学四年宿舍的水电费

34

用情况。

水电费查询如图5-6所示:

图5-6水电费查询界面

水电费查询实现的主要代码如下:

#region

HomeManager home = new HomeManager();//创建HomeManager的一个对象 billinfo bill = new billinfo();//创建Mode类库中的billinfo类的一个对象 protected void btnSelect_Click(object sender, EventArgs e) {

bill.Homeid = ddlHomehao.SelectedValue.ToString();//选中的ddlHomehao中选项的值 bill.Year = ddlYear.Text.ToString(); bill.Month = ddlMonth.Text.ToString();

//调用BLL层下的HomeManager 的SelectBillInfo1(bill)方法 griddata.DataSource = home.SelectBillInfo1(bill); griddata.DataBind(); if (griddata.Rows.Count == 0) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert(“查询失败”);\"); } else {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert(“查询成功”);\"); } }

#endregion

BLL层的HomeManager的部分代码:

#region

public DataTable SelectBillInfo1(billinfo bills) {

return home.SelectBillInfo1(bills); } #endregion

35

DAL层的HomeDAO的部分代码:

#region ///

/// 查询水电费信息 ///

/// ///

public DataTable SelectBillInfo1(billinfo bills)

{

DataTable dt = new DataTable();

string sql = \"select b.*,h.homehao from billinfo as b join home as h on b.homeid=h.homeid

where h.homeid=@homeid and year=@year and month=@month\";

SqlParameter[] paras = new SqlParameter[] { new SqlParameter(\"@homeid\new SqlParameter(\"@year\new SqlParameter(\"@month\};

dt = sqlhelper.ExecuteQuery(sql, paras, CommandType.Text); return dt; } #endregion

(2) 下载重要的通知公告:

学生在首页的通知公告,点击“更多”进入公告栏的公告下载界面,会看到管理员最新发布的公告和文件,学生点击“下载”按钮就可以下载重要的文件。

下载通知公告如图5-7所示:

图5-7下载通知公告界面

下载重要的通知公告实现的主要代码:

href='newscontent.aspx?title=<%#Eval(\"title\")

%>'

target=\"_self\"

title='<%#

Eval(\"title\") %>'><%# StringTruncat( Eval(\"title\").ToString(), 15 , \"...\") %>

#region

/// 将指定字符串按指定长度进行剪切

public static string StringTruncat(string oldStr, int maxLength, string endWith) {

if (string.IsNullOrEmpty(oldStr))//原字符串是null还是Empty字符串 throw new NullReferenceException(\"原字符串不能为空\"); if (maxLength < 1)

throw new Exception(\"返回的字符串长度必须大于0 \");

36

if (oldStr.Length > maxLength) {

//从0开始的长度为maxLength的子字符串

string strTmp = oldStr.Substring(0, maxLength); if (string.IsNullOrEmpty(endWith)) return strTmp; else

return strTmp + endWith;//如果超过长度,返回截断后的新字符串加上后缀 }

return oldStr;//如果没有超过长度,返回原字符串

}

protected void Button1_Command(object sender, CommandEventArgs e)//流方式下载文件 {

if(e.CommandName.ToLower().Equals(\"download\")) //Button 控件的命令名

{

//文件的名字等于CommandArgument 属性,CommandArgument 属性绑定title

string fileName = e.CommandArgument.ToString();

string filepath = Server.MapPath(\"..\\\\files\\\\\");//取得该站点下files虚拟路径的物理地址 FileStream fs = new FileStream(filepath + fileName, FileMode.Open);//创建文件流 byte[] bytes = new byte[(int)fs.Length];//创建字节数组

fs.Read(bytes, 0, bytes.Length);//从文件流中读取数据并保存到字节数组中 fs.Close();//关闭文件流

HttpContext.Current.Response.ContentType = \"application/octet-stream\"; //通知浏览器下载文件而不是打开

HttpContext.Current.Response.AddHeader(\"Content-Disposition\ filename=\" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); HttpContext.Current.Response.BinaryWrite(bytes); HttpContext.Current.Response.Flush(); } }

#endregion

(3) 学生报修登记:

报修登记只能是宿舍的宿舍长才能进入登记报修界面,系统自动识别宿舍长的学号、姓名,宿舍长只需要输入需要报修的内容,系统自动记录此次宿舍长报修的时间,点击“提交”,就可以存入数据库中。

报修登记界面如图5-8所示:

图5-8报修登记界面

37

报修登记实现的主要代码:

#region

protected void btnUp_Click(object sender, EventArgs e) {

if (this.IsValid) {

homebad hb = new homebad();

HomeManager hm = new HomeManager(); hb.Userid = this.txtuserid.Text.ToString(); hb.Content = this.txtcontent.Text.ToString(); hb.Homeid=Convert.ToString(Session[\"homeid\"]); hb.Datatime = DateTime.Now.ToLocalTime().ToString(); try {

bool b = hm.Insert(hb); if (b) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\添加成功!');\"); } }

catch (Exception) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\\"\"); } }

}

#endregion

5.5.4 维修人员角色功能模块实现

维修人员需要在系统的登录界面输入用户名、密码、选择登录类型、输入验证码,通过系统验证后就可以进入维修人员界面,以下是维修人员登录后的界面和维修审核界面。

登录后的首页如图5-9所示:

图5-9维修人员首页

维修审核如图5-10所示:

图5-10维修人员维修审核界面

38

5.5.5 管理员角色功能模块实现

管理员登录系统后,进入后台管理首页界面,如图5-11所示:

图5-11管理员角色首页界面

管理员的功能包括8大模块:宿舍管理、登记管理、公告栏管理、班级管理、信息查询、留言管理、资料管理、系统管理。

管理员角色的关键模块的具体实现: (1) 学生入住安排:

学生入住安排是管理员录入学生的基本信息和安排学生入住宿舍,包括学号、姓名、性别、宿舍号、宿舍身份、学院名称、专业名称、班级名称。学院名称、专业名称、班级名称实现三级联动选择。管理员添加数据时,会显示最新添加的数据。

学生入住安排如图5-12所示:

图5-12学生入住安排界面

学生入住安排实现的主要代码:

#region

StudentManager stu = new StudentManager(); users user = new users();

protected void btnadd_Click(object sender, EventArgs e) {

user.Userid = txtUserid.Text.ToString().Trim();

user.Username = txtUsername.Text.ToString().Trim(); user.Userpwd = txtUserid.Text.ToString().Trim();

user.Usersex = ddlUsersex.SelectedItem.ToString();//获取列表控件中的选定项 user.Homeid = DropDownList1.SelectedValue.ToString();//获取列表控件中选定项的值 user.Shenfen = ddlHomeshenfen.SelectedItem.ToString();

user.Classid= ddlClassname.SelectedValue.ToString();

try

{

bool b = stu.InsertSimpleUser(user); if (b) {

39

databindlist();

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert('添加成功!');\"); }

}

catch (Exception) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert('学号已经存在,不能重复添加!');\"); }

txtUserid.Text = \"\"; txtUsername.Text = \"\";

ddlHomeshenfen.Text = \"请选择\"; DropDownList1.Text = \"请选择\"; ddlCollege.Text = \"请选择学院名\"; }

protected void ddlCollege_SelectedIndexChanged(object sender, EventArgs e)

{

//根据学院的名称来查询专业的信息

ddlZhuanye.DataSource = stu.SelectCollegeName(ddlCollege.SelectedItem.ToString()); ddlZhuanye.DataTextField = \"profession\"; ddlZhuanye.DataBind();

ddlZhuanye_SelectedIndexChanged(sender, e); }

protected void ddlZhuanye_SelectedIndexChanged(object sender, EventArgs e) {

ddlClassname.DataSource = stu.SelectClassInfo(ddlZhuanye.SelectedItem.ToString()); ddlClassname.DataTextField = \"classname\";//显示字段 ddlClassname.DataValueField = \"id\";//值字段 ddlClassname.DataBind(); }

#endregion

(2) 水电费管理

登记管理中的水电费管理是管理员的重要功能之一,管理员选择宿舍号,学年、月份范围、输入电表数和水表数,就可以成功记录学生宿舍在这个学年的费用。输入的时候若重复输入相同的宿舍号、学期、月份范围,系统会提示重复登记。

水电费管理界面如图5-13所示:

图5-13水电费管理界面

40

水电费管理实现的主要代码:

#region

HomeManager home = new HomeManager(); billinfo bill = new billinfo();

protected void btnadd_Click(object sender, EventArgs e) {

bill.Homeid=ddlHomehao.SelectedValue.ToString(); bill.Year = ddlYear.SelectedItem.ToString(); bill.Month = ddlMonth.SelectedItem.ToString(); bill.Watercube = txtWater.Text.ToString(); bill.Electricdegree = txtElectric.Text.ToString(); bill.Cost =

cost( Convert.ToInt32(txtWater.Text.ToString()),Convert.ToInt32(txtElectric.Text.ToString())); string b = home.InsertBill(bill);

if (b.Equals(\"success\"))//是否具有相同的值 {

griddata.DataSource = home.SelectBillInfo(ddlHomehao.SelectedValue.ToString()); griddata.DataBind();

Label1.Text = \"合计为\"+bill.Cost; }

else if (b.Equals(\"exist\")) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert('重复登记,登记失败!');\"); }

txtWater.Text = \"\"; txtElectric.Text = \"\"; }

protected string cost(int water,int electric) {

double all = (water - 8) * 1.48 + (electric - 180) * 0.75;//水电费计算公式 return all.ToString();

} #endregion

DAL层的HomeDAO的部分代码:

#region ///

/// 使用存储过程插入水电费信息 ///

/// ///

public string InsertBill(billinfo bill) {

41

try {

string sql = \"exec P_InsertBillinfo

@homeid,@year,@month,@watercube,@electricdegree,@cost\"; SqlParameter[] paras = new SqlParameter[] { new SqlParameter( \"@homeid\ new SqlParameter(\"@year\ new SqlParameter(\"@month\ new SqlParameter(\"@watercube\ new SqlParameter(\"@electricdegree\ new SqlParameter(\"@cost\ };

DataTable dt = sqlhelper.ExecuteQuery(sql, paras, CommandType.Text); return dt.Rows[0][0].ToString(); }

catch (Exception e) {

throw e; }

}

#endregion

数据库中的存储过程:

create PROCEDURE [dbo].[P_InsertBillinfo]

@homeid int, @year varchar(50), @month varchar(50), @watercube int, @electricdegree int, @cost varchar(50) AS BEGIN

declare @result varchar(10) //当存在指定数据时,返回1

if exists(select 1 from dbo.billinfo where homeid=@homeid and [year]=@year and else

begin

insert into begin end

set @result='exist'

[month]=@month)

dbo.billinfo(homeid,[year],[month],watercube,electricdegree,cost)values(@homeid,@year,@month,@watercube,@electricdegree,@cost)

set @result='success'

42

END

end

select @result

(3) 公告上传:

管理员可以上传重要的、紧急的文件,上传后的文件显现在前台,给学生浏览或者下载。

公告上传界面如图5-14所示:

图5-14公告上传界面

公告上传实现的主要代码:

#region

NewsManager news = new NewsManager(); news ne = new news();

protected void Button1_Click(object sender, EventArgs e) {

ne.Title = FileUpload1.FileName.ToString();//得到上传的文件名

ne.Createtime = DateTime.Now.ToLocalTime().ToString();//取得当前系统日期和时间 try {

bool b = news.InsertNews(ne); if (b) {

if (FileUpload1.HasFile == true)//是否包含文件 {

string fileName = FileUpload1.FileName;//得到上传的文件名 //保存到指定的目录

FileUpload1.SaveAs(Server.MapPath((\"../files/\") + fileName));

}

griddata.DataSource = news.SelectNews(); griddata.DataBind();

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert('上传成功!');\"); }

43

}

catch (Exception ex) {

Label1.Text = \"上传失败!\"; } }

#endregion

(4) 在线编辑

管理员可以在编辑器中直接输入通知公告,点击“发布”就可以把文件上传到系统的一个文件夹内。

在线编辑界面如图5-15所示:

图5-15在线编辑界面

在线编辑器实现的主要代码:

#region

protected void Button1_Click(object sender, EventArgs e) {

string str = Editor1.Text; FileStream FS = null; StreamWriter SW = null; try {

string title = txttile.Text.ToString().Trim();

//新建文件流

FS = new System.IO.FileStream(AppDomain.CurrentDomain.BaseDirectory + \"files\\\\\"+title+\".txt\ SW = new System.IO.StreamWriter(FS);//创建流写入器 //写入信息 SW.Write(str);

newss.Createtime = DateTime.Now.ToLocalTime().ToString(); newss.Title = txttile.Text.ToString().Trim()+\".txt\"; bool b = news.InsertNews(newss); if (b) {

Page.ClientScript.RegisterStartupScript(Page.GetType(), \"message\language='javascript' defer>alert('发布成功!');\"); } }

catch (Exception ex) {

throw ex;

44

} finally {

SW.Flush();//用于将缓冲区的所有数据真正写入到文件中 SW.Close();//关闭写入器

FS.Close();//关闭文件流 } }

#endregion

(5) 留言管理

管理员可以对学生的留言进行回复或者删除,对学生的投诉或者建议是以留言的时间进行排序的。

留言管理如图5-16所示:

图5-16留言管理界面

(6) 资料管理

资料管理中的水电费表的导出和打印是使用水晶报表来实现的,管理员可打印或者导出学生的水电费表,让每个宿舍都能拿到相关的信息。

水电费表打印导出如图5-17所示:

图5-17水电费表打印导出界面

水电费表打印导出实现的部分代码:

#region

HomeManager home = new HomeManager(); protected void Page_Load(object sender, EventArgs e) {

ReportDocument optDoc = new ReportDocument();

optDoc.Load(Server.MapPath(\"..\\\\admin\\\\CrystalReport.rpt\")); optDoc.SetDataSource(home.SelectBillInfo()); CrystalReportViewer1.ReportSource = optDoc; }

#endregion

45

6 系统测试

系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试的对象不仅仅是源程序,而是整个软件,即程序和文档。系统测试的目的是发现软件的错误,系统测试中可能发现的错误包括:功能错误、系统错误、过程错误、数据错误、编码错误。

在系统测试工作中,要事先准备好测试方案和测试数据,并在测试过程中如实填写测试记录,以便于进行系统的更新和维护。

在本系统的测试过程中,我运用了各种系统测试方法,对整个系统的主页、各功能模块及页面、数据库操作、程序代码和整体功能分别进行了详细的测试,保证了系统的质量、可靠性和可维护性。

本系统经过测试,是可以使用,并且不存在大的bug。

46

参考文献

[1] 于盛军. 高校学生宿舍管理研究[D]. 大连理工大学 2003

[2] 陈伟,卫琳,唐国良,等.ASP.NET 4.0网站开发实例教程[M].北京:清华大学出版社,2010:3-5.

[3] John Kauffman,Brian Matsik. ASP.NET Databases using C#[M].Wrox Press Ltd,2004.

[4] 邱锦纶,曹渂编.Visual C#.NET程序设计教程[M].北京:清华大学出版社,2008:12-18.

[5] 李琳. SQL Server 2005在.NET中的应用[D].常州:常州工程职业技术学院,2007.

[6] 托尔.SQL Server 数据库基础大型作业[D].河南:河南工业职业技术学院,2010.

[7] 韩万江.软件工程案例教程[M].北京:机械工业出版社,2010:83-84. [8] 张淑荣,苏兵.C/S与B/S两种软件体系结构[J].电脑学习,2010,(6):1-2. [9] Kevin Hoffman,Lonny Kruger.C#.NET 技术内幕[M].北京:北京清华大学出版社,2004.

[10] 陈志坚.ASP.NET数据绑定技术的分析与研究[D].山西:晋城职业技术学院,2010.

[11] 房大伟,庞娅娟.ASP.NET开发典型模块大全[M].北京:人民邮电出版社,2010:53-54.

[12] 周红翠.关于ADO.NET中利用DataAdapter进行数据操作的探讨[J].呼伦贝尔学院学报,2010,18(3):75-76.

[13] 黄明,梁旭,段竹.ASP.NET 2.0+SQL Server中小型信息系统开发案例精选[M].北京:机械工业出版社,2007:14-15.

[14] (美)Cristian Darie, Beginning ASP.NET E-Commerce in C# From Novice to Professional [M]. 北京:人民邮电出版社,2010.

47

[15] 王珊,萨师煊.数据库系统概论[M].高等教育出版社,2006-05.

[16](美)RodStephens.数据库设计解决方案入门经典[M].清华大学出版社,2010.

48

因篇幅问题不能全部显示,请点此查看更多更全内容

Top