学生宿舍管理系统 毕业论文.docx
学生宿舍管理系统 毕业论文学生宿舍管理系统 姓 名 性 别 学 号 年 级 专 业 系 指导教师 学生宿舍管理系统 摘 要 学生宿舍管理系统是一个可应用于各种学校等单位的管理系统,实现了通过网络化统一查询和管理宿舍区内各个住宿人员及其相关住宿信息的功能。本设计完成了系统中管理者模块,实现对住宿人员的具体管理功能。 该系统使用Java编程语言,采用Oracle (10g )、PL-SQL、Jdbc、Servlet、Jsp、Html、JavaScript、ajax等技术,基于TOMCAT + Eclipse + Sun OS 5.8软件开发平台进行设计实现。 整个系统采用MVC模式、V、C)三层架构模式来实现了整个程序架构的分析、设计及具体实现,采用Oracle ( 10g )完成数据库模块的设计和实现。 管理员通过本系统模块可以在线管理住宿人员极其信息,如:查询学生、房间信息,录入学生、房间资料,学生入住、迁出,来访人员登记,费用管理,维修管理及系统设置等功能。该系统具有良好的可操作性、可维护性、可扩展性和可移植性,能可靠的完成用、户的需求。 关键词:Java JavaScript Servlet Jsp Html Jdbc Oracle(10g) I 学生宿舍管理系统 Abstract This NetCT OSS is a soft applied to the management of the Telecommunication enterprise. It provides the enterprise administrator kinds of services by establishing a whole system platform ,it can provider the different users with different application services, meets the requirements of different users. The system uses the Java language eclipse environment for development,using the technology of JSP,Oracle,Html, Servlet, JDBC,EJB, based on the platform of Weblogic + Eclipse + JBuider + Sun OS 5.8 .Complying with the MVC Model it accomplishes the design of the framework of the program and the select function ,Using Oracle to accomplish the detail design of the Database , by the Jdbc and EJB to link Database . By the combination of all the techniques, makes the system credible, expandable, strong, and friendly . The System support the function of selection information after get the power by the right user name and password . It accomplishes select the all the information of users. Therefore,the users can get their consumption information efficiently and easily. The good features of the system is its security, credibility and strong . It can accomplish the purpose to meet the personality requirement of the user。 Key Words:Java JavaScript Servlet Jsp Html Jdbc Oracle(10g) II 学生宿舍管理系统 目 录摘 要 . I ABSTRACT . II 目 录 . III 前 言 . 2 第1章 开发语言和工具简介 . 3 1.1 JAVA . 3 1.1.1 Java语言的特点 . 3 1.1.2 Java开发工具 . 4 1.2 SERVLET . 4 1.2.1 Servletd的简介 . 4 1.2.2 Servlet的功能 . 4 1.3 ORACLE技术简介 . 5 1.3.1 Oracle的简介 . 5 1.3.2 Oracle 的特点 . 5 第2章 系统分析和总体规划 . 6 2.1 所需系统的理由 . 6 2.2 需求分析 . 6 2.3 总体设计 . 7 2.3.1 功能模块设计 . 7 2.3.2 运行过程设计 . 8 2.3.3 系统流程图 . 9 2.3.4 数据库设计 . 9 第3章 系统具体设计 . 11 3.1 数据库表设计 . 11 3.2 系统界面设计 . 15 第4章 运行与测试 . 31 4.1 软件测试的目的和原则 . 31 4.2 软件的运行与安装 . 32 4.2.1 应用程序的构建、部署 . 32 4.2.2 系统运行过程 . 32 结 论 . 33 参考文献 . 34 谢 辞 . 35 III 学生宿舍管理系统 前 言 近年来,随着计算机技术的发展和互联网时代的到来,我们已经进入了信息时代,也有人称为数字化时代,计算机网络已经进入各个学校等企业、事业单位,人们的生产生活方式已经发生很大的变化,特别是管理水平的提高,使得人与人之间的信息交流突破了地域,即实现了远程管理与控制。因此,在这数字化的时代里,普通的人工管理技术也受到了极大的挑战。Internet技术持续迅猛的发展,也给传统的的管理提出了新的模式。 从市场的角度看,随着我国社会主义市场经济的不断发展,传统的国有企业和事业单位的规模和所跨区域在日益扩大,各种新兴公司和单位日趋增多,一种先进的、快速的管理方式成为企业良好发展的后勤保障。近几年来,由于计算机网络技术的不断扩大,一个能够应用于Internet网络中,进行对公司及单位的远程控制和管理的技术变的尤其必要,且其需求量也在迅速增加。 从企事业单位规模看,在良好市场经济刺激下,企事业单位的规模已经今非昔比,且有些实现了跨国、甚至跨洲规模。所以在企业如此大,职工如此多的情况下,如何对快速、准确的公司、单位进行管理成了当前企事业发展的一大难题。 为了更好的为企事业单位服务,各种软件研发机构都在试图设计一些管理软件为其他大型企事业单位服务,来对客户和员工资料进行管理,使管理突破传统和时空限制,提高管理效率与水平,使公司单位高层在时候任何地点都可以通过网络对公司单位进行管理,对职工人员配置进行调度,实现管理系统网络化,信息化。本课题就试图使用java技术来实现一个最基本的学生宿舍管理系统,且系统需求依据均来源于学校宿舍实际。 2 学生宿舍管理系统 第1章 开发语言和工具简介 1.1 Java Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,“连Internet,用Java编程”,成为技术人员的一种时尚。Java是一种简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。 1.1.1 Java语言的特点 1.简单 Java与C+语言非常相近,但比C+简单,它抛弃了C+中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java实现了自动的垃圾收集,简化了内存管理的工作。 2. 面向对象 Java提供了简单的类机制和动态的构架模型。对象中封装了它的状态变量和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。 3. 多线程 多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。 4. 分布式 Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便的访问其他对象。 5. 跨平台 Java是一种网络语言,为使Java程序能在网络的任何地方运行,Java解释器生成与体系结构无关的字节码结构的文件格式。Java语言环境还提供了用于访问底层操作系统功能的类组成的包,当程序使用这些包时,可以确保它能运行在各种支持Java的平台上。 6. 安全性 用于网络、分布环境下的Java必须要防止病毒的入侵,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。 3 学生宿舍管理系统 1.1.2 Java开发工具 JDK JDK及相关类和方法的 Java 程序。除了使用 Java Servlet API,Servlet 还可以使用用以扩展和添加到 API 的 Java 类软件包。Servlet 在启用 Java 的 Web 服务器上或应用服务器上运行并扩展了该服务器的能力Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。Java Servlet API 定义了一个servlet 和java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。 Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet。装入后, Servlet 继续运行直到其它客户机发出请求。 1.2.2 Servlet的功能 (1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。 (2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面。 (3) 与其它服务器资源进行通信。 4 学生宿舍管理系统 (4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。 例如,Servlet 可以是多参与者的游戏服务器。 (5) 当允许在单连接下传送数据时,在浏览器上打开服务器至applet的新连接,并将该连接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。通过定制协议或标准进行通信。 (6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端包括建立在Java、XML以及CORBA等网际网络标准之上。 适合各种研发方式,例如商业逻辑组件开发、可视化模型建构。 提供轻松建置企业入口网站之解决方案。 JDeveloper可提供Java程序设计师快速开发出Java Applets、JSPs、Servlets、EJB等 Java应用程序。 JDeveloper 也可搭配BI Beans(Business Intelligence Beans)与Oracle9i OLAP Service,建构出高效能的数据仓库分析系统。 1.3.2 Oracle 的特点 支持数据库,多用户的高性能的事务处理 遵守数据存取语言,操作系统,用户接口和网络通信协议的工业标准,所以它是一个开放系统 实施安全性控制和完整必控制 支持分布式数据库和分布处理 具有可移植性,可兼容性,可连接性 5 学生宿舍管理系统 第2章 系统分析和总体规划 2.1 所需系统的理由 一、必要性: 随着现代信息技术的飞速发展,学校、技校规模的不断扩大、数量不断增多,学生、教师数量的日益增多,传统的人工记录的管理方式已经不能满足社会发展的需要,快速和准确的管理系统变的极其重要,网络化、信息化、智能化、统一的管理方式已经供不应求。 二、可行性: 包含: 经济可行性:该系统对操作环境要求不大,系统的开发不需要很强的经济支持,就其功能和给企事业单位带来的方便来说,是完全可行的。 操作可行性:目前计算机已经普及到所有的单位及大部分家庭,不仅在企事业,即使足不出户也能通过网络对单位和人员进行统一管理。管理者只要通过用户帐号和密码就可以进入系统,进行对单位和人员的管理,因此其操作是完全可行的。 技术可行性:本系统采用Java语言,基于Tomcat 5 + Eclipse + Sun OS 5.8开发平台,采用JSP,Oracle, Html ,Servlet 等技术,开发者掌握这些技术就可以具备开发此系统的能力,另外,此系统对开发环境的要求,都是大部分Java程序员进行软件开发使用的开发环境,所以,技术方面也是可行的。 2.2 需求分析 1. 数据需求: 此系统主要完成学生入住登记及入住后的管理,因此,需要的数据信息包括:管理员信息:包括用户帐号和密码等信息。学生信息,包括学生基本信息,住房信息,迁入迁出信息;房屋信息:包括价格和标准配置,水电费的设置和收缴情况等;维修信息:包含维修者和损坏者及赔偿等信息;访问者信息:包括访问者身份及进入和离开登记等。 2.功能需求: 功能需求分析的任务是弄清用户对目标系统数据处理功能所提出的需求。本系统的功能需求有: (1) 只允许管理者通过指定帐号和密码可以进入系统 (2) 管理可以随时录入某个学生或房间的住宿情况 6 学生宿舍管理系统 (3) 管理可以随时查询某个学生或房间的住宿情况 (4) 用户可以查询某个宿舍的水电费情况 (5) 用户还可以录入每个学生和访问者的出入情况 2.3 总体设计 2.3.1 功能模块设计 1. 功能定义: (1)资料录入: 进行增加房间和入住学生数量; (2)房间管理: 对每个房间进行学生住入和搬出、调换工作; (3)来访管理: 对来访者进行登记和历史记录的查询; (4)出楼管理: 对学生出入及携带物品进行登记; (5) 费用标准: 对每个宿舍的费用标准进行设置、查询和水电费的收缴情况; (6)维修查询: 对每次维修进行记录和查询 (7) 系统管理: 管理员自身信息管理及退出工作 2 系统功能结构图: 此系统基于MVC架构模式进行设计,利用JSP+JavaBean+Servlet具体实现。通过对所做模块的功能需求分析,该模块主要功能可分为七大部分,系统结构如图2-1所示。 资 管理员登陆 料录入房间管理来访管理出费楼用用标管准标理准维修查询系统管理7 学生宿舍管理系统 图2-1 系统结构图 2.3.2 运行过程设计 本项目使用Java编写,核心架构为MVC模式的变形应用,软件实现的所有功能都是对事件源对象进行监听,然后根据对象内部的类型标记数据,把对象分配到相应的事件处理类中进行处理,比如: 客户端登录: 页面接收用户名,用户密码。 通过Socket发送套接字串到服务器端。 服务器端通过Socket接收到套接字字段,根据H0001这一字段,把其他信息分发到login类进行相应的验证处理。 服务器端验证通过后,login类直接返回给客户端信息。. 数据库JDBCView客户HTTP请求ServletForwardView.jsp设置Control读取JavaBean值对象Model图2-2 JSP+JavaBean+Servlet开发模式的数据传递关系 8 学生宿舍管理系统 2.3.3 系统流程图 图2-3 系统流程图 进入系统主界面 处理业务 结束 身份验证是否通过 填写身份验证信息 进入用户登录界面 开始 2.3.4 数据库设计 数据库设计就是设计程序所需数据的类型、格式、长度和组织方式。因为数据库应用系统主要是处理大量的数据,所以数据库设计的优劣,直接影响整个数据库应用系统的性能和执行速率。 根据本系统的功能需求分析,本系统的数据库可包括十个表,分别是管理员表, 用电表,房间表, 外出事件表, 维修表, 标准表, 学生表, 学生-房间桥表, 来访者, 用水表。 9 学生宿舍管理系统 E_R图 如图24所示: 图2-4 E-R图 资料录入 来访管理 登陆名 登录密码 房间管理 管理者 管理 出楼管理 进行 系统管理 维修管理 费用管理 修改密码 退出登陆 10 学生宿舍管理系统 第3章 系统具体设计 3.1 数据库表设计 1. 管理员表 该表包含用户登录名,密码,角色。具体如表31。 表 3-1 admin 表 字段名 username password manager 类型 字符型 字符型 字符型 字段宽度 20 10 8 小数位数 索引 2用电表 该表包含用户栋号,宿舍号,底数,显数,上次查表时间,这次查表时间,价格。 表3-2 electric表 字段名 Donghao Houseid Dishu Xianshu shangci newdate expense 类型 字符型 字符型 数值型 数值型 日期型 日期型 数值型 字段宽度 2 3 8 8 8 小数位数 2 索引 11 学生宿舍管理系统 3. 房间表 该表包含用户登录名,登录服务器名,退出时间,资费代号,登录时间长度等信息。具体如表33。 表3-3 house 表 字段名 Donghao Houseid Sex Phone Kezhu Ruzhu Extra expense 类型 字符型 字符型 字符型 字符型 数值型 数值型 数值型 字符型 字段宽度 2 3 2 8 4 4 4 50 小数位数 索引 4. 外出事件表 表3-4 outtings 表 字段名 Id Student Thing Outing Inturn 类型 数值型 字符型 字符型 日期型 字符型 字段宽度 4 10 10 8 小数位数 索引 主键 该表包含id ,学生号,事件,时间等。具体如表34。 12 学生宿舍管理系统 5. 维修表 该表包含id ,栋号,房间号,物品等信息。具体如表35。 表3-5 repair 表 字段名 Id Donghao Housiid Thing Calldate Yuanyin Isrepair Repirdate Expense Zheren Peichang nationality sex company 6. 标准表 类型 数值型 数值型 数值型 字符型 日期型 字符型 字符型 日期型 数值型 字符型 字符型 数值型 数值型 字符型 字段宽度 10 2 3 10 10 2 8 8 2 2 2 32 小数位数 索引 该表包含id ,水价,电价等。具体如表36。 表3-6 standard表 字段名 Id Wstd Estd 类型 数值型 数值型 数值型 字段宽度 4 8 8 小数位数 1 1 索引 主键 13 学生宿舍管理系统 7. 学生表 该表包含学生号,姓名,性别,籍贯,年龄,年级,系院等信息。具体如表37。 表3-7 表 字段名 Studentid Name Sex Home Years Nanzhi Xueyuan Classid Extra 类型 字符型 字符型 字符型 字符型 字符型 数值型 字符型 字符型 字符型 字段宽度 10 8 2 50 4 4 10 20 20 小数位数 2 2 索引 主键 8. 学生-房间桥表 表3-8 studenthouse 表 字段名 Studentid Donghao Houseid Intime 类型 字符型 字符型 字符型 日期型 字段宽度 10 2 3 小数位数 索引 该表包含学生号,栋号,宿舍号等信息。具体如表37。 14 学生宿舍管理系统 9. 来访表 表3-9 visitor 表 字段名 Studentid Id 类型 字符型 数值型 字段宽度 10 4 小数位数 索引 主键 该表包含学生号,姓名,性别,籍贯,年龄,年级,系院等信息。具体如表37。 Visitornm Visittime Guanxi Zjnm Inturn 10用水表 该表包含用户栋号,宿舍号,底数,显数,上次查表时间,这次查表时间,价格。字段名 Donghao Houseid Dishu Xianshu shangci newdate expense 3.2 系统界面设计 1. 登录界面 事件实现:本页面主要实现接收管理员帐号和密码,并发送到服务器进行身份验证,返回验证结果后判断是否进入主页面。界面如图3-1所示: 字符型 8 日期型 字符型 10 字符型 10 字符型 8 表3-10 water 表 类型 字段宽度 小数位数 索引 字符型 2 字符型 3 数值型 8 数值型 8 日期型 日期型 数值型 8 2 15 学生宿舍管理系统 图31 登陆主要实现过程代码: public class login extends HttpServlet /对登陆servlet进行初始化 public void init throws ServletException /处理业务登陆的业务逻辑 public void service(HttpServletRequest req,HttpServletResponse req.setCharacterEncoding("UTF-8"); res.setContentType("text/html;charset=UTF-8"); PrintWriter pw=res.getWriter; 16 res) throws ServletException,IOException 学生宿舍管理系统 Admin admin=new Admin; AdminControl admincontrol=new AdminControl; String username=req.getParameter("username"); String password=req.getParameter("password"); if(username.equals("")|password.equals("") pw.print("<script>alert('请输入帐号和密码!');history.back</script>"); try admin.setUserName(username); admin.setPassword(password); /判断管理员信息是否正确,通过统一的方法实现类实现数据库连接 /和管理员信息验证。 if(admincontrol.isAdmin(admin).equals("success") HttpSession session=req.getSession(true); session.setAttribute("admin", admin); res.sendRedirect("index.jsp"); else pw.print("<script>alert('密码错误! ');history.back</script>"); catch(Exception e) System.out.println("login has error"+e.getMessage); /Clean up resources public void destroy 17 2. 管理界面 系统通过对了管理员帐号和密码的验证,直接进入此界面,该界面包含管理员所有学生宿舍管理系统 可操作信息。包括资料录入,房间管理,来访登记和查询,费用管理,维修管理和系统管理。 如图32所示: 图32 用户界面 3.资料录入 管理员通过单击“资料录入”进行新建宿舍和入住学生的信息录入工作。该模块包括对新入住学生的信息保存和查询工作,新建宿舍的管理工作。 例如学生录入界面,如图33所示: 18 学生宿舍管理系统 图33 新生入住信息录入界面 具体实现代码如下: public class AddStudent extends HttpServlet /对登陆servlet进行初始化 public void init throws ServletException /处理业务添加学生的业务逻辑 public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding("gb2312"); response.setContentType("text/html; charset=gb2312"); PrintWriter out = response.getWriter; Student student=new Student; 19 学生宿舍管理系统 StudentControl studentcontrol=new StudentControl; String studentid=request.getParameter("studentid"); String name=request.getParameter("name"); String sex=request.getParameter("sex"); String home=request.getParameter("home"); String years=request.getParameter("years"); String nianzhi=request.getParameter("nianzhi"); String xueyuan=request.getParameter("xueyuan"); String classid=request.getParameter("classid"); String extra=request.getParameter("extra"); try if(!studentcontrol.isExistStudent(studentid) student.setStudentid(studentid); student.setName(name); student.setSex(sex); student.setHome(home); student.setYears(years); student.setNianzhi(nianzhi); student.setXueyuan(xueyuan); student.setClassid(classid); student.setExtra(extra); studentcontrol.addStudent(student); studentcontrol.close; out.print("<script>alert('成功添加!