1、成 绩 评 定 表学生姓名班级学号专 业信息与计算科学课程设计题目病人住院管理系统评语组长签字:成绩日期2013 年 12 月 日课程设计任务书学 院专 业学生姓名班级学号课程设计题目病人住院管理系统实践教学要求与任务:通过集中性的编程训练,使学生系统的掌握如何将客观实际问题与计算机的算法对应起来,如何将客观信息与数据的逻辑结构和存储结构对应起来,将理论概念的学习转变成能够使用计算机高级语言解决实际问题的方法。要求学生做好预习,掌握设计过程中涉及到的算法,按设计流程编程,上机调试通过,验证结果并进行分析、完成论文。工作计划与进度安排:第15周:系统需求分析,设计ER模型、逻辑模型,数据库设计和
2、模块设计进行部分软件编码设计,实现各模块功能第16周: 继续完成软件设计,调试与完善系统各项功能书写课程设计报告。验收与答辩。工作计划与进度安排:第一天:查阅文献 第二天:程序设计 第三、四天 :程序实现第五天:论文写作、答辩指导教师: 2013年 12月1日专业负责人:2013年 12月1日学院教学副院长:2013年 12月1日摘 要随着医院病人管理的日趋复杂和住院人员的增多,医院的病人管理变得越来越复杂。规范的医院病人管理是医院提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应医院的需求.随着计算机技术和通信技术的迅速发展,将传统的人工管理计
3、算机化,建立一个高效率的、无差错的住院病人管理系统,能够有效的帮助医院完成病人的住院情况,使医院的管理水平登上一个新的台阶. 本系统采用VB + SQL Server开发.通过数据源管理工具把已创建的数据源与系统数据库相连,后台数据库采用sqlserve2008数据库,前台程序开发工具采用微软的VB6.0,实现了医院住院病人管理功能。关键词 住院病人管理系统;SQL;数据库目录1系统功能概述51。1 系统的功能:51。2系统结构图:52数据库设计62.1需求分析:62。2表的结构设计:62。3ER图:113系统各功能模块的详细设计123。1系统各窗体的设计:123.2系统功能使用简介:20总结
4、21参考文献221 系统功能概述1。1 系统的功能:住院病人管理系统是利用计算机根据医生信息、医院病房信息、病人住院信息建立的,用vb6。0开发实现。该系统能够进行住院院病人的注册、病人住院基本信息的浏览,能够按病人姓名、科室代码、病人编号或者电话等条件查询病人住院基本信息。1.2 系统结构图:病人住院管理系统开始数据处理模块开始注 册开始用户登录模块病人用药信息病人信息病人费用普通用户登录模块管理员登录模块添加开始删除开始查询开始病人费用信息病人费用信息结算开始病人基本信息病人信息病人基本信息浏览退 出开始2 数据库设计2。1 需求分析:本系统是根据医院的病房情况和病人住院情况对病人进行登记
5、和编辑的系统。首先设计数据库时,需要知道所需信息:病人的基本信息,包括姓名、性别、年龄、电话;医院的信息病人编号、病房号、病人费用等;病人住院则导致两实体之间有联系着建立一个住院的信息包括病人姓名、编号、年龄、费用、科室等。在根据病人来建立一个普通用户密码表,使得每个病人有个自己登陆的账号密码,而且外来用户还可以通过注册新用户来登录系统。并且病人离院时,我们可以通过该系统对病人住院费用进行结算等功能。2.2 表的结构设计:1、病人费用信息表创建病人费用信息表create table 病人费用信息(病人编号 char(8) primary key , -病人编号病人姓名 char(8), -病人
6、姓名病人性别 char(2), -性别病人年龄 char(2), -病人年龄费用类型 char(2), -费用类型科室代码 char(8) -科室代码)2、 病人信息表创建病人信息表create table 病人信息表( 病人编号 char(8) primary key, -病人编号 科室代码 char(8), -科室代码 病人姓名 char(8) not null, -病人姓名 病人性别 char(4), 性别 病人年龄 char(8), -病人年龄 身高 char(8), -身高 血型 varchar(4), 血型 电话 varchar(20) 联系电话 ) 3、 病人用药信息表病人用药情
7、况表create table 病人用药信息(病人编号 char(8) primary key , 病人编号药品编号 char(8), -药品编号药品名称 char(8), -药品名称病人姓名 char(8), 病人姓名剂型 char(8), -剂型类别 char(40), 类别用药时间 char(10) -用药时间 )4、 科室表创建科室表create table 科室( 科室代码 char(8) primary key, -科室代码科室名称 char(20) not null, -科室名称病房编号 char(8), -病房编号床位数 char(20), 床位数科室主任 char(8) 科室主
8、任编号) 5、 药品信息表创建药品表create table 药品( 药品编号 char(8) primary key, 药品编号名称 char(8), -名称数量 varchar(8), -计量单位单价 varchar(8), -单价剂型 char(8), -剂型类别 char(10) -类别)6、医生信息表创建医生表create table 医生信息(医生编号 char(8) primary key, -医生编号医生姓名 char(8) not null, -医生姓名医生性别 char(2), -性别医生年龄 char(10), -年龄科室代码 char(8), -科室代码学历 char(
9、20) -学历)7、密码表create table 用户密码(用户名 char(8) , 密码 char(8) )2.3 E-R图: 身高姓名 性别 年龄 电话血型病 人n住院日期住 院住院费用出院日期1 医 院病 人 病房号医 生 科室 药 品3 系统各功能模块的详细设计3。1 系统各窗体的设计:图3。1.11.此窗体设立了一个ADODC控件,以便访问和操作数据库,本控件连到数据库的密码表。以下各窗体除了主窗体外都有此控件来实现与数据库的连接。登陆窗体的源代码如下:Dim miCount As IntegerPrivate Sub Command1_Click()If Trim(Text1。
10、Text) = ” ThenMsgBox 用户名不能为空!”, vbOKOnly + vbExclamation, ”警告”Text1.SetFocusElseIf Trim(Text2。Text) = ” ThenMsgBox 密码不能为空!, vbOKOnly + vbExclamation, ”警告”Text2.SetFocusElseAdodc1.RecordSource = select from 普通密码表 where 用户名= Trim(Text1。Text) ” and 密码=& Trim(Text2.Text) ”Adodc1.RefreshIf Adodc1。Records
11、et。EOF ThenMsgBox 用户名或密码不正确,请重新输入!”, vbOKOnly + vbExclamation, 警告”Text1。Text = ”Text2.Text = ”Text1。SetFocusElseForm2.ShowForm2.查询。Enabled = TrueUnload Me End IfEnd If miCount = miCount + 1 If miCount = 3 Then Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()Fo
12、rm10.ShowEnd SubPrivate Sub Form_Load()End Sub图3.1。22。主窗体用菜单编辑器编辑菜单,是客户更轻松进入要看的窗体,源代码如下:Private Sub 病房信息_Click()Form4.ShowEnd SubPrivate Sub 病人费用信息_Click()Form7。ShowEnd SubPrivate Sub 病人信息_Click()Form4。ShowEnd SubPrivate Sub 管理员用户_Click()Form3。ShowEnd SubPrivate Sub 护士_Click()Form4。ShowEnd SubPrivat
13、e Sub 科室_Click()Form4.ShowEnd SubPrivate Sub 门诊挂号_Click()Form9.ShowEnd SubPrivate Sub 手术安排_Click()Form4.ShowEnd SubPrivate Sub 药品_Click()Form8。ShowEnd SubPrivate Sub 医生信息_Click()Form4。ShowEnd Sub其中,浏览窗体,分别为住院病人信息、病人费用信息、医生信息等浏览窗体,住院病人信息表浏览窗体如下:图3.1.3系统管理员登陆时如下:图3。1.4添加删除界面如图:图3.1。5图3。1。6其代码如下:Privat
14、e Sub CmdAdd_Click()Adodc1。Recordset.AddNewCmdAdd。Enabled = FalseCmdDel。Enabled = FalseCmdOk。Enabled = TrueCmdEsc。Enabled = TrueIf Len(Text) 0 ThenAdodc1。RefreshIf Adodc1。Recordset。RecordCount = 0 Then MsgBox (没有满足条件的信息!”) Adodc1。Refresh End IfElseMsgBox (”请添加查询信息!”)End IfEnd SubPrivate Sub CmdOK_Cl
15、ick()Adodc1.Recordset.UpdateCmdAdd。Enabled = TrueCmdDel.Enabled = TrueCmdOk。Enabled = FalseCmdEsc。Enabled = FalseEnd SubPrivate Sub CmdDel_Click()X = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If X = vbYes Then Adodc1.Recordset。Delete Adodc1。Recordset。MoveNext If Adodc1。Recordset.EOF Then Adodc1。R
16、ecordset.MoveLast End IfElse Adodc1。RefreshEnd IfEnd SubPrivate Sub CmdEsc_Click()Adodc1.RefreshCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk。Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub Command1_Click()Form6.ShowEnd SubPrivate Sub Command2_Click()Form6。ShowEnd SubPrivate Sub Form_Load(
17、)Combo1.AddItem ”男Combo1.AddItem ”女End Sub图3.1.7按条件查询界面其代码如下:Private Sub Combo1_Change()If KeyCode = vbKeyReturn Then Text1.SetFocusEnd SubPrivate Sub Command1_Click()If Len(Text1。Text) 0 ThenAdodc1。RecordSource = select from 病人信息表 where (病人信息表.& Combo1。Text like + + Text1。Text + +)” 1Adodc1.Refresh
18、 If Adodc1.Recordset.RecordCount = 0 Then MsgBox (”没有满足条件的信息!”) Adodc1.Refresh End IfElseMsgBox (请添加查询信息!)End IfEnd SubPrivate Sub Command2_Click()Form11.ShowForm6。HideEnd SubPrivate Sub Command3_Click()Form11。ShowForm6。HideEnd SubPrivate Sub Form_Load() Combo1。AddItem 病人姓名 Combo1.AddItem 科室代码” Comb
19、o1.AddItem 病人编号” Combo1.AddItem ”电话”Combo1。Text = Combo1。List(0)End Sub图3.1。8出院时病人费用结算界面代码:Dim miCount As IntegerPrivate Sub Cmdzhuce_Click()Dim sqlstr As StringDim strcode As StringDim strsure As StringDim strname As Stringsqlstr = Text1。Textstrname = sqlstrIf sqlstr = ” Then MsgBox 请输入病人编号!, vbExc
20、lamation, ”提示” Text1.SetFocus Exit SubElseAdodc1.RecordSource = ”Select * from 病人费用信息 where 病人编号= Text1 &”End Ifstrcode = Trim(Text2。Text)strsure = Trim(Text3.Text)equ = StrComp(strcode, strsure)If Text2 = ” Then MsgBox 病人姓名不能为空!, vbExclamation, 请重新输入 Text2.SetFocusElse Adodc1。Recordset.AddNew Adodc
21、1。Recordset.Fields(”病人编号”) = Text1 Adodc1.Recordset.Fields(病人姓名) = Trim(Text2) Adodc1。Recordset。Fields(费用) = Trim(Text3) MsgBox 成功!”, vbInformation, ”错误End IfEnd SubPrivate Sub CmdCancel_Click()Unload MeEnd SubPrivate Sub Form_Load()End Sub3.2 系统功能使用简介:1。首先进入系统登陆界面,点击“单击登陆进入系统,如果用户是该系统内的用户可以填写用户名和密码
22、后进入主窗体。如果没有用户名和密码则可以通过注册新的用户名来进入主窗体。在主窗体中有含有主菜单:系统、查询(即普通用户权限的浏览).系统菜单包含以下子菜单及其功能:打开管理员登陆窗体 查询包含以下子菜单:病人信息:显示病人信息浏览窗体.病人费用:显示病人费用信息浏览窗体.等等一些相同的浏览窗体.2。管理员登陆时可以进行医院各种的处理,包括对入院病人信息的添加、删除和病人费用的结算功能;还可以实现查询医院病人住院的情况,具体包括对病人信息、病人费用信息的模糊查询,用DataGrid呈现查询信息.总 结通过对数据库系统学习,利用Microsoft SQL Server2008软件建立相关信息的数据
23、库,并用 Microsoft Visual Basic 6。0实现对相关信息的处理。在老师的帮助和指导下进行的本次课程设计。经过自己的思考,建立的数据库框架,并且翻阅各种参考书和参考课件,经过不断的调试,终于基本完成了本次的课程设计任务。本次完成的住院病人管理系统基本符合所需的工作要求,但由于时间紧张,加上本人经验上的不足,未能丰富系统的功能,日后希望能够继续努力,做到更好。参考文献1 Visual Basic课程设计案例精编M.北京:清华大学出版社,20072 SQL SERVER项目案例开发实例自学手册M。北京:人民邮电出版社,20083 Visual Basic自学手册M。北京:机械工业出版社,20094 百度文库5 王珊 数据库系统简明教程。北京:高等教育出版社,2004.9