




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaEE程序设计课程大作业题目名称: 医药管理系统 学院名称: 计算机科学与信息工程学院 专业班级: 软件工程 学号姓名: 2013 年 12 月2目 录第1章 概 述11.1 系统开发背景和意义11.2 开发环境1第2章 需求分析22.1 需求分析概述22.2 性能需求2第3章 系统设计33.1 系统功能结构33.2 系统流程管理33.3 逻辑分层设计43.4 数据库设计5第4章 系统实现94.1 数据库的实现94.2 主要功能模块描述94.2.1 系统登录模块设计94.2.2 药品类别信息管理模块104.2.3 药品信息管理模块114.2.4 购买及销售药品管理模块154.2.5 进货及需求管理174.2.6 系统的管理184.3 国际化的实现19参考文献20全套设计加扣3012250582 I第1章 概 述药品管理系统是针对药品销售商设计、开发的一套管理系统,该系统按照药品销售商的实际业务流程进行设计,结合了药品销售的行业特点,能很好的满足用户的使用需求。这是一个属于实际的课题,如果顺利,该医药管理系统将实际应用到中国最广大的售药系统中去。1.1 系统开发背景和意义毕业设计的选题是基于企业实际选定的题目。本次的毕业设计是一个可以充分地锻炼自己的动手实践能力以及考核四年大学所学知识的积累的机会。针对我的实际情况,结合四年来对计算机软件的熟练程度以及对数据库的了解,我选择了医药管理系统软件设计与开发这个课题。这是一个属于实际的课题,如果顺利,我们所设计的医药管理系统将实际应用到中国最广大的售药系统中去,对于初涉社会的我们来说,无疑是一个非常好地锻炼机会。考虑到该系统属于一个规模较大、较为复杂的数据库系统,对计算机的性能要求较高,决定使用MyEclipse8.0开发此系统。本次毕业设计选题范围是相当广泛且实用的,含盖了目前大部分计算机软件类开发的课题,给我们很大的自由发展的空间。可以每个学生挑选出最合适的课题,更适合同学们的兴趣和价值取向。选择此课题对我来说有着不同的意义,应该来说此课题更接近于实际开发的全过程。同时对编程、数据库调用、结构化查询语言等方面是一个比较综合的考验。让我在此过程中得到很好的锻炼。1.2 开发环境开发环境的选择会影响到数据库的设计,所以在这里给出医药管理系统开发与运行环境的选择如下:1开发环境:Window 2003;2开发工具:MyEclipse10.6; 3数据库版本:Mysql 5.0。第2章 需求分析医药管理系统的需求比较严格,需要良好的环境搭建,良好的电脑性能,这对于开发大型软件来说是必不可少的,如果合适,将会达到良好的系统性能、友好的用户界面,较高的处理效率、便于维护的效果。2.1 需求分析概述药品管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统管理员模块,基本信息管理模块,进货需求管理模块,药品销售管理模块,系统管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新和删除等管理。 2.2 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,药品管理系统应该满足以下的性能需求:1系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足对信息处理的需求。2系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。3系统的响应速度药品管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。第3章 系统设计对于一个大型的项目,良好的系统构架是必不可少的东西,只有系统构架成功,才能按照这样的思路一步一步的顺利完成。而且可以了解功能模块,实时开发和维护,达到一目了然的效果。3.1 系统功能结构经过调研发现,一个药店最基本的工作流程是进货和销售。本系统主要大的功能包括基础信息管理、进货需求管理、医药销售管理、系统管理、系统登录模块。而每个模块对应具体的功能实现,如基础信息管理里面包括药品信息管理和药品类别信息管理,进货/需求管理包括库存信息管理、药品需求管理和药品进货管理,医药销售管理包括销售明细和销售排行,系统管理包括管理员账户管理和系统初始化,功能模块图如图3-1所示。 图3-1 系统主要功能模块图3.2 系统流程管理在此系统流程模块,这个模块主要是程序的主要运行流程讲解,在这个医药管理系统里面,首先是管理员登陆权限,当管理员登陆成功之后,进入主要的医药管理模块,这里主要就是四个模块,主要有基础信息管理、进货需求管理、医药销售管理、系统管理,这些模块具体的功能实现如图3-2所示。 图3-2 系统流程图3.3 逻辑分层设计医药管理系统由4层结构组成,并遵循MVC结构进行设计。4层结构分别为表示层、业务逻辑层、持久层、数据库层,系统分层设计图如图3-3所示。图3-3 系统分层设计图其中表示层与业务逻辑层均使用的是Struts框架组成,表示层用于提供程序与用户之间交互的界面,项目中主要通过JSP、ActionForm、及Struts标签库进行展现;业务逻辑层用于处理程序中的各种业务逻辑,项目中通过Struts框架的中央处理器及Action对象对业务请求进行处理;持久层由hibernate框架组成,MySQL数据库,对于4层结构的具体实现如下所示:1视图层(JSP)用户交互界面,负责业务数据的收集和表示客户端校验2控制层(SERVLET)负责表现层与业务逻辑层的交互,调用业务逻辑层,并将业务数据返回给表现层显示。3业务逻辑层(BEAN)数据访问对象层,负责与数据库服务层交互,封装增、删、查、改操作。4数据库层(MySQL5.0)在设计中通过实体-关系图的方法分析系统的数据库各实体的关系,推导出相关表结构和相应的内、外主键,并可结合业务进一步设计相关存储过程和约束条件等实现方法。系统中所有的数据表主要分为药品信息数据库表、药品类别数据库表、销售明细数据库表、用户管理数据库表。 3.4 数据库设计1药品实体药品实体包括药品编号、名称、药品编码、出场地址、描述等属性。药品编号是识别不同药品的唯一编号,其数据类型是int,并且是数据库自增的。其余属性都是药品通用的特性,例如药品名称、类别、价格、出场地址和药品描述等。药品E-R图如图3-4所示。 图3-4 药品E-R图在创建表的过程中我们还得需要知道每个属性的数据类型,这点我们可以自己根据情况进行相应的定义,并且对于主键一般要求是不能为空的,所以表里面的N代表不能为空,如果空值将无法操作数据库,程序里面将会出现错误的,虽然这些都是小的细节,但是都是必须注意的,都是创建数据库表的前提条件,药品信息表如表3-1所示。表3-1 药品信息表(tb_medicine)MedicineidINTEGERN主键medNo VARCHAR(100)N药品编码nameVARCHAR(200)N名称factoryAddVARCHAR(200)Y出厂地址decriptionTEXTY描述信息priceDOUBLEN单价medCountINTEGERY0库存数量redCountINTEGERY0需求数量photoPathVARCHAR(255) Y0图片categoryIdINTEGERY所属类型2药品类别实体对象药品类别实体对象对应着药品类别的分类信息,其中包括类别编号、类别名称、类别描述、类别创建时间等,药品类别E-R图如图3-5所示。 图3-5 药品类别E-R图 根据上如所示的E-R图可以看出创建此表的一些属性,需要根据属性来确定数据类型,以及空值的设定操作,药品类别表如表3-2所示。 表3-2 药品类别表(tb_category)MedicinecategoryidINTEGERN 主键nameVARCHAR(100)N 类别名称descriptionTEXTN类别描述createTimeVARCHAR(100)Y创建时间categoryNoVARCHAR(100)N类别编号3销售明细实体对象销售明细实体对象用于描述药品在销售时刻的具体情况,如药品名称、价格、数量、销售时间、操作人员等信息。这些信息十分重要,需要记录到数据库之中。药品明细E-R图如图3-6所示。 图3-6 药品明细E-R图根据上如所示的E-R图可以看出创建此表的一些属性,我们需要根据属性来确定数据类型,以及空值的设定操作,药品销售表如表3-3所示。表3-3 药品销售表(tb_selldetail)MedicineidINTEGERN主键sellName VARCHAR(100)N药品名称sellPriceDOUBLEN销售单价sellCountINTEGERN销售数量sellTimeDATETIMEN销售时间medidINTEGERY药品iduseridINTEGERY0用户id4系统用户实体对象用于描述系统用户具体情况,如管理员名称、登录密码、创建时间等信息。这些信息十分重要,需要记录到数据库之中。系统用户E-R图如图3-7所示。3-7 系统用户E-R图系统用户表(tb_user)用于管理系统管理员的基本信息。在线管理员用户在添加信息用户之后,需要对新用户的登录名及密码进行保存,该表主要为完成本功能并对用户的创建时间进行记录。系统用户表具体情况如表3-4所示。表3-4 系统用户表(tb_user)列名数据类型长度主键否允许空功能描述IdINTEGER 11是否用户idusernameVARCHAR 50否否管理员名称passwordVARCHAR50否否登录密码createTimeDATETIME0否是创建时间第4章 系统实现系统的详细实现,主要是给我们介绍了系统具体功能模块的实现的一个构思,可以顺着这样的思路来实现医药管理系统的功能,也让人容易理解,容易接受。4.1 数据库的实现系统数据库比较简单,在此不说明。4.2 主要功能模块描述4.2.1 系统登录模块设计系统登录是一个对用户身份进行验证的过程,只有登录成功的用户才可以对系统进行操作,否则,不能对系统进行管理维护,它是系统的一道安全门。1用户登录程序根据用户名和密码查询数据库,如果存在此用户则跳转到manage.jsp页面,并将登陆用户存进session中。页面运行效果如图4-1所示。图4-1 登陆界面图2.登陆成功后,将显示主界面,登录成功主界面如图4-2所示。 图4-2 系统登陆成功主页面4.2.2 药品类别信息管理模块1药品类别的添加类别添加页面运行效果如图4-3所示。 图4-3 添加类别图2分页查看类别信息 在添加药品信息后,页面跳转到类别信息列表页面,此页面将对类别信息进行分页显示,同时,此页面还提供了药品类别修改与删除的超链接。3类别的修改与删除点击修改超链接现根据id获得类别信息显示到修改页面中,用户修改完毕后,将修改的信息保存到数据库中。点击删除超链接后将直接删除此条记录。类别信息图如图4-4所示。 图4-4 类别信息图4药品类别统计呢首先需要用到ChartUtil工具类,这是一个自定义的制图工具类,这个类的主要作用是,用于生成制图对象JFreeChart。类别统计图如图4-5所示。 图4-5 类别统计图4.2.3 药品信息管理模块1药品信息的添加与修改药品编码是药品对象的一个标识,当添加一个药品信息时,需要判断此药品是否已经在数据库中存在,如果存在则只需要更新药品的数量即可,药品添加流程图如图4-6所示。 图4-6 药品添加流程图2. 药品添加页面药品添加页面如图4-7所示。 图4-7 药品添加页面3分页查看所有药品在添加药品信息后,将请求转发到查看所有药品的页面,对所有药品信息进行分页显示。分页查看页面如图4-8所示。图4-8 分页查看页面4查看药品的详细信息在药品的列表信息中提供了查看药品详细信息的超链接,此超链接作用于药品名称上,单击它将进入药品查看页面中。5模糊查询药品为方便每个户查询药品,药品信息管理模块还提供了药品的模糊查询。此操作将根据用户所输入的关键字信息,对药品名称、药品描述等多个药品属性进行模糊匹配,并以分页显示的方式返回模糊查询后的结果集。在此表单中输入模糊查询的关键词时,单击“查询”按钮,系统将进行模糊查询,如查询的关键词为“感冒”,其查询结果如图4-9所示。图4-9 模糊查询页面6高级查询使用模糊查询返回的数据结果集将会非常大,查找起来不方便。当需要查询一个确切的药品时,可使用高级查询模式。此查询可以根据药品的多个属性信息来查询一个确切的药品对象,比如输入一个药品的名称、药品编码及其题属性,可进行更为具体的查询。其显示的高级查询页面效果如图4-10所示。图4-10 高级查询页面点击提交之后的高级查询结果显示页面如4-11图所示。图4-11 高级查询结果显示页面7查看库存为了方便操作了解药品的库存数量,在医药管理系统中提供了对库存数量的检索方式,此操作通过比较运算符查询相应的库存数量,库存查看页面如图4-12所示。图4-12 库存查看页面程序通过参数type判断其查询的类型,并构造相应的HQL查询语句,当管理员查询时将显示所有药品的库存信息,如图4-13所示。图4-13 库存查询结果页面4.2.4 购买及销售药品管理模块买药品模块主要是对购买药品的请求进行处理。对于用户购买药品,本例中使用了购物车模式。当用户确定购买一个药品时,先将其添加到购物车中,然后可以继续选购其他药品,在选后药品结束后再对其进行统一结账,这种做法不仅仅可以方便用户选购药品,而且减少程序中的SQL语句的数量,提高了数据库的性能。1选购药品程序于用户所选购药品,首先将其加载到一个List集合中,然后再将其保存在session会话中,当用户所购买的药品发生变化时,将对session会话中的对象进行操作。 用户选购药品后在页面对用户所购买的药品进行显示。此页面为用户的订单页面,提供“修改”及“结账”等超链接。对于用户结账操作,程序中通过两步进行实现。首先程序要更新药品在数据库中的数量,然后清空用户的订单信息。对于这一操作请求,本例中通过SellAction类的buy()方法进行处理,选购药品页面效果图如图4-15所示。图4-15 选购药品页面 当点击上图的购买这个超链接的时候,就会显示药品选购页面,药品选购页面图如图4-16所示。图4-16 药品选购页面2结账对于用户结账,程序中通过两个步骤进行实现。首先是程序要更新药品在数据库中的库存,然后清空用户的订单信息。对于这一操作的请求,通过SellDetailAction类中的buy()方法进行相应的处理操作,结账页面图如图4-17所示。图4-17 结账页面3销售管理销售管理模块主要对药品的销售信息进行管理,包括销售的明细管理、销售的排行统计等,其持久层操作由SellDao类进行处理,业务请求由SellAction类进行处理,对于查询后的结果通过sell_list.jsp页面进行显示,销售页面图如图4-18所示。图4-18 销售页面4.2.5 进货及需求管理进货及需求管理模块包含对药品需求信息的详细操作,主要是对药品的需求信息进行曾、删、改、查等数据库操作。药品需求添加与药品信息添加相类似,如果数据库中已存在所添加的药品需求信息,则更新药品需求的数量即可,否则将录入一个新的药品需求信息到数据库中。药品进货及需求页面如图4-19所示。图4-19 添加进货页面 再次点击提交按钮之后,将会进入到如图4-21的查看进货的页面。 图4-20 进货需求页面4.2.6 系统的管理1添加管理员添加管理员用户是对管理员账户信息持久化的过程,其操作比较简单,先判断密码时候和确认密码相等,如果相等则开始添加用户信息,并将相应的用户信息保存起来。此方法首先需要验证了密码与确认密码是否相同,只有在密码与确认密码一致的情况下,才可以添加管理员用户,在添加了管理员用户之后,在页面上进行显示,管理员添加页面图如图4-22所示。图4-21 管理员添加页面 当点击提交按钮后,就会给我们显示所有用户的界面,管理员添加查看页面图如图4-23所示。 图4-22 管理员查看页面2修改密码修改密码操作需要提供旧密码,否则不能修改。并确认两次密码是否一致,如果一致则进行相应的修改操作成功,如果错误将显示错误信息,并且不能为空。修改密码的页面效果图如图4-24所示。 图4-23 密码修改页面 4.3 国际化的实现 国际化是struts的一大特色功能,它以不同国家的语言构建本地化的页面,方便不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锚杆锚索安全教育培训课件
- 华瓷股份:审计报告
- 脊柱骨折康复课件
- 忻州会所音响工程方案(3篇)
- 《2025购地合同范本》
- 2025年农业用地流转协议模板
- 2025年技师资格考试试题及答案
- 2025设备租赁合同书范本(合同示范文本)
- 锅炉安全知识培训内容课件
- 工程投标创新方案(3篇)
- 稳派教育2025届高考压轴卷英语试卷含解析
- 车间5S检查评分表
- 建筑装饰工程有限公司的简介范文
- 静电复印纸项目质量管理方案
- 高一 人教版 英语 必修一第四单元《Lesson 1 Listening and Speaking》课件
- 中建建筑工程竣工验收指南
- 初中数学教学经验分享
- 2024年新人教版部编一年级道德与法治教材解读
- 足球比赛-开幕式组织方案
- 电梯施工安全技术交底
- 安全围栏检修方案
评论
0/150
提交评论