住院病人管理系统方案_第1页
住院病人管理系统方案_第2页
住院病人管理系统方案_第3页
住院病人管理系统方案_第4页
住院病人管理系统方案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

..XX航空航天大学课程设计报告课程设计名称:软件综合课程设计课程设计题目:病人住院管理院〔系:计算机学院专业:班级:学号:__指导完成日期:2011年09月09日..目录1系统分析11.1需求分析11.2开发工具11.2.1VisualBasic6.011.2.2MicrosoftOfficeAccess22概要设计42.1数据库概念结构设计42.2系统模块设计63详细设计73.1数据库逻辑结构设计73.2系统子模块设计8编写全局变量和通用过程8用户管理模块10病人资料管理模块10费用输入模块134调试分析155测试及运行结果165.1用户登陆界面165.2用户管理界面175.3病人资料管理界面18参考文献21附录22..1系统分析1.1需求分析实现一个病人住院管理系统,系统可以连接数据库。病人入院时,住在指定科室的病房〔如外科、内科、儿科等,到每个病人有一个主治医生负责,可以选择单人间和三人间病房,如果选择三人间病房,床位由系统分配。入院时通过该系统将病人的信息添加数据库中。当病人出院时计算住院期间的费用〔药费、床费、餐费等。系统能够按照病人、病房、主治医生进行查询,所以查询模块至少有三个界面分别显示相关信息。1.2开发工具VisualBasic6.0VisualBasic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面〔GUI和快速应用程序开发〔RAD系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。VB使用了可以简单建立应用程序的GUI系统,但是又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面VB程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件〔比如文本框或者按钮>。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。VB的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口〔比如没有最大化和最小化按钮的窗体可以用来提供弹出功能。VB的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。VB使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组建的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。MicrosoftOfficeAccessMicrosoftOfficeAccess〔前名MicrosoftAccess是由微软发布的关联式数据库管理系统。它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员之一。其实Access也是微软公司另一个通讯程序的名字,想与ProComm以及其他类似程序来竞争。可是事后微软证实这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。Access在20XX的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且因为它的易学易用的特点正逐步取代传统的VFP成为二级中最受欢迎的数据库语言。Access是微软公司推出的基于Windows的桌面关系数据库管理系统〔RDBMS,即RelationalDatabaseManagementSystem,是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。Access能够存取Access/Jet、MicrosoftSQLServer、Oracle<甲骨文软件公司>,或者任何ODBC兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的"进阶用户"则能使用它来开发简单的应用软件。虽然它支援部分面向对象〔OOP技术,但是未能成为一种完整的面向对象开发工具。与一般的RDBMS完全不同,它缺乏数据库触发和预存程序。自从MSAccess2000<Jet4.0>,开发人员可以在查询中设定参数,这跟预存程序很相似的,但这些"预存程序"只能处理一个程序.当资料表内数据发生变化时,它确实允许形式包含被引发的代码,使用是普通的透过查询和其他技术在进入营运储存的程序在方面RDBMS支援这些的。进入可提供的编程语言,当时在另一个内产品MicrosoftOffice家具,微软公司应用的VisualBasic。两个数据库进入信息库COM组成部分被提供:这笔遗产数据存取物体<DAO>,用进入和新只可提供ActiveX数据对象<忙乱>。MicrosoftAccess容易被应用于小的工程,但是如果设计的不好对大工程是无用的。全部数据库质问,形式和报告被储存在数据库里,并且与相关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。一种设计技术是把进入应用在数据和计划之间进行分发。一个数据库应该只包含桌子和关系,当另一个将有全部计划时,形式,报告和质问和对第一个数据库桌子的连接。令人遗憾,当连结时,进入允许没有有关的道路,因此那些发展环境作为这种生产环境有相同的道路应该<虽然你写你们自己的能"动态连接程序"常规在里VBA那搜出能一定背面结束档案以透过这个目录树搜寻,如果它发现这条电流通路它不能>。这种技术也允许开发者在不同的档案中分申请,因此一些架构是可能的。2概要设计2.1数据库概念结构设计本系统包括的实体主要有病人、科室、病房、医生、费用等。下面分别介绍各实体的E-R图,通过E-R图可以了解各实体的属性。科室实体的属性图如图2.1所示。科室科室开始科室名称编号图2.1科室实体的属性图病房实体的属性图如图2.2所示。病房病房开始编号病房类型床费图2.2病房实体的属性图医生实体的属性图如图2.3所示。医生医生开始编号医生姓名图2.3医生实体的属性图病人实体的属性图如图2.4所示。病人病人开始编号姓名身份证性别备注图2.2病人实体的属性图费用实体的E-R图如图2.5所示。费用费用开始药费总计结算床费餐费日期基本费用编号图2.5费用实体的属性图实体间的E-R图如图2.6所示。病人入院时,根据病人情况选择科室和病房,每个科室有多个病人就诊,每个病房可以住多个病人。一个病人由一个医生负责,作为该病人的主治医生,每个医生可能负责多个病人。病人住院期间的费用根据时间日期来计算。病人病人开始科室开始医生开始费用开始病房开始花费属于属于治疗日期1n1nmnmn图2.6实体间的E-R图2.2系统模块设计整个系统可分为三个模块进行设计,主要包括病人基本信息管理,费用数据录入、查询,病人、病房、主治医生查询,系统管理等部分,系统模块图如图2.7所示。病人住院管理系统病人住院管理系统开始数据处理模块开始查询模块开始系统功能模块费用输入病人资料管理用户管理数据备份数据恢复病房查询病人查询主治医生查询图2.7系统模块图..3详细设计3.1数据库逻辑结构设计本系统共建立六张表:科室表、病房表、医生表、病人表、费用表、操作员表。以下分别列出各表的字段说明。科室表:用于保存医院中各科室的信息。在系统中只使用科室编号和名称,将其单独列出一张表可方便用户修改科室。各字段参数如表3.1所示。表3.1科室表字段名称数据类型字段大小是否主键说明ID自动编号是科室编号科室文本20否科室名称病房表:用于保存病房信息。包括病房编号、类型,以及不同类型病房床费。其中病房类型分为单人间和三人间,且不同房间所需床费不同。各字段参数如表3.2所示。表3.2病房表字段名称数据类型字段大小是否主键说明ID自动编号是病房编号病房文本20否病房类型床费货币否床费医生表:用于医院所有医生的信息。病人需要医生开药来计算药费,所以将药费作为医生的一个属性。各字段参数如表3.3所示。表3.3医生表字段名称数据类型字段大小是否主键说明ID自动编号是医生编号医生文本15否医生姓名药费货币否开药药费病房表:用于保存病人基本信息。包括病人编号、姓名、性别、身份证号码、入院时间、科室、病房、主治医生及入院时所需缴纳的基本费用。其中科室、病房和医生均是各实体的编号。各字段参数如表3.4所示。表3.4病人表字段名称数据类型字段大小是否主键说明ID自动编号是病人编号姓名文本10否病人姓名身份证文本15否身份证性别文本2否性别入院时间日期/时间否入院时间科室数字否科室编号病房数字否病房编号医生数字否医生编号基本费用货币否基本费用备注备注备注信息费用表:用于保存病人住院期间的费用。由于需要按病人查询费用,所以包含了病人ID。各字段参数如表3.5所示。表3.5费用表字段名称数据类型字段大小是否主键说明ID自动编号是序号病人ID长整型否病人编号日期日期/时间否费用日期基本费用货币否基本费用床费货币否床费药费货币否药费餐费货币否餐费总计货币否总计结算货币否结算操作员表:用于保存操作本系统人员的登录名、密码等信息。各字段参数如表3.6所示。表3.6操作员表〔User字段名称数据类型字段大小是否主键说明Name文本15是登录名PWD文本16否登录密码UserClass字节否用户类型3.2系统子模块设计编写全局变量和通用过程在由应用程序向导创建的程序框架中,创建了一个模块文件"Module1.bas",在该模块中有一个名为"SubMain"的过程,用来启动应用程序。在该模块中还定义了一下全局变量和通用过程,供其他模块使用。下面的过程用来执行针对数据库的操作,如创建/释放数据库连接,运行查询等。PublicSubConnect<>'连接数据库IfIsConnect=TrueThen'如果连接标记为真,则返回。否则会出错ExitSubEndIfSetcnn=NewADODB.Connection'关键New用于创建新对象cnncnn.ConnectionString=Conn'设置连接字符串ConnectionString属性cnn.Open'打开到数据库的连接Ifcnn.State<>adStateOpenThen'判断连接的状态MsgBox"数据库连接失败",vbOKOnly+vbCritical,"警告"'如果连接不成功,则显示提示信息,退出程序EndEndIfIsConnect=True'设置连接标记,表示已经连接到数据库EndSubPublicSubDisconnect<>'断开与数据库的连接DimrcAsLongIfIsConnect=FalseThenExitSub'如果连接标记为假,标明已经断开连接,则直接返回cnn.Close'关闭连接Setcnn=NothingIsConnect=FalseEndSubPublicSubSQLExt<ByValstrSQLstmtAsString>'执行数据库操作语句DimcmdAsNewADODB.Command'创建Command对象cmdConnect'连接到数据库Setcmd.ActiveConnection=cnn'设置cmd的ActiveConnection属性,指定与其关联的数据库连接cmd.CommandText=strSQLstmt'设置要执行的命令文本cmd.ExecuteSetcmd=NothingDisconnectEndSub用户管理模块用户管理是大多数信息管理系统中都需要的功能,将用户管理的功能设置为一个类,可提高代码的可重用性。用户管理类模块名称为"clsUser",基本流程如图3.1。开始开始初始化数据调用SQLExt过程执行SQL语句结束查找指定用户图3.1用户管理模块流程图病人资料管理模块病人资料管理模块是本系统的核心,包括病人资料的增加、修改、删除等功能的实现,可以在对话框中对病人资料进行管理并连接到数据库中。"增加"按钮有两种状态,当该按钮病人入院时,进入该模块点击"增加"按钮,可以增加一个病人,将病人的基本信息输入,并添加到数据库的病人表中,其流程如图3.2。从科室表中获取数据从科室表中获取数据从病房表中获取数据SQL语句结束从医生表中获取数据定义SQL语句SQL语句刷新ADO控件数据SQL语句设置DataGrid1控件显示ADO控件中的数据SQL语句数据是否读取完毕设置ADO控件连接字符串为全局变量SQL语句计数器加1SQL语句是程序停止运行,返回false否开始图3.2病人资料管理模块增加事件流程图病人入院后可能会更换病房或者出现其他变动,所以在该模块还需要实现病人资料的即时更新。当在DataGrid表格中选中一个病人记录时,"增加"按钮的标题将改变为"修改",此时单击该按钮将修改选中记录的数据,具体流程如图3.3。开始开始禁止使用"删除"按钮调用Status过程允许用户操作窗体各控件SQL语句结束清除数据检查用户输入或修改的数据SQL语句刷新ADO控件数据SQL语句调用Status过程禁止用户操作窗体中的控件SQL语句输入数据SQL语句数据是否输入完毕是否图3.3病人资料管理模块修改事件流程图为了方便查询,只显示住院病人资料,若病人出院,需要将该病人的资料删除,及时更新数据库,进入该模块点击"删除"按钮,可以将病人的基本信息删除,其流程如图3.4。开始开始结束显示提示信息SQL语句刷新数据SQL语句病人编号大于0是否为添加状态删除SQL语句SQL语句执行SQL语句SQL语句是是否否图3.4病人资料管理模块删除事件流程图费用输入模块费用输入模块主要用来录入病人指定时间的费用。为减少录入工作量,减少录入错误,使用列表框显示病人姓名,系统将自动填充病人的基本费用、床费、药费,用户也可以修改这些自动填充的数据。对于最终的结算数据,既可手工输入,也可单击右侧的"C"〔计算按钮自动计算。其主要流程如图3.5。开始开始从病房表中获取数据从病人表中获取数据SQL语句结束从医生表中获取数据调用status过程禁止用户操作窗体控件SQL语句将当前记录中"病人ID"保存到变量id中SQL语句在病人数组中逐个判断SQL语句数据是否读取完毕设置ADO控件连接字符串SQL语句将病人姓名添加到组合框中SQL语句是否图3.5费用输入模块流程图4调试分析<1>信息不能全部显示问题描述:数据文件输出到text控件中输出数据不能全部显示。问题分析:text控件中且数据量比较大,窗体不够大,所以不能全部显示。解决方法:比较简单的方法就是把数据放到一个文本框〔text里,并在其中加上水平和垂直滚动条。具体实现步骤为:先在窗体〔form里加入一个文本框,采用默认名text1;然后,设置文本框text1的属性:text属性设置为空,multiline属性设置为true,scrollbars属性设置为3-both;接着添加一段vb代码即可。<2>运行出错问题描述:运行点击病人资料时出错,调试时在设置ADO控件连接字符串为全局变量Conn一行出错。问题分析:指示出错行并未有问题,可能原因是前面定义SQL语句时出错。经检查分析,SELECT语句中医生表中并未出现"主治医生"这一参数。解决方法:将SELECT语句中"主治医生"改为"医生"。修改后的SELECT语句如下:strSQL2="SELECTa.ID,姓名,d.科室,性别,身份证,入院时间,b.病房,c.医生,基本费用,备注"strSQL2=strSQL2&"FROM病人表a,病房表b,医生表c,科室表d"strSQL2=strSQL2&"WHEREa.病房=b.IDANDa.医生=c.IDANDa.科室=d.ID"5测试及运行结果5.1用户登陆界面在VB6开发环境中,选择菜单"运行/启动"命令,将显示登陆窗体,如图5.1所示。图5.1用户登陆窗体在登录窗体中单击"确定"按钮,即可进入系统主窗体,如图5.2所示。图5.2系统主窗体5.2用户管理界面在系统主窗体中"系统/用户管理"或点击"用户"按钮,可以进入用户管理界面,如图5.3所示。图5.3用户管理窗体单击"添加用户"按钮,管理员和操作员都可以添加新用户,如图5.4所示。图5.4添加用户窗体单击"修改用户"按钮,管理员可以修改用户,如图5.5所示。图5.5修改用户窗体5.3病人资料管理界面在系统主窗体中"数据/病人资料",可以进入病人资料管理界面。操作员可以对病人资料进行添加、修改、删除等操作,并且可以直观显示在界面的表格中。如图5.6所示。图5.6病人资料管理界面输入新的入院病人资料,单击"添加"按钮,添加时界面显示如图5.7所示。图5.7添加病人资料显示界面新入院病人资料已添加到数据库中,添加后界面显示如图5.8所示。图5.8添加后病人资料显示界面单击"删除"按钮,弹出对话框如图5.9所示。图5.9弹出对话框选择"是",可将该用户从数据库中删除,删除后显示界面如图5.10所示。图5.10删除后病人资料显示界面..参考文献[1]VisualBasic课程设计案例精编[M].北京:清华大学出版社,2007[2]VisualBasic项目案例开发实例自学手册[M].北京:人民邮电出版社,2008[3]VisualBasic完全自学手册[M].北京:机械工业出版社,2009[4]30天学通VisualBasic项目案例开发[M].北京:电子工业出版社,2009[5]VisualBasic从入门到精通[M].北京:人民邮电出版社,2010..附录主要源程序清单:PrivateSubMDIForm_Load<>Me.Left=GetSetting<App.Title,"Settings","MainLeft",1000>Me.Top=GetSetting<App.Title,"Settings","MainTop",1000>Me.Width=GetSetting<App.Title,"Settings","MainWidth",6500>Me.Height=GetSetting<App.Title,"Settings","MainHeight",6500>'LoadNewDocEndSubPrivateSubMDIForm_Unload<CancelAsInteger>IfMe.WindowState<>vbMinimizedThenSaveSettingApp.Title,"Settings","MainLeft",Me.LeftSaveSettingApp.Title,"Settings","MainTop",Me.TopSaveSettingApp.Title,"Settings","MainWidth",Me.WidthSaveSettingApp.Title,"Settings","MainHeight",Me.HeightEndIfEndSubPrivateSubmnuDataEmp_Click<>frmEmp.ShowEndSubPrivateSubmnuDataInput_Click<>frmInput.ShowEndSubPrivateSubmnuDataRef_Click<>frmDataRef.ShowEndSubPrivateSubmnuQueryFind_Click<>frmSearchName.ShowEndSubPrivateSubmnuReportEmp_Click<>frmReportEmp.ShowEndSubPrivateSubmnuReportPay_Click<>frmReportPay.ShowEndSubPrivateSubmnuSysBack_Click<>DimstrSoureFileAsString,strDestFileAsString,iRetAsIntegerOnErrorResumeNextstrSoureFile=App.Path&strDB'源数据库文件strDestFile=App.Path&"\BAK\DATA.BAK"'备份文件IfTrim<strDestFile>=""ThenExitSubIfDir<strDestFile><>""Then'文件存在iRet=MsgBox<Dir<strDestFile>&"文件已经存在,是否替换?",vbYesNo,"警告">IfiRet=vbNoThenExitSubEndIfEndIfDimbuff<>AsByte,iAsLong'定义缓冲区i=FileLen<strSoureFile>ReDimbuff<i-1>OpenstrSoureFileForBinaryAs#1'打开源文件Get#1,,buff'读取数据到缓冲区Close#1'关闭文件OpenstrDestFileForBinaryAs#1'打开目标文件Put#1,,buff'输入缓冲区到目标文件Close#1MsgBox"数据库备份完成!",vbInformation+vbOKOnly,"提示"EndSubPrivateSubmnuSysPWD_Click<>WithfrmUserEdit.Caption="修改密码".strOldUser=CurUser.strName.txtUserName.Text=CurUser.strNameIfCurUser.iUserClass=1Then.cmbUserClass.AddItem"管理员"Else.cmbUserClass.AddItem"操作员"EndIf.cmbUserClass.ListIndex=0.cmbUserClass.Enabled=False.txtUserName.Enabled=False'不允许修改用户名.bModify=True.ShowEndWithEndSubPrivateSubmnuSysQuit_Click<>DimynAsStringyn=MsgBox<"确定要退出系统吗?",vbYesNo,"退出确定">Ifyn=vbYesThenUnloadMeEndSubPrivateSubmnuSysRest_Click<>DimstrSoureFileAsString,strDestFileAsStringDimbuff<>AsByte,iAsLong,iRetAsIntegerOnErrorResumeNextstrSoureFile=App.Path+"\BAK\DATA.BAK"strDestFile=App.Path+strDBIfDir<strSoureFile>=""ThenMsgBox"没有发现可以恢复的数据库!",vbOKOnly+vbCritical,"警告"ElseIfDir<strSoureFile><>""TheniRet=MsgBox<"恢复数据库可能会丢失最近的数据,确定要恢复备份文件吗?",vbQuestion+vbYesNo,"确认">IfiRet=vbYes

温馨提示

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

评论

0/150

提交评论