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