1、 目 录摘 要11.需求分析21.1总体需求分析21.1.1 主要功能21.1.2 特色优点91.2 数据字典102.总体设计102.1数据库连接部分102.2查询版块142.3设置板块152.4统计板块152.5公寓安排处理162.6公寓增减163.数据库设计173.1 概念结构设计183.2逻辑结构与物理结构设计184. 详细设计184.1 包的分布194.2 jsp界面设计194.3 Servlet代码195. 测试205.1 测试方法205.2 容错处理206.设计总结21参考文献21摘 要这次课程设计通过一个实现公寓住宿资源的信息化管理的实例,来熟悉采用JSP+servlet的模式如
2、何来定制一个小型电子商务平台。系统采用界面与业务逻辑分离的三层结构设计,将业务逻辑封装在servlet中,使得系统的安全性、可维护性、重用性和可扩展性都大大提高。 “麻雀虽小五脏俱全”,本系统从功能上来说,是比较完备的。功能上的完备、面向对象的三层结构设计、模块化的界面设计是该系统所引用实例的亮点;软件工程的思想是本系统文档组织上的亮点;语言的通顺,通俗易懂及丰富的表格、图片等说明是本系统在写作上的亮点。关键字:JavaBean、servlet、ODBC1.需求分析1.1总体需求分析1.1.1 主要功能 该系统主要是针对我校得公寓住宿资源进行的一个信息化管理,大致分为了公寓住宿资源中操作的三大
3、版块(日常操作,新生报到,毕业生离校)。使得在运用中,更加人性化。 该系统主要完成的功能如下。(1)数据查询(可以分为7种查询方式或内容)。(2)公寓增减(分为4种类型的增减部分)。(3)房间属性设置(共有4种设置)。(4)公寓安排处理(共有3种情况)(5)数据统计(共有6种统计方式和内容)整体设计如下图所示公寓住宿资源管理系统新生报到日常操作毕业生离校数据查询公寓增减房间属性设置公寓安排处理数据查询数据统计房间属性设置公寓安排处理数据查询数据统计公寓安排处理图2.1.1.a 表示总体设计图 下面是几个细小的版块:(1)数据查询版块 用于对数据库中的数据进行查询,由于新生报到,毕业生离校,和日
4、常的工作中,都可能会用到查询,故查询在每个大的版块中都有。在查询中进行了翻页处理及各种错误信息的处理,使得运用明了。查询所有空床位通过公寓号查询住宿情况通过学号查询住宿情况通过姓名查询住宿情况查询公寓信息查询学生信息查询可住空床位数据查询图2.1.1.b 表示总体数据查询功能图 图2.1.1.c 表示总体数据查询界面图(2)公寓增减版块 由于学校存在新建公寓和废除公寓的现象,故加入了公寓增减的版块。不过在其中的操作中,可能会出现一些其他的客观原因,导致操作人员在操作时出错或则中途打断,故加入了增减房间的两个操作。添加房间删除房间添加新公寓删除旧公寓公寓增减图2.1.1.d 表示总体公寓增减功能
5、图图2.1.1.e 表示总体公寓增减界面图(3)房间属性设置 房间可用性转换:公寓中,有一些房间中的某些床位由于漏水等其他情况,导致不能住人,所以加入了对其的可用性设置的功能。房间预留:也有某些特殊情况,一些空的床位已经被预留给了其他人,避免其他人被安排入住。 宿舍专业分配:由于我们现在的公寓实行的是同系统专业的入住原则,所以我们则给新生分配房间之前我们会对公寓中打算给新生入住的的每个房间的每个床位进行专业的划分,使得新生入住时,自动分配给其该专业的房间。宿舍入住性别设置:用来给某些新建成的公寓设置其到底为男生公寓还是为女生公寓。或则,由于安排的不同,把某些男生公寓转换为女生公寓,或则女生公寓
6、变为男生公寓。宿舍专业分配宿舍入住性别设置房价可用性转换房价预留房价属性设置图2.1.1.f 表示总体房间属性设置功能图图2.1.1.g 表示总体房间属性设置界面图(4)公寓安排处理版块 公寓房间中,主要是存在调换宿舍,还有对学生进行宿舍的分配,以及毕业时离校的信息删除。新生报到时宿舍分配毕业生离校时宿舍还原宿舍调换公寓安排处理图2.1.1.h 表示总体公寓安排处理功能图图2.1.1.i 表示总体公寓安排处理界面图(5)数据统计版块 由于在迎新时和毕业生离校时,我们在进行繁忙的工作同时,我们需要统计一下我们的报到情况和离校情况,避免出现没有房间提供入住或则是人潮高峰时无法应对。新生报到按公寓统
7、计毕业生报到按系别统计毕业生报到按性别统计毕业生报到按公寓统计新生报到按系别统计新生报到按性别统计数据统计图2.1.1.j 表示总体数据统计功能图图2.1.1.k 表示总体数据统计界面图1.1.2 特色优点 本系统具有一下特点。 (1)界面模块化:本系统在界面设计上都采用了模块化的处理思想,把很多页面共有部分集成一个模块,例如页面的头和导航条,这样在开发时,大大提高了开发效率。 (2)三层结构设计:本系统采用三层结构设计,即程序逻辑结构分为用户界面层、业务逻辑处理层和数据存储层。三层在实际的物理结构上也是独立的,业务逻辑处理层采用servlet实现,用户界面与业务逻辑分离,系统的安全性、可维护
8、性、重用性和可扩展性都大大提高。 (3)人性化设计:本系统导航的另一个亮点就是导航明晰。这样,不管客户位于哪个角落,都不会迷路1.2 数据字典变量长度说明anum公寓号outdate离开时间fnum楼层号rnum房间号snum学号 sname姓名tie系 sex性别Staydate入住时间2.总体设计2.1数据库连接部分把对数据库的操作统一都封装在edit的包里,重用性和可扩展性都大大的提高业务层edit(7+1基本操作)select_list(查询操作)set_list(设置操作)add_list(添加操作)del_list(删除操作)fp_list(分配操作)tongji(统计操作)对数据
9、库查询与更新及连接操作数据层(3张表)学生信息表床位表公寓信息表详细情况如下:(1) 查询列表(1.1)对学生居住情况的查询通过姓名查找该生所住的房间-作用于床位表学生表 public ResultSet LiveBySname(String name)通过学号查找该生所住的房间-作用于床位表学生表 public ResultSet LiveBySnum(String snum)通过公寓号查找该生所住的房间-作用于床位表学生表(找出有人住的房间)public ResultSet LiveByGnum(String anum,String fnum,String rnum ) public Re
10、sultSet LiveByGnum(String anum,String fnum ) public ResultSet LiveByGnum(String anum ) 通过公寓号查找该生所住的房间-作用于床位表学生表(找出有人住的房间) public ResultSet LiveByGnum(String anum,String fnum,String rnum ) public ResultSet LiveByGnum(String anum,String fnum ) public ResultSet LiveByGnum(String anum ) (1.2)对公寓情况的查询找出所
11、有的空床位 public ResultSet NullByGnum(String anum,String fnum,String rnum ) public ResultSet NullByGnum(String anum,String fnum ) public ResultSet NullByGnum(String anum )找出允许用的空床位public ResultSet YNullByGnum(String anum,String fnum,String rnum )public ResultSet YNullByGnum(String anum,String fnum )publ
12、ic ResultSet YNullByGnum(String anum )通过公寓号查询公寓情况 public ResultSet ApartmentByGnum(String gnum)通过公寓号查找安排情况public ResultSet StayByGnum(String anum,String fnum,String rnum )public ResultSet StayByGnum(String anum,String fnum ) public ResultSet StayByGnum(String anum )(1.3) 学生情况通过学号查询学生情况 public Result
13、Set StudentBySnum(String snum)(2)添加列表已有公寓添加房间public int AddNewStay(String anum,String fnum,String rnum)添加新公寓public int AddNewApartment(String anum)添加学生信息public int AddNewStudent(String snum,String sname,String sex,String tie)(3)删除列表删除房间public int DelStay(String anum,String fnum,String rnum)删除公寓publi
14、c int DelApartment(String anum)删除学生信息public int DelStudent(String snum)(4)设置列表 设置床位可用状态通过宿舍id设置为可用public int Y_stay(String id)设置为不可用public int N_stay(String id) 设置宿舍分配的初始状态public int SetClass(String cnum, String anum)public int SetClass(String cnum, String anum,String fnum)public int SetClass(String
15、 cnum, String anum,String fnum,String rnum )返回宿舍的状态public int ReturnStay(String cnum,String id )设置该宿舍先住人数加人public int SetNownum(String anum)减人public int SetDelNownum(String anum)(5)分配操作fp_listpublic int fp(String sname, String snum,String sex,String tie )(6)统计操作tongji对新生报到时操作按男性进行统计public ResultSet
16、SexmTongji(String time)按女性进行统计public ResultSet SexwTongji(String time)按专业进行人数统计public ResultSet ZhuanyeTongji(String tie,String time )按公寓进行人数统计public ResultSet gongyuTongji(String anum,String time ) 对毕业生离校时操作按男性进行统计public ResultSet liftSexmTongji(String time)按女性进行统计public ResultSet liftSexwTongji(St
17、ring time)按专业进行人数统计public ResultSet liftZhuanyeTongji(String tie,String time )按公寓进行人数统计public ResultSet liftgongyuTongji(String anum,String time )2.2查询版块(1)查询公寓信息通过select包的spapart.jsp页面进入Servlet下的Sapart.java完成公寓信息查询功能。 (2)查询学生信息通过select包的sstudent.jsp页面进入Servlet下的Sstudent.java完成学生信息查询功能。(3)查询可住空床位通过s
18、elect包的YNullBed.jsp页面进入Servlet下的YnullBedy.java完成可住空床位信息查询功能。(4)查询所有空床位通过select包的NullBed.jsp页面进入Servlet下的NullBedy.java完成可住空床位信息查询功能。(5)通过公寓号查询住宿情况通过select包的sbf.jsp页面进入Servlet下的sbyf.java完成通过公寓号查询住宿功能。(6)通过学号查询住宿情况 通过select包的sbynum.jsp页面进入Servlet下的sbynum.java完成通过学号查询住宿功能。通过姓名查询住宿情况 通过select包的sbname.jsp
19、页面进入Servlet下的sbynameSapart.java完成通过姓名查询住宿功能功能。2.3设置板块宿舍专业分配通过shezhi包的bjsz.jsp页面进入Servlet下的bj.java完成宿舍专业分配功能。房间可用性转换通过shezhi包的fjcx.jsp页面进入Servlet下的fjzt.java完成房间可用性查询功能,再通过进入Servlet下的fjzt1.java完成房间可用性转换功能。房间预留通过shezhi包的fjyl.jsp页面进入Servlet下的fjyl.java完成房间预留功能。2.4统计板块新生报道按性别统计通过tongji包的xbs.jsp页面进入Servlet
20、下的Xbs.java完成新生报道按性别统计功能。新生报道按系别统计通过tongji包的xbx.jsp页面进入Servlet下的Xbx.java完成新生报道按系别统计功能。新生报道按公寓统计通过tongji包的xbg.jsp页面进入Servlet下的Xbg.java完成新生报道按公寓统计功能。毕业生离校按系别统计通过tongji包的bbx.jsp页面进入Servlet下的Bbx.java完成毕业生报道按系别统计功能。毕业生离校按性别统计通过tongji包的bbs.jsp页面进入Servlet下的Bbs.java完成毕业生报道按性别统计功能。毕业生离校按公寓统计通过tongji包的bbg.jsp页
21、面进入Servlet下的Bbg.java完成毕业生报道按公寓统计功能。2.5公寓安排处理(1)宿舍调换通过gongyuanpai包的tiaoqing.jsp页面进入Servlet下的dropy.java完成新宿舍调换功能。(2) 毕业生离校时宿舍还原通过gongyuanpai包的drop.jsp页面进入Servlet下的dropy1.java完成新宿舍调换功能。(3)新生报到时宿舍分配通过gongyuanpai包的ap.jsp页面进入Servlet下的fp.java完成新宿舍调换功能。2.6公寓增减添加新公寓通过edit包的addapartment.jsp页面进入Servlet下的addapa
22、rtment.java完成添加新公寓功能。添加房间通过edit包的addapartment1.jsp页面进入Servlet下的addapartment.java完成添加房间功能删除旧公寓通过edit包deteleapartment.jsp页面进入Servlet下的deteleyapartment.java完成删除旧公寓功能。 删除房间通过edit包的deteleroom.jsp页进入Servlet下的deteleyapartment.Java删除。3.数据库设计3.1 概念结构设计3.2逻辑结构与物理结构设计MYSQL数据库下创建apartment表空间后创建了如下3张表!学生表(学号,姓名,
23、性别,所在系)住宿信息表(公寓号,楼层号,房间号,学号,可用标记,入住日期)公寓表(公寓号。现居住人数,公寓性质)Student(snum,sname,sex,tie,)Stay(anum.fnum.rnum.snum,flag,staydate)Apartment(anum,asex,nowpeople)其中学生表与住宿表之间是n:1关系学号是学生表的主键,是住宿信息表的外键公寓表表与住宿表之间是n:m关系公寓号是公寓表的主键,是住宿信息表的外键4. 详细设计4.1 包的分布4.2 jsp界面设计(1)主界面设计(2) 一般jsp设计 此为内容界面的重要jsp代码 4.3 Servlet代码5. 测试5.1 测试方法此次设计中,遇到很多错误,通过搭建局域网用白盒黑盒方式测试方法,保证了程序的准确性。5.2 容错处理6.设计总结经过十多天的设计,公寓住宿资源管理系统基本设计完毕。其功能基本符合要求,能够完成基本需要的功能。由于设计时间较短以及自己的能力有限,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够等多方面问题。参考文献1 郭珍, 王国辉. JSP程序设计教程. 北京:人民邮电出版社. 20082 刘晓华, 张健. JSP应用开发详解. 北京:电子工业出版社. 20073 陆惠恩. 软件工程实践教程. 北京: 机械工业出版社. 2006 22