学生宿舍管理系统的设计与实现
摘 要:现如今高校大学生越来越多,寝室压力巨大,学生不好管理。学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条条的查找,这样不但麻烦还浪费了许多时间,效率也比较低。本文构建了一个基于B/S模式的学生宿舍管理系统,为学生、学校和宿管阿姨搭建了一个灵活自由并且安全可靠的管理平台。本文着重论述了系统的模块设计、数据流程和功能实现。本系统一共设计3种用户的登录了其功能包括寝室宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、账户密码的修改等功能。包括如何运用JAVA、JavaScript、JSP等关键技术建立网上购物系统,并在web服务器上配置SSL以保证敏感信息的安全传输。
关键词: 学生宿舍;数据库;学校管理;
1.课程设计目的
当今社会是飞速进步的世界,原始的记录方式已经被社会所淘汰了,计算机化管理正是适应时代的产物。信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。我们针对如此,设计了一套学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。本系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。
2.需求分析
软件旨在宿舍管理全部电脑化。它主要可以更快地了解到每个学生的住宿情况,使宿舍的管理效率更高,做的更好!宿舍管理系统是一个现代化软件,他通过集中式的信息数据库将各种档案管理功能结合起来,达到共享数据,降低成本,提高效率,改进服务等目的。
在整体设计中,我们将宿舍管理系统分为四个页面:登录页面、系统管理员页面,宿舍管理员页面、学生页面下面将具体进行介绍每个页面的功能。
登录页面的功能包括:用户登录、选择用户类型、记住用户三个功能。
系统管理员页面功能包括:宿舍管理员管理、学生管理、宿舍楼管理、缺勤记录、账户密码的修改、退出系统六个功能。
宿舍管理员页面功能包括: 学生查看、缺勤记录、修改密码、退出系统四个功能。
具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据,例如:学生信息查询子模块。
学生信息查询子模块运行时,通过用户界面与sql2000学生信息数据库链接,搜索与用户输入的学生信息管理子模块。
信息更新(添加、删除、修改)子模块运行时,学生信息管理员通过管理界面接口与数据链接,进行对学生信息的更新,和相关数据的操作。
主界面登录:是本系统的主界面,在该界面中,用户可以选择所要进行的操作如:数据录入,数据查询,数据统计等操作。
系统后台:主要是数据库的逻辑关系的建立,和重要信息的存储管理,通过主界面对后台数据信息进行管理,比如:信息的录入、修改、删除等操作。
数据库需求分析调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的需求。
信息需求:指用户需要从数据库中获得信息的内容与性质,即在数据库中需要存储哪些数据。
处理要求:指用户需要完成什么处理能力。明确用户对数据有什么样的处理要求从而明确数据之间的关系。
本课程的功能集中表现为数据的查询,更新和维护,因此需求集中表现为对“数据”的需求。根据登陆身份不同显示不同的功能项,以及所能进行的操作。
概念结构设计是将缝隙得到的用户需求抽象为概念模型的过程,他是整个数据库设计的关键。
学生宿舍管理系统中管理权限上应当进行严格控制,具体思想如下:
1.要想对该学生宿舍管理系统进行操作就应当具有某些操作权限。没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性。
2.在上述要求基础上可以为该系统设定多种登录方式,程序开始运行所有功能将是不可使用的,只有系统管理员登录和普通用户登录两个窗口可以使用,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统。
3.在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于用户管理模块是无权使用的。
本系统可以实现许多性能特性,如:实用性、灵活性、可扩展性、易维护性、可靠性等等。 实用性是衡量一个应用系统好坏的重要指标。是否与业务紧密结合,是否具有严格的业务针对性,是系统成败的关键。本系统提供了灵活的查询模块可查询同学的联系方式、学生违纪、留言板等信息,灵活组合条件,进行组合查询,达到提高查询效率、界面直观的效果。随着系统应用的普及和推广,系统功能的扩展将是不可避免的,因此,提高系统的可扩展性、可维护性是提高整个系统性能的必然要求。 本系统采用模块化的设计思想,在结构上具有良好的可伸缩性,使用者可根据实际业务需要扩展模块。本系统采用多层架构设计,使系统结构更清楚,分工更明确,有利于后期的维护
4.程序设计说明
在整体设计中,我们将宿舍管理系统在使用者登陆时分为系统设置、学生住宿管理信息、卫生评比等七个模块。接下来,在各自的模块中分别实现各自的功能。在每个模块下有分有不同的功能的子模块。每个模块将实现不同的功能。下面将具体进行介绍
在系统的登录界面实现系统管理人员或学生的一般用户使用正确的该系统的用户名和密码登录到不同模式中,以及用户在不能正常登陆时安全退出系统。
根据需求分析报告中所述,输入项为用户信息(学生信息或者理员信息)。 用户信息:用户ID,用户密码,用户类型(普通用户,管理员)
根据概要设计报告中模块设计的思路,该登录模块输出项为:控制代码,是被调模块的名字。
该登录模块中应用选择算法,根据用户的要求选择不同的模式。
登录模块逻辑流程图:
图4-1登录模块逻辑流程图
本模块为最初的主模块,没有上层模块,根据用户要求调用子模块;在模块的检查用户的合法性时需要调用系统的查询模块,传递参数是用户信息。该模块不直接操作数据库文件。
根据学生宿舍管理系统需要分析说明以及概要设计的设计思路,系统的登录模块存储在所有数据的最前面,加快系统的进入速度。
该管理模块的功能可以概述为:承接的作用。调用管理员要求的操作模式,查询或者登记。
管理员根据系统界面的提示,选择操作类型,该类型对应的是模块的名字。
根据概要设计报告中模块设计的思路,该管理模块输出项为:控制代码,是被调模块的名字。
该管理模块中应用选择算法,根据管理员的选择要求选择不同的操作模式。
本模块为只调用下层信息查询模块或者登记模块,传的数据是全局唯一的模块的名字。
该管理模块按照顺序模块放在登录模块之后即可实现系统的功能且不影响运行速度。
4.2.7逻辑流程
管理模块逻辑流程图:
4.3管理员信息查询模块
该模块功能在管理员模式中实现,具体实现学生夜归信息,住宿信息,快件信息和已修信息的查询功能。
根据需求分析报告中所述,输入的查询条件可以分为按宿舍号,按物品号查询报修信息;按学号,宿舍号查询学生的夜归信息;按学号,姓名,专业查询学生的住宿情况;按学号,姓名,专业查询学生的快件信息。
该查询模块的输出数据为固定结构的数据项,将管理员填写的查询条件封装在固定的数据类型中传递给被调用的数据库查询模块。结构基本就是数据的存储结构,具体可见需求分析报告。
该登录模块中采用的算法基本同等级模块相同,为满足管理员的要求可能将管理员的查询条件进行相应的数据格式装换,确保系统的稳定,安全,可靠。
信息查询模块是中间模块隶属与上层模块,下层调用有关数据库查询操作的模块,调用时将封装好的数据结构传递给下层模块。
同样考虑到系统管理员是该系统的常用的操作者,并且查询操作是管理员最常用的操作,为了便于管理员快速的进行管理操作,将该模块按照顺序存储在管理模块之后。
4.3.6逻辑流程
4.4管理员信息登记模块
该模块功能是管理员模式的重要功能,具体实现对学生夜归信息,住宿信息,快件信息和报修信息的登记(包括新增,删除,修改)功能,以便管理的顺利进行。
根据需求分析报告中所述,输入项为可以有三种:
住宿学生信息:学号,姓名,性别,院系,宿舍号,入住时间;
夜归信息:学号,宿舍号,晚归时间,晚归原因;
离校信息:学号,宿舍号,离校时间,返回时间;
已修信息:宿舍号,物品号,提交日期,报修原因。
该登记模块的输出数据为固定结构的数据项,将管理员填写的信息封装在固定的数据类型中传递给被调用模块。三种结构基本就是数据的存储结构,具体可见与需求分析报告。
该登录模块中应用选择算法,可能应按用户的输入要求进行相应的数据格式装换,确保系统的稳定,安全。
信息登记模块是中间模块隶属与上层的登录模块,下层调用有关数据库的对数据操作的模块,调用时将封装好的数据结构传递给下层模块。
考虑到系统管理员是该系统的最常用的操作者,便于管理员快速的进行管理操作,将该模块按照顺序存储在查询模块之后。
4.4.7逻辑流程
学生管理模块用以实现学生的报修登记,快件收取,信息登记和信息查询的全部功能,并且实现对下层数据库操作模块的调用。
该模块的输入项包括财务的报修信息,快件收取信息,详细信息参照需求说明书。
该模块的输出数据同样为固定结构的数据项,将管理员填写的信息封装在固定的数据类型中传递给被调用的下层模块。
模块的实现算法简单没有具体要求,可以是顺序,也可以是选择,保证没有逻辑错误,具体逻辑流程见下图。
该学生管理模块是中间模块隶属与上层的登录模块,下层调用有关数据库的对数据修改和查询的模块,调用时将封装好的数据结构传递给下层模块。
4.6数据库查询模块
该数据库查询模块顾名思义就可知道是基于数据库操作的模块,用于实现上层模块调用进行数据库的查询操作。
该数据库查询模块是基于数据库操作的模块。输入数据为上层模块传递的固定结构的数据类型,包含住宿信息,报修信息,快件信息和夜归信息等。
输出项和输出项相同,为上层模块传递的固定结构的数据类型,包含住宿信息,报修信息,快件信息和夜归信息等。
本模块算法简单,符合数据库要求的合理即可。
该模块是基于数据库操作的模块,要和数据库进行通信,这里采用SQL语句。
4.6.7逻辑流程
该数据库查询模块顾名思义就可知道是基于数据库操作的模块,用于实现上层模块调用进行数据库的修改操作。
该数据库修改模块是基于数据库操作的模块。输入数据为上层模块传递的固定结构的数据类型,包含住宿信息,报修信息,快件信息和夜归信息等。
4.7.3输出项
输出项和输出项相同,为上层模块传递的固定结构的修改数据类型,包含住宿信息,报修信息,快件信息和夜归信息等。
4.7.4接口
该模块是基于数据库操作的模块,要和数据库进行通信,这里采用SQL语句。
4.7.7逻辑流程
5.出错处理设计
5.1 出错信息
在用户使用错误的数据或访问没有权限的数据后,系统给出提示:”对不起,你非法使用数据,没有权限!“而且用户的密码管理可以允许用户修改自己的密码,不允许用户的匿名登录。用户输入的信息是非中文字符,系统提示:您所输入的信息是非中文字符。 用户输入的信息是中文字符,但与本系统已收录的学生信息不匹配,系统提示:您所输入的信息不存在,请仔细核对您输入的信息是否在本系统收录的学生信息范围之内,重新输入,学生管理员输入的不符合数据的类型,系统提示:输入格式错误请重新输入。
5.2补救措施
由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库的恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户数据也不会丢失或遭到破环,但有可能占用更多的数据存储空间,权衡措施由用户来决定。 系统软件出错很容易在出错日志里看到,我们对可能发生的错误会有一个错误编号以及相应的处理方式,以手册的方式提供。用户可以根据系统的提示信息进行相应的排错处理,建立系统运行日志,用于记录系统在运行过程中出现的可以预知的或无法判断的系统错误信息。硬件的出错处理信息需要检查网络环境
该数据库的数据逻辑结构图如下表所示:
列名 | 中文名 | 类型 | 长度 | 是否允许为空 |
adminId(主键) | 系统管理员编号 | varchar | 11 | NOTNULL |
userName | 系统管理员账号 | varchar | 20 | NOTNULL |
password | 系统管理员密码 | varchar | 20 | NOTNULL |
name | 系统管理员姓名 | varchar | 20 | NOTNULL |
sex | 系统管理员姓别 | varchar | 10 | NOTNULL |
列名 | 中文名 | 类型 | 长度 | 是否允许为空 |
adminId(主键) | 系统管理员编号 | varchar | 11 | NOTNULL |
userName | 系统管理员账号 | varchar | 20 | NOTNULL |
password | 系统管理员密码 | varchar | 20 | NOTNULL |
name | 系统管理员姓名 | varchar | 20 | NOTNULL |
sex | 系统管理员姓别 | varchar | 10 | NOTNULL |
列名 | 中文名 | 类型 | 长度 | 是否允许为空 |
dormBuildId(主键) | 宿舍楼编号 | int | 11 | NOTNULL |
dormBuildName | 宿舍楼名字 | varchar | 20 | NOTNULL |
dormBuildDetail | 宿舍楼信息 | varchar | 50 | NOTNULL |
表6-3 t_dormmanager(宿舍管理员信息表)
列名 | 中文名 | 类型 | 长度 | 是否允许为空 |
dormManId(主键) | 宿舍管理员编号 | int | 11 | NOTNULL |
userName | 宿舍管理员账号 | varchar | 20 | NOTNULL |
password | 宿舍管理员密码 | varchar | 20 | NOTNULL |
dormBuildId | 管理的宿舍楼 | int | 11 | NOTNULL |
name | 宿舍管理员姓名 | varchar | 20 | NOTNULL |
sex | 宿舍管理员姓别 | varchar | 20 | NOTNULL |
tel | 宿舍管理员电话 | varchar | 20 | NOTNULL |
表6-3 t_dormmanager(宿舍管理员信息表)
列名 | 中文名 | 类型 | 长度 | 是否允许为空 |
studentId(主键) | 学生录入序号 | int | 11 | NOTNULL |
stuNum | 学生学号 | varchar | 20 | NOTNULL |
password | 学生密码 | varchar | 20 | NOTNULL |
name | 学生名字 | varchar | 20 | NOTNULL |
dormBuildId | 寝室楼号 | int | 11 | NOTNULL |
dormName | 寝室号 | varchar | 11 | NOTNULL |
sex | 学生性别 | varchar | 10 | NOTNULL |
tel | 学生电话 | varchar | 15 | NOTNULL |
表6-3 t_student(学生信息表)
7.小组成员分工及收获体会
7.1小组成员分工
李 峥 小组组长负责将组员所编写好的程序进行整合,编写课程论文。
杜志昂 负责系统管理员页面的实现
熊国宏 负责宿舍管理员页面的实现和答辩PPT的制作
李可心 负责学生页面的实现
石宇航 负责数据库的链接实现
7.2收获及体会
(1)xxx
做完这个项目之后,我对jsp有了深深的了解。JSP实质是Servlet ,究其本质来看JSP最终要编译成Java字节码即.class文件。在Tomcat下发现所有.jsp文件都被编译成.class文件,而这些类实质都是继承自Servlet。java是大小写敏感的,用过其他编程语言的人最容易犯这个错误,尤其是刚上手的时候。java的调用过程都是要加括号的,一开始比较容易忽视分开整合时经常会出现各种问题,将问题复制在csdn上搜索一般问题就可以得到解决。经过简单的几周学习,我想简单的谈谈我在JSP 网站开发这门课中都学到了什么, JSP 的全称是Java Server Pages ,它是一种动态网页技术。我们需要配置的坏境有JDK, Tomcat。JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。 JSP在根本上是一个简化的Servlet设计,他实现了HTML语法中的java扩张(以 <%, %>形式)。JSP与SERVLET一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。相比较其他主流动态网页技术,JSP具有很多独特的优势,适用于任何平台、支持者众多、程序的执行效率、拥有Java优势、强大的服务器组件、强大的数据库支持。
(2)xxx
在制作项目之前没有JSP是一种表示层的技术,我认为必须熟知JSTL和EL表达式。学JSP一定要对这些脚本元素很熟悉: 声明脚本元素、表达式脚本元素、scriptlet脚本元素。可以再这些脚本元素中直接插入Java代码,用于流程控制和应用逻辑,看似十分简单和方便,但恰恰这些脚本元素污染了表示层。这些脚本元素是JSP早期版本遗留下来的问题,在JSP2.0中引入了EL并结合JSTL基本上解决了上述问题,这使我们可以编出不含有脚本的JSP代码,让JSP是真正意义上是用于表示。 从这几周的学习中,我觉得自己在这儿的学习上还存在很多不足,比如觉得学习基础时很枯燥,虽然老师讲的很认真。其实我并没有很认真的去学,基本上就是老师上课讲了我就大概的听听,下课才会根据上课讲课视频去跟着敲今日所学代码。记得老师让我们主动的学,多敲敲代码, 可是我并没有按照老师的要求做。也许我以后并不会肯定自己会从事这个行业,但是在这之中我更看重的是一种学习的态度,既然选了就要把他学好,即使不能学得很好,那也不能懈怠,因为我觉得自己选择的路,跪着也要走完,所以我要改变我的学习态度,积极应对课程内容,让自己主动起来认真起来,让自己的选择的路不曾后悔。 还有一个原因就是想在这里多学一点知识,因为就像乔布斯在斯坦福大学的演讲中讲到:“你在向前展望的时候不可能将这些片断串连起来,你只能在回顾的时候将点点滴滴串连起来。所以你必须相信这些片断会在你未来的某一天串连起来。你必须要相信某些东西:你的勇气、目的、生命、因缘。这个过程从来没有令我失望,只是让我的生命更加地与众不同而已”然后我也觉得这门课程会在我以后的人生中起到一定的作用。
(3)xxx
很高兴能学习jsp来丰富的的知识,让我了解web前端开发的相关知识。从这一个学期的学习中我觉得自己在专业课的学习上还存在很多不足。比如,之前我提到的我觉得学习基础语言很枯燥,其实我并没有把它们学好,只是跟着老师按部就班在学习,JSP程序设计这门课上我基本上就是老师上课讲了我就听下课,并没有去巩固老师所讲的内容到做实验报告的时候就要恶补老师讲过的内容了,jsp中对应asp中的request.form()和request.querystring()的解决方法。头疼的汉字处理问题。在其他的文章里曾说到在中文NT环境下如下语句输出会得到乱码解决方法是只要对字符串变量进行编码就可以得到正确结果。.在asp中经常使用到字符串判断语句,在java中String变量不是一个简单的变量而是一个类实例,不同的方法会得到不同的结果。在jsp中实现分页。符合搜索结果的多页呈现。我认为做项目首先要把基础打牢不要只是注重技术开发对于一些基本概念也要掌握其次要多一些专业方面的书多了解我们专业动向再者就是要多上机实践学到什么知识点要赶紧把它应用到实践当中最后就是要加强自己团队协作的能力争取在以后的学习中能够跟同学通过一些项目实战提高自己团队协作能力。了解了JSP的工作原理 在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。(Servlet是位于Web 服务器内部的服务器端的Java应用程序,Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。 servlet是在服务器上运行的小程序 ,它的工作模式:1.客户端发送请求至服务器 2.服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 3.服务器将响应返回客户端)而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。
(4)xxx
通过对该系统的设计使我了解到课程设计的过程是艰辛的,但是收获是巨大的。首先,我们再一次的加深巩固了对已学知识的理解及认识。了解了JSP的工作原理,在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。(Servlet是位于Web 服务器内部的服务器端的Java应用程序,Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。servlet是在服务器上运行的小程序,它的工作模式:1.客户端发送请求至服务器 2.服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器3.服务器将响应返回客户端)而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。其次,我们第一次将课本知识运用到了实际设计,使得所学知识在更深的层次上得到了加深。我们对JSP有了更深一层的了解。JSP是一种表示层的技术,我认为必须熟知JSTL和EL表达式。学JSP一定要对这些脚本元素很熟悉:声明脚本元素,表达式脚本元素,和scriptle脚本元素。可以在这些脚本元素中直接插入Java代码,用于流程控制和应用逻辑,看似十分简单和方便,但恰恰这些脚本元素污染了表示层。这些脚本元素是JSP早期版本遗留下来的问题,在JSP2.0中引入了EL并结合JSTL基本上解决了上述问题,这使我们可以编出不含有脚本的JSP代码,让JSP是真正意义上是用于表示。再有,程序设计中,我们曾经面临过失败、品味过茫然,同时我们也学会了什么是坚持做学问真的没什么笨与不笨之分,只要勤于看书”向别人提问,许多东西都可以由不会变到会的,关键在于自己,只要我们坚持下来,就没什么不可以!看着程序一次次的运行错误我们真的有些失望,但当我们一次次得把错误改正我们又是那么的激动,我们看着自己把原来的程序改的面目全非又改回来其中的乐趣怕是只有我们自己才能体会,我们不是怕失败,我们怕的是失败后依然不成功。这就是我们意志力、耐力的胜利,在今后的日子里,它必将成为我们的宝贵财富。
(5)xxx
JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,先初始化,在调用方法处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.通过本次毕业设计,我从中学习到了很多的东西。对很多东西有了新的认识和见解,认识问题和思考问题以及解决问题有了本质上的进步。特别是对一个系统开发的模式有了更深的认识,对专业技能的运用更熟练。也从中清楚地认识了MVC编程模式。在开发系统过程中遇见了很多的问题。刚开始的时候不确定管理员是否能增加、删除板块。后来经过指导老师的讲解,我也开始考虑这些问题。并一一解决问题。在本次开发的时候出现的最大的问题就是,在做需求分析的时候,没有做好足够的调查和分析。最终导致了数据库设计不合理。在开发中途时不得不修改数据库。而数据库一修改,将面临的就是大部分代码的修改。这也是让我非常头痛的,但是经过不断地努力还是顺利的完成了修改数据库后的代码修改。这次的失误让我认识到了,设计数据库就是开发一个系统的核心。设计数据库一定要思路清晰,各个数据的流向各个表之间的关系一定要弄清楚,透彻。数据库设计出错了对以后整个系统的影响是最直接的。所以做需求时一定要做好需求分析,考虑完善,数据库设计要谨慎。总之需求分析时能做好就能降低需求变更,再加上设计时考虑到的技术可行性就可以大幅度的降低需求变更。在系统的开发过程中,还出现了很多很多的问题。但是自己还是通过网络上的查询,老师和同学给我的讲解,还有自己去查阅书籍。最终还是完成了预定的需求功能。看到自己独立完成并可以使用的系统给了我很大信心。
结 论
本系统使用了Jsp,Java为开发语言,以Microsoft SQL数据库产品作为后台数据库,构建了一个灵活安全的学生宿舍管理系统。从系统的初步设计到最后系统的实现是经历了整体设计,逐步实现的过程。本文作为对系统的论述,重点介绍了系统开发环境、开发工具、开发语言等关键技术,分析了系统的数据库设计、系统流程设计、功能模块的详细设计、实现代码的分析和运行结果。论述了系统从设计到实现的一个完整的过程。系统采用了流行的B/S模式,实现了学生宿舍管理的功能,整个系统简洁易懂,层次分明,安全适用。由于篇幅有限,未能将所有模块的实现一一列出,只挑选了重要的部分加以说明。
参考文献
[1] Adrian Kingsley-Hughes[美],Kathie Kingsley-Hughes[美]. JavaScript 1.5实例教程[M]. 刘勇译. 北京:人民邮电出版社, 2001。
[2] 许龙飞,李国和,马玉书. Web数据库技术与应用[M]. 北京:科学出版社, 2005。
[3] 方睿,刁仁宏,吴四九. 网络数据库原理及应用[M]. 四川:四川大学出版社, 2005。
[4] 耿祥义,张跃平. JAVA2实用教程第二版[M]. 北京:清华大学出版社, 2001。
[5] 孙连三,邹慧超,汪孝宜. 新手学制作网页[M]. 北京:人民邮电出版社, 2003。
[6] Phil Hanna[美]. JSP 技术大全[M]. 闻道工作室译. 北京:机械工业出版社,2002。
[7] 李振捷,陈雄,正军. JSP网站开发典型模块与实例精讲[M]. 北京:电子工业出版社,2006。