文末获取源码和万字论文,制作不易,感谢点赞支持。
医院门诊预约挂号管理系统设计与实现
摘 要
本医院门诊预约挂号管理系统是针对目前医院门诊预约挂号管理的实际需求,从实际工作出发,对过去的医院门诊预约挂号管理系统存在的问题进行分析,结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用目前最流行的B/S结构和java中流行的MVC三层设计模式和eclipse编辑器、MySQL数据库设计并实现的 。本医院门诊预约挂号管理系统主要包括系统用户管理模块、挂号须知管理模块、医生排班管理、科室信息管理、登录模块、和退出模块等多个模块。它帮助医院门诊预约挂号管理实现了信息化、网络化,通过测试,实现了系统设计目标,相比传统的管理模式,本系统合理的利用了医院门诊预约挂号管理数据资源,有效的减少了医院门诊预约挂号管理的经济投入,大大提高了医院门诊预约挂号管理的效率。
关键词:医院门诊预约挂号管理;MVC模式;MySQL数据库
ABSTRACT
This hospital outpatient appointment registration management system is aimed at the actual needs of the current outpatient appointment management of the hospital. From the actual work, the problems existing in the past hospital outpatient appointment registration management system are analyzed, and the structure, concept, model, principle, and method of the computer system are combined. Under the various advantages of the computer, the most popular B/S structure and the popular MVC three-layer design model in Java and the clipse editor, MySQL database design and implementation are used. The hospital outpatient appointment registration management system mainly includes system user management module, registration instruction management module, doctor scheduling management, department information management, login module, and exit module and many other modules. It helps the hospital outpatient appointment registration management to realize the informatization, the network, through the test, has realized the system design goal, compared with the traditional management model, the system made reasonable use of the hospital outpatient appointment registration management data resources. Effective reduction of the hospital outpatient appointment registered management of the economic investment, greatly improve the efficiency of the hospital outpatient appointment registered management.
key words:Hospital outpatient appointment registration management; MVC mode; MySQL database
摘 要
ABSTRACT
目 录
第1章 绪论
1.1开发背景
1.2开发意义
1.3研究内容
第2章 主要技术和工具介绍
2.1 JSP语言
2.2 MySQL数据库
2.3 jsp技术
2.4ssm简介
第3章 系统分析
3.1可行性分析
3.1.1经济可行性
3.1.2技术可行性
3.1.3操作可行性
3.2需求分析
3.3业务流程分析
3.4数据流程分析
第4章 系统设计
4.1系统结构设计
4.2功能模块设计
4.3数据库设计
4.3.1数据库设计概述
4.3.1概念设计
4.3.2表设计
第5章 系统实现
5.1基本任务
5.2登录模块的实现
5.2.1首页实现
5.2.2管理员后台登录
5.3用户模块的实现
5.3.1注册模块及登录的实现
5.2.2预约模块的实现
5.4管理员模块的实现
5.4.1用户管理模块的实现
5.4.2医生信息管理模块的实现
5.4.3挂号须知管理模块的实现
5.4.5科室信息管理模块的实现
第6章 系统测试
6.1测试目的
6.2测试概述
6.3单元测试
6.3.1注册测试
6.3.2登录测试
6.4集成测试
第7章 总结
致 谢
参考文献
第1章 绪论
1.1开发背景
上个世纪末期,网络技术逐渐开始流行起来,互联网发展进入了起步阶段。到了新世纪初期,信息化技术开始逐渐发展,计算机应用技术逐渐体现出优势来。接着,大量的电脑进入了千家万户,企事业单位、高校、机关等部门。信息化时代逐渐来临,医院门诊预约挂号管理成为互联网时代下媒体管理的核心内容。医院门诊预约挂号管理是媒体中非常重要的一部分,然而由于其性质也致使它难以被实时衡量。长期来看,管理十分不便利,存在误差,查询难的现象,一旦数据过多,人工管理方式就很难维持。随着信息技术的应用拓展,逐渐引用了信息化技术管理,逐渐取代了人工管理模式,采用计算机系统来管理学校信息,带来的好处是查询便利,信息准确率高,节省了开资,提高了工作的效率。本次系统开发,主要以医院门诊预约挂号管理为对象,根据需求来完成功能设计[1][2]。
1.2开发意义
随着现代医院门诊预约挂号管理的快速发展,可以说医院门诊预约挂号管理已经逐渐成为现代医院门诊预约挂号管理过程中最为重要的部分之一。但是一直以来我国传统的医院门诊预约挂号管理并没有建立一套完善的行之有效的医院门诊预约挂号管理系统,传统的医院门诊预约挂号管理已经无法适应高速发展,无论是从效率还是从效果来看都远远的和预计相差甚多,可以断言,传统的医院门诊预约挂号管理模式已经不再适应,甚至已经拖累了发展。因此,需要一个操作方便,高效的管理体系。
系统设计的主要意义在于,一方面,对于医院来讲,系统上线后可以带来很大的便利性,医院门诊预约挂号管理属于非常细致的管理模式,要求数据量大,计算机管理可以提高精确性,更为便利的就是信息的查询,大大的提高了工作效率,改善了管理质量;另一方面,通过系统的设计,自己对软件设计有了更加深入的了解,并且产生了浓厚的学习兴趣,在对问题分析方面有了独特的方式,是进入社会之前一次很好的锻炼机会[3][4]。
1.3研究内容
第2章 主要技术和工具介绍
2.1 JSP语言
本系统的开发主要用JSP(Hypertext Preprocessor,超文本预处理器)这一门开发语言。作为开发语言,这是一种通用的开源脚本语言。这种语法主要是将C语言、Java和Perl等语言的相关特点进行总结吸收形成自身特点,使得更加方便学习,当前广泛在Web领域进行使用。此语法的独特之处在于将C、Java、Perl这三种语言进行了归纳,并创新出JSP具有自己特点的语法。它在执行动态网页方面相对于CGI和Perl语言更加高效。用动态页面如果是使用JSP语言,那么相对于其它的编程语言,JSP的执行主要是体现在将程序嵌入到HTML文档中,相对于其它语言,其执行的效率一般都领先于其它的语言。此外,JSP编译后代码方面也是做得比较好的,一般其编译能够使代码的运行速度比一般语言都要快[7]。
其主要特性有以下几个方面:
1)免费性
和其它技术相比,JSP本身免费且是开源代码。
2)快捷性
使用JSP编程的程序一般开发比较快,而且系统运行也比较快,也易于学习[2]。嵌入于HTML的这种方式,使其相对于其它开发语言编辑起来相对简单,实用性也更加强,对初学者是比较适用的。
3)跨平台性强
由于JSP是运行在服务器的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS、Android等平台
4)效率高
JSP占用相当少的系统资源。
JSP是面向对象且独立于架构的动态脚本语言,使用JSP和HTML编写WEB页面,JSP服务器先对页面的JSP代码进行解析,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。JSP是一种源代码开放程序,拥有很好的跨平台兼容性。JSP代码可以在Window系统以及许多版本的linux系统上完美运行。
JSP语言是不需要任何特殊的开发环境的,所以用户可以直接在WEB页面中输入JSP命令代码。在WEB页面中,所有的JSP代码都被放置在“<?JSP”和“?>”中。
2.2 MySQL数据库
目前在国际上比较流行的数据库管理系统当中,主要有ORACLE、MySQL 、SYBASE、MySQL 、DB2等。MySQL2008版本具有MySQLServer 7.0版本的所有优点,并在此基础上添加很多更先进的功能,从而更加方便使用、更好的伸缩性,集成度高。由于是微软的产品,因此MySQLServer 2008在兼容性可以与微软的其他相关产品进行很好的适应和结合,可以跨越Microsoft Windows 2008到Microsoft Windows 98等多种平台。
MySQL的T-MySQL 支持ANSI MySQL -92标准,是结构化查询语言MySQL 的一种。MySQLServer在身份验证上主要采用以下方式:登录验证、数据库用户帐号许可验证、二级安全验证等等。且在同一时间支持MySQLServer验证和Windows NT验证两种模式。
微软的MySQLServer是较为完善的C/S系统。MySQLServer需要Windows NT平台,而Windows NT可以支持Intel 386,Power PC,MIPS,Alpha PC和RISC等平台,它使MySQLServer具备非常完美的功能。
MySQLServer 2008中具有失败转移集群和数据库镜像技术,失败转移集群和数据库镜像技术可以确保系统向用户提交的应用系统高度可靠和可用。微软的MySQLServer 2008在设计的时候引入了一套集成管理工具和管理应用编程接口(APIs),对系统提供易用性、可管理性和对大型MySQLServer配置的支持。由于采用了数据库加密、相比以前版本更加安全的默认设置、对密码政策和安全模型进行了加强以及实行了许可化控制的细化,使得系统在运用MySQLServer 2008对数据进行管理时能提供安全级别非常高的功能。
2.3 jsp技术
web 的服务平台jsp是由Microsoft创建的。这个平台最主要的功能就是可以把信息、人和设备用一种规范的,具有个性化的方法连接起来。
对于微软来说,jsp技术是它的一个终极梦想,可以用这个技术实现以前完全完成不了的功能,这是一次跃进。今后,无论什么时刻,任意地点我们都可以在任何设备上进行互联信息交互网。在以后会在世界形成一个巨大的全球互联网的终端设备和服务中心,将会随时成为每个人的智能型助手。到那时哪怕你没有闲暇的时间去处理信息分析访问,或者说不需要访问的信息分析,一旦它得到指令,就会自主的查找相关知识智能化集成处理,更高效的处理我们交代的“使命”[9][10]。
(1)JSP Framework的两个组件
JSP框架具有两个不同的元素:包以及框架的软件开发包(SDK)。
当然若是要单纯的要运行jsp程序,我们完全没必要开发jsp应用程序。我们只要在安装发型包组件这里下功夫。因为jsp Framework在发行包上没有进行过编译,所以最后它只能编译JSP应用程序。
(2)框架的特点
JSP框架的两个主要特点:跨平台和语言。
(a)跨平台
JSP框架程序能够随意跨越操作系统平台和硬件环境,不管在哪台电脑上只会编写一遍。
(b)跨语言
. JSP框架里面一种共同的语言系统(CommonLanguageSystem ,称为CLS)。规定了许多标准化的jsp Framework数据种类。
Web应用程序可以用JSP研发出来。现在已然变成了互联网全新一代Web应用程序开发工具之一,一般的编程代码的人员已经慢慢的开始接受、使用它了。
(3)JSP概述
JSP由微软于1996年11月推出的Web应用技术的发展。不单单可以看作是一个全新的框架,并且我们在工作当中能采纳任何产品的制备和应用程序代码,生成高效、动态、交互的vbscript、javascript应用镶嵌到HTML当中。
(4)JSP的特点
(a)代码逻辑和显示页面分离
JSP包含程序和美工两个部分,文件从头到尾html标签和<%%>代码交错。通常,编程员按照以前所计划的开始编写代码,接着是美工按照设计页面和编程员讨论该用哪种布局页面最为合适,最后编程员把设计镶嵌进程序。
(b)编译运行
我们采用了一种虚构的编程框架,把VBScript和JavaScript作为编程语言,如果发现操作系统挪用了JSP源代码一次,那么我们肯定正在访问某个页面。
(c)缓存
由于JSP的缓存基本上没有,通常只能修改数据库来提高性能。并介绍了缓存的概念,一个高速缓存页的一页当中,对一些参数的控制和缓存的页缓存,缓存里的数据可以在最大水平上,帮助我们克服这个难题。
(d)代码隐藏
编码后生成的代码更易于编写,具有更直观的布局,大大削减了开发和维护系统的困难性以及制作成本 。
(5)JSP的关键技术
(a)WebForm
Form(表单)是一个包含不同类型和种类的容器控件,控件必需直接或间接地连接。
(b)Web Service
Web Service是Web服务调用其他Web服务方法。简而言之,是你的网站可以利用其他网站的资源[11][12]。
2.4ssm简介
ssm是Spring、SpringMVC、MyBati组合框架,能更好的实现MVC模式,充分发挥了各自的优势。其中通过Struts在表示层中处理页面请求和转发工作;通过Spring的依赖注入(Inversion of Control,IoC)技术降低了程序之间的耦合性,也使程序员养成用接口编程的好习惯;通过Hibernate完成在持久层与数据库的交互工作。三层框架的整合形成一个结构良好、功能强大,层次清晰的框架体系。
1.Spring
Spring是一个独立的MVC模式框架,很好的实现了显示处理和业务处理逻辑之间的低耦合性。但Struts主要是针对表示层设计的,对业务逻辑方面的支持不是很强,比如事务管理、安全检查等本属于系统层面的,实现代码也穿插在整个业务逻辑中,降低了代码的可维护性,而Spring则可以很好地解决这些问题。
2.SpringMVC
SpringMVC也是独立的MVC模式框架,通过IoC技术,降低各组件之间的依赖,而Spring提供的面向切面编程(Aspect Oriented Programming,AOP)技术,在事务管理上具有独特优势。Spring框架不仅能有效地服务中间层对象,而且易于同其他层框架进行无缝集成,使各层之间相互独立,实现了在架构上各框架间的低耦合性。
3.MyBatis
MyBatis 是集合多种操作型关系数据库的概念和方法,它是一个强大的数据访问工具和解决方法[5]。对比 Hibernate,MyBatis 是一个半自动框架,Hibernate 则是一个全自动框架,无法直接维护 MySQL。MyBatis在书写 MySQL 的灵活性很好,Hibernate 就不行,会比较麻烦。本文使用 MyBatis 作为海田在线商城这种多变性的项目,Hibernate 比较适合稳定的项目。而且 MyBatis 速度相对于 Hibernate 的速度要快些。
第3章 系统分析
3.1可行性分析
本文的设计的系统将会分别从经济的可行性,技术的可行性以及操作的可行性等方面进行全面的可行性的分析。
3.1.1经济可行性
由于系统开发的工具和软件都是可以免费使用的,因此系统开发的费用很少,甚至只需要少许的费用就可以开发出本系统,也可以忽略不计;再加上通过系统的实施可以提高用户文件的私密性,最大程度的保护用户的信息安全,因此,从这些方面就可以说经济上是可行的 [14][15]。
3.1.2技术可行性
技术的可行性是指在当今所拥有的技术条件之下,计算机软件和硬件的发展能否够满足发展的要求。由于本系统开发基于java语言,在一般的计算机上就能够满足开发本系统所需要的软硬件条件;因为它占用的内存本来就相对较少,我们用MySQLServer数据对软件的开发以及设计在理论上没有问题的原因是:它占用的内存实在是太少了。
3.1.3操作可行性
作为当今大部分用户来讲,都是受过良好教育,具有高素质的人才,都能十分容易的使用电脑进行各种操作,是以本文在开发设计上使用java技术进行设计的医院门诊预约挂号管理系统,其操作是完全可行的 [18][19]。
通过上述分析,可以确定该系统具有实际开发的价值和可能性。
3.2需求分析
针对现存的问题和需要,通过功能需求的分析,特建立了数字化、信息化的医院门诊预约挂号管理系统。
本系统主要包含了等系统用户管理、医生信息管理、预约信息管理、预约信息管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。
管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。
用户的登录模块:用户登录本系统,对个人的信息等进行查询,操作可使用的功能。
用户注册模块:游客用户可以进行用户注册,系统会反馈是否注册成功。
添加管理员模块:向本系统中添加更多的管理人员,管理员包括普通管理员和超级管理员。
医生信息管理模块:
医生信息列表:将数据库的医生信息表以列表的形式呈现给管理员。
添加医生信息:实现管理员添加医生信息。
修改医生信息:实现管理员修改医生信息。
挂号须知管理模块:
挂号须知列表:将数据库的挂号须知表以列表的形式呈现给管理员。
添加挂号须知:实现管理员添加挂号须知。
修改挂号须知:实现管理员修改挂号须知。
预约信息管理模块:
预约信息列表:显示系统的所有预约信息,可以通过关键字查询。
预约信息删除:对输入错误或过期的预约信息删除。
科室信息管理模块:
科室信息列表:显示系统的所有科室信息,可以通过关键字查询。
科室信息删除:对输入错误或过期的科室信息删除。
用户模块:
资料管理:用户登录本系统。可以对自己的个人主页进行查看。
系统信息:用户可以查看自己的系统提示信息。
修改资料:用户可以修改自己的账号密码。
信息搜索:用户可以通过关键字搜索站内信息。
密码修改:用户可以修改个人登录密码。
系统管理模块:包括数据备份。
退出模块:
管理员退出:管理员用来退出系统。
用户退出:用户用来退出系统。
3.3业务流程分析
总体业务流程:以用户的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作。
系统的业务流程如下图所示。
图3-1系统业务流程图
3.4数据流程分析
数据流图的简称为DFD,是通过使用图形的方法对系统所具备的逻辑功能进行阐述,描述系统数据的流向和逻辑变换。由于该方法能将难以阐述的问题进行表述,因此被开发者广泛应用,是当前应用范围较为广泛的结构化系统分析方法。
零层数据流程是流程中最抽象的一层,它包括了用户注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。
图3-2系统数据流图(0层)
1层数据流图中,数据实体包括普通用户和管理员,普通用户数据流程包括功能选择、预约信息管理、预约信息管理、;管理员用户数据流程包括医生信息管理、预约信息管理、系统管理;普通用户数据流包括操作信息、添加信息、浏览信息;管理员数据流包括添加信息、删除信息、修改信息、查询信息、浏览信息、提示信息等,数据表包括。
系统的1层数据流图如下图所示。
图3-3系统数据流图(1层)
2层为管理员操作后台数据流图,管理员可以分别通过添加、修改和删除来对系统进行管理,如下图所示。
系统的2层数据流图如下图所示。
图3-4系统数据流图(2层)
第4章 系统设计
4.1系统结构设计
系统主要是分为管理员端设计与用户端设计。用户端模块主要是系统中普通用户在注册、登录系统可以看到自己的基本信息,维护自己的信息;管理员端模块主要是管理员登录后对整个系统相关操作进行处理,可进行管理员的添加和删除,可对系统中的用户进行管理。
系统的功能结构图如下图所示。
图4-1系统功能结构图
4.2功能模块设计
- 注册模块:游客用户可以系统进行账号注册,账号注册需要输入的数据,有用户名、密码、确认密码、邮箱、qq等,提交注册信息后,系统通过js代码判断用户输入的注册数据是否符合规格,如果符合规格后,在系统数据库中新增一个用户记录,为了安全性,使用md5加密算法完成密码的加密,然后存储数据库。
- 登录模块:在用户登录过程中,包含用户名、密码和验证码,系统需要先对验证码进行正错判断,若用户登录使用了验证码,则用户登录时除了需要输入用户名和密码外,还要输入验证码。在判断验证码为正确后,判断用户名及密码,由于用户密码是用MD5加密过的,所以在对用户密码判断时应先对密码进行MD5转换后再进行判断,当用户名或密码不正确时,返回登录页面显示错误信息。
- 医生信息管理模块:用户发布医生信息,医生信息存储在医生信息表中,用户点击医生信息发布,进入医生信息发布页面,提交医生信息后,管理员审核用户添加的医生信息,并管理。
- 预约信息管理模块:设计系统的预约信息表,管理员对预约信息数据的管理,如增加、删除、修改、查询等,管理员添加预约信息时,输入预约信息后,使用js函数判断输入格式是否正确,判断正确后,则往预约信息表中插入预约信息数据。
- 挂号须知管理模块:挂号须知管理模块包括挂号须知录入、挂号须知列表、挂号须知搜索、挂号须知修改、挂号须知删除,都是通过MySQL 语句来实现数据库操作,并将数据放置到html界面中。
- 系统管理模块:数据备份功能。
4.3数据库设计
4.3.1数据库设计概述
数据库的设计在这一套开发系统中扮演者非常重要的角色,完善的数据库建立可以让其更快的完成项目。整个数据库的创建是库存管理系统开发和创立的核心技术,概括的说,就是根据用户的需求创立起满足用户的需要的数据库。数据库的整体设计是在软件开发是其最主要的问题。
再考虑到数据库设计的时候,我们首先应该想到把这个系统的数据设计和处理设计密切结合起来,从而使得把整个库存信息管理系统相结合起来。
以前采用手工整理的方法来对信息结构复杂,应用环境多样的数据进行整理。使用这种过时方法与整个数据整理人员的水平是紧密相关的,经验多的人则失误少,反之,则出现的错误会多。数据库设计是被认为是一项技巧而不是他人眼中工程项目,缺少正确的理论知识和合适的解决方法的支持。因为在交付运行了一段时间之后总有些莫名其妙的问题发生,使这个软件系统的质量很难得到保障从而导致出现了很多的损失。以是只有采取新的数据库管理方式才能更好的解决这些根本性的问题。近些年来,人们不断的探索和挖掘数据库其中的奥妙,以便更快更好地运行整个系统。
4.3.1概念设计
一个完整的数据分析过程与这个数据库的逻辑结构和物理结构有十分密切的联系,我们需要一系列操作来完成对应用数据库所使用的信息进行确认、编纂、组织、挑选。我们可以采用特定的方法来获取有关用户的所有的有效信息,从而使这些有用信息可以直接成为数据库的重要数据。
我们在数据库分析中采用E-R图来建立相对应的关系,它有实体、关系、属性三种概念。实体可以说是一个用来维持和不断利用数据的大集合;属性可以说是这个物体的所具有的特点;关系很明显指的就是每个数据实体之间的种种联系,关系给各个实体之间建立起了相对应的模型。
根据系统各个实体的关系,得出系统的总体ER图。
系统总体ER图如下图所示。
图4-2系统总体ER图
4.3.2表设计
1. 建立最符合客户需求的数据库计划。
2. 对数据库进行规范化处理,避免一些不必要的错误。
3. 数据库完整性。
4. 每个用户权限的要求。
5. 应用程序的性能需求,设计数据库时必须利用MySQL中的各个功能来维持运行。
6. 数据库定期的维护。
在服务器上建立名为yymzyyghxt的数据库,其中包括以下表:
allusers表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | username | 150 | 255 | |||
3 | pwd | 150 | 255 | |||
4 | cx | 150 | 255 | |||
5 | addtime | DateTime | 8 | 19 |
dx表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 10 | ||
2 | leibie | 150 | 255 | |||
3 | content | 1073741823 | 255 |
keshixinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | keshi | 150 | 255 | |||
3 | addtime | DateTime | 8 | 19 |
paibanxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | zuozhenriqi | 150 | 255 | |||
3 | zuozhenkeshi | 150 | 255 | |||
4 | keyuyuerenshu | 150 | 255 | |||
5 | shengyuyuyuerenshu | Int | 4 | 10 | ||
6 | zhanghao | 150 | 255 | |||
7 | yishengxingming | 150 | 255 | |||
8 | zhicheng | 150 | 255 | |||
9 | yiling | 150 | 255 | |||
10 | keshi | 150 | 255 | |||
11 | addtime | DateTime | 8 | 19 |
xinwentongzhi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | biaoti | 150 | 255 | |||
3 | leibie | 150 | 255 | |||
4 | neirong | 1073741823 | 255 | |||
5 | shouyetupian | 150 | 255 | |||
6 | dianjilv | 150 | 255 | |||
7 | tianjiaren | 150 | 255 | |||
8 | addtime | DateTime | 8 | 19 | ||
9 | ddd | DateTime | 8 | 19 |
yishengxinxi表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | zhanghao | 150 | 255 | |||
3 | mima | 150 | 255 | |||
4 | yishengxingming | 150 | 255 | |||
5 | xingbie | 150 | 255 | |||
6 | shouji | 150 | 255 | |||
7 | zhicheng | 150 | 255 | |||
8 | yiling | 150 | 255 | |||
9 | keshi | 150 | 255 | |||
10 | zhaopian | 150 | 255 | |||
11 | addtime | DateTime | 8 | 19 |
yonghuzhuce表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | yonghuming | 150 | 255 | |||
3 | mima | 150 | 255 | |||
4 | xingming | 150 | 255 | |||
5 | xingbie | 150 | 255 | |||
6 | chushengnianyue | DateTime | 8 | 19 | ||
7 | | 150 | 255 | |||
8 | youxiang | 150 | 255 | |||
9 | shouji | 150 | 255 | |||
10 | shenfenzheng | 150 | 255 | |||
11 | touxiang | 150 | 255 | |||
12 | dizhi | 150 | 255 | |||
13 | beizhu | 1073741823 | 255 | |||
14 | issh | 30 | 255 | |||
15 | addtime | DateTime | 8 | 19 |
youqinglianjie表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | ID | Int | 4 | 10 | ||
2 | wangzhanmingcheng | 150 | 255 | |||
3 | wangzhi | 150 | 255 | |||
4 | addtime | DateTime | 8 | 19 | ||
5 | LOGO | 1073741823 | 255 |
yuyueguahao表:
序号 | 字段名称 | 字段类型 | 大小 | 允许为空 | 最大长度 | 备注 |
1 | id | Int | 4 | 10 | ||
2 | zuozhenriqi | 150 | 255 | |||
3 | zuozhenkeshi | 150 | 255 | |||
4 | keyuyuerenshu | 150 | 255 | |||
5 | shengyuyuyuerenshu | 150 | 255 | |||
6 | zhanghao | 150 | 255 | |||
7 | yishengxingming | 150 | 255 | |||
8 | zhicheng | 150 | 255 | |||
9 | guahaoleixing | 150 | 255 | |||
10 | guahaokeshi | 150 | 255 | |||
11 | guahaofei | 150 | 255 | |||
12 | yonghuming | 150 | 255 | |||
13 | issh | 30 | 255 | |||
14 | addtime | DateTime | 8 | 19 |
第5章 系统实现
5.1基本任务
系统实现阶段的根本目标在这个阶段的设计工作中精确地描述出目标系统,从而在编码阶段可以直接根据这个描述翻译成用程序语言编写的系统。
系统实现的基本任务有以下几个:
(1) 为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2) 为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3) 对数据结构进行物理设计,即确定数据库的物理结构。
(4) 其他设计:根据软件系统的类型,可能还需要进行代码设计、输入/输出格式设计、人机对话设计。
(5) 编写系统实现说明书。
(6) 评审。对处理过程的算法和数据库的物理结构都要评审。
系统结构可分为src的java源代码,database文件夹为系统的数据库文件,webroot为系统的界面代码文件。Src文件夹里面包含control包、dao包、util包,dao包为逻辑层,是系统方法的底层包,包括各种数据增删改查的方法,control包是控制层,用来连接逻辑层和视图层,在逻辑层调用逻辑层,完成视图层需要的功能,视图层为系统的界面代码,完成界面的设计和数据的显示。
5.2登录模块的实现
5.2.1首页实现
首页是网站的入口,主要包含了:系统简介、挂号须知、预约挂号、以及科室信息等功能。首页页面,如下图所示。
图5.1 首页页面图
首页主要代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="util.Info"%>
<%@page import="dao.CommDAO"%>
<%@page import="util.PageManager"%>
5.2.2管理员后台登录
为了确保系统安全性,系统操作员只有在后台登录界面输入正确的用户名、密码、权限以及验证码,单击“登录”按钮后才能够进入本系统的后台管理界面。
用户登录流程图如下所示。
图5-2用户登录流程图
登录界面如下图所示。
图5-3登录界面
用户登录的逻辑代码如下:
<title>校园在线投票系统</title>
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function hsgchecklogin() {
if(document.f11.username.value=="" || document.f11.pwd.value=="" || document.f11.pagerandom.value=="")
{
alert("请输入完整");
return false;
}
if (document.f11.pagerandom.value != document.f11.yzm.value) {
alert("验证码错误!");
document.f11.pagerandom.focus();
return false;
}
5.3用户模块的实现
5.3.1注册模块及登录的实现
用户输入用户名、密码、电话、姓名等必填信息后,点击注册按钮完成用户的注册。
用户注册流程图如下所示。
图5-4用户注册流程图
用户注册界面如下图所示。
图5-5用户注册
用户登录界面如下图所示。
图5-6用户登录
<%
HashMap ext = new HashMap();
ext.put("issm","否");
new CommDAO().insert(request,response,"yonghuzhuce",ext,true,false,"index.jsp");
%>
Php:
include_once 'conn.php';
$addnew=$_POST["addnew"];
if($addnew=="1")
{
$username=$_POST['username'];
$pwd=$_POST['pwd1'];
$cx=$_POST['cx'];
$MySQL ="select * from allusers where username='$username' and pwd='$pwd'";
$query=MySQL _query($MySQL );
$rowscount=MySQL _num_rows($query);
if($rowscount>0)
{
echo "<script language='javascript'>alert('该用户名已经存在,请换其他用户名!');history.back();</script>";
}
else
{
//date_default_timezone_set("PRC");
$ndate =date("Y-m-d H:i:s");
$MySQL ="insert into allusers(username,pwd,cx) values('$username','$pwd','$cx')";
MySQL _query($MySQL );
echo "<script language='javascript'>alert('注册成功!');location.href='yhzhgl.php';</script>";
}
5.2.2预约模块的实现
用户点击预约挂号进入预约挂号详细页,点击预约按钮进入预约页,提交预约信息,成功预约后,管理员管理用户的预约信息,审核预约信息。
用户预约流程图如下所示。
图5-9用户预约流程图
用户预约界面如图所示。
图5-10用户预约
预约管理界面如图所示。
图5-11预约管理
5.4管理员模块的实现
5.4.1用户管理模块的实现
系统用户管理主要是对新用户的添加和旧用户的删除。新用户的添加主要是指添加用户名称并确定其密码;旧用户的删除也是从下拉菜单中找到对应的用户名称将其删除。不论是新用户添加还是旧用户的删除,这个权限只有管理员具有。
用户管理流程图如下所示。
图5-12用户管理流程图
用户管理界面如下图所示。
图5-13用户管理
系统用户管理关键代码为:
function gows()
{
document.location.href="allusers_add.jsp?id=<%=id%>";
}
function hsgxia2shxurxu(nstr,nwbk)
{
if (eval("form1."+nwbk).value.indexOf(nstr)>=0)
{
eval("form1."+nwbk).value=eval("form1."+nwbk).value.replace(nstr+";", "");
}
else
{
eval("form1."+nwbk).value=eval("form1."+nwbk).value+nstr+";";
}
}
5.4.2医生信息管理模块的实现
医生信息信息添加功能主要指对其账号、医生姓名等一些基本信息的添加、删除和修改。医生信息查询能根据账号、医生姓名等多种条件对医生信息信息进行查询。
医生信息管理流程图如下所示。
图5-16医生信息管理流程图
医生信息添加如下图所示:
图5-17医生信息添加
医生信息查询如下图所示:
图5-18医生信息查询
protected void Button1_Click(object sender, EventArgs e)
{
string MySQL ;
MySQL ="insert into liuyanban(cheng,biaoqing,biaoti,neirong,huifu) values('"+cheng.Text.ToString().Trim()+"','"+biaoqing.Text.ToString().Trim()+"','"+biaoti.Text.ToString().Trim()+"','"+neirong.Text.ToString().Trim()+"','"+huifu.Text.ToString().Trim()+"') ";
int result;
result = new Class1().hsgexucute(MySQL );
if (result == 1)
{
Response.Write("<script>javascript:alert('添加成功');</script>");
}
else
{
Response.Write("<script>javascript:alert('系统错误,请检查数据库设置问题');</script>");
}
}
5.4.3挂号须知管理模块的实现
管理员发布新的挂号须知,系统显示挂号须知,挂号须知添加功能主要指对其标题、类别等一些基本信息的添加、删除和修改。
挂号须知管理流程图如下所示。
图5-19挂号须知管理流程图
挂号须知添加如下图所示:
图5-20挂号须知添加
挂号须知查询如下图所示:
图5-21挂号须知查询
5.4.5科室信息管理模块的实现
管理员发布科室信息,系统显示科室信息,科室信息添加功能主要指对其科室等一些基本信息的添加、删除和修改。
科室信息添加页面,如下图所示。
图5.22 科室信息添加页面图
科室信息管理页面,如下图所示。
图5.22 科室信息管理页面图
第6章 系统测试
6.1测试目的
基于ssm的医院门诊预约挂号管理系统,主要测试客户端的使用和后台服务器的使用。客户端主要是测试用户注册、用户登录、用户完善信息、页面是否进行跳转等功能是否实现。管理员的使用主要是测试系统管理、用户信息管理、预约信息以及注册用户管理功能是否实现。
6.2测试概述
1.测试的原则
(1)系统测试应该避免测试自己的程序,以免发现不了细小的问题。
(2)系统测试用例应有两部分组成,分别为输入测试和输出测试。
(3)系统测试数据应当引用不合理的数据进行测试,选取不同情况的进行逐一测试。
(4)不仅要检查程序是否达到预期的效果,还要检查程序是否执行了规定以外的操作。
(5)对出现错误多的模块进行集中测试。
(6)已发现错误的模块修改后,应及时进行重新测试。
2.测试的方法
测试方法主要有人工测试和机器测试。
(1)人工测试
人工测试又称代码复审,包括个人复查、走查、会审三种方法[7]。
(2)机器测试
机器测试主要是由黑盒测试和白盒测试两种方法。
在最后的测试阶段,系统采用后黑盒测试和白盒测试想结合的方法。黑盒测试主要用于对系统的输入和输出特性进行测试,检测功能方面存在的错误与可能存在的缺陷。白盒测试主要用于对软件的过程及逻辑路径进行测试,发现性能方面的错误。具体采用的测试方法为系统测试和单元测试。
6.3单元测试
6.3.1注册测试
游客用户得先注册账号才能登录系统,用户输入符合规则的用户名后,填写2次一样的密码,点击注册按钮,系统提示“注册成功“。当用户2次密码不一致时,系统提示两次密码不一致。
注册测试用例如下表所示。
表6-1注册测试用例
测试模块 | 用户注册模块测试 |
测试目的 | 测试当注册信息输入不符合要求时,系统是否能进行相应处理并给出提示。 |
测试方法 | 黑盒测试 |
测试数据 | 1不输入用户名和密码,直接点击注册。 2输入未注册过的用户名。例如:abcd 3输入正确用户名,两次密码不一样。例如:用户名abcdefg、密码 000,确认密码111 |
预期结果 | 1 界面不跳转,弹出对话框,提示用户输入必填项。 2界面跳转,弹出对话框,提示用户注册成功。 3界面不跳转,弹出对话框,提示两次密码不一致。 |
实际结果 | 与预想一致。 |
结论 | 注册模块实现了基本的异常输入应对。 |
6.3.2登录测试
登录模块需要测试的功能有:输入登录名和密码,点击“登录”按钮是否正常进入系统首页。
登录测试用例如下表所示。
表6-2登录测试用例
测试模块 | 用户登录模块测试 |
测试目的 | 测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。 |
测试方法 | 黑盒测试 |
测试数据 | 1不输入用户名和密码,直接点击登陆。 2输入未注册过的用户名。例如:abcdefg 3输入正确用户名,错误密码。例如:用户名abcdefg、密码 000 4输入正确用户名,正确匹配密码。例如:用户名abcdefg、密码 111 |
预期结果 | 1 界面不跳转,弹出对话框,提示用户输入必填项。 2界面不跳转,弹出对话框,提示用户当前用户名尚未注册。 3界面不跳转,弹出对话框,提示用户密码错误。 4界面实现跳转,登陆功能正常进行。 |
实际结果 | 与预想一致。 |
结论 | 登陆模块实现了基本的异常输入应对。 |
6.4集成测试
集成测试的方案主要如下所述:
- 将系统移植到另一台计算机上,运行出错。修改配置信息后运行成功。
- 用户信息管理模块综合测试,添加新用户roess,为其分配一般管理员角色,查看一般管理员角色权限,保存设置,以roess身份登录,查看所拥有权限。
- 最后按照医院门诊预约挂号管理系统的设计与实现,以不同角色的身份进入系统,对系统各模块功能进行测试,测试模块间逻辑功是否有误。
经过测试,发现此开发系统可以满足医院门诊预约挂号管理系统流程的基本工作流程和基本要求。
第7章 总结
经过几个月的努力还坚持,医院门诊预约挂号管理系统终于完成了,程序功能模块能按照需求来运行,能实现多用户的迸发使用,但是系统由于设计经验以及专业知识的局限性,在本系统的开发过程中,在一些功能方面和业务逻辑方面做得不是很完善,系统还存在一些缺陷。界面的设计从布局到外观,受限于自身的设计功底较低,没能达到自己所要设计的界面要求,另一方面,系统存在一些没有考虑的问题和模块。
在学习的过程中首次进行独立设计工作,编码过程出现了许多问题和困难,原以为正确无误的程序运行过程中不会遇到问题,但是在运行过程中也总会出现各种各样的问题,在调试过程中找不出运行出错的原因。而这些基本问题却都是一些简单的问题,例如标点符号应该是英文状态下的,却因为不好的编程习惯造成了一些中文的符号输入,经过仔细观察和老师的帮组下,还是将问题解决了。
目前系统的功能比较简单,还存在许多瑕疵,这是一份遗憾,也是促进我不断进步的动力。
致 谢
经历了近三个多月的动手实践及老师辛勤的指导和同学朋友热心的帮助下,本人的毕业设计医院门诊预约挂号管理系统的基本功能也基本完成。
此次设计中,通过不断的探讨与学习使我熟悉、使我初步了解了JAVA相关技术。做的是一个B/S结构的医院门诊预约挂号管理系统,使我对做网站所需要,及运行的环境有了初步的了解,在此次设计中我翻阅了较多的书籍,在有限的时间了丰富了对医院门诊预约挂号管理系统技术的知识也积累了少许的经验。起初对JSP的初步认识,通过这次设计更进一步的了解了其工作原理,懂得了配置服务器环境,连接数据库源,在设计过程中,也学会了用dreamweaver设计一个简单的页面,增强了动手的能力,激发了在此方面的兴趣。
但是由于时间、基础及缺乏实践等多方面的问题,还有诸多需要解决的问题依然存在,设计中很多方面考虑不够周全或者考虑不到。
非常感谢我的老师,我的同学,我的朋友并希望在今后的学习生活中不断陪养多方面的兴趣,不断学习进步从而能够实现独立完成。设计中存在的诸多缺点诚肯老师的原谅。
参考文献
[1]刘晓华,周慧贞.JSP应用开发详解[M].北京:电子工业出版社,2013:35-126
[2]阿斯利森,舒塔,金灵等译.Ajax基础教程[M].北京:人民邮电出版社,2014:15-26
[3]孙鑫.Struts 2深入详解[M].北京:电子工业出版社,2012:8-16
[4]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社出版社,2010:7-15
[5]王毅,周峰,孙更新.J2EE经典案例设计与实现[M].北京:电子工业出版,2013:6-18
[6]孙鑫.Struts 2深入详解(Java技术大系)[M].北京:电子工业出版社,2012:5-14
[7]郑阿奇.MySQL 实用教程[M].北京:电子工业出版社,2013:26-42
[8]谭庆平,毛新军编著.软件工程实践[M].北京:高等教育出版社,2014:34-87
[9]林邦杰.Java程序设计入门教程[M]. 北京:中国青年出版社,2011:63-99
[10]谢希仁.计算机网络[M]. 北京:电子工业出版社,2012: 89-125
[11]布朗,戴维斯,斯坦利克,马召等译.Struts 2实战[M].北京:人民邮电出版社,2012:85-136
[12]王行言.Java语言与面向对象程序设计[M].北京:清华大学出版社,2013:36-85
[13]拉夫利,李进华等译.精通Struts 2:Web 2.0开发实战[M].北京:人民邮电出版社,2012:253-276
[14]陈云芳.精通Struts 2基于MVC的Web应用开发实战[M].北京:人民邮电 出版社, 2012:136-187
[15] DavidHopkins.Improvingthe Quality of Teaching and Learning[J].Support for Learning,2014(12):162-165.
[16] Ed Woychowsky.Introducing Ajax[EB/OL]. http://www. webreference.com/programming/ajax_creating_asynchrono us_web_pages/index.html,2015-1-13.
[17] Roberto Latorre,Francisco Lopez,Antonio E.Martinez.Sharing of procompiled database statements in J2EE application[J]. Software: Practice and Experience,2015(35):301-311.
[18] Huang,M.Y,Lin,Y.J,Xu,H.A framework for web-based product data management using J2EE.International Journal of Advanced Manufacturing Technology, 2014:825-847.
[19] Aleassanndro Marchetto,Filippo Ricca,Paolo Tonella.A case study-based comparison of web testing techniques applied to ajax web applications[J].International Journal on software Tools for Technology Transfer(STTT),2015,10(12):477-492.
[20]D.F.Elliott,and K.Rao.Fast Transforms:Algorothms,Analysas,Applications.New York:Academkic Prdss.2014