《管理信息系统课程设计报告小型药店药品进销存管理系统.doc》由会员分享,可在线阅读,更多相关《管理信息系统课程设计报告小型药店药品进销存管理系统.doc(36页珍藏版)》请在三一办公上搜索。
1、管理信息系统课程设计报告题目:小型药店药品进销存管理系统专业班级:信息管理与信息系统081班 组长:组员: 指导教师: 成绩:目 录第1章绪论.11.1研究的背景.11.2国内对此问题研究的现状11.3研究的目的及意义.1第2章系统分析.32.1企业现状调查32.2系统可行性分析32.2.1经济可行性.32.2.2技术可行性.32.2.3市场可行性.32.2.4用户使用可行性.32.2.5法律方面可行性.42.2.6结论.42.3人员安排与进度控制 .42.4系统组织结构分析42.5系统业务流程分析52.6系统数据流程分析62.7数据字典72.7.1处理逻辑的定义.72.7.2数据存储的定义.
2、82.7.3数据流的定义102.8新系统的逻辑模型11第3章系统设计123.1功能结构设计123.2数据库设计133.3代码设计163.4输入/输出设计26第4章总结.34第1章 药店进销存概述1.1 系统开发背景随着经济的发展,人们生活水平的提高,医疗保险随之逐渐推广,导致药店市场的竞争越来越激烈,药品的种类也随之增加,对药店尤其是对药店的药品进行信息化管理已经成为药店生存与发展的必要条件之一。药品的信息化管理是药店中必不可少的条件,几乎所有进行了信息化管理的药店类企业都建设了药品管理信息系统。药品信息管理系统是指利用软硬件技术、网络通信技术等现代化手段,对药店经营过程中对药品的进货、出货、
3、库存、价格及账务进行精确快速的管理,大大见底了经营管理中的复杂性以及出错率、减轻手工劳动的强度,提高顾客的满意度,从而为药店的整体运行提供全面的、自动化的管理及各种服务的信息系统。1.2 国内对此问题研究的现状市场上的管理系统软件 类型有三种,一是通用版本;一是专为医药企业定制开发的,但周期长,费用高;三是在通用版本的基础上根据医药连锁企业的特点进行了重新开发和研制,许多企 业都采用了这种信息系统。目前管理软件多种多样,如:博信药店管理系统、零天药店管理系统、利康药店管理系统,方舟药品管理系统等。但多数系统都面型大型药店或连锁型药店且价格较高,针对小型单体药店却没有一个价格合理、功能合理的系统
4、。1.3 研究目的及意义针对当前医药产品销售日益激烈的竞争情况,为加强管理,提高工作效率和改善服务质量而设计一套行之有效的管理系统.通过研究分析一个小型单体药店的整个销售流程,满足 管理人员和一般客户的基本要求,将日常繁琐的工作简单化,规范化,电子化,自动化. 力求将整个平台简化到几个人就足以完成全部的维护更新工作, 解决药品管理工作中所遇到的问题,方便管理员可以随时地做添加、查询、删除、修改等工作,将管理人员繁重复杂的工作变得合理、简捷,且考虑到未来系统扩展 的可能性,而采用Delphi和Database技术来实现.从而达到以下目的:(1) 人力与设备费用的相对减少;(2) 处理速度的提高;
5、(3) 控制精度的提高;(4) 人员利用率的改进;(5) 节省投资和运营成本。本药品信息管理子系统目的是为小型单体药店管理及销售人员、采购人员提供更确切的数据。方便他们更方便快捷的对药品进行管理,节省了对于药品手工录入,而浪费的人力物力!第2章 系统分析2.1 企业现状调查小型单体药店多数使用传统的手动管理方式,存在不易更新、容易丢失、难以备份等重大缺陷;查询效率极低,特别当数据量大,种类繁多的时候,尤其明显。随着社会的发展,虽然出现了很多药品信息管理系统,但价格昂贵。小型单体药店基金不充裕,购买市场上的药店管理系统可能性低,且工作人员较少。2.1 企业现状调查2.2.1经济可行性在经济上,用
6、此系统加强了药品超市的管理效率,为顾客提供了快捷的服务,自然提高了超市的收入。同时本系统的开发费用,主机费用,人员培训费用都比较合理。由于本系统的开发费用较低,适合小型单体药店使用,方便药品的销售和库存情况的信息查询,是一个比较人性化的管理系统。2.2.2技术可行性本系统采用delphi做界面,Database做数据库。在delphi中可实现预定药品管理,药品库存管理,药品日常销售登记等工作。2.2.3市场可行性随着药店行业竞争越来越激烈和科学技术的发展,导致现今药品种类繁多,药品市场竞争激烈,经营方向朝规模化、电子化、自动化方向发展。提高药品超市的药品价格透明度,方便顾客查询,做出最好的选择
7、,防止伪劣假冒药品流入超市,保障顾客和超市的利益。此系统能够及时反映超市销售情况和库存情况,使超市能够及时调整好内部药品销售和库存的比例。改善药品超市的经营效率,提高营业利润。2.2.4用户使用可行性使用本软件人员要求有一定计算机基础的人员,系统管理员要求有计算机的专业知识。管理人员也需经一般培训。经过培训人员将会熟练使用本软件。2.2.5法律方面可行性本系统的研制和开发,将不会侵犯他人,集体和国家的利益,不会违反国家政策和法律。2.2.6结论综上所述,本工程的技术成熟、完备,能够适应药店管理工作需求,具有良好的市场拓展,因此本工程可开始。2.3人员安排与进度控制图2-1 人员安排与进度控制进
8、度控制人员安排如 图2-1,其中项目经理,开发人员为,管理人员,分析人员为卢亮。2.4系统组织结构分析系统功能结构图如图2-2主要功能:对药品采购情况进行管理;对药品基本信息进行管理;对药品销售情况进行管理;对药品库存情况进行管理;对药品的销售、采购、库存、利润等统计。图2-2 系统功能结构2.5系统业务流程分析图2-3 系统业务流程图如图,本系统根据库存情况由库存管理员确定药品缺货单,交给店长审查,如确认订货则把购药审批单(签字后药品缺货单)交给购药人员,购药人员向药品供应商下达药品订货单,药品供应商把1药品发货单交给购药人员和库存管理员,药品则由库存管理员检查核对;与药品发货单相符且合格则
9、做入库处理,向店长上交药品检验单,库存管理员更新库存盘存表,购药人员更新进货情况表。否则退货。顾客向售药员询问药品,经查询后告诉顾客查询结果,如顾客满意,则交款开收据,顾客拿收据去库存管理员处取药。库存管理员更新库存盘存表。买药后如退货则在库存管理员处依据发票和相关规定做退药处理。每月库存管理员,售药员,购药人员向店长分别上交,库存盘存报告单,销售盘存报告单,进货盘存报告单。2.6系统数据流程分析图2-4 系统顶层数据流程图图2-5 系统第一层数据流程图2.7数据字典2.7.1处理逻辑的定义描述药店进销存管理系统的最底层数据流程图中的数据处理P1 P10的名称、输入流、输出流和要做的处理。处理
10、逻辑定义见表2-1。表21处理逻辑定义编号名称输入处理逻辑输出P1缺货处理F1库存信息药品审批单F4药品信息根据库存信息,确定订货数目、种类,审批后下达药品订货单药品订货单P2药品检验药品发货单根据实际药品种类、数目。进行检验。合格则入库药品检验单药品入库单P3 退货处理药品发货单根据实际药品种类、数目。进行检验。如不合格则退货。退货单P4入库处理药品入库单根据入库单进行入库处理F1 库存盘存表F3进货情况表P5库存统计F1库存盘存根据F1库存盘存定期向店长汇报。库存统计报告P6购药处理查询结果根据顾客需求进行查询,并按要求选择顾客需要的药购药收据F2销售情况表P7退药处理购药收据退药规定根据
11、购药收据,退药规定进行退药处理F1 库存盘存表P8取药处理购药收据根据购药收据取相应的药物F2销售情况表P9销售统计F2销售情况表根据销售情况,统计并向店长汇报。销售盘存报告单P10药品检验药品发货单根据实际药品种类、数目。进行检验。合格则入库药品检验单药品入库单2.7.2数据存储的定义描述物料管理系统的最底层数据流程图中的数据存储F1 F4,包括名称、简述、数据存储的组成、关键字和相关联的处理。数据存储定义见表2-2表2-2 数据存储定义编号名称简述组成关键字相关联的处理F1库存盘存存放药品库存信息药品代码药品名称库存量进货单价库存金额药品代码P1P4P5P7F2销售情况表存放各种药品的销售
12、信息销售日期+药品名称+药品代码+销售数量+销售单价+销售金额药品代码销售日期P6P8P9F3进货情况表存放进药的基本情况进货日期+药品名称+药品代码+进货数量+进货单价+进货金额药品代码进货日期P1F4药品信息存放各种药品的信息、及供应商信息药品代码+药品名称+药品分类+制造商+生产时期+有效期+进货单价+销售员+生产地址+联系电话+传真药品代码P42.7.3数据流的定义:描述物料管理系统的最底层数据流程图中主要数据流的名称、来源、去向、组成。数据流定义见表2-3。表2-3 数据流定义编号名称来源去向组成D1购药审批单购药人员店长药品代码+药品名称+药品规格+药品单价+采购数量等D2药品入库
13、单药品供应商库存管理员药品代码+药品名称+药品规格+药品数量+进货日期+药品单价+进货商名称D3退货单库存管理员药品供应商药品名称+药品类别+药品数量+进货日期+进货商名称+退货原因D4药品订货单购药人员药品供应商药品名称+药品类别+药品数量+药品单价+进货日期+D5药品发货单药品供应商库存管理员药品名称+药品类别+药品数量+进货日期+药品单价+进货商名称等D6药品检验单库存管理员店长药品名称+药品类别+药品数量+进货日期+进货商名称+是否合格D7购药收据售药员顾客发票号+供应商代码+物料名称+单价+数量+金额等D8销售盘存报告单售药员店长药品编号+药品名称+药品类别+药品数量+销售额D9库存
14、统计库存管理员店长药品编号+药品名称+药品数量2.8 新系统的逻辑模型逻辑模型如上(8页)第3章 系统设计3.1 功能结构设计图3-1 功能结构设计药品进销存管理系统共有5个模块:基本信息管理模块,药品库存管理模块,药品销售管理模块,药品采购管理模块。3.2 数据库设计表3-1药店进销存系统的数据库一览表序号数据库名用途数据来源数据去向1药品信息表存放药品代码及基本属性录入各种输入、输出、查询、查询药品基本信息2库存盘存表存放仓库代码及储存数量录入查询、统计汇总、库存分析3进货情况表存放进药的代码、名称、数量、单价录入统计汇总、消耗分析4销售情况表存放销售情况录入输出单据、统计汇总 各数据表结
15、构如下:表3-2进货情况表序号字段名类型长度1进货日期A202药品名称A203药品代码A204进货数量N5进货单价$6进货金额$7采购人A108验收人A109计量单位A1010规格A1011缺货单编号A1012进货单编号A1013合同号A1014供应商A20表3-13药品信息表序号字段名类型长度1药品代码A202药品名称A203药品分类A204制造商A305生产时期A206有效期A47进货单价$8销售员A109生产地址A3010联系电话A1311传真A13表3-4销售情况表序号字段名类型长度1销售日期A202药品名称A203药品代码A204销售数量N5销售单价$6销售金额$表 3-5 不合格药
16、品表序号字段名类型长度1日期D2药品名称A203药品代码A104数量N5规格A106生产日期D7生产批次A108不合格状况A109处理措施A2010管理员A1011供货商A2012备注A50表 3-6员工信息表序号字段名类型长度1员工编号A102姓名A103性别S4年龄A105住址A206职位A107联系电话A20表3-7库存盘存表序号字段名类型长度1药品代码A202药品名称A203库存量N4进货单价$5库存金额$3.3 代码设计unit ENTERUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphi
17、cs, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg;type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Label1: TLabel; Image4: TImage; procedure Image3Click(Sender: TObject); procedure Image2Click(Sender: TObject); private Private declarations public Public declarations en
18、d;var Form1: TForm1;implementationuses MainUnit;$R *.dfmprocedure TForm1.Image3Click(Sender: TObject);beginClose;end;procedure TForm1.Image2Click(Sender: TObject);beginForm2.show;end;end.unit YPJHUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, B
19、uttons, StdCtrls, Mask, DBCtrls, DB, DBTables, ExtCtrls, Grids, DBGrids;type TForm4 = class(TForm) Label1: TLabel; GroupBox1: TGroupBox; Table1: TTable; DataSource1: TDataSource; Table1BDEDesigner: TStringField; Table1BDEDesigner2: TStringField; Table1BDEDesigner3: TStringField; Table1BDEDesigner4:
20、TFloatField; Table1BDEDesigner5: TCurrencyField; Table1BDEDesigner6: TCurrencyField; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; SpeedButton
21、1: TSpeedButton; SpeedButton2: TSpeedButton; Image1: TImage; GroupBox2: TGroupBox; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private Private declarations public Public declarations end;var Form4: TForm4;i
22、mplementation$R *.dfmprocedure TForm4.SpeedButton1Click(Sender: TObject);beginTable1.Append;end;procedure TForm4.SpeedButton2Click(Sender: TObject);VARR1:real;R2:real;Code1:Integer;Code2:Integer;s1:string;s2:string;s3:string;beginTable1.Edit;s1:=DBEdit4.text;S2:=DBEdit5.text;Val(S1,R1,CODE1);Val(s2,
23、R2,CODE2);STR(r1*r2,S3);DBEdit6.text:=S3;Table1.Post;end;end.unit YPKCUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, StdCtrls, Grids, DBGrids, DBTables, Buttons;type TForm6 = class(TForm) Label1: TLabel; GroupBox1: TGroupBox; Table1: TTable
24、; DataSource1: TDataSource; GroupBox2: TGroupBox; GroupBox3: TGroupBox; DBGrid1: TDBGrid; Table2: TTable; DataSource2: TDataSource; DBGrid2: TDBGrid; Table3: TTable; DataSource3: TDataSource; DBGrid3: TDBGrid; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TL
25、abel; Label8: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Table3BDEDesigner: TStringField; Table3BDEDesigner2: TStringField; Table3BDEDesigner3: TFloatField; Table3BDEDesigner4: TCurrencyField; Table3BDEDesigner5: TCurrencyField; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; Edit7: TEdit; SpeedBut
26、ton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; Table4: TTable; DataSource4: TDataSource; private Private declarations public Public declarations end;var Form6: TForm6;implementation$R *.dfmend.unit YPXSUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Gr
27、aphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, Buttons, Mask, DBCtrls, ComCtrls, ExtCtrls;type TForm5 = class(TForm) Label1: TLabel; Label2: TLabel; Table1: TTable; DataSource1: TDataSource; GroupBox1: TGroupBox; DBGrid1: TDBGrid; GroupBox2: TGroupBox; Table1BDEDesigner: T
28、StringField; Table1BDEDesigner2: TStringField; Table1BDEDesigner3: TStringField; Table1BDEDesigner4: TFloatField; Table1BDEDesigner5: TCurrencyField; Table1BDEDesigner6: TCurrencyField; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; DBEdit1: TDBEdit;
29、DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; DBEdit6: TDBEdit; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; StatusBar1: TStatusBar; Timer1: TTimer; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObj
30、ect); procedure Timer1Timer(Sender: TObject); private Private declarations public Public declarations end;var Form5: TForm5;implementation$R *.dfmprocedure TForm5.SpeedButton1Click(Sender: TObject);beginTable1.Append;end;procedure TForm5.SpeedButton2Click(Sender: TObject);VARR1:real;R2:real;Code1:In
31、teger;Code2:Integer;s1:string;s2:string;s3:string;beginTable1.Edit;s1:=DBEdit4.text;S2:=DBEdit5.text;Val(S1,R1,CODE1);Val(s2,R2,CODE2);STR(r1*r2,S3);DBEdit6.text:=S3;Table1.Post;end;procedure TForm5.Timer1Timer(Sender: TObject);begin begin StatusBar1.Panels1.Text := FormatDateTime( yyyy 年 mm 月 dd 日
32、hh:mm:ss , Now();end;end;end.unit YPXXUnit;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, Buttons, DB, DBTables, ExtCtrls;type TForm3 = class(TForm) Label1: TLabel; DataSource1: TDataSource; SpeedButton1: TSpeedButton; Label
33、13: TLabel; Label14: TLabel; GroupBox1: TGroupBox; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit
34、; DBEdit5: TDBEdit; DBEdit6: TDBEdit; DBEdit7: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBEdit11: TDBEdit; Edit1: TEdit; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; Table1: TTable; Table1BDEDesigner: TStringFi
35、eld; Table1BDEDesigner2: TStringField; Table1BDEDesigner3: TStringField; Table1BDEDesigner4: TStringField; Table1BDEDesigner5: TStringField; Table1BDEDesigner6: TStringField; Table1BDEDesigner7: TCurrencyField; Table1BDEDesigner8: TStringField; Table1BDEDesigner9: TStringField; Table1BDEDesigner10:
36、TStringField; Table1BDEDesigner11: TStringField; procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); private Private decla
37、rations public Public declarations end;var Form3: TForm3;implementation$R *.dfmprocedure TForm3.SpeedButton2Click(Sender: TObject);beginTable1.Append;end;procedure TForm3.SpeedButton3Click(Sender: TObject);beginTable1.Delete;end;procedure TForm3.SpeedButton4Click(Sender: TObject);beginTable1.Edit;Table1.Post;end;procedure TForm3.SpeedButton5Click(Sender: TObject);beginClose;end;procedure TForm3.SpeedButton1Click(Sender: TObject);begin With Table1 do begin Indexname:=YPMC; Open; SetKey; FieldByname(药品名称).Asstring:=Edit1.text; GotoNearest; if DBEdit1.TextEdit1.text then Showmess