学生宿舍管理系统毕业设计论文1

上传人:1777****777 文档编号:38564583 上传时间:2021-11-08 格式:DOC 页数:46 大小:719.53KB
返回 下载 相关 举报
学生宿舍管理系统毕业设计论文1_第1页
第1页 / 共46页
学生宿舍管理系统毕业设计论文1_第2页
第2页 / 共46页
学生宿舍管理系统毕业设计论文1_第3页
第3页 / 共46页
点击查看更多>>
资源描述
河北经贸大学经济管理学院毕业论文河北经贸大学经济管理学院毕业论文学生宿舍学生宿舍管理系统管理系统专业名称:信息管理与信息系统班 级: C 信管 09-1 班 学生姓名: 指导老师: 完成时间: 2013 年 5 月 I目录目录1 绪论.111 开发背景与现状 .112开发设计的意义.12 开发环境介绍.321 开发工具 MYECLIPSE.322 数据库 MYSQL.32.2.1 MySQL 概述 .32.2.2 MySQL 的特性 .32.2.3 MySQL 的应用 .43 系统需求分析.53.1 功能需求 .53.1.1 基本功能需求.53.1.2 总体功能模块.63.2 性能需求 .73.2.1 系统安全性 .73.2.2 数据库选择.73.2.3 系统稳定性 .74 系统设计.84.1 数据库设计 .84.1.1 数据库概念结构设计.84.1.2 数据库逻辑结构设计.114.2 模块设计 .134.2.1 用户管理模块.134.2.2 宿舍管理模块.144.2.3 信息维护模块.154.2.4 外来人员管理模块.164.2.5 学生注册模块.195 系统的编码与实现.205.1 系统的实现平台 .205.1.1 系统环境.20 II5.1.2 后台数据库选择及配置.205.2 系统功能模块实现.205.2.1 学生注册模块.225.2.2 宿舍卫生管理.325.3 数据库操作的实现 .355.4 系统测试 .385.4.1 系统测试的目的.385.4.2 系统的测试环境.38总 结.40致 谢.41参 考 文 献.42 1学生宿舍管理系统毕业设计论文1 绪论11 开发背景与现状随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。 对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。今天,计算机的价格已经十分低廉,性能却有了长足的进步。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面: 首先,计算机可以代替人工进行许多繁杂的劳动; 其次,计算机可以节省许多资源; 第三,计算机可以大大的提高人们的工作效率; 第四,计算机可以使敏感文档更加安全,等等.12开发设计的意义随着高校办学规模的扩大,在校学生的学历层次、思想状态、文化水平呈多样化、复杂化趋势,这在很大程度上给学生管理工作带来许多新的 2问题。随着学生人数的增多,高校学生宿舍管理的信息量日益庞大,账本化的工作模式获取信息慢,查阅困难,准确性差,很难适应高水平。因此,如何为学生提供一个安全、整洁、舒适的生活和学习环境,如何应用现代技术更科学、高效地对学生宿舍进行管理是各宿舍管理工作者的目标。 在传统模式下利用人工进行学生宿舍管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率,针对这些情况,我们可使用日趋成熟的计算机技术来代替传统的人工模式, 来实现学生信息的现代化管理,这一技术具有手工管理所无法比拟的优点,如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长, 成本底等。 这些优点能够极大地提高学生信息管理的效率,使我们的学校在市场经济的发展过程 中具有一定的竞争优势,也是学校实现科学化,正规化,现代化的重要条件。实现了科学、统一管理,避免了人工操作产生的错误,大大提高了工作效率。为了实现提高高校宿舍管理部门的工作效率;充分利用资源;减少不必要的人力,物力和财力的支出;方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的;为宿舍管理部门,开发设计专用系统-学生宿舍信息管理系统来进行管理学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度是十分要的。 32 开发环境介绍21 开发工具 MyEclipseMyEclipse 企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse) 是对 EclipseIDE 的扩展,利用它我们可以在数据库和 JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 JavaEE 集成开发环境,包括了完备的编码、调试、测试和发布功能,支持完整的 HTML,Struts,JSP, CSS,Javascript,Spring,SQL,Hibernate。 MyEclipse 是一个十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse 目前支持 Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 数据库链接工具等多项功能。可以说MyEclipse 几乎囊括了目前所有主流开源产品的专属 eclipse 开发工具22 数据库 MySQL2.2.1 MySQL 概述 MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。2.2.2 MySQL 的特性1.使用 C 和 C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 。2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统 。3.为多种编程语言提供了 API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 等。 44.支持多线程,充分利用 CPU 资源 。5.优化的 SQL 查询算法,有效地提高查询速度 。6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB2312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。7.提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径 。8.提供用于管理、检查、优化数据库操作的管理工具 。9.可以处理拥有上千万条记录的大型数据库。2.2.3 MySQL L 的应用与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,MySQL 自有它的不足之处,如规模小、功能有限(MySQL 不支持视图(已经被列入 5.1 版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。 53 系统需求分析学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今天,它的出现已经成了一种必然,本文将从宿舍管理系统的历史和现状进行分析,以求证本系统的设计具有实际的意义,并得到它在未来的发展,从而跟上时代的脚步,做出一个高质量的、安全性好的宿舍管理系统,使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。本系统采用 java 作为前台用户界面的开发语言,java 语言开源而且稳定,后台的数据库采用 MySql。3.1 功能需求3.1.1 基本功能需求主要实现的是学生宿舍管理系统,在设计该系统时,应尽可能的贴近用户,便于用户操作。系统在实现上应该具有如下功能:1. 系统要求宿管人员输入正确的账号和密码才能进入系统。 62. 系统提供学生注册,并上传照片。3. 系统应该提供学生的入住信息及学生注册后的学生个人详细信息4. 系统应提供宿管员的信息查询功能。5. 系统应提供信息维护功能,对学生信息添加,修改,删除。6. 新生可以自己根据学号在入学前查找自己所在的宿舍床位。7. 系统提供宿舍外来人员登记的功能。8. 系统提供记录学生宿舍卫生管理的功能,9. 系统提供宿舍设备管理功能。3.1.2 总体功能模块宿舍管理系统主要实现的功能有:宿管员登录、学生注册、治安管理、信息查询、信息维护、宿舍设备管理、外来人员进出登记管理等。宿舍管理统宿 舍管 理 宿 舍设 备管理外来人员管 理管 理人 员登 录 卫 生管 理添加新生查 询宿 舍信 息查看学生查 询宿 舍设 备修改设备按日期查询按姓名查询信息统计登录和 退出录 入 宿 舍 分 数评 选优 秀宿 舍统 计 优 秀 宿舍修 改学 生信 息对设备备注 7图 3.1 总体功能模块图3.2 性能需求3.2.1 系统安全性对于系统为方便学校管理学生宿舍而开发,便于统一管理,对学生信息表进行保护,没有登录的人员不能直接访问学生信息表,用于保护学生的信息。3.2.2 数据库选择 MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,我选用了 MySql 作为数据库开发。3.2.3 系统稳定性本系统采用 MVC 模式(Model View Controlle),使应用程序,处理和输出分开,他们各自处理自己的业务,不应一个部分的逻辑业务变动,而导致整体代码的重写。本系统的代码就是最典型的 JSP + servlet + javabean 的模式。 84 系统设计4.1 数据库设计数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。 数据库设计是建立数据库及应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。4.1.1 数据库概念结构设计从需求分析可以看出,本系统存在以下几个实体:学生实体:用于显示学生的属性,包括学生学号、姓名、班级、性别、户籍所在地、所在宿舍号、联系方式。宿管员实体:用于显示宿管员的用户名和密码。学生上传照片的实体:照片的 id、照片的名字、照片对应学生的学号。导员实体:用于显示导员的姓名、所带班级和联系方式。外来人员:用于显示外来人员的姓名、身份证号、目的、来的时刻、走的时刻。E-R 模型设计:根据实体设计,可以得到各个实体 E-R 图和部分子系统 E-R 图。(1)学生实体 E-R 图如图 4.1 所示。 9学生联系电话班级籍贯性别姓名宿舍号学生 ID图 4.1 学生实体 E-R 图(2)宿管员实体 E-R 图如图 4.2 所示。宿管员密码用户名图 4.2 宿管员实体 E-R 图(3)照片实体 E-R 图如图 4.3 所示。照片名字学生 id照片 ID图 4.3 学生实体 E-R 图 10(4)导员实体 E-R 图如图 4.4 所示。导员姓名所带班级电话图 4.4 导员实体 E-R 图(5)外来人员实体 E-R 图。外来人员离开时间来时间姓名身份证号目的图 4.5 外来人员实体 E-R 图 11汇总后总体 E-R 模型图:导员Id班级电话姓名管理学生学号姓名性别宿舍号电话户籍辅导宿管员用户名密码管理宿舍宿舍号人数住宿管理设备名称数量使用外来人员姓名身份证号目的来时走时登记图 4.6 总体 E-R 图4.1.2 数据库逻辑结构设计1. 学生信息表存储了学生的基本信息。表 4.1 学生信息表字段名数据类型数据长度是否为空条件KeyIDInt32NP_K姓名Char20Y 12姓名Char20Y班级Char2Y性别Char4Y户籍Char100Y联系方式Char11Y2.宿管员信息表存储了宿管员的基本信息。表 4.2 宿管员信息表字段名数据类型数据长度是否为空条件KeyIDint32NP_K用户名Char50YUni密码Char30Y3. 宿舍信息表存储了学生上传照片的基本信息。表 4.3 学生上传照片表字段名数据类型数据长度是否为空条件KeyIDint32NP_K名字Char50Y对应学生的学号Char32Y4. 班主任表存储了班主任的基本信息。表 4.4 班主任表字段名数据类型数据长度是否为空条件Key班主任 IDInt32NP_K姓名Char20Y手机号Char11Y所带班级Char50Y4. 外来人员登记表存储了外来人员的基本信息。 13表 4.5 外来人员登记表字段名数据类型数据长度是否为空条件KeyIDInt32NP_K姓名Varchar50Y省份证号varChar11Y目的varChar500Y日期DateY进入时间DateY离开时间DateY4.2 模块设计宿舍管理系统作为学校内部信息平台的一部分,系统的用户信息来源于内部信息平台。用户在内部信息平台单点登录,即可直接访问宿舍管理系统。系统数据库与内部信息平台的后台数据库保持同步,当内部信息平台的用户信息修改后,即可同步信息到本系统数据库。用户在内部信息平台成功登录后,当访问宿舍管理系统系统时,内部信息平台将用户名等信息传给宿舍管理系统,宿舍管理系统的接口模块将传过来的用户信息进行解析和初始化,得到系统的用户认证,从而是实现系统和内部信息平台的登录。4.2.1 用户管理模块该模块主要是为宿管员登录设计的,在宿管员登录后进入后台管理页面,注销用户可以重新登录。用户管理流程图如图 4.7 所示: 14宿管员登陆后台登录管理登录操作退出系统Error图 4.7 用户管理流程图4.2.2 宿舍管理模块该模块主要实现房间管理,包括添加,修改,删除。模块图如图 4.8 所示: 15添加宿舍显示添加宿舍输入修改信息信息提交增加成功图 4.8 学生信息修改流程4.2.3 信息维护模块该模块实现的功能是修改学生的信息。首先查询到要修改信息的学生,然后修改学生的联系方式,所在班级等。流程图如图 4.8 所示: 16信息维护学生信息修改输入学生信息确认修改信息数据处理查询结束取消失败成功图 4.9 信息维护流程4.2.4 外来人员管理模块该模块的功能是实现外来人员的登记和查询,将外来人员的信息保存到数据中。(1)外来人员登记流程 17姓名身份证号目的日期离开时间来的时间外来人员登记管理登记外来人员 提交成功图 4.10 外来人员登记流程 18(2)查询外来人员信息按日期查询按姓名查询查询外来人员姓名日期来的时间身份证号离开时间目的返回查询信息图 4.11 查询外来人员流程 194.2.5 学生注册模块该模块实现学生注册功能。学生注册学生信息修改输入学生信息确认上传照片数据处理查询数据库结束取消失败成功图 4.12 学生注册流程 205 系统的编码与实现5.1 系统的实现平台5.1.1 系统环境1、系统软件环境(1)服务端 操作系统:Microsoft Windows7数据库系统:MySQL5.5服务器:Tomcat5.0(2)客户端操作系统:适用于各种平台开发工具:MyEclipse,开发语言:Java(3)开发模式MVC 模式,数据层、控制层、界面分开,其中一个模块逻辑业务的变动不影响到其他层,通过控制层(ActionServlet),将页面的信息保存到数据库,也可从数据库查询到的结果反馈到页面,从而使系统稳定、高效的运行。2、系统硬件环境(1)服务端:CPU:酷睿四核,内存 4G,硬盘 500G;(2)客户端:Pentium 1.6GHz 以上 CPU,512MB 以上内存;(3)网络配置:百兆模式或以上。5.1.2 后台数据库选择及配置本系统决定用 MySQL 数据库,原因有几下几点: 21(1)MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB 公司。在 2008 年 1 月 16 号被 Sun 公司收购。而 2009 年,SUN 又被 Oracle 收购.目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。(2)从自身特性来说:1.使用 C 和 C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。 2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统 。3.为多种编程语言提供了 API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。 4.支持多线程,充分利用 CPU 资源。 5.优化的 SQL 查询算法,有效地提高查询速度。 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。 7.提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。 8.提供用于管理、检查、优化数据库操作的管理工具。 9.可以处理拥有上千万条记录的大型数据库。5.2系统功能模块实现 22图 5.1 宿舍管理系统主界面5.2.1 学生注册模块一、学生注册 23图 5.2 学生注册界面代码部分学生注册界面:regist.jsp1、 用到的工厂Factory2、 接口StudentDAO获得方法:StudentDAO dao = (StudentDAO)Factory .getInstance(StudentDAO);3、 数据库层的方法/通过 id 查找学生是否注册过public Student findById(int id)Connection conn=null;Student s=null;/Employee e=new Employee();try conn=DBUtil.getConnection();PreparedStatement prep=conn.prepareStatement(select * from t_student where id=?);prep.setInt(1,id);ResultSet rst=prep.executeQuery();if(rst.next()s=new Student();s.setAge(rst.getString(age);s.setId(rst.getInt(id);s.setName(rst.getString(name); s.setSalary(rst.getString(salary); s.setSex(rst.getString(sex); s.setPwd(rst.getString(pwd); s.setPhone(rst.getString(phone); 24 catch (Exception e1) / TODO Auto-generated catch blocke1.printStackTrace();finallyDBUtil.close(conn);return s;/将没有注册过的学生信息保存到数据库public void save(Student s)throws ExceptionConnection conn=null;tryconn=DBUtil.getConnection();PreparedStatement prep=conn.prepareStatement(insert into t_student(id,name,salary,sex,age,pwd,phone) values(?,?,?,?,?,?,?);prep.setInt(1, s.getId();prep.setString(2, s.getName();prep.setString(3, s.getSalary();prep.setString(4,s.getSex();prep.setString(5, s.getAge();prep.setString(6, s.getPwd();prep.setString(7,s.getPhone();prep.executeUpdate();catch(Exception e1)e1.printStackTrace();finallyDBUtil.close(conn); 254、 控制层 ActionServletAction.equals(“/regist”)int id=Integer.parseInt(request.getParameter(id);StudentDAO dao = (StudentDAO)Factory .getInstance(StudentDAO);try Student s=dao.findById(id);if(s!=null)/学号已被注册request.setAttribute(id_error, 学号已注册,不能再注册);request.getRequestDispatcher(regist.jsp).forward(request, response);else /将没有注册过的学生信息添加到数据库s=new Student();s.setId(id);s.setName(request.getParameter(name);s.setSalary(request.getParameter(salary);s.setSex(request.getParameter(sex);s.setAge(request.getParameter(age);s.setPwd(request.getParameter(pwd);s.setPhone(request.getParameter(phone);dao.save(s);/为用户新建一个用来保存文件的文件加String path = getServletContext().getRealPath(upload);File file = new File(path + / + pic_ + id);if(!file.exists()file.mkdirs();HttpSession session = request.getSession(); 26session.setAttribute(s, s);request.setAttribute(s,s);request.getRequestDispatcher(regsuccess.jsp).forward(request, response);/response.sendRedirect(regsuccess.jsp); catch (Exception e) e.printStackTrace();throw new ServletException(e);5.2.2 宿管员登录图 5.3 宿管员登录界面代码部分宿管员登录:”/login”用到的接口1.userDAO 272.方法/通过宿管员的名字查找是否有该宿管员,才能进行身份验证并登录,返回的是一个 User 对象。public User findByUsername(String name) throws ExceptionUser user=new User();Connection conn=null;try conn=DBUtil.getConnection();PreparedStatement prep=conn.prepareStatement(select * from t_user where name=?);prep.setString(1, name);ResultSet rst=prep.executeQuery();if(rst.next() user=new User();user.setId(rst.getInt(id);user.setPwd(rst.getString(pwd);user.setName(rst.getString(name);else return null; catch (Exception e) e.printStackTrace();finallyconn.close();return user;3.控制层的方法if(action.equals(/login)String name=request.getParameter(name);/获得页面的宿管员的用户名 28String pwd=request.getParameter(pwd);/获得页面的密码UserDAO dao = (UserDAO)Factory .getInstance(UserDAO); try User user=dao.findByUsername(name);/调用数据库的方法/检查用户名和密码是否正确if(user!=null& user.getPwd().equals(pwd) HttpSession session=request.getSession(); session.setAttribute(user, user);EmployeeDAO dao1= (EmployeeDAO) Factory.getInstance(EmployeeDAO) ; response.sendRedirect(second.jsp); else request.setAttribute(login_error, 用户名或密码错误(*_*),请检查你的用户名和密码); request.getRequestDispatcher(login.jsp).forward(request, response); catch (Exception e) e.printStackTrace();throw new ServletException(e);5.2.3 对学生的操作 29图 5.4 操作界面代码部分宿舍界面:”/list”用到的接口StudentDAO 方法 public List findAll()throws Exception;/将所有学生的信息都查出来public Employee findById(int id)throws Exception;/通过学号查找学生的信息public void save(Employee e) throws Exception;/保存学生信息public void delete(int id)throws Exception;/通过学号删除学生信息public void modify(Employee e)throws Exception;/修改学生信息public int totalPages(int rowsPerPage) throws Exception;/计算总页数public List findAll2(int page,int rowsPerPage) throws Exception; /分页 30控制层if(action.equals(/list)/进行 session 验证,看是否已登录过HttpSession session=request.getSession();Object obj=session.getAttribute(user);if(obj=null)/如果没有登录,则跳到登录页面response.sendRedirect(login.jsp);return;elseString pageStr = request.getParameter(page);if(pageStr = null)pageStr = 1;int page = Integer.parseInt(pageStr);request.setAttribute(page, page);EmployeeDAO dao=(EmployeeDAO) Factory.getInstance(EmployeeDAO);List employees;try employees = dao.findAll2(page,10);/获得总页数int totalPages = dao.totalPages(10);request.setAttribute(totalPages, totalPages);request.setAttribute(employees,employees);RequestDispatcher rd=request.getRequestDispatcher(emplist.jsp);rd.forward(request, response); catch (Exception e) e.printStackTrace();throw new ServletException(e); 31 else if(action.equals(/add)/从页面去增加的学生的信息int id=Integer.parseInt(request.getParameter(id);String name=request.getParameter(name);String salary=request.getParameter(salary);String age=request.getParameter(age);String sex=request.getParameter(sex);/将学生信息保存到 employee 的对象 e 里Employee e=new Employee();e.setId(id);e.setAge(age);e.setName(name);e.setSalary(salary);e.setSex(sex);/将学生信息保存到数据库EmployeeDAO dao=(EmployeeDAO) Factory.getInstance(EmployeeDAO);try dao.save(e);response.sendRedirect(list.do); catch (Exception e1) e1.printStackTrace();throw new ServletException (e1); 325.2.4 外来人员登记 图 5.5 外来人员登记界面代码部分/查找所有public List findAll()/返回所有外来人员的信息public List findByData(String data)/通过日期来查询外来人员public List findByName(String name)/通过名字来查询外来人员public void save(Dj dj)/保存外来人员系信息到数据库中public void xiugai(Dj dj)/修改外来人员的信息 335.2.5 宿舍卫生管理图 5.6 宿舍卫生界面代码部分WsDAOpublic List findAll() /将所有宿舍卫生情况查询出来返回的是 list集合public List findJx()/将学生宿舍的卫生分数排名Listwss=new ArrayList();Connection conn = null;try conn = DBUtil.getConnection();Statement stat = conn.createStatement();ResultSet rst = stat.executeQuery(select * from t_ws order by score desc);while (rst.next() 34Ws ws= new Ws();ws.setId(rst.getInt(id);ws.setSeh(rst.getString(seh);ws.setScore(rst.getDouble(score);wss.add(ws); catch (Exception e) e.printStackTrace(); finally DBUtil.close(conn);return wss;public List findPy() /将评完分后的前三名优秀宿舍评选出来public void gscore(Ws ws) throws Exception /修改宿舍卫生分数public List pwy()Listwys=new ArrayList();Connection conn=null;try conn=DBUtil.getConnection();PreparedStatement prep=conn.prepareStatement(/统计总分数select id, seh,sum(score) sscore from t_wy group by seh order by sscore desc);ResultSet rst=prep.executeQuery();while(rst.next()Wy wy=new Wy();wy.setId(rst.getInt(id);wy.setSeh(rst.getString(seh);wy.setSscore(rst.getDouble(sscore);System.out.println(wy.getScore();wys.add(wy); 35 catch (Exception e) e.printStackTrace();finallyDBUtil.close(conn);return wys;public List findPy() /卫生评优规则Listwss=new ArrayList();Connection conn = null;try conn = DBUtil.getConnection();Statement stat = conn.createStatement();ResultSet rst = stat.executeQuery(select * from t_ws order by score desc limit 3);/将分数高的前三名的宿舍加入到卫生优秀表while (rst.next() Ws ws= new Ws();ws.setId(rst.getInt(id);ws.setSeh(rst.getString(seh);ws.setScore(rst.getDouble(score);wss.add(ws); catch (Exception e) e.printStackTrace(); finally DBUtil.close(conn);return wss; 365.2.6 宿舍设备管理图 5.7 宿舍设备管理界面代码部分/按宿舍号查找public Sb findBySeh(String seh)/修改设备信息public void xiugai(Sb sb)5.3 数据库操作的实现在系统开发过程中,因为要多处用到对数据库的操作,如果这些操作在每次用到时在每个 Java 程序中去实现,将非常繁琐,因此,为了简化这些操作,在开发时设计了一个连接数据库的包 util,用来连接数据库和关闭数据库package util;import dao.impl.EmployeeDAOJdbcImpl;public class Factory public static Object getInstance(String interfaceName)Object obj = null;String className = 37ConfigUtil.getValue(interfaceName);try Class c = Class.forName(className);obj = c.newInstance(); catch (Exception e) e.printStackTrace();return obj;package util;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class ConfigUtil private static Properties props=new Properties();staticInputStream ips=null;ClassLoader loader=ConfigUtil.class.getClassLoader();ips=loader.getResourceAsStream(util/config.properties);try props.load(ips); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();public static String getValue(String key)return props.getProperty(key);package util;import java.sql.Connection; 38import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil public static Connection getConnection() throws ExceptionConnection conn=null;try Class.forName(com.mysql.jdbc.Driver);conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/sypddb? +useUnicode=true&characterEncoding=utf8,root,); catch (ClassNotFoundException e) e.printStackTrace();throw e;return conn;public static void close(Connection conn)if(conn!=null)try conn.close(); catch (SQLException e) e.printStackTrace(); 395.4 系统测试5.4.1 系统测试的目的系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。它的任务是尽可能彻底地检查出程序中的错误,提高 软件的可靠性,其目的是检验系统 “做得怎样?”。这阶段又可分为三个步骤: 模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择, 测试用例以及测试结果是否符合预期结果。测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。一个程序并不可能达到十分完美,难免存在一些错误。如果不能及时将其找出并修改,会造成系统崩溃并造成不必要的损失。通过软件测试,尽可能多的找出系统中的错误,以便与及时修改。宿舍管理系统是对学生宿舍进行管理的系统,一旦系统无法运行,对学校的宿舍管理带来很多的影响。所以通过软件测试的手段,尽可能排除程序中的错误,已达到程序运行稳定的目的,使学校的工作不会因此受到影响。5.4.2 系统的测试环境1.系统测试的性能要求系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。 本系统运行环境为网络版,在运行时对系统整体性能要有一定的要求,要求:软硬件要求:winXp 和 win7+MySQL+Myeclipse硬件系统环境 P4 2.4、512MB 内存、80G 硬盘 40系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。 2.测试数据(1)信息输入选择几组数据进行添加 修改 删除 等操作 实现其基本功能。 (2) 信息查询信息输入后,通过信息查询,查看结果是否和设计时数据一致,以确认数据的正确性。, (3) 信息的删除,通过对信息的删除,然后进行信息查询,验证信息是否已经成功删除。 41总 结在一个软件开发过程中,我觉得最重要的是需求分析,软件是给客户来使用的,所以客户就是上帝,如何合理有效地跟客户进行沟通,然后把需求与软件结合起来,最终形成一个确定的需求文档,这是最重要的。这次的设计就在需求方面吃了很大的亏,刚开始由于需求做的不是很细,第一,内容开始的时候太匮乏,功能点太模棱两可,不够详细,规定的不够具体,没有明确要求,从而导致大幅度的修改过一次需求分析,第二,项目的时间安排没有考虑到很周全,测试的时候估计是因为具体实现代码的时候,返工以及磨合的需求太大,导致测试停滞断时间,从而把后期修改 BUG 的时间占用了一些,差点来不及。第三,想做的功能太多,导致后期抛了几个功能点不做,这也同时是需求分析以及时间安排的不合理问题。最终到了后期才发现这些问题,导致了很多功能都要重新写,花费了很大的功夫,这是这次项目感触最大的,也是收获最多的。在这次的毕业设计的过程中,更加深入了解了对分层设计思想的认识。从一开始的 Dao 层到业务逻辑层,然后通过监听器连接到界面上,最终成为一个满足需求的软件,这就是 MVC 开发模式。虽然一开始感觉到分层很复杂,但是做了几个类后,逐渐有了思路,也进一步加深了对java 面向对象概念的认识。在这次项目中,我体会并感受到了一个项目开发的流程,除了在技术上有一定的提高以外,更重要的是形成了分层的思想与面向对象的思想。看着做出的产品,感受到了这几个月来所付出的一切都是值得的! 42致 谢到目前为止,学生宿舍管理软件基本开发完毕,软件运行稳定,运行时间短,执行功能强,其功能基本符合用户需求。能够完成对学生宿舍基本资料的存储和查询,可以使用查找、修改、添加和删除对学生公寓管理软件的操作等。 由于本人知识有限,又缺乏经验,必定有很多不足和不周之处,希望各位老师给予指导,本人将继续完善修改,使此系统能更好地发挥性能。在此我要特别感谢我的导师给我的指点和帮助,与此同时我还要感谢所有给我鼓励和帮助的同学,使我圆满的完成了毕业设计。衷心的祝愿老师同学工作顺利、学业有成。 43参 考 文 献l 张剑平,学校管理信息系统中国铁道出版社,19972叶达峰,Eclipse 编程技术与实例思维科技编著 人民邮电出版社 06 年出版 3赵增敏,ASP 动态网页设计电子工业出版社,20034刘乃丽,精通 Java EE 项目案例人民邮电出版社,20115 张孝祥深入体验 Java Web 开发内幕电子工业出版社,2006 6 丁振凡,Java 语言实用教程北京邮电大学出版社,2008 7孙鑫,Servlet/JSP 深入详解电子工业出版社,2012 8孙卫琴,李洪称,Tomcat 与 Java Web 开发技术详解电子工业出版社,2008 9Java 核心技术 卷机械工业出版社,2008 10mysql 核心技术手册 机械工业出版社,2009 11Java 编程思想 机械工业出版社,200813 杨志茹,温沿书编著,Java 入门与实战教程。人民邮电出版社,201014 David M Geary.Graphic Java 2 Mastering the JFC Volume 2:Swing (3rd Edition)M.Prentice Hall/Pearson,2000.15 Joshua Marinacci,Chris Adamson.SWING HACKSM.Oreilly,2007.16 James Elliott.Java Swing(Second Edition)M. OReilly & Associates,2002.12.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!