医院药品管理系统的设计与实现毕业论文.doc_第1页
医院药品管理系统的设计与实现毕业论文.doc_第2页
医院药品管理系统的设计与实现毕业论文.doc_第3页
医院药品管理系统的设计与实现毕业论文.doc_第4页
医院药品管理系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文(设计)本科生毕业论文(设计) 题 目: 鹤壁煤矿集团医院药品管理系统 的设计与实现 姓 名: 王 洋 学 院: 信息科学技术学院 专 业: 网络工程 班 级: 网络工程 102 班 学 号: 19310204 指导教师: 朱淑鑫 职称: 讲师 2014 年 5 月 20 日 南京农业大学教务处制 目录 摘要 1 1绪论 .2 1.1 选题背景 2 1.2 当前研究现状 2 1.3 选题的目的和意义 2 2需求分析 .2 2.1 可行性分析 4 2.1.1 技术可行性. 4 2.1.2 开发环境可行性.4 2.1.3 运行可行性.4 2.2 需求分析 4 3总体设计 .9 3.1 系统模块设计 9 3.1.1 系统功能模块设计.9 3.1.2 系统功能模块描述.9 3.1.3 系统主要功能的 uml 顺序图表示 10 3.2 数据库设计 .13 3.2.1 系统数据分析13 3.2.2 数据库的详细设计16 4系统详细设计 19 4.1 系统运行环境的设置 .19 4.1.1 系统需求的硬件环境19 4.1.2 系统需求的软件环境19 4.2 开发环境介绍 .19 4.2.1 软件开发工具19 4.2.2 数据库开发工具20 4.2.3 相关开发技术简介20 4.3 系统主界面设计 .21 4.3.1 用户登录界面设计21 4.3.2 主程序界面设计22 4.4 药品入库管理模块设计 .23 4.4.1 首次入库模块23 4.4.2 追加入库模块25 4.4.3 入库记录查询模块设计26 4.5 药品销售相关模块设计 .28 4.6 查询明细模块设计 .30 4.6.1 药库明细查询模块30 4.6.2 药品紧缺查询模块31 4.7 药品退货模块设计 .32 4.8 厂商模块设计 .33 4.8.1 厂商信息管理模块33 4.8.2 厂商黑名单管理模块35 5系统测试和应用 37 5.1 系统测试 .37 5.1.1 单元测试37 5.1.2 集成测试37 5.2 开发测试的难点及解决方法 .38 5.2.1 汉字自动转换拼音38 5.2.2 数据库存储过程中实现模糊查询38 5.3 系统应用说明 .39 5.3.1 信息设置模块39 5.3.2 入库信息管理模块39 5.3.3 销售管理模块40 6结论 41 6.1 总结 .41 6.2 不足和展望 .41 致谢 .42 参考文献 .42 0 鹤壁煤矿集团医院药品管理系统的设计与实现 网络工程专业 王洋 指导教师 朱淑鑫 摘要:随着迅速发展的计算机技术,多数医院为了节约资源,提高工作效率,开始逐步利用计算机 软件来辅助管理。本文首先阐述了医院药品管理系统的开发背景、可行性分析及需求分析,并利用 uml 模型图的方式形象地描述了系统内各个对象之间的关系。接着利用数据库 e-r 图表示了数据 库设计模式及数据表的结构,并简要介绍了系统开发的环境配置。最后,利用各个模块设计及测试 的截图和说明文字相结合的方式,详细阐述了本系统主要模块的设计和测试过程。最终在各项工作 完成的前提下,使用 c#.net 语言开发了具有药品管理、药品销售、明细查询等多功能管理系统。 关键词:药品管理;数据库;系统开发;visual c# design of hebi colliery hospital medicine management system student majoring in network engineering wang yang tutor zhu shuxin abstract: with the rapid development of computer technology, the hospital in order to save resources, improve work efficiency, gradually increasing use of computer management software. first of all, this paper describes the development background of hospital medicine management systems, feasibility analysis and demand analysis, and using uml model diagram describes the relationship between the individual objects within the system. then the database e-r diagram shows the structure of the database design patterns and data tables, and briefly describes the system development environment configuration. at the end of the paper, the use of the design and testing of each module screenshots and captions combination, expounds in detail the design and testing process of main modules of this system. key words: medicine management; database; system development; visual c# 1 1 绪论 1.1 选题背景 随着我国经济的高速发展,人们经济水平的提高,不少负面的问题也渐渐出现, 其中以各类疾病的产生为首要难题,这同样加大了医院保卫人们健康的责任。相比现 代高效率的工作方式,传统医院的手工作业形式,不仅工作繁琐,而且人为处理错误 率较高,这不但给医院造成了一定损失,对病人的病情也有不利影响。计算机技术的 高速发展使得人们开始越来越多地利用它来解决各种繁琐的问题。药品管理系统利用 计算机实现了对医院药库及药品的各项管理,以往那些工作繁琐、容易出错的数据处 理问题可以让计算机来替代人工进行,这不仅极大地减轻了管理人员的工作负担,而 且药物的管理记录也可以随时查询,让药物的管理更加透明化。 1.2 研究现状 计算机 80 年代初就被引进了我国医疗系统,当时以 ibm 公司的 m340 小型计算机 为主流,大多数应用在教学和科研项目。80 年代中期,伴随着苹果个人电脑的上市和 basic 语言的广泛使用,一部分医院开始研发小型的系统管理软件,如人事管理软件 等;80 年代后期,随着 xt286 计算机的出现,加之 dbaselll 和 unix 操作系统的研 发成功,一部分医院开始建立小型的内部网络,并开发了关于部门之间管理的信息系 统,如病房管理,药房管理等。进入 90 年代后,novell 网和 foxbase 等数据库 迅速发展,完善的医院管理系统的实现成为可能,于是一部分有实力的医院开始研发 自己医院的管理系统。 随着我国医药事业的发展,我国药品管理方面发展相对滞后的实际情况却与此不 相符合,虽然有技术人员不断开发出新的药品管理系统供医院使用,但受到开发周期 等诸多因素的影响,药品系统管理软件的发展仍旧落后于药品的发展,总结下来有如 下几点:(1)老版本的数据库软件安全性不高,读取、修改信息时错误率较高,甚至 会导致数据丢失,造成巨大损失。 (2)工作负荷方面,原有的系统因为数据库表的限 制及当时开发需求的限制,已经无法满足管理人员的需求。 (3)局限性方面,现有的 操作系统在处理速度和兼容性上已经适应不了实际的需要,由于平台的更新,对现有 系统的改进性维护已不能解决面临的问题。 (4)由于医疗用品的发展,各种先进医疗 器械的出现,医院对管理方面的不断改革,现有系统已无法满足要求。 进入 21 世纪后,特别是 2003 年 sars 灾难过后,我国的医疗卫生系统开始真正 意识到医院信息系统的重要性,并开始着手进行系统的深入研究和推广应用1。 1.3 选题的目的和意义 在现今医疗技术高速发展的前提下,纯人工录入或早期简单的药品管理软件逐渐 不能满足用户的要求,落后的系统间接影响了医院管理人员的工作效率, 基于以上的 几点原因,本次毕业设计提出了药品管理系统的设计目标。 药品管理系统使医院管理趋于信息化,同时让药库管理人员能简便地利用药库信 息做出正确的判断,更重要的是计算机作为管理工具可以让药库管理更加规范化,并 提高管理效率,减少管理人员的工作量,使药品管理可以有条不紊地进行下去。 2 2 需求分析 可行性分析 在软件的开发流程中,可行性分析是一种普遍采用的研究项目工程的方法。它通 过各种有效的手段对工程项目进行分析,从技术、运行等多个方面加以评价。 2.1.1 技术可行性 本系统开发使用的是当前流行的 visual c#.net 语言,该语言直观规范,初学者也 可以很好的使用该语言来进行系统开发。而且,使用该语言开发的软件适用范围很广, 可以很好地应用于安装有 windows 平台的计算机上,所以从技术方面是可行的。 2.1.2 开发环境可行性 从软件系统开发的可行性和灵活性考虑,本系统的软件开发环境选择了当前流行 的 visual c#.net 语言来进行前台的开发,而后台则选用了功能强大的 sql server 2008 数据库作为数据管理平台。 从硬件角度来说,本系统要求相对较低,一般情况下,计算机硬盘空间应不小于 5g,内存应不小于 1gb。当然,硬件环境的配置越好,软件系统的开发与运行效率相 对就相应地提高,可行性相应也会大幅提高。 2.1.3 运行可行性 随着计算机技术的普及,医药经营企业逐渐借助计算机软件辅助医院药品的管理, 所以药品管理系统成为了药品经营企业实现药品管理智能化、信息化的重要工具。对 于多数医院来说,利用计算机来管理药品,不仅可以提高药品管理的效率,而且可以 给医院带来先进的管理思想。市场的需求和技术的支持,最终会有更多优秀的药品管理 信息系统软件的出现,并在今后的竞争中得到不断完善和优化。根据以上分析,该系统 在运行方面是可行的。 2.2 需求分析 用户对目标软件系统在功能、行为、性能等方面的期望叫做软件需求。它通过对 应用问题及其环境的理解与分析,将涉及的信息、功能及系统行为抽象为模型,最终 形成需求分析说明。需求分析是介于系统分析和软件设计阶段之间的重要桥梁。 本系统针对的是鹤壁煤矿集团医院药房,所以出发点必须满足小型医院药品管理 的需求。通过对鹤煤医院药库的了解分析,管理人员主要对药品的入库、退货及销售 进行管理,所以系统的开发将从这些需求展开。鉴于该医院药品流动较少,而且是建 立在内部流动的基础上,故在功能方面主要有以下几个需求: (1)用户管理,包括用户密码修改、用户权限修改等功能; (2)药品入库管理,包括药品首次入库管理、入库药品维护、入库药品记录查询 和药品入库统计; (3)药品销售管理,包括药品销售、查询及药物反馈信息管理; (4)查询明细功能,包括药品明细查询、销售查询及药品紧缺查询功能; (5)药库退货管理,包括退货功能、退货记录查询 (6)厂商的信誉管理,包括查询退货厂商及黑名单管理 3 (7)相关信息的设置,包括采购员信息管理、药品信息管理、药品调价、厂商信 息管理和消费者信息管理 同时,本系统是针对医院内部工作人员使用的,外部人员无法接触到内部计算机, 故对于系统用户来说,只需要用户类型分为三种,即系统管理员、药房管理员、药库 管理员,这些用户各司其职,管理着不同的方面。 uml 用例图表示从软件系统的外部使用者的角度看到的各项系统功能,并清晰地 说明软件系统地边界,即用例图中的所有用例的集合构成目标软件系统应该提供的功 能。 系统管理员拥有最高的权限,可以对整个系统进行管理,包括基本信息设置、用 户管理、厂商管理等,用例图如图 2-1 所示: 系统管理员 基本信息设置 用户管理 药品入库管理 药品销售管理 药库查询 退货模块 药品调价 厂商管理 图 2-1 系统管理员用例图 药库管理员只拥有药库的管理权限,可以对药品的入库或者退货进行管理,包括 药品入库、药品调价等,如图 2-2 所示: 药库管理员 药品入库管理 药库查询 退货模块 药品调价 图 2-2 药库管理员用例图 4 药房管理员只拥有药房的管理权限,但是拥有查询药品库存的权限,用例图如图 2-3 所示: 药房管理员 药品销售管理 药库查询 图 2-3 药房管理员用例图 根据基本的了解分析,加之用户的基本需求,可以得到药品管理系统的基本用例 图,如图 2-4 所示: 药品管理系统 系统管理员 药房管理员 药库管理员 厂商 消费者 基本信息设置 厂商管理 用户管理 密码修改 * * * * * * 药品入库药品退货 * * * * 库存管理 药品销售 药品调价 * * * * * 图 2-4 系统基本用例图 在用户需求的基础上,药品管理系统的工作流程有以下几个方面组成:首先是登 录名和密码的认证,接下来是权限的自动区分,单一权限的管理员是无法执行本权限 外的其他功能,接着各个管理员开始通过各个模块进行工作,最后数据库更新数据退 出管理系统。利用 uml 的活动图表示如图 2-5 所示: 5 初始化窗口 输入用户名密码 判断权限 提示用户名或者密码错误 系统管理员药库管理员药房管理员 信息设置药品入库药品销售 密码正 确 密码错 误 更新数据 要求用户重新 输入 药品退货 图 2-5 用户活动图 6 3总体设计 根据对前期系统的可行性分析及需求分析,可以得出系统总体设计模块及相关的 设计方法,为代码的编写提供了指导性思想。 系统模块设计 3.1.1 系统功能模块设计 一系列树状的矩形框组成的,描绘系统层次结构的模型图叫层次方框图。从顶层 功能的分类开始,沿着图中各条路径分支细化,直至确定了系统功能的全部结构为止。 本系统主要由用户管理、入库管理、退货管理等七大模块组成,如图 3-1 所示: 图 3-1 系统功能模块图 3.1.2 系统功能模块描述 本药品管理系统共分为七大模块,所有模块之间都是紧密关联的,每个模块的功 能都在了解分析的基础上开发创建。依据上述的分析,系统在各个模块的基础上将每 个模块再分为几个小模块。 1. 用户管理分为五个模块: (1)密码修改:当前用户可以修改当前的登录密码 (2)锁屏:用户暂时离开时保护系统不被他人操作 (3)用户管理:本模块是系统管理员用来管理用户权限及添加、删除用户的,普通 用户无法执行 (4)重新登录 (5)退出 2. 入库管理分为三个模块: 7 (1)首次入库:药品首次进入药品仓库时入库信息的录入 (2)追加入库:药库已有药品再次进入药库时入库信息的录入 (3)入库记录查询:管理员查询药品进入仓库的记录 3. 药品销售管理分为两个模块: (1)药品销售:药房管理员对药品进行销售及销售信息的管理 (2)药品销售查询:管理员对药品销售的情况及销售记录进行查询 4. 查询明细分为三个模块: (1)药库明细管理:查询整个药库的药品流向,例如某药品入库日期,销售日期等 (2)库存查询:对仓库中存在的药品数量进行查询,便于工作人员管理 (3)药品紧缺查询:查询药库中剩余数量不足的药品以便追加入库 5. 退货管理分为两个模块 (1)药库退货:工作人员可以对某些存在问题的药品进行退货处理 (2)退货记录查询:可以查询本药品系统所有出现过的退货情况及其细节 6. 厂商信誉管理分为两个模块 (1)退货厂商查询:可以查询出现过药品退货的厂商详细信息 (2)厂商黑名单:将经常性出现退货的厂商信息添加至黑名单中,工作人员可以查 询 7. 信息设置模块分为很多小模块,主要是系统管理员对药品管理的信息进行设置,这 里不再赘述 3.1.3 系统主要功能的 uml 顺序图表示 将交互关系表示为一个二维的 uml 模型图叫做顺序图。该图的纵向表示时间轴, 横向表示在协作中各独立对象的类元角色。类元角色用生命线表示,当对象存在时, 角色便用一条虚线表示,当对象的过程处于激活状态时,生命线便是一个双道线6。 根据上述需求分析及初步建模,我们得到了药品管理系统主要功能在时间上的工 作流程。下面将按功能分别阐述本系统运行的时间逻辑顺序。 首先是药品入库的功能,这个功能在时间逻辑上需要先由药品厂商进行报价,接 着药库管理员确认,将入库信息录入数据库中,之后药品管理系统自动更新数据,将 入库清单打印出来交给管理人员,由管理人员开具收据给生产厂商。整个过程涉及数 据的大部分由计算机完成,用 uml 顺序图表示如图 3-2 所示: 8 药库管理员 药品入库界面药品 显示入库成功并显示入库信息 厂商 打印收据入库记录信息 药品追加信息录入更新药品入库信息 入库记录信息 显示成功信息并显示入库信息打印收据 药品报价 药品入库信息录入添加药品入库信息 图 3-2 入库模块顺序图 然后就是药品出售前调价功能的时间逻辑顺序了。在药品入库之后,厂商的报价 信息也一同录入,药库调价人员根据市场行情和药品报价来衡量药品出售的价格,之 后将最终的价格录入系统,药品管理系统会自动计算出调价百分比供工作人员参考, 最后将调价信息显示给管理人员。用 uml 顺序图表示如图 3-3 所示: 药库管理员 药品调价界面药品 厂商 1.药品报价2.药品信息及报价 3.药品价格调整 4.药品价格6.调整价格显示 5.销售价格变更 图 3-3 药品调价顺序图 调价完毕后就要考虑药品销售的问题了。在时间逻辑上,消费者提出购买某药品, 由药房管理员通过系统查询该药品信息,在管理系统得到该药品信息后,将信息返回 9 到管理员处,然后管理员进行收费等工作,最后将药品出售小票和药品一并交还给消 费者完成药品销售工作。用 uml 顺序图表示如图 3-4 所示: 顾客药房管理员 1.购买药品() 药品销售界面药品 4.药品信息 5.显示药品信息 7.销售小票打印 2.需求信息录入3.获取药品信息 更新销售信息 图 3-4 药品销售顺序图 药品退货类似于药品入库的逆过程,由药库管理员确认退货药品信息,之后管理 系统更新数据库信息,将退货药品发回生产厂商即完成退货流程。用 uml 顺序图表示 如图 3-5 所示: 药库管理员 药品入库界面药品 显示退货成功 厂商 药品退货 退货药品信息药品信息查询 更新退货药品信息 图 3-5 药品退货顺序图 10 查询模块总体来说时间逻辑顺序相差不大,基本先由管理员输入查询信息,选择 查询类型,之后有药品管理系统自动完成相关的查询工作,并将查询到的信息反馈给 管理员。用 uml 顺序图表示如图 3-6 所示: 管理员 药品查询界面药品 3.药品信息4.显示药品信息 1.获取查询信息和类别2.查询药品信息 图 3-6 查询顺序图 3.2 数据库设计 数据库设计指在给定的数据库服务、操作系统和硬件环境下,怎样将用户的需求 表示出来,并将它抽象成有效的数据库结构。数据库设计的过程可分为两大阶段:数 据库系统的分析阶段和数据库表的设计阶段。 3.2.1 系统数据分析 系统数据分析是数据库设计的第一步,数据分析过程同数据库的逻辑结构密切相 关,需要确定、编制、组织、筛选应用程序所使用的信息2。 在本系统中,经上述分析得到,主要的实体包括管理员用户、药品、厂商、消费 者,其余部分都是有这些实体属性信息组合完成。下面将一一分析这些实体在数据库 中的表示方式。 对于本药品管理系统的用户主体,首先用户名和密码是必需的两个属性,对于本 药品管理系统,由于使用环境是医院内部局域网,能接触到本系统的人员较少,故用 户的权限属性包含的值也较少,即系统管理员、药房管理员、药库管理员,这三种权 限足够满足该医院的日常使用。用数据库实体图表示用户关系如图 3-7 所示: 图 3-7 系统用户 e-r 图 11 药品信息作为药品管理系统中最为关键的组成部分,其属性信息会影响众多数据 库表的信息,故应含有如下属性:药品编号(作为区分药品的唯一凭据) ,药品名称, 药品拼音码,药品类型,药品种类,药品单位,药品生产厂商编号,药品厂商名称, 药品功效,药品禁忌,药品给药方式。这些属性详细描述了药品全方位的信息,给药 品的管理带来便利,同时也为其他数据库表的信息表示打下基础。用数据库实体图表 示药品信息如图 3-8 所示: 图 3-8 药品信息 e-r 图 在第二章需求分析中,我们已经知道,药品的报价信息直接或间接影响了整个药 品入库、销售的过程,而报价这个流程是由厂商来完成的,所以说厂商也是本药品管 理系统中不可缺少的实体之一。厂商这个实体包含的属性有:厂商编号(作为区分厂 商的唯一凭据) ,厂商名称,厂商地址,厂商联系人,厂商电话,厂商邮箱,厂商银行 账号,厂商进货次数,厂商退货次数。这些属性全部或部分会影响到多个表的信息。 利用数据库实体图表示如图 3-9 所示: 图 3-9 厂商 e-r 图 药品的销售必然需要消费者的参与,消费者作为药品管理系统中药品的最终流向, 需要包含以下属性来保证销售信息记录的准确性:消费者编号(作为区分消费者的唯 一凭据) ,消费者姓名,消费者性别,消费者年龄,身份证号,消费者电话,利用以上 属性来记录药品的最终流向。用数据库实体图表示如图 3-10 所示: 12 图 3-10 消费者 e-r 图 其余数据库表基本都由以上主体的属性组成,这些主体及他们之间的关系共同组 成了本药品管理系统的数据库基本结构。如图 3-11 是本系统的基本 e-r 图: 图 4-11 系统 e-r 图 3.2.2 数据库的详细设计 详细数据库表的设计作为数据库设计的第二步,也是最重要的一步,决定了整个 系统的数据保存及流动。通过之前与用户的交流、对系统的需求分析和总体模块的设 计,便可对本系统的数据库进行详细设计,根据了解分析的实际情况,本药品管理系 统创建了名称为 hospital_info 的数据库,利用这个数据库来存储医院药品的相关信息、 13 厂商的基本信息、消费者基本信息及各种数据记录。在本数据库中共创建了 19 张数据 库表,包括 baojia 药品报价表、caigou 入库表、caigouyuan 采购员表、customer 消费者 表、email 邮件记录表、heimingdan 黑名单表、mingxi 明细表、tiaojia 调价表、usertime 记录时间表、yp_danwei 药品单位表、yp_leixing 药品类型表、yp_zhonglei 药品种类表、 yp_information 药品基本信息表,changshang 厂商表,users 用户表,tuihuo 退货表、 xiaoshou 销售记录表、kucun 库存记录表等,这些表相互联系紧密,共同完成本药品管 理系统的数据库记录工作。 下面简要介绍下数据库中八个重要的表的组成: 1. 系统用户表结构如表 3-1 所示 表 3-1 系统用户表 字段名字段类型长度对应中文名称是否主键 usernamevarchar 20 登录名y passwordvarchar 50 登录密码n powervarchar 20 登陆权限n 2. 药品信息表结构如表 3-2 所示 表 3-2 药品信息表结构表 字段名字段类型长度对应中文名称是否主键 yp_num intnull药品编号y yp_name varchar 100 药品名称n yp_pinyin varchar 50 拼音码n yp_leixing varchar 20 药品类型n yp_zhonglei varchar 20 药品种类n yp_danwei varchar 20 药品单位n yp_cs_num intnull厂商编号n yp_cs_name varchar 100 厂商名称n yp_gongxiao varcharmax药品功效n yp_jinji varcharmax药品禁忌n yp_geiyaofangshi varchar 30 给药方式n 3. 厂商信息表结构如表 3-3 所示 表 3-3 厂商信息表结构表 字段名字段类型长度对应中文名称是否主键 cs_num intnull厂商编号y cs_name varchar 100 厂商名称n cs_address varchar 100 厂商地址n cs_lianxiren varchar 20 厂商联系人n cs_dianhua varchar 50 厂商电话n cs_email varchar 50 厂商邮箱n 14 cs_bank varchar 40 厂商银行卡号n cs_jinhuocishu intnull厂商进货次数n cs_tuihuocishu intnull厂商退货次数n 4. 退货记录表结构如表 3-4 所示 表 3-4 退货记录表结构表 字段名字段类型长度对应中文名称是否主键 th_num intnull退货自动编号y th_yp_num int null 退货药品编号 n th_yp_name varchar 100 退货药品名称n th_cs_num intnull退货厂商编号n th_cs_name varchar 100 退货厂商名称n th_yp_leixing varchar 20 退货药品类型n th_yp_danwei varchar 20 退货药品单位n th_shuliang floatnull退货数量n th_yuanyin floatmax退货原因n th_date datetimenull退货日期n 5. 消费者信息表结构如表 3-5 所示 表 3-5 消费者信息表结构表 字段名字段类型长度对应中文名称是否主键 customer_num int null 顾客编号 y customer_name varchar 30 顾客姓名 n customer_sex varchar 10 顾客性别 n customer_age int null 顾客年龄 n customer_idcard varchar 50 顾客身份证号 n customer_dianhua varchar 30 顾客电话 n 6. 消费记录表结构如表 3-6 所示 表 3-6 消费记录表结构表 字段名字段类型长度对应中文名称是否主键 xs_num int null 销售自动编号 y xs_yp_num int 100 销售药品编号 n xs_yp_name varchar 100 销售药品名称 n xs_yp_leixing varchar 30 销售药品类型 n xs_yp_zhonglei varchar 30 销售药品种类 n cs_yp_danwei varchar 20 销售药品单位 n xs_cs_num int null 厂商编号 n xs_cs_name varchar 100 厂商名称 n xs_jiage float null 销售单价 n 15 xs_customer_num int null 顾客编号 n xs_customer_name varchar 30 顾客姓名 n xs_shuliang flaot null 销售数量 n xs_date datetime null 销售日期 n 7.药库明细表结构如表 3-7 所示 表 3-7 药库明细表结构表 字段名字段类型长度对应中文名称是否主键 mx_num int null 明细自动编号 y mx_yp_num int null 药品编号 n mx_yp_name varchar 100 药品名称 n mx_yp_cs_num int null 厂商编号 n mx_yp_cs_name varchar 100 厂商名称 n mx_yp_rk_date datetime null 药品入库日期 n mx_yp_rk_shuliang float null 药品入库数量 n mx_yp_rk_caigouyuan_num int null 入库采购员编号 n mx_yp_xs_date datetime null 销售日期 n mx_yp_xs_shuliang float null 销售数量 n mx_yp_xs_customer_num int null 顾客编号 n mx_yp_xs_customer_name varchar 30 顾客名字 n mx_yp_th_date datetime null 退货日期 n mx_yp_th_shuliang float null 退货数量 n 8.采购员信息表结构如表 3-8 所示 表 3-8 采购员信息表结构表 字段名字段类型长度对应中文名称是否主键 cgy_num int null 采购员编号 y cgy_name varchar 20 采购员姓名 n cgy_sex varchar 10 采购员性别 n cgy_age int null 采购员年龄 n cgy_idcard varchar 50 身份证号 n cgy_dianhua varchar 30 采购员电话 n cgy_pic image null 采购员照片 n 16 4 系统详细设计 详细设计表示对该系统进行详细的设计,在总体设计的基础上进一步明确系统结 构,详细地介绍系统的各个模块,为系统的开发实现和测试做准备。 系统运行环境的设置 4.1.1 系统需求的硬件环境 在提到系统运行是否成功的时候,首先就是从物理设备上考虑,即系统硬件环境 的配置问题。本药品管理系统在实施运行过程中,需要普通计算机一台,包括键盘、 鼠标等基本输入设备,也可添加更多辅助输入设备。计算机相关的硬件配置最低要求 是处理器型号在 pentium iv 以上,内存在 1gb 以上,硬盘应至少保留空余空间在 1gb 以上,而且计算机应含有一个网卡来确保可以连接至医院局域网。这是硬件环境的基 本要求,当然这些要求并不是完全固定的,在条件允许的情况下,如果可以采用更好 的物理配置,随着配置的增高,系统运行的速度也会随之提高。 4.1.2 系统需求的软件环境 在外部硬件环境支持的条件下,系统运行同样需要相应软件环境的支持。由于本 系统是基于 windows 平台开发,故其运行的硬件环境需要安装有 windows 操作系统。 同时,本系统是基于微软的.net 平台开发,故计算机中还需要安装 microsoft .net framework 环境。从上述可知,为了让本系统得以运行,同时保证较高的运行效率, 客户端计算机中必须安装 windows xp/windows 7 平台,且需要安装配置了 microsoft .net framework 3.5 及其以上版本;服务器端的计算机中必须安装 windows server 2003 及其以上版本,且安装配置了 microsoft sql server 2008 数据库。 4.2 开发环境介绍 4.2.1 软件开发工具 本药品管理系统是基于 c#.net 语言开发,c#是微软公司发布的一种面向对象的、 运行于.net framework 之上的高级程序设计语言,它包括了诸如单一继承、接口、与 java 几乎同样的语法和编译成中间代码再运行的过程3。c#是一种安全的、稳定的、 简单的、优雅的,由 c 和c+衍生出来的面向对象的编程语言。它综合了vb简单的可 视化操作和 c+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言 特性和便捷的面向组件编程的支持成为.net开发的首选语言3,4。 使用 c#.net 开发必然需要相应的开发工具,我使用的是 microsoft visual studio 2010。visual studio 是微软公司设计的软件开发环境,由于它具有使用方便、简单易学、 功能丰富等诸多优点,故它成为了最流行的 windows 应用程序的开发工具之一。加上 本系统是基于 c/s 架构的软件,visual studio 在前台页面设计方面具有明显的优势, 控件使用方式简单随意,故成为了本系统开发的首选环境 4.2.2 数据库开发工具 sql server 2008 是在 microsoft 的数据平台上发布的,可以组织管理任何数据的数 据库软件。它可以将非结构化、半结构化和结构化的数据直接存储到数据库中,也可 以对数据进行查询、搜索、同步、报告和分析等操作。 17 sql server 2008 允许在使用了 microsoft .net 和 visual studio 开发的自定义应 用程序中使用数据,也允许在面向服务的架构中使用数据。这些数据信息工作人员可 以通过常见的工具直接访问。 由于 sql server 2008 具有可信任、高效和智能等众多优点,所以它成为了本药品 管理系统信息存储的首选数据库。 4.2.3 相关开发技术简介 数据库触发器技术 触发器是针对数据表(库)的特殊存储过程,当这个表发生了 insert、update 或 delete 操作时,会自动激活执行,可以处理各种复杂的操作4。本系统用到了触发器 的以下功能: 1. 修改或添加其它数据表中的数据:当一个 sql 语句对数据表进行操作时,触发器 可以根据该 sql 语句的操作情况对另一个表进行相应操作。 2. 更改原本要操作的 sql 语句:触发器可以修改原本要操作的 sql 语句 本系统中创建触发器的代码如下所示: create trigger ruku_mingxi on dbo.caigou for insert as insert into dbo.mingxi (mx_yp_num,mx_yp_name,mx_yp_rk_date,mx_yp_rk_shuliang) select cg_yp_num,cg_yp_name,cg_date,cg_shuliang from inserted 代码的作用是管理系统对 caigou 入库记录表进行插入操作时,将同样的信息插入 到 mingxi 药库明细表中。 数据库存储过程 数据库的存储过程就是指在数据库系统中,一些为了完成特定功能的 sql 语句集 合,这些语句集合经编译后存储在数据库中,用户可以通过调用这些语句集的名字并 给出参数来执行它2。以后要使用数据库中已定义好的存储过程时,只需在程序中调 用,即可自动完成数据库命令。使用数据库存储过程具有以下优点: 1. 存储过程只是在开发时进行一次编译,以后每次执行存储过程都不需再重新编译。 而一般 sql 语句每执行一次就必须编译一次,所以使用存储过程可提高数据库执行效 率。 2. 存储过程可以重复多次使用,可以大大减少数据库开发人员的工作量 3. 系统安全性高,数据库中可设定只有具有权限的用户才能使用某些存储过程 本系统中创建存储过程的代码举例如下: create procedure 登陆 username varchar(20),password varchar(20) as select * from users where username=username and password=password 数据库连接技术 ado.net 18 由于本系统开发使用的数据库连接技术是 ado.net,所以在此对该技术做简单介 绍。 ado.net 是一种非连接的数据访问技术,只有在需要时才会形成一个到数据源的 连接,使用完毕后就关闭连接。访问者可以对相关数据做出修改,但是这种修改冰没 有立即更新至数据库,而只是保存在本地,在需要进行修改时,要再次打开连接4。 这种做法在网络环境中优势是可以明显降低网络的流量。 连接数据库并执行调用存储过程的代码如下所示: static sqlconnection conn; conn = new sqlconnection(“data source=; initial catalog=my_hospital;integrated security=true“); conn.open(); sqlcommand sqlcom = new sqlcommand(“登陆“, db.getconnection(); sqlcom.commandtype = commandtype.storedprocedure; sqlcom.parameters.add(“username“, sqldbtype.varchar, 20).value = name; sqlcom.parameters.add(“password“, sqldbtype.varchar, 20).value = pwd; sqldatareader read = sqlcom.executereader(); 4.3 系统主界面设计 在上述一系列准备工作之后,进入了系统界面的设计阶段。 4.3.1 用户登录界面设计 在进入主界面前将初始化登录页面,在这里将会根据用户输入的信息来判断信息 的正确性,并记录登录用户的相应信息。登陆界面如图 4-1 所示: 图 4-1 登陆界面 1. 实现目标 当运行主程序时自动弹出,根据数据库中的用户信息验证用户输入的信息是否正 确,如果正确便进入药品管理系统主页面,如果不正确则提示用户。登录模块流程图 如图 4-2 所示: 19 开始 输入用户 名和密码 初始化数据访 问对象 密码正确? 执行查询 是否退出? 退出 获取用户信息 并记录该信息 进入药库主页 是否 是 否 图 4-2 登陆流程图 2. 实现过程 页面名称:login.cs 控件的属性设置和作用如表 4-1 所示。 表 4-1 名称主要属性设置作用 username输入用户名 password passwordchar=* 输入用户密码 button1 确定 button2 重置 4.3.2 主程序界面设计 本系统基于 c/s 模式下开发的,通过运行初始化登陆到界面。主界面的整体结构 为菜单式结构。主要包括菜单项、快捷键以及主窗体。 系统主界面如图 4-3 所示: 20 图 4-3 主界面图 1. 实现目标 当点击上面的菜单时会调出相应的功能模块,在进入主页前初始化登陆程序,也 就是说只有登陆才能进入到主页来,并且记录登录传过来的用户名以及登录时间等信 息。在主页下方显示系统时间、用户名以及用户的登录时间。 2.实现过程 页面名称:main.cs 控件的属性设置和作用如表 4-2 所示: 表 4-2 名称主要属性设置作用 timer1 即时触发 menustrip1 创建菜单 toolstrip1 创建快捷栏 statustrip1 主页的下边框 toolstripbutton快捷键 toolstripmenuitem菜单项 4.4 药品入库管理模块设计 入库管理主要是对药品的采购进行相应的操作,下面包含三个子模块,即首次入 库模块、追加入库模块、入库记录查询模块。 4.4.1 首次入库模块 药品首次入库就是药品的第一次进入仓库,需要将信息录入数据库,主要是对数 据表的添加操作,界面如图 4-4 所示: 21 图 4-4 首次入库界面 1.实现目标 当点击确认按钮时将所填数据添加到相应的表中。在填写时药品编号时,系统会自 动前端匹配相应编号供管理员选择,在药品编号确定之后,跟药品相关的信息全部会 自动补全,这些信息均由其他数据库表提供,管理员只需输入采购数量和选择采购日 期即可。 2.实现过程 页面名称:yp_shouciruku.cs 控件的属性设置和作用如表 4-3 所示: 表 4-3 名称主要属性设置作用 datagridview1 显示入库信息表的信息 datatimepicker1 选择输入入库日期 textbox1 输入采购员编号 textbox2 输入药品编号 textbox3 输入药品名称 textbox4 显示药品单位 textbox5 显示药品类型 textbox6 显示药品种类 textbox7 输入入库数量 textbox8 显示厂商编号 textbox9 显示厂商名称 textbox10 显示采购价格 button1 确定添加 button2 重置 button3 返回 22 printdialog1document=printdocument1 弹出打印窗口 printdocument1 设置打印文本和格式 timer1 设置计时器来控制自动匹配 4.4.2 追加入库模块 药品追加入库是对与首次入库相对应药品信息的表的修改操作,界面如图 4-5 所 示: 图 4-5 追加入库界面 1.实现目标 当点击 datagridview 时将数据放到下面的控件中,根据入库的信息对数据库进行相 应操作,并且可以根据药品编号进行相应的查找操作,将查找到的数据显示在 datagridview 和相应控件上。并且在操作时将采购员编号、药品编号、药品名称、药品 单位、药品类型、药品种类、厂商编号、厂商名称、采购单价设为只读,使用户无法 修改以上信息。同时,点击打印按钮,可以打印当前该条入库清单。 2.实现过程 页面名称:yp_zhuijiaruku.cs 控件的属性设置和作用如表 4-4 所示: 表 4-4 名称主要属性设置作用 datagridview1 显示入库信息表的信息 datatimepicker1 选择输入追加日期 textbox1 输入追加采购员编号 textbox2 显示药品编号 23 textbox3 显示药品名称 textbox4 显示药品单位 textbox5 显示药品类型 textbox6 显示药品种类 textbox7 输入追加数量 textbox8 显示厂商编号 textbox9 显示厂商名称 textbox10 显示采购价格 button1 确定追加 button2 返回 button3 打印该条入库清单 4.4.3 入库记录查询模块设计 药品入库记录查询即通过输入关键词查询药品进入仓库的记录,也可以通过选择 查询类型来缩小查询范围。非按时间查询界面如图 4-6 所示,按时间查询界面如图 4-7 所示: 图 4-6 入库记录查询 24 图 4-7 入库记录查询 1.实现目标 本系统提供了按采购员编号、按药品编号、按日期和按厂商编号四种类型来查询, 选择了查询类型之后,在输入查询内容后,点击查找按钮,系统便可按用户要求模糊 查询数据库并将查到的数据显示在 datagridview 中,而且在点击其中任意一项信息时, 其详细信息会自动填充到下方的控件中。 2.实现过程 用户需要先选择查询类型,之后输入查询内容,最后执行查询,具体流程图如图 4-8 所示: 图 4-8 查询流程图 页

温馨提示

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

评论

0/150

提交评论