• java毕业设计——基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现(毕业论文+程序源码)——牙科诊所管理系统


    基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现(毕业论文+程序源码)

    大家好,今天给大家介绍基于java+Jsp+Tomcat的牙科诊所管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

    文章目录:

    1、项目简介

    1. 本文采用面向对象分析的方法,详细阐述了一个功能比较强大的牙科诊所管理系统的前后台开发,操作流程和涉及的一些关键技术。首先进行了可行性分析,然后是面向对象分析,通过实际的业务流程需要,抽取和整理用户需求,建立了问题域精确模型;然后是面向对象设计阶段,主要是把分析阶段得到的对目标系统的需求转变成符合成本和质量要求的,抽象的系统实现方案,阐述了系统设计的思想,数据库的设计和系统设计的工具及技术。该阶段对本系统各个对象的属性和方法进行了详细设计,建立了本系统的对象模型,形成了本系统的类图;数据库设计时先进行了概念结构设计,然后进行了逻辑结构设计,最后完成了数据表的设计。
    2. 根据前几个阶段的分析和设计,本系统在设计方面采用B/S模式,同时使用JSP技术进行基本页面的设计与功能实现,后台数据库选用MySQL数据库。本系统的设计实施为牙科诊所管理系统的运行做基础,为牙科诊所管理系统工作提供良好的条件。

    2、资源详情

    项目难度:中等难度
    适用场景:相关题目的毕业设计
    配套论文字数:19377个字46页
    包含内容:整套源码+完整毕业论文+答辩PPT+任务书+辅导视频+运行截图


    3、关键词:

    牙科诊所病例门诊管理 JSP B/S模式

    4、毕设简介

    提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

    1 引言
    私人牙科诊所病例信息系统(HOSPITAL INFORMATION SYSTEM)简称HIS,是私人牙科诊所病例实现现代化建设的重要基础工程,是提高私人牙科诊所病例管理水平、医疗水平、业务运转效率和服务质量的必要手段,是指应用电子计算机和网络通信设备,对私人牙科诊所病例的病人医疗信息、财务核算分析信息、预约信息进行收集、存储、处理、提取和数据通讯,满足所有授权用户对信息使用需求的计算机应用软件系统。
    (一)项目开发的背景
    省略

    (二)项目开发的目的
    省略

    牙科诊所管理系统的实现的现实意义:减少管理诊所的工作人员;管理人员可以随时浏览查看,而且更加直观;改变了以前工资手工记录的方式,电脑录入更加快捷方便;实现了门诊管理系统的计算机化。

    1.1结构概述和技术介绍
    1.1.1 JSP概述
    JSP是服务器端脚本环境可以用来创建交互式Web应用程序。当服务器收到对JSP文件的请求时,它处理包含在用于构建发送给浏览器的Web页文件中的服务器端脚本。除服务器端脚本外,JSP文件也可以包含HTML(包括相关的客户端脚本)和COM组件调用,这些组件可执行不同任务,如连接到数据库或处理商业逻辑。

    省略

    1.3.3 JSP的基本概念
    (1)URL
    URL(Uniform Resource Location,统一资源定位器)有协议名、web服务器地址、路径名和文件名四部分组成,它只是了文件在Internet中的位置。

    (2)HTML
    HTML(Hypertext Markup Language,超文本标记语言)是一种用于编写超文本文档的标记语言,它不是一种程序设计语言而是一种结构语言。它具有凭他无关性,无论是何种操作系统,只要有相应的浏览器程序,就可以运行HTML文档。

    (3)Web站点
    Web站点是计算机网络上的一个位置,它以网页或文档形式提供信息,访问者只需通过Web浏览器链接到站点。

    (4)主页
    主页是Web站点上一组网页或其他文件的起始页。它是HTML格式的文档,可用来说明站点内容、作者所在公司或部门的新闻、指向其他相关文档的链接或站点作者的个人信息等。

    2.系统分析
    2.1 需求分析
    根据调研情况进行分析,认识到完整的管理系统非常复杂 ,其功能随医院病例规模等条件的变化而不同。目前各种医院病例管理系统的不断涌现,但是大多都是针对大型医院来设计的,而很少考虑到众多私人牙科诊所病例的实际情况,其功能在私人牙科诊所病例并不适用,从而增加了院方不必要的投资。此外,系统一般也不支持远程访问,信息的共享性差。为适应医疗信息管理发展的需要,开发基于B/S结构的私人牙科诊所病例管理系统。该系统应具有以下功能:
    (1) 登陆模块,可分为管理员登陆和普通用户医生登录三个模块。
    (2) 用户注册模块,对用户注册的用户名的要求,不同的用户要求要有不同的用户名。
    (3) 系统管理模块,包括添加管理员,管理员密码的修改。
    (4) 挂号管理模块,包括患者的名字、性别、年龄、现住地址和患者简介。
    (5) 患者管理模块,对患者进行增加、患者删除、患者信息的修改。
    (6) 开药管理模块,对药品的增加、删除、修改、查询,患者病历查
    (7) 科室管理模块,管理员可以新建,修改,删除,科室信息
    (8) 留言管理,管理员可以新建,修改,删除留言信息
    (9) 预约挂号模块,用户可以在线进行预约挂号,用户可以选择普通号和专家号。

    2.2 系统设计原则
    2.1.1技术可行性
    本系统是采用基于Web的程序设计思想进行编制的,利用JSP语句结合Microsoft SQL Server 2000后台数据库开发“私人牙科诊所病例信息管理系统”,可应用于各大中小型私人牙科诊所病例。整个系统由若干个表、窗口、菜单构成的。用户可通过菜单来调用系统的各项功能。

    基于Web的程序设计语言JSP,之所以成为功能强大的服务器端程序是因为它为Web编程人员提供了一组功能强大的内置对象,通过这些内置对象,编程人员可以控制Web页面的各个方面。

    2.1.2 经济可行性
    鉴于次系统是毕业设计,所以本系统不需要多余的格外开发成本,硬件配置和软件配置环境家用机可完全胜任,所以在经济上是可行的。

    2.1.3 操作可行性
    本设计力求界面简单明了,操作简单,便于上手,使用户可以在最短的时间内熟练掌握各功能。所以在操作上是可行的。

    2.1.4 时间可行性
    从时间上看,在两个月的时间里学习相关知识,并开发网站,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。

    3.概要设计
    功能模块的设计是整个系统设计的重要部分,它决定怎么实现系统的功能,不仅要求功能完善,而且还要界面友好,因此,对于一个成功的系统设计,功能模块的设计是关键。
    在这里插入图片描述

    3.1 数据库设计
    省略

    本系统采用的数据库是MySQL是一个关系型数据库管理系统 瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

    3.5 数据项和数据结构
    用户身份,包括的数据项:用户身份ID号、用户身份名称,其E-R图如图3-1所示:
    在这里插入图片描述

    图 3-1 用户身份E-R图
    用户登录信息,包括的数据项有:用户名称、用户密码、用户身份、用户登录次数,其E-R图如图3-2所示:
    在这里插入图片描述

    图3-2 用户登陆信息E-R图
    用户登录日志信息,包括的数据项有:日志记录编号、用户编号、登录时间、离开时间,其E-R图如图3-3所示:
    在这里插入图片描述

    图 3-3 用户登陆日志E-R图

    3.6 建立数据表
    省略

    因为私人牙科诊所病例信息管理系统包括挂号信息管理、药品管理等模块,还有其他子模块构成,包括的数据比较多,每一个表都要确定主关键字。这样本系统所有的表结构都建成了。

    表3-1 sysuser表
    在这里插入图片描述

    在这里插入图片描述

    4 细设计
    4.1 模块的设计
    4.1.1 登录模块
    (1)管理员登录:包括用户名、密码 ,注册用户 界面图如图4-1所示:
    在这里插入图片描述

    图4-1 管理员登录界面图
    实现管理员登陆界面的部分代码如下:

     <title>私人牙科诊所病例管理系统 </title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    	<LINK href="admin/css/admin.css" type="text/css" rel="stylesheet">
      </head>
      <%
    String message = (String)request.getAttribute("message");
    	if(message == null){
    			message = "";
    	}
    	if (!message.trim().equals("")){
    		out.println("<script language='javascript'>");
    		out.println("alert('"+message+"');");
    		out.println("</script>");
    	}
    	request.removeAttribute("message");
     	String code=yzm.getCheckCode();
    %>
      <body  onload=document.f1.uname.focus();>
      <form action="/srykzsblmis/studysite?ac=login" method="post" name="f1" onsubmit="return ck()">
       <TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" bgColor=#002779 
    border=0>
      <TR>
        <TD align=middle>
          <TABLE cellSpacing=0 cellPadding=0 width=468 border=0>
            <TR>
              <TD align="center"><font size="4" color="white"><b>私人牙科诊所病例管理系统 </b></font></TR>
            <TR>
              <TD><IMG height=147 src="admin/images/login_2.jpg" 
                width=468></TD></TR></TABLE>
          <TABLE cellSpacing=0 cellPadding=0 width=468 bgColor=#ffffff border=0>
            <TR>
              <TD width=16><IMG height=122 src="admin/images/login_3.jpg" 
                width=16></TD>
              <TD align=middle>
                <TABLE cellSpacing=0 cellPadding=0 width=230 border=0>
                  <TR height=5>
                    <TD width=5></TD>
                    <TD width=56></TD>
                    <TD></TD></TR>
                  <TR height=36>
                    <TD></TD>
                    <TD>用户名</TD>
                    <TD><INPUT 
                      style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" 
                      maxLength=30 size=24  name=uname></TD></TR>
                  <TR height=36>
                    <TD>&nbsp; </TD>
                    <TD>口 令</TD>
                    <TD><INPUT 
                      style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" 
                      type=password maxLength=30 size=24 name=upass></TD></TR>
                     <TR >
                    <TD>&nbsp; </TD>
                    <TD>验证码</TD>
                    <TD><input type="text" style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" 
                     size="5" id="yzm" name="yzm" class=input onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" 
                                  onkeyup="value=value.replace(/[\W]/g,'')"><%=code %></TD></TR>
                  <TR height=5>
                    <TD colSpan=3></TD></TR>
                  <TR>
                    <TD>&nbsp;</TD>
                    <TD>&nbsp;</TD>
                    <TD><INPUT type=image height=18 width=70 
                      src="admin/images/bt_login.gif"></TD></TR></TABLE></TD>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    (2)普通用户登录:只有合法的用户在输入正确的密码后方可进入系统,否则将提示密码或用户名输入错误,并询问用户是否重新输入,界面图如图4-2所示:
    在这里插入图片描述

    图4-2 普通用户登录界面图
    实现普通用户登录的部分代码如下:

     <jsp:include page="top.jsp"></jsp:include>
      <%HashMap user = (HashMap)session.getAttribute("user"); 
      CommDAO dao = new CommDAO();
      HashMap map = dao.select("select * from patient where id='"+user.get("id")+"' ").get(0);%>
      
            <div style="margin-top:10px;text-align:center;">
            <table width=800 border="0" cellpadding="0" cellspacing="0">
                <tr height=320 bgcolor="#1FA9FE" style="color:white;font-weight:bold;">
                    <td align="center" width=110 bgcolor="#ECECED" valign="top" style="">
                        <jsp:include page="menu.jsp"></jsp:include>
                    </td>
                    <td  align="center" bgcolor="white" style="padding-left:20px;padding-top:15px;color:Black;font-weight:normal;" valign="top">
    
    			<form action="/srykzsblmis/studysite?ac=userinfo&id=<%=map.get("id") %>" name="f1" method="post" onsubmit="return ck()">
                            <table border=0  style="font-size:12px">
                                <tr bgcolor="#ffffff">
                                    <td width=130 >
                                        登录名称:
                                    </td>
                                    <td width=570 align="left">
                                        <input name="uname" type="text" id="uname" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
                                <tr bgcolor="#ffffff">
                                    <td >
                                        登录密码:
                                    </td>
                                    <td align="left">
                                        <input name="upass" type="password" id="upass" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
                                <tr bgcolor="#ffffff">
                                    <td >
                                        重复密码:
                                    </td>
                                    <td align="left">
                                        <input name="upass1" type="password" id="upass1" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
             <tr bgcolor="#ffffff">
        		<td>病人姓名</td>
        		<td><input type="text" id="tname" name="tname" size="5"/>*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>性别</td>
        		<td>
        			<select id="sex" name="sex">
        				<option value="男"></option>
        				<option value="女"></option>
        			</select>
        		</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>年龄</td>
        		<td><input type="text" id="age" name="age" size="2"/>*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>身份证</td>
        		<td><input type="text" id="idcard" name="idcard" />*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>电话</td>
        		<td><input type="text" id="tel" name="tel" />*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>住址</td>
        		<td><input type="text" id="addr" name="addr" />*</td>
        	</tr>       
                                                                              
                                <tr height=60>
                                    <td align="center" colspan="2">
                                    <input type="submit" value="提交">
                                    </td>
                                </tr>                                                                                    
                            </table>
                            </form>
                                                     
                    </td>
                </tr>
            </table>
            <div style="margin-top:10px;height:1px;background-color:#1FA9FE;text-align:center;width:800px;">
                
            </div>     
                
        </div> 
        
        
        
        <jsp:include page="foot.jsp"></jsp:include>
        </center>
        <script type="text/javascript">
    	function ck(){
    		if(f1.upass.value==""){
    			alert("密码不能为空");
    			return false;
    		}if(f1.upass1.value==""){
    			alert("再次输入密码");
    			return false;
    		}if(f1.upass1.value!=f1.upass.value){
    			alert("两次密码不一致");
    			return false;
    		}if(f1.tname.value==""){
    			alert("姓名不能为空");
    			return false;
    		}if(f1.sex.value==""){
    			alert("性别不能为空");
    			return false;
    		}if(f1.idcard.value==""){
    			alert("身份证不能为空");
    			return false;
    		}
    	}
    	<%
    String suc = (String)request.getAttribute("suc");
    String no = (String)request.getAttribute("no");
    if(no!=null)
    {
     %>
     alert("已存在的用户名");
     <%}
    if(suc!=null)
    {
     %>
     alert("修改成功");
    location.replace("/srykzsblmis/userinfo.jsp");
     <%}%>
    </script>
      </body>
    </html>
    <%=Info.tform(map)%>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130

    4.1.2 用户注册模块
    用户注册包括用户名、登录密码、密码确认,界面图如4-3图所示 :
    在这里插入图片描述

    图 4-3 用户注册界面图
    实现用户注册的部分代码如下:

     <title>私人牙科诊所病例管理系统</title>
        
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
    <STYLE type=text/css>
    BODY
    {
                padding-right: 0px;
                padding-left: 0px;
                padding-bottom: 0px;
                margin: 0px;
                padding-top: 0px;
                font-size: 12px;
    }
    .STYLE2 {
    	FONT-SIZE: 12px
    }
    .STYLE3 {
    	FONT-WEIGHT: bold
    }
    .style7 {
    	FONT-FAMILY: "黑体", "方正美黑简体", "华文细黑"; COLOR: #646464; FONT-SIZE: 18px
    }
    BODY {
    	BACKGROUND-IMAGE: url(img/lbg.gif); PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 12px; PADDING-TOP: 0px
    }
    .tb {
    	WIDTH: 926px
    }
    .td2 {
    	TEXT-ALIGN: left; PADDING-LEFT: 80px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 100%
    }
    .txtBox {
    	BORDER-BOTTOM: #e7ad01 1px solid; BORDER-LEFT: #e7ad01 1px solid; WIDTH: 130px; HEIGHT: 20px; COLOR: #000000; FONT-SIZE: 13px; BORDER-TOP: #e7ad01 1px solid; BORDER-RIGHT: #e7ad01 1px solid
    }
    #div1 {
    	
    }
    #diqu {
    	TEXT-ALIGN: center; WIDTH: 588px; BACKGROUND: url(images/2009_index_04.gif) no-repeat; COLOR: #2e466f
    }
    #diqu A {
    	COLOR: #2e466f
    }
    .pageWidth {
    	TEXT-ALIGN: left; MARGIN: 0px auto; WIDTH: 850px; BACKGROUND: #ffffff
    }
    #nav {
    	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 1em 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 16px; FONT-WEIGHT: 200; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px
    }
    #nav LI {
    	FONT-FAMILY: "宋体"; FLOAT: left; FONT-SIZE: 14px; MARGIN-RIGHT: 1px
    }
    #nav LI A {
    	TEXT-ALIGN: center; LINE-HEIGHT: 35px; MARGIN: 0em 0px 0px; WIDTH: 120.5px; DISPLAY: block; BACKGROUND: #f6ad79; COLOR: #000000; FONT-SIZE: 14px; TEXT-DECORATION: none; PADDING-TOP: 5px
    }
    .bi:hover SPAN {
    	TEXT-ALIGN: center; LINE-HEIGHT: 35px; MARGIN: 0em 0px 0px; WIDTH: 120.5px; DISPLAY: block; BACKGROUND: #f6ad79; COLOR: #000000; FONT-SIZE: 14px; TEXT-DECORATION: none; PADDING-TOP: 5px
    }
    #nav LI A:hover {
    	BACKGROUND: #dc3e0b; COLOR: #ffffff; FONT-SIZE: 14px; CURSOR: hand; PADDING-TOP: 0px
    }
    .bi:hover SPAN {
    	BACKGROUND: #dc3e0b; COLOR: #ffffff; FONT-SIZE: 14px; CURSOR: hand; PADDING-TOP: 0px
    }
    .bi:hover SPAN {
    	PADDING-TOP: 5px
    }
    .la {
    	COLOR: #044a8e; TEXT-DECORATION: none
    }
    .la:hover {
    	TEXT-DECORATION: underline
    }
    </STYLE>
    <LINK rel=stylesheet type=text/css href="/frontfile/css.css">
      </head>
      
      <body>
    
        <jsp:include page="top.jsp"></jsp:include>
        
          <div style="margin-top:10px;text-align:center;">
            <table width=800 border="0" cellpadding="0" cellspacing="0">
                <tr height=320 bgcolor="#1FA9FE" style="color:white;font-weight:bold;">
                    <td align="center" width=800 bgcolor="#ECECED" valign="top" style="">
                        <div style="margin-left:20px;font-size:16px;font-weight:bold;color:#044A8E;margin-top:20px;text-align:center;">
                            用户注册
                        </div> 
                        <hr>
                        <div style="font-size:12px;color:#044A8E;margin-top:20px;text-align:center;font-weight:normal;">
                        <form action="/srykzsblmis/studysite?ac=regedit" name="f1" method="post">
                            <table border=0 width=700 style="font-size:12px">
                                <tr bgcolor="#ffffff">
                                    <td width=130 >
                                        登录名称:
                                    </td>
                                    <td width=570 align="left">
                                        <input name="uname" type="text" id="uname" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
                                <tr bgcolor="#ffffff">
                                    <td >
                                        登录密码:
                                    </td>
                                    <td align="left">
                                        <input name="upass" type="password" id="upass" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
                                <tr bgcolor="#ffffff">
                                    <td >
                                        重复密码:
                                    </td>
                                    <td align="left">
                                        <input name="upass1" type="password" id="upass1" style="width:150px;" />&nbsp;
                                    </td>
                                </tr>
             <tr bgcolor="#ffffff">
        		<td>病人姓名</td>
        		<td><input type="text" id="tname" name="tname" size="5"/>*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>性别</td>
        		<td>
        			<select id="sex" name="sex">
        				<option value="男"></option>
        				<option value="女"></option>
        			</select>
        		</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>年龄</td>
        		<td><input type="text" id="age" name="age" size="2"/>*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>身份证</td>
        		<td><input type="text" id="idcard" name="idcard" />*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>电话</td>
        		<td><input type="text" id="tel" name="tel" />*</td>
        	</tr>
        	<tr bgcolor="#ffffff">
        		<td>住址</td>
        		<td><input type="text" id="addr" name="addr" />*</td>
        	</tr>       
                                                                              
                                <tr height=60>
                                    <td align="center" colspan="2">
                                       <img src="images/reg.png" border="0" onclick="ck()"/>
                                    </td>
                                </tr>                                                                                    
                            </table>
                            </form>
                            
                        </div>  
                    </td>
                </tr>
            </table>
            <div style="margin-top:10px;height:1px;background-color:#1FA9FE;text-align:center;width:800px;">
                
            </div>     
                   
        </div> 
    
        <jsp:include page="foot.jsp"></jsp:include>
    <script type="text/javascript">
    	function ck(){
    		if(f1.uname.value==""){
    			alert("用户名不能为空");
    			return false;
    		}if(f1.upass.value==""){
    			alert("密码不能为空");
    			return false;
    		}if(f1.upass1.value==""){
    			alert("再次输入密码");
    			return false;
    		}if(f1.upass1.value!=f1.upass.value){
    			alert("两次密码不一致");
    			return false;
    		}if(f1.tname.value==""){
    			alert("姓名不能为空");
    			return false;
    		}if(f1.sex.value==""){
    			alert("性别不能为空");
    			return false;
    		}if(f1.idcard.value==""){
    			alert("身份证不能为空");
    			return false;
    		}else{
    			f1.submit();
    		}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198

    4.1.3 系统管理模块
    系统管理模块是私人牙科诊所病例信息管理系统中一个基础的部分,在本模块中包括管理员对自身密码的重新设置,可以定时更换密码,确保资料的安全;同时还有登陆日志模块,记录每一次登陆信息,如果出现特殊情况,可以查询登陆日志查询,增加了系统的安全性和保密性,便于控制和管理,界面图如图4-4所示:
    在这里插入图片描述

    图 4-4 系统管理模块图
    实现系统界面的部分代码如下:

    //添加科室
    if(ac.equals("deptadd")){
    	String deptname = request.getParameter("deptname");
    	String tel = request.getParameter("tel");
    	String addr = request.getParameter("addr");
    	String delstatus = "0";
    	String sql = "insert into dept (deptname,tel,addr,delstatus) values('"+deptname+"','"+tel+"','"+addr+"','"+delstatus+"')";
    	dao.commOper(sql);
    	request.setAttribute("suc", "");
    	go("/admin/deptadd.jsp", request, response);
    }
    //修改科室
    if(ac.equals("deptedit")){
    	String id = request.getParameter("id");
    	String tel = request.getParameter("tel");
    	String addr = request.getParameter("addr");
    	String deptname = request.getParameter("deptname");
    	
    	String sql = "update dept set deptname='"+deptname+"',tel='"+tel+"',addr='"+addr+"' where id= "+id;
    	dao.commOper(sql);
    	request.setAttribute("suc", "");
    	go("/admin/deptadd.jsp", request, response);
    }
    //添加药品、处置
    if(ac.equals("ypcfadd")){
    	String yno = request.getParameter("yno");
    	String cksql = "select * from ypcf where yno='"+yno+"'";
    	ArrayList cklist = (ArrayList)dao.select(cksql);
    	if(cklist.size()!=0){
    		request.getParameter("no");
    		go("/admin/ypcfadd.jsp", request, response);
    	}else{
    	String yname = request.getParameter("yname");
    	String price = request.getParameter("price");
    	String type = request.getParameter("type");
    	String gg = request.getParameter("gg");
    	String company = request.getParameter("company");
    	if(!type.equals("药品")){
    		gg = "";
    		company = "";
    	}
    	String delstatus = "0";
    	String sql = "insert into ypcf (yno,yname,gg,price,company,delstatus,type)values('"+yno+"','"+yname+"','"+gg+"','"+price+"','"+company+"','"+delstatus+"','"+type+"')";
    	dao.commOper(sql);
    	request.setAttribute("suc", "");
    	go("/admin/ypcfadd.jsp", request, response);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    4.1.4 挂号管理模块
    挂号管理模块是私人牙科诊所病例信息管理系统中一个部分,本模块主要实现后台管理,包括添加、删除、修改,患者挂号添加功能如图4-5所示
    在这里插入图片描述

    图 4-5 挂号管理模块图
    4.1.5病例管理模块
    医生可以对病人病例信息进行管理,在本模块中包括所有患者的信息的添加、删除、修改,增加患者图如图4-6所示:

    在这里插入图片描述

    图 4-6 病例管理模块图
    4.1.6用户模块
    用户可以预约就诊,可以对个人信息进行管理,可以查询病例信息,同时可以与医生进行在线交流留言,在本模块中包括所有添加、删除、修改、查询如图4-7所示:

    在这里插入图片描述

    图4-7用户界面图

    5.系统调试与测试
    5.1 程序调试
    省略

    5.2 软件的测试
    5.2.1 测试的重要性及目的
    省略

    5.2.2 测试的步骤
    与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:
    (1)模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。
    (2)系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
    (3)验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。

    5.2.3 测试的主要内容
    为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。
    (1)单元测试
    单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。

    身份认证时候要保证在以下输入情况时候系统能够健康运行:
    ① 输入用户ID时候键入非法字符,如:•#¥%……等
    ② 在操作员编码框输入非数字字符,如abc,!•#¥《》
    ③ 输入的用户ID,或者操作员编码不存在。
    ④ 输入的用户ID,或者操作员编码与密码不相符合。
    ⑤ 输入的用户ID,操作员编码不能登陆本模块。
    ⑥ 输入的信息超过规定字符长度
    ⑦ 输入的信息有一项为空。

    查询信息时候
    ① 查询条件键入时有非法字符,如:#$%^等。
    ② 输入不存在的查询条件。
    ③ 入查询条件超过规定字符长度。
    ④ 输入查询条件一项为空。

    (2)集成测试
    集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。

    (3)确认测试
    确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

    (4)系统测试
    软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。
    单独对系统的测试主要从以下几方面入手:
    ① 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
    ② 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
    ③ 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。
    经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。

    6.结论
    6.1 系统评价
    省略

    6.2 安全性问题
    省略

    参考文献0
    [1] 王龙、黄峰,JSP管理信息系统项目开发实践,北京:科学出版社,2015.9
    [2] 高怡新,JSP网络应用程序设计,北京:人民邮电出版社,2015.1
    [3] 杨世锡、赵辉,JSP+SQL Server动态网站开发 从基础到实践,北京:电子工业出版社,2015.7
    [4] 陈建伟、李美军、施建强。JSP动态网站开发教程(第二版).北京:清华大学出版社,2015.9
    [5] 吴豪。 SQL Server 2000基础[M]. 红旗出版社/北京:希望电子出版社,2015.4
    [6] (英)福塔 著 刘晓霞,钟鸣 译《mysql必知必会》 人民邮电出版社 2009.1
    [7] 王虎, 张俊. 管理信息系统[M]. 武汉:武汉理工大学出版社,2014.7.
    [8] Budi kurniawan.struts 2design and programming:a tutorial brainysoftware,second edition edition,2008.1.25
    [9] Roger s-pressman,software engineering[m].new delhi:tata mcgraw-hill publishingcompary ltd,2006
    [10] On the integration of smalltalk and java:Marcel hlopko,Jan kurs,jan vrany,claus gittinger science of computer programming,2013-爱思唯尔期刊

    致 谢
    省略

    外文原文
    省略

    中文翻译
    省略


    5、资源下载

    本项目源码及完整论文如下,有需要的朋友可以点击进行下载

  • 相关阅读:
    docker 和 docker-compose的区别
    [ 常用工具篇 ] kali 忘记 root 密码 -- 修改 root 密码
    【算法四】排序算法之选择排序
    100114. 元素和最小的山形三元组 II
    软件自动化测试作用简析,为什么要选择第三方软件测评机构?
    【LeetCode】【剑指offer】【数值的整数次方】
    Java21的虚拟线程Virtual Thread初体验
    【Unity】Unity C#基础(十四)注释
    规则解读(二)| 本地资源检测 For Unreal
    编写一个会导致死锁的程序,将怎么解决?
  • 原文地址:https://blog.csdn.net/m0_66238867/article/details/125558698