药品管理系统课程设计.docx
《药品管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《药品管理系统课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
![药品管理系统课程设计.docx](https://file1.bdocx.com/fileroot1/2023-1/9/1abb382b-e2f0-4229-99e1-a310c290974e/1abb382b-e2f0-4229-99e1-a310c290974e1.gif)
药品管理系统课程设计
第一章系统概述1
1.1系统开发背景和意义1
1.2任务概述2
第二章需求分析3
2.1可行性分析3
2.2数据流图3
2.2.1顶层层数据流图3
2.2.2一层数据流图4
2.2.3二层数据流图5
2.3数据字典6
2.3.1文件名:
用户基本信息表6
2.3.2文件名:
药品表6
2.3.3处理名:
药品添加6
2.3.4处理名:
入库7
2.3.5处理名:
出库7
2.4功能需求7
2.5性能需求8
2.5.1数据精确度8
2.5.2时间特性8
2.5.3适应性8
2.6运行需求8
2.7药品管理系统E-R图9
第三章总体设计10
3.1业务流程10
3.2系统功能模块图11
3.3数据库设计12
3.3.1建立数据库12
3.3.2数据库的连接13
第四章详细设计及编码实现14
4.1模块界面14
4.2模块部分代码15
4.2.1修改模块代码15
4.2.2查找模块代码16
第五章测试17
5.1查询测试17
结束语19
参考文献20
第一章系统概述
如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高度的效率,已是医院特别关心的问题。
尽快建立一个功能齐备的药品进、出库管理系统,完善现代医院的信息化管理机制,已成为医院生存发展的当务之急。
通过开发这个医院库房管理系统,使药品进调管理工作系统化,规范化,自动化,从而达到提高管理效率的目的。
本系统开发设计思想是实现药品管理的数字化。
尽量采用现有软硬件环境,及先进的管理系统开发方案,提高系统开发水平和应用效果的目的;系统应符合医院管理的规定,满足日常管理的需要,并达到操作过程中的直观,方便,实用,安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护;系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改等操作。
1.1系统开发背景和意义
随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。
对于一些大中型管理部门来说,利用计算机支持管理高效率完成管理的日常事务,是适应现代管理制度要求、推动管理走向科学化、规范化的必要条件;而药品管理是一项琐碎、复杂而又十分细致的工作,药品数量之庞大、单价的变化、进货厂商的不同,一般不允许出错,如果实行手工操作,每天进货的情况以及进货时间等须手工填制大量的表格,这就会耗费药品管理工作人员大量的时间和精力,如果利用计算机进行这些管理工作,不仅能够保证各种核算准确无误、快速记录,而且还可以利用计算机对有关的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有手工管理所无法比拟的优点,例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高管理的效率,也是管理行业的科学化、正规化管理,与世界接轨的重要条件。
基于以上的原因,有很多从事软件开发的人员,在试卷生成方面做了很大的研究。
目前这一领域也以良好的发展姿态而不断进步,早期已经有了一些类似的系统,但经过软件开发人员不断的完善,大致形成了具备如下功能的系统:
这个药品管理系统主要涉及医院药库的药品进、销、存等业务,以及入库、出库和库存管理,药品管理主要管理药库中所有药品的进出和内部统计计算,为药品会计提供基础数据,以及包括有效期的报警和下限报警。
1.2任务概述
本次课程设计任务是设计一个医院库房管理系统,要求能够用计算机控制医院库房中药品的入库、调拨以及各种药品相关信息的查询。
系统操作简单容易,适合大众性使用,界面简易。
该系统主要是药品信息管理的库存管理、药品管理、入库单管理和出库单管理等模块的结合实现,使用C++技术加以实现。
通用此课题以及我们在以往学习数据库的基础上,灵活运用C++和查询语言SQL,开发出基本上能供应使用的药品管理信息系统。
应用所学的有关知识,更深入地学习C++和SQL数据库技术应用,将所学的书面知识和实际应用结合起来,以达到学以致用的目的。
第二章需求分析
2.1可行性分析
技术可行性
良好的硬件环境有利于系统的开发与运行,教师整体水平高,指导我们技术上的难题。
经济可行性
本身具备各种软硬件,学校机房免费提供机器给我们运行与调试,开发成本为0。
操作可行性
本系统采用可视化界面,操作方法简单,用户可以轻易掌握使用方法及操作流程。
2.2数据流图
2.2.1顶层层数据流图
图2.1顶层数据流图
2.2.2一层数据流图
图2.3一层调拨数据流图
2.2.3二层数据流图
图2.4二层订货数据流图
图2.5二层调拨数据流图
2.3数据字典
2.3.1文件名:
用户基本信息表
存储方式:
随机存储
定义:
用户基本信息表=用户名+用户密码
2.3.2文件名:
药品表
存储方式:
随机存储
定义:
药品表=药品名称+出入库记录+编号+厂商
2.3.3处理名:
药品添加
处理逻辑:
用户添加药品信息
2.3.4处理名:
入库
处理逻辑:
用户添加入库单
2.3.5处理名:
出库
处理逻辑:
用户添加出库单
2.4功能需求
医院库房管理系统主要需要实现以下几大功能:
管理员登陆、入库管理、退库管理、药品调拨管理、药品信息设置。
管理员登陆需要实现的功能:
管理员登陆系统,管理员退出系统,管理员修改登陆密码。
管理员可以从控制台进入系统对库房药品信息进行管理。
入库管理需要实现的功能:
入库统计,对入库的所有药品数量进行统计记录。
入库记录查询,对每一次入库的药品种类及数量进行记录。
退库管理需要实现的功能:
对药房退库药品信息进行记录。
药品调拨管理:
对药房的需求信息进行处理,给药房调拨与需求信息一致的药品种类与数量。
药品信息设置需要实现的功能:
管理员登陆系统后可以通过此模块对库房的药品信息进行查询,包括药品的库存数量,药品的价格以及药品少到底限时发出警示。
2.5性能需求
2.5.1数据精确度
要严格按照数据格式输入,否则系统不给予响应。
查询时严格按照格式输入进行查询,不会出现不相关的多余信息和错误信息。
2.5.2时间特性
系统的数据响应时间应该在1~2S之内,如果数据量较大则反应时间会较长。
2.5.3适应性
满足中小型医院的使用需求.
2.6运行需求
1.用户界面
操作简便,一目了然,视图优美。
并且采用简单界面驱动方式,给操作用户带来极大的便利
2.硬件接口
不需要特定的硬件或硬件接口进行支撑,一般微机均可运行。
3.软件接口
运行与Win98及更高版本的操作系统之上。
2.7药品管理系统E-R图
图2.6数据E-R图
第三章总体设计
3.1业务流程
根据需求分析得到现行业务处理流程,确定医院库房管理系统的业务流程,其流程图如下:
图3.1业务流程图
针对业务流程,具体描述其功能如下:
1.用户登陆:
系统对用户合法性进行检查.
2.药品入库:
对新进购的药品进行整理,并把药品基本信息录入计算机。
3.药品调拨:
对以入库的药品,可以对调拨给药房。
4.药品进货:
管理人员可以对货存进行控制。
5.信息查询:
对药库药品的各种变动情况进行查询
3.2系统功能模块图
图3.2数据模块图
管理模块下分为两个模块,一个为管理员登陆模块,用于管理员管理各种信息。
另一个为管理员修改登陆密码模块,用于管理员修改自己的登陆密码。
入库模块下是从厂家进货的详细记录模块,用来记录每一次从厂家进货药品的规格数量以及价格。
退库模块下是药房退回药库药品的详细记录,用来记录药房每一次退回药库药品的规格种类以数量。
调拨模块下分为调拨动作模块和调拨记录模块,调拨模块用于管理员处理药房的需求信息后从库房对药房进行调拨药品。
调拨记录模块用于记录每一次对药房进行调拨药品种类数量以及规格的记录。
药品信息模块下有两个模块,药品信息记录模块和药品数量底限警示模块。
药品信息记录模块用于记录库房中现有所有药品的种类规格以及数量。
底限警示模块的作用是,当某中药品的数量达到一定少的限度时,系统会自动发出预警提示,以便管理员及时发现并处理。
3.3数据库设计
3.3.1建立数据库
数据库是信息系统的核心和基础,数据库设计的质量将直接关系到信息系统开发的成败和优劣。
数据库设计是根据业务需求,信息需求,和处理需求,确定系统中的数据结构、数据操作和数据一致性约束的过程。
在开始创建数据库应用程序之前,首先必须有一个可供程序使用的数据库。
利用SQLServer2000创建一个数据库,其中包含内容:
信息表
药品名称记录入库出库以及库房中所有药品的名称
药品代号是为了方便管理药品人为的给各种药品规定的号码
入库记录记录了每一次入库药品的数量
出库记录记录了每一次出库药品的数量
厂家名称记录着每种药品的生产厂家
采购计划中记录了将要采购的药品数量
表3—1数据属性表
字段名称
数据类型
字段大小
药品名称
char
10
药品代号
char
10
入库管理
char
10
出库管理
char
10
厂家名称
char
10
采购计划
char
10
图3.3数据属性
数据库表
图3.4数据库表
3.3.2数据库的连接
建立了数据库之后,必须配备ODBC数据源,使其指向刚刚建立的数据库。
运行控制面板中管理工具下的“数据源ODBC”。
1.双击ODBC图标,进入ODBC数据源管理器。
在这里可以设置ODBC数据源的一些信息,其中的用户DSN选项卡中可以让用户定义在本地计算机使用的数据源名(DSN).
2.单击“添加”按钮,弹出创建数据源对话框,为新的数据源选择数据库驱动程序。
由于使用的是SQLServer2000数据库,所以选择SQLServer,并单击“完成”按钮.
3.数据源取一个简短的名称,应用程序将是使用修改名称来指定用于数据库连接的ODBC数据源配置。
选择建立的数据源,完成数据库的连接。
第四章详细设计及编码实现
4.1模块界面
利用C++6.0创建各个模块界面:
药品信息界面:
图4.1品信息界面
药品信息修改界面:
图4.2品信息修改界面
查找模块界面:
图4.3查找界面
4.2模块部分代码
4.2.1修改模块代码
voidCYiyuankufangguanliView:
:
OnRecordEdit()
{
//TODO:
Addyourcommandhandlercodehere
CYiyuankufangguanliDlgdlg;
dlg.m_ypmc1=m_pSet->m_ypmc;
dlg.m_ypdh1=m_pSet->m_ypdh;
dlg.m_rkgl1=m_pSet->m_rkgl;
dlg.m_ckgl1=m_pSet->m_ckgl;
dlg.m_cjmc1=m_pSet->m_cjmc;
dlg.m_cgjh1=m_pSet->m_cgjh;
if(dlg.DoModal()==IDOK)
{
m_pSet->Edit();
m_pSet->m_ypmc=dlg.m_ypmc1;
m_pSet->m_ypdh=dlg.m_ypdh1;
m_pSet->m_rkjl=dlg.m_rkjl1;
m_pSet->m_ckjl=dlg.m_ckjl1;
m_pSet->m_cjmc=dlg.m_cjmc1;
m_pSet->m_cgjh=dlg.m_cgjh1;
m_pSet->Update();
UpdateData(false);
}
}
4.2.2查找模块代码
voidCYiyuankufangguanliView:
:
OnFindName()
{
//TODO:
Addyourcommandhandlercodehere
CFindDlgdlg;
dlg.m_strfind="药品名称:
";
CStringstr="药品名称";
if(dlg.DoModal()==IDOK)
{
str=str+"='"+dlg.m_findvalue+"'";
}
m_pSet->Close();
m_pSet->m_strFilter=str;
m_pSet->Open();
if(m_pSet->GetRecordCount()==0)
{MessageBox("没有匹配记录!
","查找",MB_ICONWARNING);
m_pSet->Close();
m_pSet->m_strFilter="";
m_pSet->Open();
}
UpdateData(false);
}
第五章测试
5.1查询测试
测试目标:
在查找界面中输入查找时,如果输入的药品在库存中没有记录,则显示无匹配记录。
测试过程:
在查找中分别输入维生素C、阿莫西林、甘草片,按确定。
测试结果:
由于在数据库中没有维生素C的记录,所以显示没有匹配记录,而数据库中有阿莫西林和甘草片的记录,则显示出阿莫西林和甘草片的代号、入库记录、出库记录、生产厂家以及采购计划。
图5.1查询出错
图5.2查询结果
图5.3查询结果
结束语
这次医院库房管理系统中,遇到了很大的困难,但是在老师的指导和同学们的帮助下,终于得以完成。
首先是在做数据流图的时候,由于没有太多的涉及医院库房这方面的业务流程,很难画出完成的数据流图,数据图的格式和分层都在老师的知道下顺利完成。
其次为编写代码,由于C++学的不是太好,在编码上很吃力,通过询问老师以及看书参考资料,在无数次的修改与调试中,终于实现了医院库房管理系统中的添加、修改以及查找药品信息等几个模块功能。
这次系统设计过程中,让我学到了很多。
做一件事情,首先要有一个良好的态度,认真对待事情,不能马马虎虎了事。
在系统课程设计过程中,由于遇到很大很多的困难,曾想从网上拷贝相同的交差完事,但在老师的指导下,最终得以自己完成,并从中学到了很多关于数据库设计以及编码实现的只是,特别是对画数据流图,有了清晰的认识。
参考文献
[1]张海藩《软件工程导论》北京:
清华大学出版社,2003年
[2]马安石《Visualc++程序设计与应用教程》北京:
华大学出版社2008年
[3]李劲,谢兆阳《SQLServer2000数据库程序设计》北京:
华大学出版社,2001年