1、住院病人管理系统沈阳航空航天大学课程设计报告课程设计名称: 软件综合课程设计课程设计题目: 病人住院管理院(系):计算机学院专 业:班 级:学 号:姓 名:指导教师:达成日期: 2011 年09月09日1系统解析 .错误 !不决义书签。需求解析 . .错误 !不决义书签。开发工具 . .错误 !不决义书签。B.错误 !不决义书签。ASICOFFICE ACCESS.错误 !不决义书签。2大纲设计 .错误 !不决义书签。数据库看法结构设计 . .错误 !不决义书签。系统模块设计 . .错误 !不决义书签。3详细设计 .错误 !不决义书签。数据库逻辑结构设计 .错误 !不决义书签。系统子模块设计
2、.错误 !不决义书签。编写全局变量和通用过程 . .错误 !不决义书签。用户管理模块 . .错误 !不决义书签。病人资料管理模块 . .错误 !不决义书签。开销输入模块 . .错误 !不决义书签。4调试解析 .错误 !不决义书签。5测试及运行结果 .错误 !不决义书签。用户登陆界面 . .错误 !不决义书签。用户管理界面 . .错误 !不决义书签。病人资料管理界面 . .错误 !不决义书签。参照文件 .错误 !不决义书签。附录 .错误 !不决义书签。1系统解析需求解析实现一个病人住院管理系统,系统能够连接数据库。病人住院时,住在指定科室的病房(如外科、内科、儿科等) ,到每个病人有一个主治医生
3、负责,能够选择单人间和三人间病房,若是选择三人间病房,床位由系统分配。住院时经过该系统将病人的信息增加数据库中。当病人出院时计算住院期间的开销(药费、床费、餐费等)。系统能够依照病人、病房、主治医生进行盘问,因此盘问模块最少有三个界面分别显示相关信息。开发工具1.2.1Visual BasicVisual Basic 是一种由微软公司开发的包括协助开发环境的事件驱动编程语言。从任何标准来说, VB都是世界上使用人数最多的语言不但是盛赞 VB的开发者还是抱怨 VB的开发者的数量。它源自于 BASIC编程语言。 VB拥有图形用户界面( GUI)和快速应用程序开发( RAD)系统,能够轻易的使用 D
4、AO、RDO、ADO连接数据库,也许轻松的创办 ActiveX 控件。程序员能够轻松的使用 VB供应的组件快速建立一个应用程序。VB使用了能够简单建立应用程序的 GUI 系统,可是又能够开发相当复杂的程序。 VB 的程序是一种基于窗体的可视化组件安排的结合, 并且增加代码来指定组件的属性和方法。 由于默认的属性和方法已经有一部分定义在了组件内,因此程序员不用写多少代码便能够达成一个简单的程序。过去的版本里面 VB 程序的性能问题素来被放在了桌面上,可是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变能够用拖放技术实现。 一个排列满控件的工具箱用来显示可用控件(比方文本
5、框也许按钮 ) 。每个控件都有自己的属性和事件。默认的属性值会在控件创办的时候供应,可是程序员也能够进行更正。好多的属性值能够在运行时候随着用户的动作和更正良行变动, 这样就形成了一个动向的程序。举个例子来说:窗体的大小改变事件中加入了能够改变控件地址的代码,在运行时候每当用户更正窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序便能够在文字输入的时候自动翻译也许阻拦某些字符的输入。VB的程序能够包括一个或多个窗体,也许是一个主窗体和多个子窗体,近似于操作系统的样子。有很少功能的对话框窗口(比方没有最大化和最小化按钮的窗体)能够用来供应弹出功能。 VB 的组件既能够
6、拥适用户界面,也能够没有。这样一来服务器端程序便能够办理增加的模块。VB使用参数计算的方法来进行垃圾收集,这个方法中包括有大量的对象,供应基本的面向对象支持。由于越来越多组建的出现,程序员能够采用自己需要的扩展库。和有些语言不一样样, VB 对大小写不敏感,可是能自动转换要点词到标准的大小写状态, 以及逼迫使得符号表入口的实体的变量名称依照书写规则。默认情况下字符串的比较是对大小写敏感的,可是能够关闭这个功能。1.2.2Microsoft Office AccessMicrosoft Office Access(前名Microsoft Access)是由微软宣布的关系式数据库管理系统。它结合了
7、Microsoft Jet Database Engine和 图形用户界面两项特点,是MicrosoftOffice的成员之一。其实Access 也是微软公司另一个通讯程序的名字,想与 ProComm以及其他近似程序来竞争。可是事后微软证明这是个失败计划,并且将它中止。数年后他们把名字重新命名于数据库软件。 Access 在 2000 年的时候成为了计算机等级考试中的计算机二级的一种数据库语言并且由于它的易学易用的特点正渐渐取代传统的 VFP成为二级中最受欢迎的数据库语言。Access 是微软公司推出的基于 Windows的桌面关系数据库管理系统 ( RDBMS,即 Relational Da
8、tabase Management System ),是 Office 系列应用软件之一。它供应了表、盘问、窗体、报表、页、宏、模块 7 种用来建立数据库系统的对象;供应了多种导游、生成器、模板,把数据储藏、数据盘问、界面设计、报表生成等操作规范化;为建立功能完满的数据库管理系统供应了方便,也使得一般用户不用编写代码,便能够达成大多数数据管理的任务。Access 能够存取 Access/Jet 、Microsoft SQL Server、Oracle( 甲骨文软件公司 ) ,也许任何 ODBC兼容数据库内的资料。熟练的软件设计师和资料解析师利用它来开发应用软件,而一些不熟练的程序员和非程序员的
9、 进阶用户 则能使用它来开发简单的应用软件。诚然它支援部分面向对象 (OOP)技术,可是未能成为一种完满的面向对象开发工具。与一般的 RDBMS完满不一样,它缺乏数据库触发和预存程序。自从 MSAccess 2000 (Jet ,开发人员能够在盘问中设定参数,这跟预存程序很相似的,但这些“预存程序”只能办理一个程序 当资料表内数据发生变化时,它确实赞同形式包括被惹起的代码, 使用是一般的透过盘问和其他技术在进入营运储蓄的程序在方面RDBMS支援这些的。进入可供应的编程语言,当时在另一个内产品MicrosoftOffice家具,微软公司应用的VisualBasic。两个数据库进入信息库COM组成
10、部分被供应:这笔遗产数据存取物体(DAO),用进入和新只可供应ActiveX数据对象( 忙乱 ) 。Microsoft Access 简单被应用于小的工程, 可是若是设计的不好对大工程是无用的。全部数据库诘问,形式和报告被储蓄在数据库里,并且与相关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。一种设计技术是把进入应用在数据和计划之间进行发散。一个数据库应该只包括桌子和关系,当另一个将有全部计划时,形式,报告和诘问和对第一个数据库桌子的连接。令人遗憾,当连接时,进入赞同没有相关的道路,因此那些发展环境作为这种生产环境有相同的道路应该 ( 诚然你写你们自己的能 动向连接程序老例在里
11、VBA那搜出能必然反面结束档案以透过这个目录树搜寻, 若是它发现这条电流通路它不能够 ) 。这种技术也赞同开发者在不一样的档案中分申请,因此一些架构是可能的。2大纲设计数据库看法结构设计本系统包括的实体主要有病人、科室、病房、医生、开销等。下面分别介绍各实体的 E-R 图,经过 E-R 图能够认识各实体的属性。科室实体的属性图以下列图。科室编号科室名称图 科室实体的属性图病房实体的属性图以下列图。病房编号 病房种类 床费图 病房实体的属性图医生实体的属性图以下列图。医生编号 医生姓名图 医生实体的属性图病人实体的属性图以下列图。编号备注 姓名性别 身份证病人图 病人实体的属性图开销实体的 E-
12、R 图以下列图。编号 药费基本开销床费开销结算 餐费总计 日期图 开销实体的属性图实体间的 E-R 图以下列图。病人住院时,依照病人情况选择科室和病房,每个科室有多个病人就诊,每个病房能够住多个病人。一个病人由一个医生负责,作为该病人的主治医生,每个医生可能负责多个病人。病人住院期间的开销依照时间日期来计算。1 n m n医生 治疗 病人 属于 科室mn1日期 开销 属于 病房n开销图 实体间的 E-R 图系统模块设计整个系统可分为三个模块进行设计,主要包括病人基本信息管理,开销数据录入、盘问,病人、病房、主治医生盘问,系统管理等部分,系统模块图如图所示。病人住院管理系统系统功能模块 数据办理
13、模块 盘问模块用数数病费病病主户据据人用人房治管备恢资输查查医理份复料入询询生管查理询图 系统模块图3详细设计数据库逻辑结构设计本系统共建立六张表:科室表、病房表、医生表、病人表、开销表、操作员表。以下分别列出各表的字段说明。科室表:用于保存医院中各科室的信息。在系统中只使用科室编号和名称,将其单独列出一张表可方便用户更正科室。各字段参数如表所示。表 科室表字段名称数据种类字段大小可否主键说明ID自动编号是科室编号科室文本20否科室名称病房表:用于保存病房信息。 包括病房编号、 种类,以及不一样种类病房床费。其中病房种类分为单人间和三人间,且不一样房间所需床费不一样。各字段参数如表所示。表 病
14、房表字段名称数据种类字段大小可否主键说明ID自动编号是病房编号病房文本20否病房种类床费钱币否床费医生表:用于医院全部医生的信息。病人需要医生开药来计算药费,因此将药费作为医生的一个属性。各字段参数如表所示。表 医生表字段名称数据种类字段大小可否主键说明ID自动编号是医生编号医生文本15否医生姓名药费钱币否开药药费病房表:用于保存病人基本信息。包括病人编号、姓名、性别、身份证号码、住院时间、科室、病房、主治医生及住院时所需缴纳的基本开销。其中科室、病房和医生均是各实体的编号。各字段参数如表所示。表 病人表字段名称数据种类字段大小可否主键说明ID自动编号是病人编号姓名文本10否病人姓名身份证文本
15、15否身份证性别文本2否性别住院时间日期/ 时间否住院时间科室数字否科室编号病房数字否病房编号医生数字否医生编号基本开销钱币否基本开销备注备注备注信息开销表:用于保存病人住院期间的开销。由于需要按病人盘问开销,因此包含了病人 ID 。各字段参数如表所示。表 开销表字段名称数据种类字段大小可否主键说明ID自动编号是序号病人 ID长整型否病人编号日期日期/ 时间否开销日期基本开销钱币否基本开销床费钱币否床费药费钱币否药费餐费钱币否餐费总计钱币否总计结算钱币否结算操作员表:用于保存操作本系统人员的登录名、密码等信息。各字段参数如表所示。表 操作员表( User)字段名称数据种类字段大小可否主键说明N
16、ame文本15是登录名PWD文本16否登录密码UserClass字节否用户种类系统子模块设计3.2.1 编写全局变量和通用过程在由应用程序导游创办的程序框架中, 创办了一个模块文件 “”,在该模块中有一个名为“ Sub Main”的过程,用来启动应用程序。在该模块中还定义了一下全局变量和通用过程,供其他模块使用。下面的过程用来执行针对数据库的操作,如创办 / 释放数据库连接,运行盘问等。Public Sub Connect() 连接数据库If IsConnect = True Then Exit SubEnd If若是连接标记为真,则返回。否则会出错Set cnn = New要点New用于创办
17、新对象cnn= Conn 设置连接字符串ConnectionString属性打开到数据库的连接If adStateOpen Then 判断连接的状态MsgBox 数据库连接失败, vbOKOnly + vbCritical,警告 若是连接不行功,则显示提示信息,退出程序EndEnd IfIsConnect = True End Sub设置连接标记,表示已经连接到数据库Public Sub Disconnect() 断开与数据库的连接Dim rc As LongIf IsConnect = False Then Exit Sub 若是连接标记为假,注明已经断开连接,则直接返回 关闭连接Set c
18、nn = NothingIsConnect = FalseEnd SubPublic Sub SQLExt(ByVal strSQLstmt As String)执行数据库操作语句Dim cmd As New创办Command对象cmdConnect连接到数据库Set = cnn 设置 cmd的 ActiveConnection 属性,指定与其关系的数据库连接= strSQLstmt 设置要执行的命令文本Set cmd = NothingDisconnectEnd Sub3.2.2 用户管理模块用户管理是大多数信息管理系统中都需要的功能,将用户管理的功能设置为一个类,可提高代码的可重用性。用户
19、管理类模块名称为“ clsUser ”,基本流程如图。开始初始化数据查找指定用户调用 SQLExt 过程执行 SQL语句结束图 用户管理模块流程图3.2.3 病人资料管理模块病人资料管理模块是本系统的核心,包括病人资料的增加、更正、删除等功能的实现,能够在对话框中对病人资料进行管理并连接到数据库中。 “增加” 按钮有两种状态,当该按钮病人住院时,进入该模块点击“增加”按钮,能够增加一个病人,将病人的基本信息输入,并增加到数据库的病人表中,其流程如图。开始从科室表中获取数据从医生表中获取数据从病房表中获取数据数据可否读取达成 否程序停止运行,是 返回 false计数器加 1定义 SQL语句设置
20、ADO控件连接字符串为全局变量刷新 ADO控件数据设置 DataGrid1 控件显示 ADO控件中的数据结束图 病人资料管理模块增加事件流程图病人住院后可能会更换病房也许出现其他变动,因此在该模块还需要实现病人资料的即时更新。当在 DataGrid 表格中选中一个病人记录时, “增加”按钮的标题将改变为“更正” ,此时单击该按钮将更正选中记录的数据,详细流程如图。开始禁止使用“删除”按钮除去数据调用 Status 过程赞同用户操作窗体各控件检查用户输入或更正的数据输入数据数据可否输入达成 否是刷新 ADO控件数据调用 Status 过程禁止用户操作窗体中的控件结束图 病人资料管理模块更正事件流
21、程图为了方便盘问,只显示住院病人资料,若病人出院,需要将该病人的资料删除,及时更新数据库,进入该模块点击“删除”按钮,能够将病人的基本信息删除,其流程如图。开始否病人编号大于 0是否可否为增加状态是删除 SQL语句显示提示信息执行 SQL语句刷新数据结束图 病人资料管理模块删除事件流程图3.2.4 开销输入模块开销输入模块主要用来录入病人指准时间的开销。为减少录入工作量,减少录入错误,使用列表框显示病人姓名,系统将自动填充病人的基本开销、床费、药费,用户也能够更正这些自动填充的数据。关于最后的结算数据,既可手工输入,也可单击右侧的“ C”(计算)按钮自动计算。其主要流程如图。开始从病房表中获取
22、数据从医生表中获取数据从病人表中获取数据数据可否读取达成 否是将病人姓名增加到组合框中调用 status 过程禁止用户操作窗体控件设置 ADO控件连接字符串将当前记录中“病人 ID ”保存到变量 id 中在病人数组中逐个判断结束图 开销输入模块流程图4调试解析(1)信息不能够全部显示问题描述:数据文件输出到 text 控件中输出数据不能够全部显示。问题解析: text 控件中且数据量比较大,窗体不够大,因此不能够全部显示。解决方法:比较简单的方法就是把数据放到一个文本框( text )里,并在其中加上水平和垂直转动条。详细实现步骤为:先在窗体( form )里加入一个文本框, 采用默认名 te
23、xt1 ;尔后,设置文本框 text1 的属性:text 属性设置为空, multiline 属性设置为 true , scrollbars 属性设置为 3both ;接着增加一段 vb 代码即可。(2)运行出错问题描述:运行点击病人资料时出错,调试时在设置 ADO控件连接字符串为全局变量 Conn一行出错。问题解析:指示出错行并未有问题,可能原因是前面定义 SQL语句时出错。经检查解析, SELECT语句中医生表中并未出现“主治医生”这一参数。解决方法:将 SELECT语句中“主治医生”改为“医生”。更正后的 SELECT语句以下:strSQL2 = SELECT , 姓名 ,d. 科室 , 性别 , 身份证 , 住院时间 ,b. 病房 ,c.医生,基本开销 ,备注 strSQL2 = strSQL2 & FROM 病人表 a, 病房表 b, 医生表 c, 科室表 dstrSQL2 = strSQL2 & WHERE a. 病房 = AND a. 医生 = AND a. 科室 =5测试及运行结果用户登陆界面在 VB6开发环境中,选择菜单“运行 / 启动”命令,将显示登陆窗体,如图所示。图 用户登陆窗体在登录窗体中
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1