




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XXXXXXXX 大 学系 统 设 计 说 明 书设计(论文)题目:学生宿舍管理系统系 别: 信息工程学院 专 业: 软件技术 姓 名: XXXXX 学 号: XXXXXXXXX 指导教师: XXXXX 完成时间: XXXX年XX月 摘要摘要当今大学校园内的学生公寓,其数据量大,各种信息管理内容复杂,查询和管理学生信息和校园内的公寓信息等工作由人工完成将是很累的,不仅浪费了许多人力物力资源,而且还很容易出现差错,有一个软件对学生公寓管理不仅节省了人力物力,而且对各种信息的把握和操作也更加方便。该学生宿舍管理系统主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。管理人员需要做的就是将数据输入到系统的数据库中去。经过分析,本系统运用了MySQL为后台数据库,以eclipse为前端开发工具,系统实现了权限管理、学生信息管理、来访者管理、学生离校返校管理、卫生情况检查管理等必需的功能,其操作简单,界面友好,运行比较稳定,适用于大学院校大学生宿舍管理。关键词: 宿舍管理 、来访者管理、学生离校返校管理 III目录目录第1章 系统分析11.1系统开发的背景11.2系统需求分析11.2.1功能需求11.2.2性能需求21.3 可行性分析31.3.1经济可行性31.3.2技术可行性31.3.3总结31.4系统的开发平台及开发工具31.4.1 开发工具Eclipse31.4.2 数据库MySQL41.4.3 三层架构技术介绍51.5实现系统的平台51.5.1系统环境51.5.2后台数据库选择机配置6第2章 系统总体设计72.1数据库设计72.1.1 数据库设计概念72.1.1 E-R模型设计72.2数据库的逻辑设计102.3模块设计122.2.1用户管理模块132.2.2学生信息管理模块132.2.3报修管理模块152.2.4来访者登记模块152.2.4学生进出校管理模块16第3章 系统详细设计173.1子系统功能模块的实现173.1.1 包的创建173.1.2 java架包的构建193.1.3 公共模块设计193.1.3 数据库连接配置213.2主窗体模块设计223.2.1 学生宿舍管理系统主界面223.2.2 学生信息管理模块233.2.3 报修管理管理模块283.2.4 来访者登记管理模块293.2.5 进校出校管理模块303.3数据导出Excel和导入Excel数据33第4章 系统调试364.1系统调试的目的364.2系统的调试36结束语40谢词41附录42参考文献43第一章 系统分析第1章 系统分析1.1系统开发的背景随着时代的发展,计算机技术越来越深入各行各业,为广大的用户提供了更为周到和便捷的服务。目前各行各业广泛使用专用系统,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,设计开发好一个专用系统对一个机构(或部门)的发展十分重要。近年来,随着用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术的广泛应用,向用户提供的服务将越来越丰富,越来越人性化。 对于学校而言,学生宿舍管理是必不可少的组成部分。目前仍然存在有学校停留在宿舍管理部门人员手工记录数据的阶段,手工记录对于规模小的学校来说勉强可以接受;但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,由于数据量庞大,只能依靠人工去一条一条地查找,这样不但麻烦而且浪费许多时间,工作效率比较低。采用计算机来管理宿舍和学生的信息,大大提高了查询的速度,节约了人力和物力资源,达到了预期的要求。1.2系统需求分析 学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今天,它的出现已经成了一种必然,本文将从宿舍管理系统的历史和现状进行分析,以求证本系统的设计具有实际的意义,并得到它在未来的发展,从而跟上时代的脚步,做出一个高质量的、安全性好的宿舍管理系统,使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。 学生宿舍管理系统的开发主要包括前台用户界面的开发和后台数据库的开发,对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。本系统采用java作为前台用户界面的开发语言,而后台的数据库采用MySql。1.2.1功能需求 1. 基本功能需求 主要实现的是学生宿舍管理系统,在设计该系统时,应尽可能的贴近用户,便于用户操作。系统在实现上应该具有如下功能:(1) 系统要求用户输入正确的账号和密码才能进入系统。(2) 系统提供普通用户管理权限,能根据实施情况,增加或者删除多余房间,同时根据现有情况预估房间的需求量。(3) 系统应该提供学生的入住信息的录入,转换宿舍以及退宿舍的信息登记。(4) 系统应提供普通用户的信息查询功能(按多种方式查询)及统计功能。(5) 系统应提供信息维护功能,对学生信息修改,删除。(6) 系统应提供超级管理员增加、删除用户账户的功能。2. 功能模块 宿舍管理系统主要实现的功能有:房间管理、宿舍管理、信息查询、信息维护等。功能模块图如图1.1所示:图1.1 宿舍管理主要功能模块图1.2.2性能需求1. 系统安全性 对于系统为方便学校管理学生宿舍而开发,便于统一管理,设一个超级用户,及几个普通用户(便于输入相关信息)。在登录时,使用用户验证控件,来确认用户是否为合法用户,以保证信息安全。2. 数据库选择 由于用到的数据表格多,另外考虑到实际情况,学生基本信息的变动,还有员工信息的多少的变化,我选用MySql 作为数据库开发。1.3 可行性分析1.3.1 经济可行性主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小型的管理系统,从投入的人力,财力与物力来讲是非常之小的,只要一台电脑,一台打印机,这个系统就可以搞起来,考虑到学校里有电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给宿舍里的管理提高一个层次。1.3.2 技术可行性 技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,做为计算机信息管理专业毕业的优等生,数据库设计方面对于我们应该还过得去,在宿舍里生活了两年,对这个管理模试应该比较的熟悉。1.3.3 总结 通过以上两点的分析,编写或开发这个宿舍管理系统是可行的,只要这个系统能实现对学生数据的输入、修改、删除、打印、浏览与查询就可以了。如果技术方面可行,浏览与查询方面的功能应该编写得强大一点,再好有条件组合的查询,可以实现按分类查询,也可以按专业、寝室号、籍贯等分类查询,以便学校方面管理人员可以很方便的查询想要的数据,以便进行统一管理,统一安排。1.4系统的开发平台及开发工具 本系统采用的开发平台是Eclipse, 数据库是MySQL,网站中主要运用分层的设计思想即三层架构技术(表示层-业务逻辑层-数据处理层)。1.4.1 开发工具EclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。基于Eclipse的应用程序的突出例子是IBM的WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse 、Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。1.4.2 数据库MySQL1. MySQL概述 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。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等。 (4) 支持多线程,充分利用CPU资源 。(5) 优化的SQL查询算法,有效地提高查询速度 。(6) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。(7) 提供TCP/IP、ODBC和JDBC等多种数据库连接途径 。(8) 提供用于管理、检查、优化数据库操作的管理工具 。(9) 可以处理拥有上千万条记录的大型数据库。3. MySQL的应用与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL不支持视图(已经被列入5.1版的开发计划)、事件等)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。1.4.3 三层架构技术介绍三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。三层架构的优势:从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。另外三层架构还可以支持如下功能:Remote Access(远程访问资料),例如可透过Internet存取远程数据库;High Performance(提升运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,降低数据库主机的Connection Load,并可藉由增加App Server处理众多的数据处理要求,这一点跟前面讲到的分布式计算提高运算能力是一个道理;Client端发出Request(工作要求)后,便可离线,交由App Server和DataBase Server共同把工作完成,减少Client端的等待时间;这个功能我觉得应用场合不是很多,自己感受也不是很深刻,从理论上是成立的。1.5实现系统的平台1.5.1系统环境1、系统软件环境(1)服务端 操作系统:Microsoft Windows7数据库系统:MySQL5.0(2)客户端操作系统:适用于各种平台开发工具:Eclipse,Navicat8.0开发语言:Java2、系统硬件环境(1)服务端:CPU:酷睿四核,内存4G,硬盘500G;(2)客户端:Pentium 1.6GHz以上CPU,512MB以上内存;(3)网络配置:百兆模式或以上。1.5.2后台数据库选择机配置本系统决定用MySQL数据库,原因MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 第2章 系统总体设计2.1数据库设计数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。 数据库设计是建立数据库及应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。2.1.1 数据库设计概念人们把数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行与维护6个阶段。概念结构设计就是对信息世界进行建模,常用的概念模型是E-R模型,它是P.P.S.Chen 于1976年提出来的。概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。从需求分析可以看出,本系统存在以下几个实体:学生实体:用于显示学生的属性,包括学生姓名、学生性别、学号、联、宿舍编号、入住日期等。宿管(即管理员)实体:用于显示宿管的属性,包括管理员编号、姓名、所管辖的楼栋等拜访者实体:用于拜访者的信息,包括拜访者编号、拜访者姓名、拜访时间、离开时间等用户实体:登录用户的信息,包括用户名、密码和用户权限2.1.1 E-R模型设计根据实体设计,可以得到各个实体和部分子系统E-R图。学生实体图如图2.1所示。学生宿舍号院系班级性别姓名管理员编号学号图2.1 学生实体图宿管实体图如图2.2所示。宿管姓名宿舍编号宿管ID图2.2 宿管实体图拜访者实体图如图2.3所示。拜访者姓名来访时间离开时间楼栋号拜访ID图2.3 拜访者实体图用户实体图如图2.4所示。用户用户ID用户名用户权限密码图2.4 用户实体图用户实体图如图2.5所示。宿舍宿管编号宿舍编号图2.5 用户实体图宿舍管理系统全局E-R图如图2.6所示。宿管来访者宿舍学生管理拜访入住N1NNM1图2.6 宿舍管理系统E-R图2.2数据库的逻辑设计数据库逻辑设计是整个设计的前半段,包括所需的实体和关系,实体规范化等工作。设计的后半段则是数据库物理设计,包括选择数据库产品,确定数据库实体属性(字段)、数据类型、长度、精度确定、DBMS页面大小等。数据库是需要设计的,数据库设计反映在两方面:数据库逻辑设计:设计数据库的逻辑结构,与具体的DBMS无关,主要反映业务逻辑。数据库物理设计:设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS(如Oracle、Sybase等),并设计和实施数据库的存储结构、存取方式等。数据库逻辑设计决定了数据库及其应用的整体性能,调优位置。如果数据库逻辑设计不好,则所有调优方法对于提高数据库性能的效果都是有限的。为了使数据库设计的方法走向完备,数据库的规范化理论必须遵守。规范化理论为数据库逻辑设计提供了理论指导和工具,在减少了数据冗余的同时节约了存储空间,同时加快了增、删、改的速度。另外,在规范的数据库逻辑设计时,还应考虑适当地破坏规范规则,即反规范化设计,来降低索引、表的数目,降低连接操作的数目,从而加快查询速度。常用的反规范技术有增加冗余列、增加派生列、重新组表等。1. 学生信息表存储了学生的基本信息。表4.1 学生信息表字段名数据类型数据长度是否为空Key学号Char10NP_K管理员编号Char10NF_K姓名Varchar20N院系Varchar20手机Char11班级Varchar20宿舍号Char10N2. 管理员信息表存储了管理员的基本信息。表4.2 管理员信息表字段名数据类型数据长度是否为空Key管理员编号Char10NP_K续上表姓名Varchar15N楼号Char10N3. 报修管理表存储了报修基本情况信息。表4.3 报修管理表字段名数据类型数据长度是否为空Key报修编号Char10NP_K管理员编号Char10NF_K宿舍号Char10N报修时间Datetime解决时间Datetime4. 用户信息表存储了用户的类型。表4.4 用户信息表字段名数据类型数据长度是否为空Key用户IDChar10NP_K用户名Varchar20N密码Varchar10N5. 来访者登记表存储了来访者登记的基本信息。表4.5 来访者登记表字段名数据类型数据长度是否为空Key来访者登记编号Char10NP_K管理员编号Char10NF_K姓名Varchar20来访日期Datetime6. 学生出校登记表存储了学生离校登记的基本信息。表4.6 学生离校登记表字段名数据类型数据长度是否为空Key离校编号Char10NP_K学号Char10NF_K姓名Varchar20出校时间日期Datetime7. 学生返校登记表存储了学生进校登记的基本信息。表4.7 学生进校登记表字段名数据类型数据长度是否为空Key进校编号Char10NP_K学号Char10NF_K姓名Varchar20返校时间日期Datetime8. 宿舍表存储了宿舍的基本信息。表4.8 宿舍信息表字段名数据类型数据长度是否为空Key宿舍编号Char10NP_K宿管编号Char10NF_K2.3模块设计宿舍管理系统作为公司内部信息平台的一部分,系统的用户信息来源于内部信息平台。用户在内部信息平台单点登录,即可直接访问宿舍管理系统。系统数据库与内部信息平台的后台数据库保持同步,当内部信息平台的用户信息修改后,即可同步信息到本系统数据库。系统主要模块用例图如图2.7所示: 图2.7 系统主要模块UML用例图2.2.1用户管理模块该模块主要是为管理员登录设计的,在用户登录后进入后台管理页面,如果是普通用户只可以查看一些信息不能修改密码和增加用户,注销用户可以重新登录。超级用户可以修改普通用户密码,增加用户,这是超级用户和普通用户的区别。用户管理流程图如图2.8所示:管理员后台登陆管理登陆后台管理(增删改查操作)NY图 2.8 用户管理流程图2.2.2学生信息管理模块该模块主要实现对学生信息管理,包括学生信息录入,修改,删除。模块图如图2.9所示:学生信息管理学生信息修改学生信息录入学生信息删除学生信息查询 导成Excel表格生成报表根据查询条件查询图 2.9 学生信息管理模块学生信息的修改删除功能可修改班级号,宿舍号,删除完成学业的或退学的学生等等信息。学生信息修改功能如图2.10所示:图2.10 学生信息修改流程学生信息删除功能如图2.11所示:图2.11 学生信息删除流程2.2.3报修管理模块该模块主要实现对报修信息管理,包括对报修宿舍信息的添加、查询和确认。详细描述:对报修宿舍的登记,记录主要信息宿舍号、宿舍损坏物品、报修时间、详情描述等等。学生可以查看报修情况何时被解决,员工解决保修情况时候需要及时登记解决时间。模块图如图2.12所示:报修信息管理对保修宿舍解决时间的确认报修宿舍信息录入对报修宿舍信息的查询图2.12 来访者登记管理模块2.2.4来访者登记模块该模块主要实现对来访者信息管理,主要是对来访者信息的登记,和学校对来访者信息的查看。 详情描述:记录下列主要信息姓名、与被访者关系,证件名称、证件号码、来访时间、被拜访者的姓名。当住宿的被拜访的学生带有贵重物品出入宿舍楼时,需要出楼登记。等来访者信息记录错误时,可以修改相关信息。模块图如图2.13所示:登记物品的出入来访者信息的录入对来访者信息的查询来访者信息的登记管理 图2.13 来访者登记管理模块2.2.4学生进出校管理模块该模块主要实现对学生进校和离校两方面信息的管理。详情描述:主要包括学生离校时间、进校时间和携带东西的录入,查询学生的进校离校记录,学校需要时可以进行查看最近学生出校返校情况。模块图如图2.14所示:信息的录入对学生进校、出校信息的查询学生进校、出校信息的登记管理 图2.14 学生进校离校管理模块16第3章 系统详细设计第3章 系统详细设计3.1子系统功能模块的实现3.1.1 包的创建本宿舍管理系统采用三层架构(即分层)的思想,分为三层:(1)数据访问层:顾名思义,就是用于专门跟进行交互。执行数据的添加、删除、修改和显示等。需要强调的是,所有的数据对象只在这一层被引用,如System.Data.SqlClient等,除数据层之外的任何地方都不应该出现这样的引用。需要创建以下包dao包、daoimpl包,Dao包中存放数据访问的接口,例如:执行数据的添加、删除、修改和显示接口等,DaoImpl中存放对Dao中接口的实现即实现从数据库读取数据例如实体学生StuDao中的接口public interface StuDao extends Dao, PageDao boolean insertMany(List list); List selectTotal(PageParamBean param); DefaultPieDataset readpiedate(); DefaultCategoryDataset readlinedate();例如实体学生StuDaoImpl中向数据库发送的SQL语句:public static final String INSERT_TB_STU_SQL = INSERT INTO tb_stu (Sid,Mid,Sname,Sdepart,Sclass,dor) VALUES (?,?,?,?,?,?) ;public static final String DELETE_TB_STU_BY_ID_SQL = DELETE FROM tb_stu WHERE Sid = ? ;public static final String UPDATE_TB_STU_SQL = UPDATE tb_stu SET Mid=?, Sname=?,Sdepart=?,Sclass=?,dor=? WHERE Sid = ? ;public static final String SELECT_TB_STU_ALL_SQL = SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu ;public static final String SELECT_TB_STU_BY_ID_SQL = SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE Sid = ? ;public static final String SELECT_BASE_TB_STU_BY_COND_COUNT_SQL = SELECT COUNT(*) FROM tb_stu WHERE 1=1 ;public static final String SELECT_BASE_TB_STU_CURR_PAGE_SQL = SELECT Sid,Mid,Sname,Sdepart,Sclass,dor FROM tb_stu WHERE 1=1 ;public static final String SELECT_TB_STU_GROUP_BY_MID_SQL = SELECT tb_manager.Mname ,count(*) FROM tb_stu left join tb_manager on tb_stu.mid=tb_manager.mid group by tb_stu.mid ;(2)业务逻辑层:对一些业务的实现,用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格 式是否正确及数据类型验证;用户的权限的合法性判断等等,通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。需要创建一下包server包、serverimpl包,Service包中存放需要实现的业务接口,例如:数据的删除,修改,查询,分页等业务的接口,ServicImple中存放对Service中接口中的实现,需要调用数据访问层中DaoImpl的具体方法的返回值来获得数据。例如实体学生StuService中的接口:public interface StuService extends SuSheManageService PageResultBean selectCurrPage(PageParamBean param);boolean insert(Stu newstu);boolean update(Stu entity);boolean delete (Serializable id) ;boolean importExcel(String filePath);List selectTotal(PageParamBean param);DefaultPieDataset readpiedate();DefaultCategoryDataset readlinedate();例如实体学生StuServiceImpl中的从daoimpl中获取数据的主要代码:private StuDao dao=new StuDaoImpl();(3)表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味着只做与外观显示相关的,不属于他的工作不用做。 这个项目创建了view包,存放数据显示的窗体。需要调用serviceimpl中的业务实现方法的返回值来获得数据所谓的三层开发就是将系统的整个业务应用划分为表示层业务逻辑层数据访问层,这样有利于系统的开发、维护、部署和扩展。宿舍管理系统所创建的包如3.1所示:图3.1分层思想包的结构创建3.1.2 java架包的构建在写宿舍管理系统时我们需要加一些我们项目中所需要的架包,通过选择“工程”“右键”build path” 命令即可进行添加。本系统程序中需要添加的选项和需要使用的对应jar包,如图3.2所示。图3.2 项目需要构建的架包项目需要构建的架包的简单说明:1. mysal-connector-java-3.0.17-ga-bin,jar是用于连接数据MySql的对应架包;2. Jcommon-1.0.21.jar 是用来显示关于应用程序信息的用户界面类,布局定制管理器,一个日期选择面板,序列化工具类,XML解析器支持类.3. hamcrest-library-1.3RCO.jar和junit-4.8.1.jar是用于单元调试所需要的架包4. jxl.jar是用于导入导出EXCEL文件的架包5. jfrechart-1.0.jar是用于把数据生成图文形式的架包3.1.3 公共模块设计在项目中创建了这样一个包sushemanage.util。这个包中存放工具类,因为这些代码可以重复调用,避免代码的冗余我们创建这些工具类。util包中有这些工具类如3.3所示:图 3.3 项目需要工具类1. DbUtil.java是数据库连接工具类。下面写数据库交互是具体写。2. ExcelUtil.java是将数据导入导出成Excel的工具类。将Excel中数据读入数据库主体代码:public List read(String filePath) /read方法,需要传String类型的路径名作为参数将表中数据导出成到Excel中主体代码:public boolean write(List list,String targetfile) /write方法,需要传一个list的集合和一个String类型的目标文件参数3. JfreeChatUtil。Java是生成统计柱状图、折线图、饼图的工具类 生成饼图的主体代码: public static void createPie(String TITLE_EMPS_PER_DEPT,DefaultPieDataset dataset)/DefaultPieDataset dataset = new DefaultPieDataset();/ create a chart. 生成折线图的主体代码:public static void createLine(String TITLE_EMPS_PER_DEPT,DefaultCategoryDataset linedataset,String xName,String yName) 生成柱状图的主体代码:public static void createBar(String TITLE_EMPS_PER_DEPT,DefaultCategoryDataset linedataset,String xName,String yName)4. MD5Util.java是MD5加密技术的工具类。MD5加密主要代码:public static String md5(String pswd)try MessageDigest md=MessageDigest.getInstance(MD5);byte byteArray=md.digest(pswd.getBytes();return ByteArrayToString(byteArray); catch (NoSuchAlgorithmException e) / TODO Auto-generated catch blocke.printStackTrace();return null;用这个技术后数据库用户登录的密码应是加密后的数据如图3.4所示:图 3.4 加密后的密码3.1.3 数据库连接配置数据库连接采用单例设计模式,单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。数据库连接主要代码:/* * 使用单例 设计模式,实现 获得数据库连接,和数据连接关闭方法 * 单例中 读取 配置文件只做一次,解析该perties只做一次 注册加载数据库厂商提供的工具类 ,只做一次*/private DbUtil() / 读取perties 文件try InputStream is = DbUtil.class.getClassLoader().getResourceAsStream(perties);/ properties 工具类 索引,内容Properties prop = new Properties();/ 读取perties文件prop.load(is);username = prop.getProperty(username);password = prop.getProperty(password);url = prop.getProperty(url);String driverClass = prop.getProperty(driverClass);Class.forName(driverClass); catch (Exception e) e.printStackTrace();这样数据库连接只要写一次,每一次从数据库中读取数据,知道连接这个数据库连接工具类DButil就可以了。数据库需要的连接、用户名、密码写在perties文件中:url=jdbc:mysql:/localhost:3306/java54driverClass=com.mysql.jdbc.Driverusername=rootpassword=root3.2主窗体模块设计3.2.1 学生宿舍管理系统主界面学生宿舍管理系统主界面如图3.5所示:图3.5 宿舍管理系统主界面9. 功能模块说明:通过点击左边的树结构,来显示右边是子窗体。10. 设计思路:树状结构,常用于菜单,或是文件管理等等具有层次关系的内容。这样设计就可以很简单的用左边的树来控住右边各个功能的子窗体的显示。11. 主窗体通过左边的树来控制右边子窗体的显示主要代码:final JTree tree = new JTree();tree.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) int selRow = tree.getRowForLocation(e.getX(), e.getY(); TreePath selPath = tree.getPathForLocation(e.getX(), e.getY(); if(selRow != -1) String nodeName = (TreeNode)selPath.getLastPathComponent().toString(); if(学生信息管理.equals(nodeName) mainJPanel.removeAll(); StuJPanel stuJPanel = new StuJPanel(); mainJPanel.add(stuJPanel) ; mainJPanel.updateUI() ; if(宿舍报修情况管理.equals(nodeName) if(学生进校管理.equals(nodeName) if(学生出校管理.equals(nodeName) if(来访登记管理.equals(nodeName) if(管理员权限设置.equals(nodeName) );3.2.2 学生信息管理模块一、显示学生数据如图3.6所示:图3.6 学生宿舍管理界面1. 功能模块说明:通过点击左边的树结构中的学生信息管理,从数据库检索数据显示在学生信息子窗体中。2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。 3. 代码部分:学生信息显示界面:StuInfoJFrame.java用到的接口List selectTotal(PageParamBean param);方法public List selectTotal(PageParamBean param) 二、新增学生信息如图3.7所示图3.7 新增学生信息1. 功能模块说明:点击新增学生按钮,更具需求将所要添加的学生信息添加进数据库(一次添加一个,批量添加可以用Excel导入后面详细说明)。2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。当点击添加按钮时调用StuAddJFrame.java类,进行学生信息的添加。3. 代码部分:添加学生信息显示界面:StuAddJFrame.java用到的接口boolean insert(Stu newstu);方法public boolean insert(Stu entity) /添加一个学生对象三、删除学生信息选中要删除的学生的信息点击删除,如图3.8所示:图3.8删除学生信息1. 功能模块说明:首先需要选中一个或多个数据再点击删除学生信息按钮,显示提示信息“删除成功”,不然会显示提示信息“请选着一条或多条数据”。2. 设计思路:当点击树的时候,将stuJPanel子窗体显示出来,初始数据、查询、修改、删除、分页、导入导出Excel等一系列功能的封装条件都存放在stuJPanel视图类中。3. 代码部分:用到的接口boolean delete (Serializable id) ;方法public boolean delete(Serializable id) /删除一个学生的ID四、修改学生信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林苗木 采购合同范本
- 农行车贷合同范本
- 公司股权设计合同范本
- 厂房失火承担合同范本
- 2007建安合同标准文本
- 2025年-广东省安全员B证考试题库及答案
- 出租空土地合同样本
- 农资分公司合同标准文本
- 广东省揭西县重点达标名校2023-2024学年中考数学全真模拟试卷含解析
- 2025年山西省安全员-A证考试题库附答案
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 创业思维-创造你喜爱的人生智慧树知到期末考试答案章节答案2024年浙江旅游职业学院
- 100道凑十法练习习题
- 人教版初中阶段语文古诗词理解性背诵默写汇编
- 内蒙古高中毕业生学籍表毕业生登记表学年评语表成绩单身体健康检查表完整版高中档案文件
- 光电效应和普朗克常数测定实验数据表格
- 重力式桥台计算程序表格
- (完整word版)清表施工方案
- 污水池防腐施工方案改
- 公务用车派车单、车辆维修保养申请单(修订版)
评论
0/150
提交评论