JAVA程序设计课程设计药品存储管理系统设计

时间:2023-04-20 20:04:54  热度:0°C

1、 序号/ 学号/ 09416410 课 程 设 计设计课程名称: java程序设计 题 目: 药品存储管理系统设计 学 生 姓 名: 学 院: 怀德学院 专 业 班 级: 计算机092 指 导 教 师: 专业技术职务: 讲师 设计时间: 2011 年 12 月 12 日 2011 年 12 月 23 日课程设计任务书班级 计算机092 姓名 卜建宏 一、设计题目:药品存储管理系统设计二、设计内容: 通过必要的调研、资料查阅和学习,对上述软件系统进行需求分析、软件设计(包括数据库设计、软件体系结构、软件详细设计);结合适当的开发工具或环境、最终完成一个能够实现以下功能的可执行软件系统:药品的购进

2、记录:将新购入药品相关信息(药品名、编号、生产厂家、供货商、有效期、数量、最低库存等)录入数据库;药品的信息查询和过期药品的销毁;药品的销售记录:对每种药品的销售情况进行记录,在药品售出时,同时更新其库存信息;据库存信息制定药品的采购计划。三、基本要求:设计过程要求:学生以小组为单位,根据设计内容和要求、分工协作完成一个完整的可***运行的软件系统。软件系统的开发必须包括以下步骤:(1)进行软件项目的调研(通过查阅资料、讨论等形式进行)、确定小组成员之间的任务分工。(2)进行需求分析:主要分析系统的功能需求(系统能够做什么)、数据需求(系统涉及的信息和信息间联系)和环境需求等。(3)进行软件设计

3、:进行数据库设计(包括概念结构设计、逻辑结构设计、物理设计);进行软件的总体设计、得到系统功能模块结构图;对主要的功能模块进行详细设计(4)编程、测试和调试,最终提交功能正确、运行稳定的可执行系统撰写课程设计说明书要求,见附件“课程设计说明书内容格式和排版要求”。考核方式:以学生个人为考核单位(1)指导教师检查软件系统运行情况、学生进行设计答辩;(2)每位学生提交课程设计说明书一份(包括电子文档和书面文档)(3)每个小组提交软件系统的电子文档一份:包括系统源程序和相关使用说明四、进度安排:1、系统分析、设计准备阶段:5学时2、编程调试阶段:25学时3、总结和书写设计说明书阶段:8学时4、考核阶

4、段:2学时指导教师: 吕猛 2011 年 12 月 8 日药品存储管理系统设计摘要大家只要看了新闻/就可以了解到21世纪是信息的世纪,信息化正以极快的速度取代传统的效率低下的人工作业。随着小型计算机,微型计算机的成本的不断下降,性能的不断提升,使得计算机作为当今最重要的信息产品,成为人民大众必不可缺的工具。计算机技术已经广泛应用于日常办公,企业管理,文字处理、电子报表以及进行简单的人事管理、财务管理等,大大提高了我们的工作效率,节省许多资源,使管理更加规范化,系统化,科学化。目前随着计算机技术的发展和普及/各行各业的管理机构开始使用计算机处理大量信息。在我国药品品种繁多,规模甚大,以往的手工记

5、载、查询操作容易出错且工作效率低,已经不能适应时代发展的要求,从管理的角度来看,对管理者会造成诸多的不便,还有可能疏忽一些细节,让不法商家逃脱罪责。所以,市场迫切需要一款简单实用的药品管理系统。经过前期的调研,在反复的修改和综合考量后,笔者觉定使用java swing技术,eclipse j2se 开发平台,mysql5/0数据库开发药品管理系统。药品管理系统的设计理念是,让企业能够拥有更高效的管理工具,使企业在21世纪异常激烈的竞争中脱颖而出。国外的管理系统有许多优秀的经验,但是并不完全符合我国的国情,我国的最广大药品销售的企业是分布在全国各地的中小型销售企业。所以,此次开发的药品管理系统功

6、能乃是汲取了外国优秀管理工具的优秀功能,同时又创新了更符合我国用户需求的功能的一个综合信息管理系统。药品管理系统分为五大模块,分别为系统用户模块,职工信息管理模块,进货管理模块,销售管理模块,库存转移管理模块。该五大功能模块设计合理,功能全面,同时界面友好,非常符合我国各大小型药品销售企业的管理需求。但由于时间仓促以及笔者找工作实习的原因,系统还不是很完善,和市场上一些成熟的产品比较仍然有不足之处。今后笔者将利用工作休息时间,学习新的技术和设计理念,对药品管理系统进行深入的二次迭***发,目标是在今后三个月使代码更加规范,界面更加美观,程序的可拓展性进一步增强,更加与市场接轨,然后发布到chin

7、a java world上开源供大家免费下载使用和学习。关键词:java swing/mysql5/0/jdbc/药品管理管理系统/药品管理目 录摘要i第一章 概述11/1 系统开发背景和意义11/2 开发环境1第二章 需求分析22/1 任务概述22/2 功能需求22/3 性能需求32/4 数据描述(数据流图+数据字典)3第三章 系统总体设计93/1 业务流程93/2 系统功能模块图103/3 系统流程图11第四章 详细设计114/1 程序流程图114/2 程序输入输出描述164/3 数据库的设计16第五章 编码实现235/1 用户***模块235/2 用户管理模块235/3 销售管理模块245

8、/4 进货管理模块245/5 职工管理模块245/6 坏货转移模块25总 结26参 考 文 献26致 谢27附 录27第一章 概述如何利用现代信息技术使企业拥有快速、高效的市场反映能力和高度的效率,已是医药经营企业,特别是医药连锁经营企业特别关心的问题。尽快建立一个功能齐备的药品进、出库管理系统,完善现代企业的信息化管理机制,已成为医药企业生存发展的当务之急。通过开发这个药品管理系统,使药品进销存管理工作系统化,规范化,自动化,从而达到提高管理效率的目的。本系统开发设计思想是实现药品管理的数字化。尽量采用现有软硬件环境,及先进的管理系统开发方案,提高系统开发水平和应用效果的目的。系统应符合企业

9、管理的规定,满足日常管理的需要,并达到操作过程中的直观、方便、实用、安全等要求,系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充,维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加,删除,修改等操作。1/1 系统开发背景和意义此次课程设计的选题是由吕猛老师精心选题。本次的课程设计是一个可以充分地锻炼自己的动手实践能力以及考核本学期所学知识的积累的机会。针对我的实际情况,经过与指导老师以及小组成员的协商,我选择了药品管理系统软件设计与开发这个课题。这是一个属于实际的课题,如果顺利,我们所设计的药品管理系统将实际应用到中国最广大的售药系统中去

10、,对于初涉社会的我们来说,无疑是一个非常好地锻炼机会。随着医疗制度***的进行,药品招标采购的逐年规范和扩大,药品管理已经成为药剂科乃至整个医院管理的重要内容。传统的管理模式已经跟不上顾客对快节奏生活的要求了!随着计算机的普及和计算机软件的不断发展,越来越多的医疗机构开始注视计算机这个辅助工具为自己带来的效益了。医院的售药机构需要通过计算机提高自已工作效率、对药品实现进销存管理和职工管理,提高经济效益 1/2 开发环境开发环境的选择会影响到数据库的设计,所以在这里给出图书管理系统开发与运行环境的选择如下:开发环境:window 7 旗舰版开发工具:myeclipse7/0数据库版本: mysql

11、 5/0/87数据库引擎: myisam第二章 需求分析 2/1 任务概述药品管理系统是为了加强药品管理,以便更好地对药品进行监督和管理,对售药机构人员的工作,起到了高效性、准确性管理而开发。本系统主要包含系统用户管理模块、药品管理模块、销售管理模块、进货管理模块、存货转移管理模块。药品管理系统是以合理、全面、准确的药品编码体系为基础,提供了对药品数量、金额、有效期的全面管理,统一的药价管理机制规范了药品的价格。系统能随时提供药库的库存、药品流向和消耗,还能根据现有库存,药品有效期提供采购计划或应暂停采购的药品清单,以提高资金的利用率,避免不必要的损失,方便快捷的途径对药基本信息进行定期的更新

12、和删除等管理。 2/2 功能需求一功能划分药品管理系统分为系统用户管理、药品销售管理、药品库存管理、进货管理、职工管理、查询与报表分析。二功能描述(1)系统用户管理:允许添加删除用户(只有管理员才可以修改),任意权限的用户允许更改自己的密码,添加或删除职工,修改职工,对药品进行销售和库存的控制的资料。(2) 药品进货管理:当企业需要增加新的销售药品时,利用此模块可以添加新的药品信息,删除旧的药品信息,修改已存在的药品信息,提供所有与药品相关的各类信息,初始化库存,初始化供应商相关信息。(3)药品销售管理:药品统一的价格销售,对已查询销售单,可以对药品的价格进行控制。(4)库存转移管理:实际生活

13、中容易发生药品过期和损毁,此时利用此模块对过期的药品和损毁的药品进行清理。(6)职工管理: 对药品企业进行职工的管理,对职工进行增加,修改,删除,查询等操作。(7)查询与报表分析:此功能并未单独作为一个模块,而是分布在各个模块中,各个模块产生业务时,可以在各模块的相应功能按钮上选择查询。2/3 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,药品管理系统应该满足以下的性能需求:1、系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。2、系统的开放性

14、和系统的可扩充***品管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3、系统的易用性和易维护性图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提

15、供足够的在线帮助,缩短用户对系统熟悉的过程。4、系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。5、系统的先进性目前计算系统的技术发展相当快,做为药品管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。6、系统的响应速度药品管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从

16、秒级到分钟级/原则是保证操作人员不会因为速度问题而影响工作效率。2/4 数据描述(数据流图+数据字典)经过调研,我们发现,一个药店最基本的工作流程是进货和销售。消费者选择药店进行购物,药店通过我们的药店管理系统进行药品的销售及销售后的库存整理。流程简介:2/4/1 要求a/为每种药品设置编号,输入药品的信息,以便于管理人员对药品进行管理,也便于核对修改b/为职工设置库,便于操作员对职工进行管理c/为供货商设置库,便于操作员及时与供货商联系货源d/设置系统权限e/药品价格分为进货价、零售价和批发价2/4/2 目标a/使药品销售的信息能及时得到统计、查询b/方便操作员的操作,达到简单、易用的效果c

17、/提高操作员的工作效率d/提高操作的正确率e/提高系统的可靠性及安全性管理人员顾客药品管理系统图2/1 药品管理系统基本流程以上便是我们这个药品管理系统的总体数据流程图,通过上述的这幅图片,我们可以清楚地了解到该系统的大致情况,有两个数据源/终点,分别是客户、用户。而该系统进一步地功能显示在下图中可以得到解释。控制信息管理人员统计信息销售统计管理进出货管理职工管理图2/2 管理人员的数据流图销售人员通过输入药品编号,查出系统中存在的药品,通过医生看病以及配药,考虑所售药品的价格,将病人所要购买的药品列入药品清单中,最后的销售入库存系统将此次的交易数据保存到数据库中,最终完成交易,将药品交给病人

18、手中。经过对数据流程分析,提示出现行系统具有4个主要模块:药品信息系统、药品库存管理系统、供应商管理系统、药品销售系统。通过它们我们的药品管理系统才成为了一个能够成功的软件。首先是药品信息系统:在这个模块中由用户或管理员输入所有药品的基本信息即药品的初始化。第二个是药品库存管理系统:在这里这个系统有两个功能,一是查出现有药库中的所有过期药品,更新现有的数据库;二是实现药品入库,避免药品空缺造成的销售问题。第三个是供应商管理系统:供应商是药品进货时,从何处购得的一种记录方法,通过供应商可以方便的再次进货。最后一个是药品销售系统:在这个模块中,管理人员可以很方便地对销售情况进行查看,显示当天的销售

19、金额并备份所有的数据库表。药品管理系统与3个外部实体有关:顾客、药房销售人员和系统管理员。其中系统管理人员拥有所有信息资料添加、删除和修改的权限,而药房销售人员只具有普通权限不能对信息资料做任何的删除操作。以上只是整个系统的总体流程,大概显示了一次一个用户完整交易的全部过程。在这里我们还要对这个数据流程进行进一步详细的分解。反馈结果购药要求消费者购药及退货图2/3 消费者的数据流图消费者通过选购,选购好合适的药品,到管理者处登记结账,发生销售管理。管理者通过药品编号,录入系统需要销售的数量,系统生成仓库中是否有足够的药品。发生销售之后产生销售单和销售金额,消费者付款拿货。销售管理完成。当消费者

20、发现购买的药品不符合要求,管理者在认真核实之后,予以退款,发生退货。此时管理者要在系统的坏货转移中,将不合格药品转移到不合格仓库中。图2/4 系统数据流图图2/5 详细数据流图2/4/3 数据字典数据流项目:1/名字:用户信息(admin)别名:无流量:每天上十次来源:用户基本信息表去向:核对用户信息定义:用户信息用户名用户密码+权限2/名字:药品信息别名:无流量:每天上十次来源:药品表去向:核对药品库存初始化、核对出库信息、核对入库信息定义:药品信息药品编号 + 药品名称 + 药品建成 + 药品规格 + 药品产地 + 批号 +进价 + 批发价 + 零售价 + 供应商 + 类别 + 有效期 +

21、 备注/3/名字:库存信息别名:无流量:每天上十次来源:库存表去向:核对药品库存查询、核对进货单、核对销售单定义:库存信息id 药品编号 + 药品名称供应商编号 + 单价 + 数量 + 入库日期 + 仓库类别/4/名字:供应商信息别名:无流量:每天上十次来源:供应商表去向:反馈给用户/核对进货单定义:供应商信息id供货商编号供货商名+地区+备注5/名字:销售单单信息别名:无流量:每天上十次来源:销售单单表去向:反馈给用户定义:销售单信息id药品编号 + 药品名称 + 数量 销售日期 + 销售数量 + 销售收入2/4/4 存储条目:1/文件名:用户基本信息表别名:无存储方式:随机存储存储频率:每

22、天上十次定义:用户基本信息表用户名用户密码 + 权限2/文件名:药品表别名:无存储方式:随机存储存储频率:每天上十次定义:药品表药品编号 + 药品名称 + 药品建成 + 药品规格 + 药品产地 + 批号 +进价 + 批发价 + 零售价 + 供应商 + 类别 + 有效期 + 备注/3/数据项条目:项名:药品类型别名:无描述:用户输入试题的类型定义:药品类型所有药品规定类型位置:药品表4/处理条目:1/处理名:药品添加处理逻辑:用户添加药品信息执行频率:每天上十次2/处理名:库存初始化处理逻辑:用户初始化药品库存表执行频率:进货上十次3/处理名:入库处理逻辑:用户添加进货单执行频率:每天上十次4/

23、处理名:销售处理逻辑:用户添加销售单执行频率:每天上十次第三章 系统总体设计3/1 业务流程根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,其处理流程如图3/1。用户验证药品登记管理员*** 合法用户登记后的药品销售和库存整理管理员退出***图3/1 药品管理系统的业务流程针对业务流程,现具体描述其功能如下:1/用户登录:系统对用户合法性进行检查。2/药品入库:对新购进的药品分类进行编号,并把药品基本信息录入计算机。3/药品销售:对已入库的药品,销售人员可以进行销售。4/药品进货:对已入库的药品,管理人员可以进行货存控制。5/存货转移:对于已经过期或者损坏的药品

24、,可以进行处理。 6/信息查询:对药品的各种变动情况的查询。7/职员管理:对药店的职工进行管理。3/2 系统功能模块图药品管理系统模块是用java swing进行设计,mysql作为***数据库管理系统。系统管理模块分为用户登录、进货管理、销售管理、职工管理和坏货转移;用户管理模块主要是新增用户,修改用户,查询用户,删除用户;进货管理模块主要有供应商创始,进货,进货单查询,药品创始;销售管理模块主要有销售,修改价目表,销售单查询;职工管理有添加职工,处理职工。系统体系结构框图如下图:药品管理系统销售管理进货管理坏货转移职工管理用户管理过期处理损毁处理处理职工添加职工销售单查询修改价目表销售药品创

25、始进货单查询进货供应商创始删除用户修改用户新增用户查询用户图3/2 药品管理系统功能模块图3/3 系统流程图依据软件工程的基本原理,综合以上分析给出系统流程图如图3/4所示。用户***药品创始库存创始进货***销售退出 图3/2 系统的处理流程图 说明/ 用户通过***界面***系统时,第一次使用系统时需要进行药品的创始/即将各个药品的详细信息依次录入系统,第一次使用系统时同样要初始化库存,将现有的药品情况录入系统,接下来通过进货模块进行进货,进货时要为每一个供应商进行供应商创始,当发生销售时销售药品,并对库存进行相应的出来,退出时推出系统。第四章 详细设计4/1 程序流程图依据软件工程的基本原理,详

26、细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。具体来说就是把经过总体设计得到的各个模块详细的加以描述。本系统采用支持面向对象的eclipse作为开发工具,运用了j2se的swing的技术,更加的方便了程序员的工作。程序对系统配置要求较高。在此给出软件系统的主要模块,如图4/1所示。职工管理销售管理进货管理坏货转移用户管理图4/1 主程序模块图根据以上主程序的模块图,我们可以得出下面的关于各个模块的程序流程图,如图4/2所示。 开始用户类型管理员系统管

27、理员职工管理坏货转移进货管理销售管理用户管理退出系统结束图4/2 总体流程图说明:用户***系统时,系统判断用户的级别,如果为系统管理员,则可以进行用户的用户管理,如果是管理员,则可以进行相应的销售管理,进货管理,坏货转移,职工管理,管理员点击退出按钮时,退出系统。用户*** 失败用户核对操作成功成功用户管理用户管理操作图4/3 用户***流程说明:用户根据已知的用户名和密码登录系统,只有登录成功才能进行系列的用户管理、库存管理、销售管理,职工管理的操作。用户***药品添加录入药品核对药品信息失败药品表 成功成功图4/4 药品创始流程用户***库存管理输入库存库存创始操作成功操作失败成功库存表图4/5

28、存货创始流程用户 ***销售管理操作失败 销售单录入核对信息操作成功成功库存表图4/6 销售流程用户 ***坏货转移核对信息 录入坏货信息操作失败操作成功 成功库存表图4/7 坏货转移流程说明:用户***后进行药品的相关管理,通过药品创始,为系统初始化一些药品及添加新的代售药品。通过存货创始将具体进货的药品录入库存中,销售成功则对库存做相应的修改。当药品损坏或者过期时/应当对库存做相应的调整。用户用户***职员管理核对信息录入职员信息操作成功成功职员列表失败图4/8 职员管理说明:管理员通过职工管理模块进行职工的管理,添加职工后,录入到职员列表中。4/2 程序输入输出描述4/2/1 用户***模块1/输

29、入项目:输入用户名及密码。2/输出项目:打开系统。4/2/2 用户管理模块1/输入项目:与用户相关的所有信息。2/输出项目:操作结果的显示,出错弹出对话框。4/2/3 销售管理模块1/输入项目:选择药品编号,药品的进销价格。2/输出项目:操作结果的显示,出错弹出对话框。4/2/4 进货管理模块1/进货项目:供应商的详细信息,仓库的详细信息,药品的数量。2/输出项目:药品的有关资料的显示,进货单列表4/2/5 坏货管理模块1/输入项目:发生意外无法使用的药品编号。2/输出项目:操作结果的显示。4/2/6 职工管理模块1/输入项目:职工的详细信息。2/输出项目:根据用户的输入显示相应的结果。4/3

30、 数据库的设计4/3/1 数据库的概念结构设计和er图在需求分析阶段已完成该系统所有的数据分析。根据该阶段所建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。概念结构设计就是要找出实体和他们之间的联系,去除非本质的东西。实体是名词,在er 图中设计中就是所说的表。比如“药品”,“库存”。 行为是动词,在er 图中设计时一般不考虑行为,它是业务逻辑,在详细设计才有设计,是方法。比如 “销售”,“进货”等等。 在设计er图时时强调的是不同实体之间关系,不是行为。比如:药品 销售 库存/“转移”是一种关系,不是行为。在某种情况下,“销售”

31、是一个关系表,将“药品”和“库存”联系起来。 在找出实体后,我们要根据分析来定义实体的属性,就是表的列。比如药品有id,名称,进价,销价,简介等等/ 库存有id,名称,数量等等。 “库存”可拥有 0-many 的“药品”,而药品同样属于0-many 的库存。所以是多对多的关系根据以上的分析给出下面的概念结构设计得e-r图如图4/3所示。用户表权限用户名用户名图4/9 用户e-r图有效期 零售商别名药品表零售价id批发价药品名备注进价产地规格类别图4/10 药品e-r图供应商 备注地区编号供应商名图4/11 供应商e-r图库存表 药品名药品编号零售价数量供应商编号图4/12 库存e-r图价格销售

32、单销售单编号数量药品名药品id图4/13 供应商e-r图职工表邮编职工号地址***号电话性别职工名图4/14职员e-r图零售商有效期规格产地别名id进价类别零售价批发价药品表备注药品名供货销售单编号备注库存初始化地区药品id销售单供应商药品名供应商名销售进货编号价格数量库存表药品编号零售价数量药品名供应商编号图4/15 实体联系e-r图4/3/2 数据库的逻辑设计药品管理管理系统主要涉及到4个表,即:药品信息表、药品入库表、药品出库表和库存表。药品信息表:这张表是用来存储药品信息的。药品添加以后它的信息就会储存到这张表中,其中包含:药品编号、药品名称、化学名称、规格、药品类别、剂型、批号及厂商。

33、其中药品编号是主键,非空且唯一。其余信息可以为空,并在数据表建立的时候给他们相应的规定好数据类型。药品入库表:这张表是用来存储入库表单信息的,所有入库单信息都包含在这张表中。包括:入库单号、药品编号、批号、入库日期、有效日期、进价、预售价、数量、整量单位、散量单位及验收人。其中入库单号是主键,非空且唯一。药品出库表:这张表是用来存储出库表单信息的,所有出库信息都包含在这张表单中。它的字段有:出库单号、药品编号、批号、数量、出库日期及验收人。其中出库单号是主键,非空且唯一。药品库存表:这张表是用来存储库存信息的,所有初始化的库存信息和出库入库信息改变后的信息都会被记录下来。它字段有:库存号、药品

34、编号、批号、药品名称、数量、整量单位、散量单位、入库日期、有效日期、进价、预售价、库存下限及验收人。4/3/3 数据库的物理设计 数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。如果程序运行过程中需要总金额,可以实时计算。不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速

35、度降低等问题。这就是所谓的第四范式。数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成char(1)或bit型。建议实际应用中定义成char(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的 值来解决,这样就避免了修改数据库结构。 数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有

36、用到,也要将它留在数据库中作为备用字段以便将来扩充。 程序一旦开始编码,就应该尽量避免再修改数据库。因为如果数据库结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败。pb的数据窗口与其他语言的数据控件不一样,它的很多东西是预编译的。即使你一个模块已经调试无误,但只要数据库结构改动。相应的模块就一定要重新修改,否则一定会出问题。药品管理系统数据库中各个表的设计结果如下面几个表格所示。每个表格表示为数据库中的一个表。medicine数据类型允许空值默认值描述mid(pk)varchar(8)n药品

37、编号mnamevarchar(40)n药品名称mshortnamevarchar(10)y药品建成mnorsvarchar(4)n规格mareavarchar(40)n药品产地mlotvarchar(10)n批号minprifloatn0进价mwprifloatn0批发价mprifloatn0零售价mconvarchar(8)n供应商mcatevarchar(20)n类别musetimedecimal(10/0)n有效期memovarchar(40)y备注表4/16 药品信息表user列名数据类型允许空值默认值描述username(pk)varchar(20)n用户名passwordvarch

38、ar(8)n密码rankintn1权限表4/17 用户表supplier列名数据类型允许空值默认值描述spid(pk)varchar(8)n供应商编号spnamevarchar(8)n供应商名spareavarchar(8)n地区spmenovarchar(40)y备注表4/18 供应商表salesorder列名数据类型允许空值默认值描述soid(pk)varchar(8)n销售单编号midvarchar(8)n药品编号mnamevarchar(40)n药品名snumintn0数量pricedoublen0单价表4/19 销售单表staff列名数据类型允许空值默认值描述staffid(pk)v

39、archar(8)n职工编号staffnamevarchar(20)n职工名称staffsexvarchar(2)n性别stafftelvarchar(12)n电话staffaddvarchar(40)y地址staffcardvarchar(40)n身份证staffzipvarchar(6)y备注表4/20 职工表stock列名数据类型允许空值默认值描述mid(pk)varchar(8)n职工编号mnamevarchar(20)n职工名称mpricefloatn性别mnumintn电话spidvarchar(8)y地址timedatetimen身份证statusintn存货类别表4/21 货存

40、表第五章 编码实现5/1 用户***模块用户***界面如图5/1所示图5/1药品***界面5/2 用户管理模块用户管理界面5/2所示。图5/2 用户管理界面5/3 销售管理模块销售管理界面如图5/3所示。图5/3 销售管理模块5/4 进货管理模块图5/4 药品管理界面5/5 职工管理模块图5/5 药品修改界面5/6 坏货转移模块图5/ 6 坏货转移模块总 结不知不觉,两个星期的课程设计结束了。这两个星期的课程设计,让我受益非浅。自我学计算机专业以来,始终认为一个完整的程序就相当于一个优秀的软件产品,只要程序编得精致、具体、详细,所开发的软件就绝对完美、实用。在这次设计药品管理系统中,我积极查阅各种资

41、料,实地调研,在吕老师的帮助下完成了这个系统的全部设计。刚开始设计时遇到了一些困难,因为之前自学过的java swing不够扎实,再加时间的安排上也很紧迫,编程的进度比较缓慢。在设计中还会遇到一些功能不知该如何实现的困难,在同学们热情帮助下,我渐渐的熟练了java swing控件的使用方法、java swing的编程语法,之后的编程过程也相对得心应手,基本完成了预期计划的要求。但是系统功能还没有完全完善,有待进一步加强。通过这次课程设计,我进一步加深对基础理论的理解,扩大专业知识面,对收集资料、查阅文献、方案制定等实践方面得到了很好的锻练,促进对所学知识应用能力的提高。同时,发现问题、分析归纳

42、、综合比较的逻辑分析能力、处理问题等能力也得到了提高。但是在这次毕业设计过程中,还是发现了自己很多不足之处,也遇到了许多问题和困难,而这些困难大多是以前不注重自己系统学习,学有所用造成的,这让我认识到系统的学习和锻炼的重要性,基础知识掌握不仅要多,而且要会运用它,那样的话设计才会更全面、更顺利、更完美。参 考 文 献1 侯维瑞 英语语体 上海:上海外语教育出版社,1988 2美rogers cadenhead/ java编程入门经典/梅兴文译/第4版/北京:人民邮电出版社,20073陈轶/姚晓昆编著/java程序设计实验指导/北京:清华大学出版社,20064 吴其庆编著/java程序设计实例教

43、程/北京:冶金工业出版社,20065李春葆/曾慧/sql server 2000学习与上机指导m/ 北京:清华大学出版社,2005/6/6施霞萍等编著/java程序设计教程 第2版/北京:机械工业出版社,20067宛延闿等编著/实用java程序设计教程/北京:机械工业出版社,20068耿祥义/张跃平/jsp实用教程/清华大学出版社/2003年5月1日/1-354月/9陈刚eclipse从入门到精通北京:清华大学出版社/ 2005:416-417/10孙卫琴精通struts:基于mvc的java web设计与开发北京:电子工业出版社,2004/ 1-9致 谢课程设计终于结束,在老师的鼓励、帮助和

44、支持下,最终顺利完成。回首从零到课程设计最终的完成,我的老师,同学对我的帮助让我受益匪浅。首先,我想感谢一下我的指导老师吕猛老师,吕老师做事认真负责,待人亲切和蔼,同时对我的论文和程序积极督促,耐心指导和正确引导,让我从茫然不知所错到如屡平地。此次毕业设计同时让我更加深刻的了解到大学里教的课程是多么的有用,感谢母校给了我这么多知识储备,让我能成为有一个有用的心中有底的人。附 录部分程序代码com/ahut/dao/meddao类package com/ahut/dao/public class meddao public boolean regeist(medicine medicine) c

45、onnection conn = db/getconn()/statement stmt = db/getstatement(conn)/string sql = insert into medicine values( + medicine/getmid() + /+ medicine/getmname() + /+ medicine/getmshortname() + /+ medicine/getmnors() + /+ medicine/getmarea() + /+ medicine/getmlot() + /+ medicine/getminpri() + /+ edicine/g

46、etmwpri() + /+ medicine/getmrpri() + /+ medicine/getmcon() + /+ medicine/getmcate() + /+ medicine/getmusetime() + /+ medicine/getmemo() + )/system/out/println(sql)/try stmt/executeupdate(sql)/ catch (sqlexception e) e/printstacktrace()/joptionpane/showmessagedialog(null/ 您的输入不正确/ 警告/ 1)/return false

47、/return true/public string findmedicine() connection conn = db/getconn()/statement stmt = db/getstatement(conn)/string sql = select * from medicine/string stafflist = new string128/system/out/println(sql)/try resultset rs = stmt/executequery(sql)/int i = 0/while (rs/next() stafflisti = rs/getstring(

48、mname/)+rs/getfloat(mrpri)+元/剩余/+rs/getint()/i+/ catch (sqlexception e) e/printstacktrace()/joptionpane/showmessagedialog(null/ 查找用户失败/ 警告/ 1)/return null/return stafflist/public string findmedicine2() connection conn = db/getconn()/statement stmt = db/getstatement(conn)/string sql = select * from medicine/string stafflist = new string128/system/out/println(sql)/try resultset rs = stmt/executequery(sql)/int i = 0/while (rs/next() stafflisti = rs/getstring(mname)/i+/ catch (sqlexception e) e/printstacktrace()/jopti

免责声明:
1. 《JAVA程序设计课程设计药品存储管理系统设计》内容来源于互联网,版权归原著者或相关公司所有。
2. 若《86561825文库网》收录的文本内容侵犯了您的权益或隐私,请立即通知我们删除。