中南大学数据库课程设计报告_第1页
中南大学数据库课程设计报告_第2页
中南大学数据库课程设计报告_第3页
中南大学数据库课程设计报告_第4页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、下载可编辑数据库课程设计报告学院:信息科学与工程学院专业班级:物联网工程1201 班指导老师:盛津芳学号:0909120122姓名:李 浩日期:2015 年 1月 10日.专业 .整理 .下载可编辑目 录课程设计要求3概要设计:(数据库)5概要设计:(程序)7详细设计(数据库)8详细设计(程序)11系统展示12安全性控制19关键技术20心得体会20.专业 .整理 .下载可编辑数据库课程设计任务书1 任务概述某医院拟开发一个挂号系统,以方便患者就医,提高医疗服务水平。患者在医院就诊前需要提供姓名、 身份证号码、 联系电话等个人信息并办理一张诊疗卡,该诊疗卡在每次挂号时需要出示给挂号的工作人员。

2、患者在挂号时, 需说明科室名称以及医生的职称。 挂号以半个工作日为一个班次, 系统中保存各科室门诊医生的排班表, 每位医生每个班次能够接诊的病人人数可设置一个上限。本次课程设计要求设计并实现一个虚拟的医院挂号系统。系统中包含两个子系统,即由医院内部工作人员使用的挂号系统,以及患者使用的网上预约挂号系统。其中网上预约挂号系统的前端要求是浏览器,即采用B/S 模式开发。医院工作人员使用的挂号系统采用C/S模式开发,前端开发工具不限,可采用PowerBuilder,Delphi,VB,VC, Java 等。后台数据库要求采用SQL SERVER2005或 Oracle 11g及以上版本。2 功能描述

3、2.1 医院工作人员使用的挂号系统该系统仅供医院内部工作人员使用,主要分为挂号人员和系统管理人员两类角色,需提供以下功能:1)办理诊疗卡。患者提供姓名、身份证号码、联系电话等个人信息,挂号人员为其办理一张长期有效的诊疗卡。2)挂号。挂号人员根据患者要求的科室、医生职称分配一个候诊号,并收取相应的诊疗费用,诊疗费用根据医生的职称分为不同的档次。医生当班次接诊患者人数不能超过预先设定的上限。3)修改挂号。患者可更改就诊的科室,挂号人员根据更改后的科室和医生职称,重新计算诊疗费用的差值,多退少补。4)查询挂号情况。挂号人员可查询某位医生目前的挂号情况。5)挂号费当班结转。系统对每个班次收取的挂号费生

4、成相应的统计表,并提供查询功能,包括该班次总的挂号费用、各个挂号人员该班次总的挂号费用、各位医生该班次总的挂号费用。6)参数维护。系统管理人员负责维护各种参数,包括科室、医生、医生排班表、号类字典。医生的基本信息、排班表、诊疗费标准、各班次医生接诊人数上限都是可以修改的,尽量提高系统的灵活性和可扩展性。7)系统维护。系统管理人员负责管理用户、分配权限、管理密码。2.2 网上预约挂号系统该系统供患者使用,需提供以下功能:1) 用户注册。提供注册所需基本信息,必须实名注册。2) 用户可修改注册信息。3) 用户可查询指定时间的某科室的医生排班表。.专业 .整理 .下载可编辑4) 用户可以在网上预约挂

5、号。系统不提供当日预约服务,用户可预约部分科室次日至一个月内的就诊号源。同一患者实名(有效证件号)在同一就诊日、同一科室只能预约一次;在同一就诊日的预约总量不可超过两次;在一个月内的预约总量不可超过三次。2.3 安全性控制要求1)所有用户密码在数据库中都要求加密存储。2)网上预约挂号系统要进行输入验证,防止SQL注入。3)系统管理员只能进行系统维护和参数维护,不能进行挂号操作。实验环境:电脑:联想G460操作系统: Windows8.1 64位语言: Java、 JavaScript、 JSP、 HTML、 SQL编程工具: Eclipse IDE for Java EE Developers

6、( Kepler 版)数据库:数据库工具: MySQLWorkbench 6.2 CE、 navicat其他工具: Sublime Text 2.专业 .整理 .下载可编辑概要设计:(数据库)E-R 图ID名称挂号费级别1属于IDn1n1n名称科室属于医生属于安排电话名字m性别电话IDID( 自增 )挂号日期n班次病人ID名字密码性别年龄电话ID( 自增 )日期班次病情.专业 .整理 .下载可编辑除了上面的E-R 图,数据库中还有另外三张表,分别是管理员表(Administrator)、员工表(Worker )、结算表( Calculate)物理模型用 MySQLWorkbench所建管理员表

7、、员工表、结算表.专业 .整理 .下载可编辑备注:由于数据库模型是在课设最初建立的,后期根据编程的需求对表结构有了不少修改,虽然后来根据对表的修改已经对Model 进行了更新,但可能仍有略微不同概要设计:(程序)系统主要功能更改科室更改职称管理员排班表管理用户管理密码.专业 .整理 .下载可编辑办理诊疗卡挂号员工修改挂号挂号结算详细设计(数据库)表结构Doctor 表(医生表)Patient表(诊疗卡表)Arrangement 表(排班表)Orderregist表(挂号表)Calculate表(结算表).专业 .整理 .下载可编辑DoctorLevel表(级别表)备注:其他几张表结构太简单,就

8、不一一列举了。视图该系统中暂时只用到了一个视图,用于将Doctor表、 Arrangement表、 Doctorlevel表、Department 表 Join 起来,方便查询。.专业 .整理 .下载可编辑存储过程一共用到了4 个存储过程分别是procedure_calculate:用来结算procedure_find_registinfo:用来找到挂号信息procedure_regist:用来挂号procedure_update_regist:用于修改挂号下面是 procedure_regist的部分代码:if regcount > 0THENinsert into orderregi

9、stVALUES(null,patId,doId,deId,regDate,regTime,cost,worId,isCalculate);update arrangement set ArrangeAccptCount = ArrangeAccptCount - 1;END IF;这里用来判断剩余的接诊人数是否大于零,如果大于零则能挂号,否则不能。.专业 .整理 .下载可编辑详细设计(程序).专业 .整理 .下载可编辑如上图所示,整个系统写了很多个类,很多个jsp 页面, 以下介绍一下各个包的功能,然后就几个重要的类简单介绍一下。Action包:主要是对用户和管理员的Action事件进行处理

10、。App 包:许多个Thread 类,用于务器与客户端进行通讯。Bean 包:许多bean 类,也是为JavaBean 技术服务的重要一部分。Commom包:许多公共类,包括:Conf 类:通讯协议。Constants类: SQL语句集合。Dbcp 类:获取数据库连接对象。Log 类:为了调试所用(跟系统功能关系不大)PageBean类:分页类Dao包:许多对数据库的操作。ViewAdmin 包:管理员界面包。ViewWorker 包:工作人员界面包。WebContent 中 Main 包,主要是包含很多JSP 页面。系统展示C/S 端.专业 .整理 .下载可编辑以员工身份 登录后,可以看到如

11、下图所示。系统中有诊疗卡的操作、预约挂号、挂号信息的查看与修改、排班表、挂号费结算。.专业 .整理 .下载可编辑添加诊疗卡的信息双击表格后,弹出对信息修改界面预约挂号界面,可以选择挂号的日期已经班次。然后系统会根据时间和班次、科室、级别筛选出医生。.专业 .整理 .下载可编辑这里可以查到挂号的信息。排班信息挂号费的结算(前两条信息是我手动添加的)以管理员 身份登陆后,可以看到如下图所示。系统中有科室的操作、医生、排班表、工作人员、诊疗费标准。.专业 .整理 .下载可编辑可以对诊疗费用进行修改其他功能大同小异,就不一一列举了。B/S 端.专业 .整理 .下载可编辑B/S 端登录界面B/S 端主界

12、面.专业 .整理 .下载可编辑B/S 端注册界面信息查看和修改查看医生排版表.专业 .整理 .下载可编辑预约挂号界面安全性控制MD5加密MD5的全称是 Message-Digest Algorithm (5信息 - 摘要算法),在 90年代初由 MIT Laboratory for Computer Science 和 RSA Data Security Inc 的 Ronald L. Rivest 开发出来,经 MD2、MD3和 MD4发展而来。- 摘自百度百科关键代码如下:private static String encodeByMD5(String originString)if (o

13、riginString != null)tryMessageDigest md = MessageDigest.getInstance("MD5");/使用指定的字节数组对摘要进行最后更新,然后完成摘要计算byte results = md.digest(originString.getBytes();/将得到的字节数组变成字符串返回String resultString = byteArrayToHexString(results);String pass = resultString.toUpperCase();return pass; catch(Exception

14、ex) ex.printStackTrace();.专业 .整理 .下载可编辑return null;防 SQL注入SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 SQL语法里的一些组合,通过执行 SQL语句进而执行攻击者所要的操作, 其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理, SQL注入可以分为平台层注入和代码层注入。 前者由不安全的数据库配置或数据库平台的漏洞所致; 后者主要是由于程序员对输入未进行细致地过滤, 从而执行了非法的数据查询。基于此, SQL注入的产生原因通常表现在以下几方面:不当的类型处理;不安全

15、的数据库配置;不合理的查询集处理;不当的错误处理;转义字符处理不合适;多个提交处理不当。- 摘自百度百科在 JSP 中,我都是采用的 setParameter 的方法来传递参数,也就是采用 post 方式来传参,因此大大降低了 SQL注入的风险此外,在登录等含有输入框的地方,我也都验证了输入的合法性,过滤了所有的可疑字符。关键技术1、 在 C/S 端,主要用到了信息的加密技术,防注入技术,其他的更多的是对Java 编码能力的考量。2、 在 B/S 端,用到了JavaBean、 JSP、 EL、JavaWeb 对数据库的操作以及加密技术,防注入等等技术心得体会经过近一个月紧张的数据库课程设计,

16、加之中间还夹杂着两个考试, 自己已经累得不成样子了。不过, 虽然很累, 但是自己还是学到了不少的东西。以下分几个方面谈谈自己的心得。1、 对 Java 编程能力的提高。编完这个系统,我用Eclipse计算了一下,光Java 代码就有5800 多行,中间也用到了继承、接口等高级一点的编程方法,近7000 行代码对于大三的学生来说,不多不少吧。以前也编过几个工程量大致相当的project,从 project中.专业 .整理 .下载可编辑锻炼自己的能力,这一点对自己帮助还是挺大的。毕竟嘴上说谁都会,但是动起手来就会遇到形形色色各种问题。所以说, 这次的课设对自己的逻辑锻炼还是蛮大的,对 Java的理

17、解也加深了一点。 也学会了很多新的 API,诸如 JTable 、JInternalFrame 、JComboBox等等。2、 JavaWeb入门。 以前虽然一直都想学习JavaWeb方面的知识,也一直有在看Web方面的书籍,但是毕竟没有动力、导致学习效率低下。这次接触了到数据库的课程设计,在Deadline 的强大压力之下, 逼着自己去快速的学习 JavaWeb知识。回想起当初, 结合自己此前 JavaSE、 Android 、 HTML、XML的基础,其实 JavaWeb入门很容易,不到一天就能编出像样的东西了。后来由于时间有限,我 B/S 端做的并不是很好,寒假里再去深入去学习吧。3、

18、数据库知识加强。虽然以前上过数据库的课程,也做了数据库的实验。可是那个东西毕竟太抽象,知识仅仅停留在纸面上。此前做的几个project也经常用到数据库,但是也仅仅是几个简单的 Select 就能搞定的难度,像这样的完整做一个管理系统,此前还未曾尝试过。所以这次无论是从 SQL语法而言、还是对数据库知识的复习,自己的数据库知识的都有很大的提升。系统中也用到了视图、存储过程等等,这些东西此前都没有真正实战过,所以这次还是有蛮大的收货,至少以后再次遇到就不会那么陌生了。4、 其他方面。 经过这次数据库的课设,自己也懂得了不少的道理。没有压力就没有动力,没有动力就会导致效率低下。就拿 JavaWeb而言,此前就很想学习了,可是一直就拖着,今天看一点明天看一点,导致在数据库课设之前,自己的JavaWeb基础几乎为零。但是有了数据库课设的这个动力,也就几天时间就从Web零基础入门了,能写简单的几个页面了,也能实现几个简单的操作。 所以说, 凡事不要总是拖着去做, 有时间就赶紧学了,不要等到需要用的时候再去学习,到时候就来不及了。书到用时方恨少。5、 关于数据库课设的一点建议。 这里仅仅是自己的一点看法,也许不一定对。关于这个课设,如果仅仅是只做一端( C/S、B/S 仅做一方面,但是功能必须全)的话,如果把时间放久一点,就难度和工程量而言基本上是合理的。但是如果是做

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论