药品管理系统需求分析报告.docx
《药品管理系统需求分析报告.docx》由会员分享,可在线阅读,更多相关《药品管理系统需求分析报告.docx(34页珍藏版)》请在冰点文库上搜索。
药品管理系统需求分析报告
工业大学毕业设计(论文)任务书
课题名称
药店管理系统设计与实现
学院
计算机学院
专业班级
网络工程网061班
姓名
王义龙
学号
069074228
毕业设计〔论文〕的主要容:
一、进展调研,了解、分析用户对“药店管理系统〞的设计要求。
二、熟练掌握一种程序设计语言,掌握其数据库开发、访问技术。
三、根据课题要求,软件完成如下功能:
1,对系统用户的增删改查等操作的实现;
2,对职工的人事管理;
3,对药品的进销存;
特殊情况的处理,还有根据用户权限的不同设置模块的功能开放.
四、要求软件设计界面友好、使用方便,程序执行平安、可靠。
五、完成与设计容有关的外文资料翻译,译文约5000字。
六、撰写毕业论文并提交设计软件与清单一份。
起止时间:
2010
年
3
月
1
日至
2010
年
6
月
7
日共
14
周
指导教师
签字
系主任
签字
院长
签字
第一章概述
如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高度的效率,已是医药经营企业,特别是医药连锁经营企业特别关心的问题。
尽快建立一个功能齐备的药品进、出库管理系统,完善现代企业的信息化管理机制,已成为医药企业生存开展的当务之急。
通过开发这个药品管理系统,使药品进销存管理工作系统化,规化,自动化,从而到达提高管理效率的目的。
本系统开发设计思想是实现药品管理的数字化。
尽量采用现有软硬件环境,与先进的管理系统开发方案,提高系统开发水平和应用效果的目的。
系统应符合企业管理的规定,满足日常管理的需要,并到达操作过程中的直观、方便、实用、平安等要求,系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护。
系统应具备数据库维护功能,与时根据用户需求进展数据的添加,删除,修改等操作。
1.1系统开发背景和意义
此次毕业设计的选题是由我校计算机学院统一选题。
本次的毕业设计是一个可以充分地锻炼自己的动手实践能力以与考核四年大学所学知识的积累的时机。
针对我的实际情况,结合四年来对计算机软件的熟练程度以与对数据库的了解,经过与指导教师以与小组成员的协商,我选择了药品管理系统软件设计与开发这个课题。
这是一个属于实际的课题,如果顺利,我们所设计的药品管理系统将实际应用到中国最广阔的售药系统中去,对于初涉社会的我们来说,无疑是一个非常好地锻炼时机。
考虑到该系统属于一个规模较大、较为复杂的数据库系统,对计算机的性能要求较高,决定使用MyEclipse7.0开发此系统。
此次毕业设计选题围是相当广泛且实用的,含盖了目前大局部计算机软件类开发的课题,给我们很大的自由开展的空间。
可以每个学生挑选出最适宜的课题,更适合同学们的兴趣和价值取向。
选择此课题对我来说有着不同的意义,应该来说此课题更接近于实际开发的全过程。
同时对编程、数据库调用、结构化查询语言STRUCTUREDQUERYLANGUAGE等方面是一个比拟综合的考验。
让我在此过程中得到很好的锻炼。
随着医疗制度改革的进展,药品招标采购的逐年规和扩大,药品管理已经成为药剂科乃至整个医院管理的重要容。
传统的管理模式已经跟不上顾客对快节奏生活的要求了!
随着计算机的普与和计算机软件的不断开展,越来越多的医疗机构开场注视计算机这个辅助工具为自己带来的效益了。
医院的售药机构需要通过计算机提高自已工作效率、对药品实现进销存管理和职工管理,提高经济效益
本次毕业设计我们秉承良好的治学之风,除了严格按照毕业设计进度表来安排我的设计情况,同时加强我与指导教师联系和交流。
同时这是一个面向实际应用的课题,和根底调研更是尤为显得重要,为最终能够成为一个成功的案例而努力。
1.2开发环境
开发环境的选择会影响到数据库的设计,所以在这里给出图书管理系统开发与运行环境的选择如下:
开发环境:
Window7旗舰版
开发工具:
MyEclipse7.0
数据库引擎:
MyISAM
第二章需求分析
2.1任务概述
药品管理系统是为了加强药品管理,以便更好地对药品进展监视和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。
本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货管理模块、存货转移管理模块。
药品管理系统是以合理、全面、准确的药品编码体系为根底,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规了药品的价格。
系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,防止不必要的损失,方便快捷的途径对药根本信息进展定期的更新和删除等管理。
2.2功能需求
一功能划分
药品管理系统分为系统用户管理、药品销售管理、药品库存管理、进货管理、职工管理、查询与报表分析。
二功能描述
〔1〕系统用户管理:
允许添加删除用户〔只有管理员才可以修改〕,任意权限的用户允许更改自己的密码,添加或删除职工,修改职工,对药品进展销售和库存的控制的资料。
〔2〕药品进货管理:
当企业需要增加新的销售药品时,利用此模块可以添加新的药品信息,删除旧的药品信息,修改已存在的药品信息,提供所有与药品相关的各类信息,初始化库存,初始化供给商相关信息。
〔3〕药品销售管理:
药品统一的价格销售,对已查询销售单,可以对药品的价格进展控制。
〔4〕库存转移管理:
实际生活中容易发生药品过期和损毁,此时利用此模块对过期的药品和损毁的药品进展清理。
〔6〕职工管理:
对药品企业进展职工的管理,对职工进展增加,修改,删除,查询等操作。
〔7〕查询与报表分析:
此功能并未单独作为一个模块,而是分布在各个模块中,各个模块产生业务时,可以在各模块的相应功能按钮上选择查询。
2.3性能需求
为了保证系统能够长期、平安、稳定、可靠、高效的运行,药品管理系统应该满足以下的性能需求:
1、系统处理的准确性和与时性
系统处理的准确性和与时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。
2、系统的开放性和系统的可扩大性
药品管理系统在开发过程中,应该充分考虑以后的可扩大性。
例如用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进展功能的调整和扩大。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规,可以简单的参加和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3、系统的易用性和易维护性
图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
4、系统的标准性
系统在设计开发使用过程中都要涉与到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
5、系统的先进性
目前计算系统的技术开展相当快,做为药品管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩大性,不断改善系统的功能完成。
另一方面,在系统设计和开发的过程中,应在考虑本钱的根底上尽量采用当前主流并先进且有良好开展前途的产品。
6、系统的响应速度
药品管理系统系统在日常处理中的响应速度为秒级,到达实时要求,以与时反应信息。
在进展统计分析时,根据所需数据量的不同而从秒级到分钟级,原那么是保证操作人员不会因为速度问题而影响工作效率。
2.4数据描述(数据流图+数据字典)
经过调研,我们发现,一个药店最根本的工作流程是进货和销售。
消费者选择药店进展购物,药店通过我们的药店管理系统进展药品的销售与销售后的库存整理。
流程简介:
A.为每种药品设置编号,输入药品的信息,以便于管理人员对药品进展管理,也便于核对修改
B.为职工设置库,便于操作员对职工进展管理
C.为供货商设置库,便于操作员与时与供货商联系货源
D.设置系统权限
E.药品价格分为进货价、零售价和批发价
A.使药品销售的信息能与时得到统计、查询
B.方便操作员的操作,到达简单、易用的效果
C.提高操作员的工作效率
D.提高操作的正确率
E.提高系统的可靠性与平安性
图2.1药品管理系统根本流程
以上便是我们这个药品管理系统的总体数据流程图,通过上述的这幅图片,我们可以清楚地了解到该系统的大致情况,有两个数据源/终点,分别是客户、用户。
而该系统进一步地功能显示在下列图中可以得到解释。
图2.2管理人员的数据流图
销售人员通过输入药品编号,查出系统中存在的药品,通过医生看病以与配药,考虑所售药品的价格,将病人所要购置的药品列入药品清单中,最后的销售入库存系统将此次的交易数据保存到数据库中,最终完成交易,将药品交给病人手中。
经过对数据流程分析,提示出现行系统具有4个主要模块:
药品信息系统、药品库存管理系统、供给商管理系统、药品销售系统。
通过它们我们的药品管理系统才成为了一个能够成功的软件。
首先是药品信息系统:
在这个模块中由用户或管理员输入所有药品的根本信息即药品的初始化。
第二个是药品库存管理系统:
在这里这个系统有两个功能,一是查出现有药库中的所有过期药品,更新现有的数据库;二是实现药品入库,防止药品空缺造成的销售问题。
第三个是供给商管理系统:
供给商是药品进货时,从何处购得的一种记录方法,通过供给商可以方便的再次进货。
最后一个是药品销售系统:
在这个模块中,管理人员可以很方便地对销售情况进展查看,显示当天的销售金额并备份所有的数据库表。
药品管理系统与3个外部实体有关:
顾客、药房销售人员和系统管理员。
其中系统管理人员拥有所有信息资料添加、删除和修改的权限,而药房销售人员只具有普通权限不能对信息资料做任何的删除操作。
以上只是整个系统的总体流程,大概显示了一次一个用户完整交易的全部过程。
在这里我们还要对这个数据流程进展进一步详细的分解。
图2.3消费者的数据流图
消费者通过选购,选购好适宜的药品,到管理者处登记结账,发生销售管理。
管理者通过药品编号,录入系统需要销售的数量,系统生成仓库中是否有足够的药品。
发生销售之后产生销售单和销售金额,消费者付款拿货。
销售管理完成。
当消费者发现购置的药品不符合要求,管理者在认真核实之后,予以退款,发生退货。
此时管理者要在系统的坏货转移中,将不合格药品转移到不合格仓库中。
图2.4系统数据流图
图2.5详细数据流图
数据流项目:
1.名字:
用户信息(admin)
别名:
无
流量:
每天上十次
来源:
用户根本信息表
去向:
核对用户信息
定义:
用户信息=用户名+用户密码+权限
2.名字:
药品信息
别名:
无
流量:
每天上十次
来源:
药品表
去向:
核对药品库存初始化、核对出库信息、核对入库信息
定义:
药品信息=药品编号+药品名称+药品建成+药品规格+药品产地+批号+进价+批发价+零售价+供给商+类别+有效期+备注.
3.名字:
库存信息
别名:
无
流量:
每天上十次
来源:
库存表
去向:
核对药品库存查询、核对进货单、核对销售单
定义:
库存信息=ID+药品编号+药品名称+供给商编号+单价+数量+入库日期+仓库类别.
4.名字:
供给商信息
别名:
无
流量:
每天上十次
来源:
供给商表
去向:
反应给用户,核对进货单
定义:
供给商信息=ID+供货商编号+供货商名+地区+备注
5.名字:
销售单单信息
别名:
无
流量:
每天上十次
来源:
销售单单表
去向:
反应给用户
定义:
销售单信息=ID+药品编号+药品名称+数量+销售日期+销售数量+销售收入
1.文件名:
用户根本信息表
别名:
无
存储方式:
随机存储
存储频率:
每天上十次
定义:
用户根本信息表=用户名+用户密码+权限
2.文件名:
药品表
别名:
无
存储方式:
随机存储
存储频率:
每天上十次
定义:
药品表=药品编号+药品名称+药品建成+药品规格+药品产地+批号+进价+批发价+零售价+供给商+类别+有效期+备注.
3.数据项条目:
项名:
药品类型
别名:
无
描述:
用户输入试题的类型
定义:
药品类型=所有药品规定类型
位置:
药品表
4.处理条目:
1.处理名:
药品添加
处理逻辑:
用户添加药品信息
执行频率:
每天上十次
2.处理名:
库存初始化
处理逻辑:
用户初始化药品库存表
执行频率:
进货上十次
3.处理名:
入库
处理逻辑:
用户添加进货单
执行频率:
每天上十次
4.处理名:
销售
处理逻辑:
用户添加销售单
执行频率:
每天上十次
第三章系统总体设计
3.1业务流程
根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,其处理流程如图3.1。
登陆合法用户
登记后的
药品
退出登陆
图3.1药品管理系统的业务流程
针对业务流程,现具体描述其功能如下:
1.用户登录:
系统对用户合法性进展检查。
2.药品入库:
对新购进的药品分类进展编号,并把药品根本信息录入计算机。
3.药品销售:
对已入库的药品,销售人员可以进展销售。
4.药品进货:
对已入库的药品,管理人员可以进展货存控制。
5.存货转移:
对于已经过期或者损坏的药品,可以进展处理。
6.信息查询:
对药品的各种变动情况的查询。
7.职员管理:
对药店的职工进展管理。
3.2系统功能模块图
药品管理系统模块是用JAVASWING进展设计,MYSQL作为后台数据库管理系统。
系统管理模块分为用户登录、进货管理、销售管理、职工管理和坏货转移;用户管理模块主要是新增用户,修改用户,查询用户,删除用户;进货管理模块主要有供给商创始,进货,进货单查询,药品创始;销售管理模块主要有销售,修改价目表,销售单查询;职工管理有添加职工,处理职工。
系统体系结构框图如下列图:
图3.2药品管理系统功能模块图
3.3系统流程图
依据软件工程的根本原理,综合以上分析给出系统流程图如图3.4所示。
图3.2系统的处理流程图
说明:
用户通过登陆界面登陆系统时,第一次使用系统时需要进展药品的创始,即将各个药品的详细信息依次录入系统,第一次使用系统时同样要初始化库存,将现有的药品情况录入系统,接下来通过进货模块进展进货,进货时要为每一个供给商进展供给商创始,当发生销售时销售药品,并对库存进展相应的出来,退出时推出系统。
第四章详细设计
4.1程序流程图
依据软件工程的根本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的准确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
具体来说就是把经过总体设计得到的各个模块详细的加以描述。
本系统采用支持面向对象的Eclipse作为开发工具,运用了J2SE的SWing的技术,更加的方便了程序员的工作。
程序对系统配置要求较高。
在此给出软件系统的主要模块,如图4.1所示。
图4.1主程序模块图
根据以上主程序的模块图,我们可以得出下面的关于各个模块的程序流程图,如图4.2所示。
图4.2总体流程图
说明:
用户登陆系统时,系统判断用户的级别,如果为系统管理员,那么可以进展用户的用户管理,如果是管理员,那么可以进展相应的销售管理,进货管理,坏货转移,职工管理,管理员点击退出按钮时,退出系统。
失败
操作成功
成功
图4.3用户登陆流程
说明:
用户根据的用户名和密码登录系统,只有登录成功才能进展系列的用户管理、库存管理、销售管理,职工管理的操作。
登陆
录入药品
失败
成功
成功
图4.4药品创始流程
登陆
输入库存
操作成功
操作失败
成功
图4.5存货创始流程
登陆
操作失败销售单录入
操作成功
成功
图4.6销售流程
登陆
录入坏货信息
操作失败
操作成功
成功
图4.7坏货转移流程
说明:
用户登陆后进展药品的相关管理,通过药品创始,为系统初始化一些药品与添加新的代售药品。
通过存货创始将具体进货的药品录入库存中,销售成功那么对库存做相应的修改。
当药品损坏或者过期时,应当对库存做相应的调整。
用户
登陆
录入职员信息
操作成功
成功
失败
图4.7职员管理
说明:
管理员通过职工管理模块进展职工的管理,添加职工后,录入到职员列表中。
4.2程序输入输出描述
1.输入项目:
输入用户名与密码。
2.输出项目:
翻开系统。
1.输入项目:
与用户相关的所有信息。
2.输出项目:
操作结果的显示,出错弹出对话框。
销售管理模块
1.输入项目:
选择药品编号,药品的进销价格。
2.输出项目:
操作结果的显示,出错弹出对话框。
进货管理模块
1.进货项目:
供给商的详细信息,仓库的详细信息,药品的数量。
2.输出项目:
药品的有关资料的显示,进货单列表
坏货管理模块
1.输入项目:
发生意外无法使用的药品编号。
2.输出项目:
操作结果的显示。
职工管理模块
1.输入项目:
职工的详细信息。
2.输出项目:
根据用户的输入显示相应的结果。
4.3数据库的设计
数据库的概念结构设计和ER图
在需求分析阶段已完成该系统所有的数据分析。
根据该阶段所建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。
概念结构设计就是要找出实体和他们之间的联系,去除非本质的东西。
实体是名词,在ER图中设计中就是所说的表。
比方“药品〞,“库存〞。
行为是动词,在ER图中设计时一般不考虑行为,它是业务逻辑,在详细设计才有设计,是方法。
比方“销售〞,“进货〞等等。
在设计ER图时时强调的是不同实体之间关系,不是行为。
比方:
药品"销售"库存,“转移〞是一种关系,不是行为。
在某种情况下,“销售〞是一个关系表,将“药品〞和“库存〞联系起来。
在找出实体后,我们要根据分析来定义实体的属性,就是表的列。
比方药品有ID,名称,进价,销价,简介等等;库存有ID,名称,数量等等。
“库存〞可拥有0-MANY的“药品〞,而药品同样属于0-MANY的库存。
所以是多对多的关系
根据以上的分析给出下面的概念结构设计得E-R图如图4.3所示。
图4.8用户E-R图
图4.9药品E-R图
图4.10供给商E-R图
图4.11库存E-R图
图4.12供给商E-R图
图4.12职员E-R图
n
1
m
m
n
n
n
1
图4.13实体联系E-R图
数据库的逻辑设计
药品管理管理系统主要涉与到4个表,即:
药品信息表、药品入库表、药品出库表和库存表。
药品信息表:
这表是用来存储药品信息的。
药品添加以后它的信息就会储存到这表中,其中包含:
药品编号、药品名称、化学名称、规格、药品类别、剂型、批号与厂商。
其中药品编号是主键,非空且唯一。
其余信息可以为空,并在数据表建立的时候给他们相应的规定好数据类型。
药品入库表:
这表是用来存储入库表单信息的,所有入库单信息都包含在这表中。
包括:
入库单号、药品编号、批号、入库日期、有效日期、进价、预售价、数量、整量单位、散量单位与验收人。
其中入库单号是主键,非空且唯一。
药品出库表:
这表是用来存储出库表单信息的,所有出库信息都包含在这表单中。
它的字段有:
出库单号、药品编号、批号、数量、出库日期与验收人。
其中出库单号是主键,非空且唯一。
药品库存表:
这表是用来存储库存信息的,所有初始化的库存信息和出库入库信息改变后的信息都会被记录下来。
它字段有:
库存号、药品编号、批号、药品名称、数量、整量单位、散量单位、入库日期、有效日期、进价、预售价、库存下限与验收人。
数据库的物理设计
数据库设计有几个式,一般我们要做到的是第三式,即数据表中没有冗余字段以与同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。
如果程序运行过程中需要总金额,可以实时计算。
不过在一些较常用的表中,我们可以适当地保存冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。
这就是所谓的第四式。
数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。
表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比拟规了。
另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR
(1)或BIT型。
建议实际应用中定义成CHAR
(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的值来解决,这样就防止了修改数据库结构。
数据库初期设计时一定要慎重,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩大。
程序一旦开场编码,就应该尽量防止再修改数据库。
因为如果数据库结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。
错误越改越多,越改越乱,最终导致程序的失败。
PB的数据窗口与其他语言的数据控件不一样,它的很多东西是预编译的。
即使你一个模块已经调试无误,但只要数据库结构改动。
相应的模块就一定要重新修改,否那么一定会出问题。
药品管理系统数据库中各个表的设计结果如下面几个表格所示。
每个表格表示为数据库中的一个表。
表4.14药品信息表
Medicine
mid(PK)
Varchar(8)
N
药品编号
mname
Varchar(40)
N
药品名称
mshortname
Varchar(10)
Y
药品建成
mnors
Varchar(4)
N
规格
marea
Varchar(40)
N
药品产地
mlot
Varchar(10)
N
批号
minpri
float
N
0
进价
mwpri
float
N
0
批发价
mpri
float
N
0
零售价
Mcon
Varchar(8)
N
供给商
Mcate
Varchar(20)
N
类别
Musetime
decimal(10,0)
N
有效期
memo
Varchar(40)
Y
备注