课程设计医药销售管理系统.docx

上传人:小飞机 文档编号:2030910 上传时间:2023-01-02 格式:DOCX 页数:24 大小:206.12KB
返回 下载 相关 举报
课程设计医药销售管理系统.docx_第1页
第1页 / 共24页
课程设计医药销售管理系统.docx_第2页
第2页 / 共24页
课程设计医药销售管理系统.docx_第3页
第3页 / 共24页
课程设计医药销售管理系统.docx_第4页
第4页 / 共24页
课程设计医药销售管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计医药销售管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计医药销售管理系统.docx(24页珍藏版)》请在三一办公上搜索。

1、 成 绩09信计2011-2012(一)数据库原理及应用课程设计设计题目 医药销售管理系统 设计时间 2011.12.29至 2012.1.4 学生姓名 学生学号 所在班级 指导教师 医药销售管理系统1 可行性研究近年来,中国医药行业迅速发展,药店企业多业态经营,仓储式大型超市、中等规模超市、便利连锁综合发展。随着规模的扩大,传统的医药管理已经不能适应发展的需要,很难在激烈的竞争中生存。通过对从事医药产品的零售、批发等工作企业的深入调查,发现其业务主要包括企业药品销售、出入库管理、企业的财务、人事管理等。医药管理是一项琐碎、复杂而又十分细致的工作。手工进行企业日常的药品销售、出入库的工作,容易

2、出现“开空单”的现象,且呆账、错账时有发生,而且费时费力。本系统在设计中考虑和克服了上述问题,实现了企业管理工作的系统化、规范化和自动化。2 需求分析 2.1 任务概述根据医药管理系统的需求分析结果总结系统内实体及联系并绘制系统的局部ER图然后画出全局ER图。结合需求分析与概念结构设计把设计好的ER图转换为DBMS所支持的数据模型所符合的逻辑结构,运用SQL数据库管理系统建好表和相关约束2.1.1目标 要求本系统能够投入实际的使用并且满足基本的功能要求。要求具有较高的可靠性、安全性和易维护性,具有较高的可移植性。本系统实现了以下的功能:基本信息模块:包括药品信息、员工信息、客户信息、供应商信息

3、四个子模块。(1)进货管理模块:包括入库登记、入库登记查询二个子模块。(2)库房管理模块:包括库存查询、库存盘点、退货处理三个子模块。(3)销售管理模块:包括销售登记、销售退货、销售报表查询三个子模块。(4)财务统计模块:包括当日统计、当月统计二个子模块。(5)系统维护模块:包括数据安全管理、操作员管理、权限设置三个模块。说明:根据对现实中医药销售管理业务,将用户分为二类超级管理员(经理)、普通管理员(操作员)。2.1.2 运行环境 Windows 98/2000/XP/2003操作系统下,安装并配置软件Microsoft SQL Server 2000数据库管理系统。 2.2 数据需求 2.

4、2.1 数据字典(DD) 绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。数据项的DD表列举如下:表2.1 药品编号的数据字典 数 据 项系统名:医药销售管理系统 编号:I001 名称:药品编码 别名: 数据项值: 类型:字符型

5、长度:6个字节 取值范围:简述:每种药品都具有唯一的编号,它是某种药品的唯一标识符,每种药品都有唯一的编号,如“011976”通常用前两位数字表示入库的年份,中间两位表示类别,最后两位表示该药的序号。如果该类药数超过100种时,可用“0119A0”表示第100种药。修改记录:编写日期审核日期表2.2 药品名称 数 据 项系统名:医药销售管理系统 编号:I002 名称:药品名称 别名:数据项值: 类型:字符型 长度:32个字节 取值范围:简述:每种药品都具有唯一药品标识。修改记录:编写日期审核日期表2.3 密码 数 据 项系统名:医药销售管理系统 编号:I003 名称:售价 别名:数据项值: 类

6、型:数值型 长度:8个字节 取值范围:简述:每种药品都要设置一个销售价格。修改记录:编写日期审核日期2.2.2 数据库描述 使用SQL SERVER2000作为后台数据库,就可以行使基于网络连接的用户认证。从而给不同的子系统分配不同的数据库使用角色,让他们彼此之间使用的数据库隔离开来,以达到较高的安全性。 2.3 功能需求 2.3.1 功能划分 本系统实现了以下的功能:(1)基本信息模块(2)进货管理模块(3)库房管理模块(4)销售管理模块(5)财务统计模块(6)系统维护模块2.3.2 功能描述 (1)基本信息模块:包括药品信息、员工信息、客户信息、供应商信息四个子模块。(2)进货管理模块:包

7、括入库登记、入库登记查询二个子模块。(3)库房管理模块:包括库存查询、库存盘点、退货处理三个子模块。(4)销售管理模块:包括销售登记、销售退货、销售报表查询三个子模块。(5)财务统计模块:包括当日统计、当月统计二个子模块。(6)系统维护模块:包括数据安全管理、操作员管理、权限设置三个模块2.3.3 数据流图(DFD):数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。在数据流程图中可

8、以很清楚的看到数据的流向,药品信息的数据分别能够流向经理、员工和顾客。药品销售信息的信息也流经理。药品销售信息记录的是药品销售和退还的信息。顾客表信息从顾客流出又可以流回到顾客和员工、经理。2. 4 一致性需求 在医药销售管理系统相关的表之间,有较强的关联性,为了实现一致性的需求,我们在各个表之间建立起了一致性约束。 2. 5 完整性需求 根据医药销售系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障。 3 概要设计 3.1总体设计 3.1.1 系统结构示意图 医药销售管理系统结构示意图通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模

9、块,从而得到系统的功能模块结构图。3.2 接口设计 3.2.1 外部接口 通过一定的计算机硬件,建立服务器系统,管理员通过管理服务器系统,与用户进行交互,从而达到资源共享的目的,实现图书管理系统。 3.2.2 内部接口 程序内部需要共同的数据定义和描述,此系统是智能办公化管理系统的一个子系统,必须和这个系统的其他子系统统一数据定义等,才能使该系统性能达到最好,并且要尽量消除和其他子系统模块之间存在的数据冗余,才能使整个智能办公系统做到高效,方便。 3.3 E-R图 在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以

10、采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。各分E-R图说明如下: 经理E-R图: 供应商E-R图: 员工E-R图: 药品销售清单E-R图: 客户E-R图: 药品E-R图: 整体E-R图:4 逻辑设计4.1关系模式转换 药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期) 外码:药品类别代号、 供应商药品分类索引信息(药品类别代号,类别说明)员工信息(员工号,姓名,用户名,密码,职位,权限)客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)供应商信息(供应

11、商号,供应商名称,联系人,联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商,总额,销售员编码) 外码:销售员编码、药品编码4.2模式优化在上述关系模式中,每一个分量都是不可分割的数据项所以都符合第一范式;而且前四个关系模式都是单个属性作为码,没有任何非主属性对码部分函数依赖,在药品销售信息内虽由三个属性作为码,但也不存在非主性对码的部分函数依赖,所以上都符合第二范式;药品信息、药品类别索引、客户信息、供应商信息四个关系模式中都不存在非主属性对码的传递函数依赖,都属于第三范式。在员工信息关系模式中,员工是按照权限分类的,职位不同权限也不同,这样该

12、关系模式就存在了非主属性对码的传递依赖:职工号-职位,职位-权限,所以就将用员工信息分解为如下现个模式:员工信息(员工号,姓名,用户名,用户口令,职位)职位权限信息(职位,权限)本系统不考虑职工信息的管理,为了使销售员编号与销售员的职工号连系起来,并能通过职工姓名和职位来修改用户信息所以把员工的部分信息(职工号,姓名,职位)和经理(用户名,密码)合成了员工信息(员工号,姓名,用户名,密码,职位,权限)以便系统功能的实现,所以在此不采用模式分解。药品销售信息中有大量的数据冗余,表达不明确,将其分解为如下两个模式:药品销售主表(销售编码,销售日期,销售员编号,总金额)药品销售子表(销售编码,销售日

13、期,药品编码,药品名称,单价,数量,供应商)5数据库实现5.1 创建数据库表 药品信息(药品编号,药品名称,药品类别代号,售价,进价,库存量,供应商,有效期) 外码:药品类别代号、 供应商药品分类索引信息(药品类别代号,类别说明)员工信息(员工号,姓名,用户名,密码,职位,权限)客户信息(客户号,客户名称,联系人,联系方式,客户所在城市)供应商信息(供应商号,供应商名称,联系人,联系方式,供应商所在城市)药品销售信息(销售编码,销售日期,药品编码,药品名称,单价,数量,供应商,总额,销售员编码) 外码:销售员编码、药品编码5.2 创建视图由供应商信息表“FirmInfor”建立一个视图,该视图

14、由供应商信息表的所有列构成*/create view 供应商信息(供应商编码,供应商名称,联系人,联系电话,所在城市)asselect* from FirmInfor5.3 创建存储过程与触发器建立INSERT触发器/*建立INSERT触发器*/create trigger MedID_insert on MedIDfor insertas if(select count(*)from MedID_med,insertedwhere MedID_med.MedKindeCode=inserted.MedKindeCode)=0rollback transaction建立DELETE触发器 cr

15、eate trigger delete_MedID on MedIDfor deleteasselect* from MedIDdeclare MedKindeCode char(10) select MedKindeCode=MedKindeCode from deleteddelete from MedIDwhere MedKindeCode=MedKindeCodeselect*from MedID建立UPDATE触发器 create trigger MedID_update on MedIDfor updateasif update(MedKindeCode)beginraiserro

16、r(you can not modify this column,16,1)rollback transactionend6 测试7 课程设计总结本次课程设计调查从事医药产品的零售、批发等工作的企业,根据其具体情况,设计医药销售管理系统。加深了对数据库课程知识的理解。由于时间仓促,软件还有很多不足之处,如:药品信息查询部分不够完善,软件代码交冗余、效率不高等等,都相关功能缺乏认识造成的。在今后的学习中我们会加强理论的实践的结合,通过不断摸索来弥补自己在软件制作方面的差距。参考文献:1 苗雪兰,刘瑞新,宋歌.数据库系统原理及应用教程M.北京.机械工业出版社.20102 萨师煊,王 珊.数据库系统

17、概论M.北京:高等教育出版社.19973 刘真原.SQL SERVER2000培训教程M.北京:清华大学出版社.20034 李清国.Windows 2000+ ASP SQL Server案例教程M.上海: 中科多媒体电子出版社.20015 李晓黎.ASP+SQLSERVER网络应用系统开发指南M.北京.人民邮电出版社.2004附录:create database MedicalManagerSystem/*创建医药销售管理系统*/use MedicalManagerSystemcreate table MedID/*创建药品类别索引信息*/ (MedKindeCode char(10) co

18、nstraint MI_PRI PRIMARY KEY, KindExplanation varchar(12) NOT NULL)create table MedInfor/*创建药品信息表*/ (MedicineCode char(6) constraint M_PRIM PRIMARY KEY, MedicineName varchar(8) NOT NULL, MedKindeCode char(10) FOREIGN KEY REFERENCES MedID(MedKindeCode), Price Money, ListPrice Money, Number Int, FirmCo

19、de char(10) FOREIGN KEY REFERENCES FirmInfor(FirmCode), Userfulllife Datetime)create table GueInfor/*创建客户信息表*/ (GuestCode char(10) constraint G_PRIM PRIMARY KEY, GuestName varchar(16) NOT NULl, GLink varchar(12), GLinkTell varchar(11), City varchar(8)create table FirmInfor/*创建供应商信息表*/ (FirmCode char

20、(10) constraint F_PRIM PRIMARY KEY, FirmName varchar(16) NOT NULL, Link varchar(12), LinkTell varchar(11), City varchar(8)create table WorkInfor/*创建员工信息表*/ (WorkNo char(10) constraint W_PRIM PRIMARY KEY, Name varchar(12), UserRegName char(6) NOT NULL, Password char(10) NOT NULL, Position char(10), P

21、ower Int) create table sellMain/*创建医药销售主表*/ (SaleNo int constraint SM_PRIM PRIMARY KEY, WorkNo char(10) FOREIGN KEY REFERENCES WorkInfor(WorkNo), SaleDate DateTime, Amount Money)create table sellChild/*创建医药销售子表*/ (SaleNo int constraint SC_PRIM PRIMARY KEY, MedicineCode char(6) FOREIGN KEY REFERENCES

22、 MedInfor(MedicineCode), MedicineName varchar(32) NOT NULL, Price Money, Number Int, Uint char(8), Amount Money) /*插入数据的存储过程 */create proc MedID_procMedKindeCode char(10),KindExplanation varchar(12)asinsert into MedID (MedKindeCode,KindExplanation) values(MedKindeCode ,KindExplanation )exec MedID_pr

23、oc 0001,口腔溃疡exec MedID_proc 0002,感冒exec MedID_proc 0003,发烧exec MedID_proc 0004,拉肚子exec MedID_proc 0005 ,外伤create proc MedInfor_procMedicineCode char(6),MedicineName varchar(8),MedKindeCode char(10),Price money,ListPrice money,Number int,FirmCode char(10),Userfulllife Datetimeasinsert into MedInfor(M

24、edicineCode ,MedicineName,MedKindeCode,Price,ListPrice,Number,Supplicer,Userfulllife) values(MedicineCode,MedicineName,MedKindeCode,Price,ListPrice,Number,FirmCode,Userfulllife)exec MedInfor_proc 1001,板蓝根,0002,5,3,100,014,2010-12-5exec MedInfor_proc 2002,四季感康,0002,14,10.5,150,051,2010-12-12exec MedI

25、nfor_proc 2003,银黄颗粒,0002,12,8.8, 120 ,014,2012-10-6exec MedInfor_proc 2004,感冒清热软胶囊,0002,17,12, 150,015, 2011-11-1exec MedInfor_proc 3001,阿斯匹林,0003,15,11,100,014,2010-12-1exec MedInfor_proc 3002,布洛芬,0003,21,17.5,120,051,2010-6-5exec MedInfor_proc 4001,泻利挺,0004,25,20,120,015,2012-10-2exec MedInfor_pro

26、c 4002,诺氟沙星胶囊,0004,15,12,100,015,2012-9-16exec MedInfor_proc 5001,碘酒,0005,5,2.5,50 ,051,2012-10-12exec MedInfor_proc 5002,创口贴,0005,2,1,250,014,2015-5-1create proc GueInfor_procGuestCode char(10),GuestName varchar(16),GLink varchar(12),GLinkTell varchar(11),City varchar(8)asinsert into GueInfor(Guest

27、Code,GuestName,GLink,GLinkTell,City) values(GuestCode,GuestName,GLink,GLinkTell,City)exec GueInfor_proc 015112,zhangsan,xiaozhang,668401,jiaxingexec GueInfor_proc 065114,lisi,xiaofang,614425,yuyaoexec GueInfor_proc 052114,wangwu,xiaowu,659024,wenzhouexec GueInfor_proc 043115,zhaoliu,xiaowu,615874,sh

28、angyuexec GueInfor_proc 014221,awu,xiaozhang,651283,linanexec GueInfor_proc 025471,asha,xiaofang,691472,dongyangcreate proc FirmInfor_procFirmCode char(10),FirmName varchar(16),Link varchar(12),LinkTell varchar(11),City varchar(8)asinsert into FirmInfor(FirmCode,FirmName,Link,LinkTell,City)values(Fi

29、rmCode,FirmName,Link,LinkTell,City)exec FirmInfor_proc 015,yangshengtang,xiaotai,681472,huzhouexec FirmInfor_proc 014,baozhilin,zhangqing,658421,deqingexec FirmInfor_proc 051,pinmingdayaofang,oudan,65417,xiangshancreate proc WorkInfor_procWorkNo char(10),Name varchar(12),UserRegName char(6),Password

30、 char(10),Position char(10),Power Intasinsert into WorkInfor(WorkNo,Name,UserRegName,Password,Position,Power)values(WorkNo,Name,UserRegName,Password,Position,Power)exec WorkInfor_proc 075101,ZKL,zkl01,456789,jingli,exec WorkInfor_proc 075201,ZJM,zjm01,123789,dongshi,exec WorkInfor_proc 075215,WMX,wm

31、x05,147258,xiaomi,exec WorkInfor_proc 075120,ZZW,zzm20,123456,buzhang,create proc sellMain_procSaleNo int,WorkNo char(10),SaleDate DateTime,Amount Moneyasinsert into sellMain(SaleNo,WorkNo,SaleDate,Amount)values(SaleNo,WorkNo,SaleDate,Amount)exec sellMain_proc 12,075101,2009-1-1,1000exec sellMain_pr

32、oc 13,075201,2009-1-1,1500exec sellMain_proc 15,075215,2009-1-1,800exec sellMain_proc 20,075120,2009-1-1,1200alter proc sellChild_procSaleNo int,MedicineCode char(6),MedicineName varchar(32),Price Money,Number Int,Uint char(8),Amount Moneyasinsert into sellChild(SaleNo,MedicineCode,MedicineName,Pric

33、e,Number,Uint,Amount)values(SaleNo,MedicineCode,MedicineName,Price,Number,Uint,Amount)exec sellChild_proc 13,1001,板蓝根,5,20,bao,100exec sellChild_proc 15,2002,四季感康,14,15,he,210exec sellChild_proc 20,3001,阿斯匹林,15,20,he,300/*删除数据的存储过程*/ create proc MedID_delete_procMedKindeCode char(10)asdelete from Me

34、dId where MedKindeCode=MedKindeCodeexec MedID_delete_proc 0002create proc MedInfor_delete_procMedicineName varchar(8)asdelete from MedInfor where MedicineName=MedicineNamecreate proc GueInfor_delete_procGuestCode char(10) asdelete from GueInforwhere GuestCode=GuestCodecreate proc FirmInfor_delete_pr

35、ocFirmCode char(10)asdelete from FirmInforwhere FirmCode=FirmCodecreate proc WorkInfor_delete_procWorkNo char(10)asdelete from WorkInforwhere WorkNo=WorkNocreate proc sellMain_delete_procSaleNo intasdelete from sellMainwhere SaleNo=SaleNocreate proc sellChild_delete_procSaleNo intasdelete from sellC

36、hildwhere SaleNo=SaleNo/*修改数据的存储过程*/ create proc MedID_update_procMedKindeCode char(10),KindExplanation varchar(12),MedKindeCode1 char(10)asupdate MedID set MedKindeCode=MedKindeCode,KindExplanation=KindExplanation where MedKindeCode=MedKindeCode1exec MedID_update_proc 0002,感冒,0001create proc MedInf

37、or_update_procMedicineCode1 char(6),MedicineName varchar(8),MedKindeCode char(10),Price money,ListPrice money,Number int,FirmCode char(10),Userfulllife Datetime,MedicineCode char(6)asupdate MedInforset MedicineCode=MedicineCode1,MedicineName=MedicineName,MedKindeCode=MedKindeCode,Price=Price,ListPri

38、ce=ListPrice,Number=Number,FirmCode=FirmCode,Userfulllife=Userfulllife,MedicineCode=MedicineCodewhere MedKindeCode=MedKindeCode create proc GueInfor_update_procGuestCode1 char(10),GuestName varchar(16),GLink varchar(12),GLinkTell varchar(11),City varchar(8),GuestCode char(10)asupdate GueInforset Gue

39、stCode=GuestCode1,GuestName=GuestName,GLink=GLink,GLinkTell=GLinkTell,City=Citywhere GuestCode=GuestCodecreate proc FirmInfor_update_procFirmCode1 char(10),FirmName varchar(16),Link varchar(12),LinkTell varchar(11),City varchar(8),FirmCode char(10)asupdate FirmInforset FirmCode=FirmCode1,FirmName=Fi

40、rmName,Link=Link,LinkTell=LinkTell,City=Citywhere FirmCode=FirmCodecreate proc WorkInfor_update_procWorkNo1 char(10),Name varchar(12),UserRegName char(6),Password char(10),Position char(10),Power Int,WorkNo char(10)asupdate WorkInforset WorkNo=WorkNo1,Name=Name,UserRegName=UserRegName,Password=Passw

41、ord,Position=Position,Power=Powerwhere WorkNo=WorkNocreate proc sellMain_update_procSaleNo1 int,WorkNo char(10),SaleDate DateTime,Amount Money,SaleNo intasupdate sellMainset SaleNo=SaleNo1,WorkNo=WorkNo,SaleDate=SaleDate,Amount=Amountwhere SaleNo=SaleNocreate proc sellChild_update_procSaleNo1 int,Me

42、dicineCode char(6),MedicineName varchar(32),Price Money,Number Int,Uint char(8),Amount Money,SaleNo intasupdate sellChildset SaleNo=SaleNo1,MedicineCode=MedicineCode,MedicineName=MedicineName,Price=Price,Number=Number,Amount=Amountwhere SaleNo=SaleNo/*建立存储过程实现单表查询*/ /*建立名为“单表查询1”的存储过程,用来查询某种药品的信息*/ create proc 单表查询1MedicineCode char(6)ASselect *from MedInfor where MedicineC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号