东方药店进存销系统开发.docx
- 文档编号:12027935
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:30
- 大小:380.87KB
东方药店进存销系统开发.docx
《东方药店进存销系统开发.docx》由会员分享,可在线阅读,更多相关《东方药店进存销系统开发.docx(30页珍藏版)》请在冰豆网上搜索。
东方药店进存销系统开发
辽宁工业大学
信息系统课程设计(论文)
题目:
东方药店进存销系统开发
院(系):
专业班级:
学号:
学生姓名:
指导教师:
教师职称:
起止时间:
2011.11.21—2011.12.23
课程设计(论文)任务及评语
院(系):
管理学院教研室:
信息管理与信息系统
学号
学生姓名
专业班级
课程设计(论文)题目
东方药店进存销系统开发
课程设计(论文)任务
1.东方药店进存销系统规划。
2.东方药店进存销系统分析。
3.东方药店进存销系统设计。
4.东方药店进存销系统实施。
5.东方药店进存销系统测试。
指导教师评语及成绩
成绩:
指导教师签字:
2011年12月23日
目录
第一章东方药店进存销系统规划1
1.1系统初步调查与可行性分析1
1.1.1系统初步调查1
1.1.2可行性分析1
1.2开发进度2
1.3资源配置2
第二章东方药店进存销系统分析3
2.1组织结构和功能分析3
2.1.1东方药店系统组织结构3
2.1.2功能分析3
2.2业务流程分析4
2.3数据流程图5
2.4数据字典6
第三章东方药店进存销系统设计8
3.1系统功能结构图8
3.1.1系统总体功能结构图8
3.1.2系统功能模块设计8
3.2系统计算机流程图10
3.3代码设计11
3.4数据设计11
3.4.1概念结构设计11
3.4.2表与表之间的关系13
3.4.3表的物理结构设计13
3.5系统界面设计14
第四章东方药店系统实施17
4.1主要程序代码17
4.2系统测试19
4.3测试报告20
参考文献21
第一章东方药店进存销系统规划
1.1系统初步调查与可行性分析
1.1.1系统初步调查
东方药店是一家中小型医药品销售企业,原始的手工记录以及企业管理方面的问题,导致分散的、不连贯的客户信息使管理者或相关人员无法看到客户的全部资料及相关资料,信息的分散使得产生的结果也无法保持一致和完整性,造成企业在进销存管理上存在一些问题,如无法统计客户信息(对客户分类极为混乱),对销售人员工作过程掌握不够,无法准确快速考核销售人员业绩,销售及市场流程不清晰,流程变动较大,无结构的统一销售及市场情况报表,基本销售及市场费用统计不完备,销售人员辞职时失单现象严重等等。
由于药品种类繁多,流通环节繁杂,强化对药库管理尤为重要,它.要控制药品品种、数量、质量,防止过期失效,减少浪费,达到增收节支的目的。
对药房、药库实行计算机管理,可使药房、药库的工作人员可及时了解库房药品进、出、存的动态变化,既做到为顾客及时提供所需药品不使药品销售断货,又有效减少盲目进货造成药品积压现象,药品的信息化管理不仅可加快药品周转,而且可大大提高工作人员的工作效率和管理质量,也更加有利于及时、安全、优质地的保证企业需求。
因此企业管理者十分重视药品信息管理的开发应用。
1.1.2可行性分析
(1)经济可行性分析
本系统开发简单但要耗去一定的时间,所用的开发工具和软件都差不多是免费的。
而且,由于系统能够在未来较长的一段时期内稳定地发挥作用,这对于医药行业的办公自动化管理,节省医药行业的人力、物力资源等都有很大的帮助。
由此可见在,开发此系统在经济上是完全可行的。
(2)操作可行性分析
如今的计算机已经走进千家万户,硬件成本的下降,导致计算机购买成本的降低.我的这套系统是利用自己的计算机加微软的集成开发环境PowerBuilder9.0作为软件的开发平台,使开发出来的系统有友好的用户界面、有良好的安全性设置、有详细的操作说明书,这样更使各类用户很快地掌握系统的使用方法,操作友好因此在操作上是可行的.
(3)技术可行性分析
从目前IT业界比较流行的数据库开发、管理软件来看,对于比较简单的中小型数据库,PB和Windows2000Server的结合无疑是在实际应用中较为成功的一种解决方案。
为用户提供了业界软件开发一直坚持的非常友好、操作简单的用户界面、完善强大的数据库操作功能和简洁明了的数据库接口。
所以技术实行起来相对会容易。
(4)系统的安全性分析
安全系统的需求定义:
1)系统提供用户登录功能(进行用户身份验证),并且用户名和用户编号是唯一的。
用户在登录界面上填写任意的用户名和用户密码(中文或英文);系统提供登录过程中的出错处理机制和操作成功处理机制。
2)系统对非法用户具有警告功能,例:
单用户表中不存在的用户企图登录系统,系统应该要求用户输入合法用户名和用户密码,并警告用户的操作。
(5)结论
通过以上可行性分析,本系统开发可行。
1.2开发进度
本课设时间为两周,具体开发进度如下:
表1.1
时间(天)
工作
要求
1
确定选题
规定时间内完成选题
3
完成系统规划
对项目具体规划
3
对系统分析
确定具体需求
6
系统设计
文档与系统同步
1
系统实施
对子系统测试
1.3资源配置
硬件配置:
(1)CPU:
酷睿双核。
(2)内存最底128M以上。
(3)剩余硬盘1G以上。
软件需求:
(1)操作系统:
windowsxp;
(2)开发平台:
powerbuilder9.0。
第二章东方药店进存销系统分析
2.1组织结构和功能分析
2.1.1东方药店系统组织结构
东方药店是一家中小型的药品销售企业,其组织形式如(图1):
图2.1组织结构图
2.1.2功能分析
药店的销售管理系统功能上以实际的业务操作为基础,相应设计出几个功能,具体有如下几个:
1、系统管理模块
(1)用户密码修改。
修改已经登陆的用户的密码。
(2)添加删除用户。
该功能只有管理员才有权限使用。
2、基本信息管理模块
(1)药品信息。
(2)供应商信息。
(3)员工信息。
用户可以通过这个模块对药品信息、供应商信息和员工信息进行查询增加、删除、修改操作,而作为员工的用户只能查看员工信息,只有管理员才有权限对其进行增加、删除、修改操作。
3、库存管理模块
(1)入库登记。
日常业务操作,登记后日后可以查询统计。
(2)入库登记查询。
对进药单进行查询,统计信息,包括总额。
(3)入库退货登记。
日常业务操作,登记后日后可以查询统计。
(4)入库退货登记查询。
对进药退货单进行查询,统计信息,包括总额。
(5)库存查询。
查看库存中药品的库存情况。
(6)失效药品查询。
查看失效药品的信息,以及对预定日期失效药品的查询。
4、销售管理模块
(1)药品价格调整。
当市场上药品价格改变时,可以对某类药品的价格进行调整。
(2)买药单登记。
日常业务操作,登记后日后可以查询统计。
(3)买药单查询。
对买药单进行查询,统计信息,包括总额。
(4)买药退货单。
登记日常业务操作,登记后日后可以查询统计。
(5)买药退货单查询。
对买药退货单进行查询,统计信息,包括总额。
5、财务管理模块
(1)当日结账。
(2)当日报表。
(3)当月结账。
(4)当月报表。
列出某个时间的进药总额、进药退货总额、卖药总额和买药退货总额的列表,统计销售总额。
用户可以通过报表查看某时间段的销售情况。
6、系统修改和维护模块
(1)数据备份。
(2)数据恢复。
通过数据备份和数据恢复能有效的保证系统的正常运行和药店的正常销售。
7、帮助模块,对系统的使用提供帮助。
(1)关于。
关于系统版本的信息。
(2)帮助。
对系统中出现的问题的帮助信息。
2.2业务流程分析
用户可以使用管理者预先设置好的用户名和密码登陆到本系统。
并使用本系统进行相应业务操作、产品查询和信息反馈等操作。
在登录系统时,系统会把用户所输入的用户名与数据库中的进行检验。
进入系统后用户有权限的功能可用,无权限的功能则不可用。
图2为该系统的业务流程图。
图2.2业务流程图
2.3数据流程图
数据流图(DFD,dataflowdiagram)是描述数据处理过程的有力工具。
数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
本系统数据流程图如图3和图4所示。
图2.3顶层数据流
图2.4一层数据流程图
2.4数据字典
(1)数据流定义
名称:
库存管理
编号:
f1
何处使用/如何使用:
统计处理(输入)/操作员(输出)
描述:
盘点库存药品信息
(2)数据存储定义
数据存储名称:
库存商品
编号:
D1
输入:
药品的基本信息
输出:
统计处理,查询药品
(3)数据元素
名称:
员工编号
别名:
yg_id
说明:
企业员工编码
数值类型:
离散
类型:
数字
长度:
8
(4)处理过程
名称:
库存管理
说明:
通知采购部门及时补货
输入:
D1->P3
输出:
p3->D1,P3->D2
处理:
接受采购部门和销售部门传来的信息,及时更新库存,并生成缺货单要求采购部门及时采购。
(5)外部实体
名称:
采购员
说明:
企业的采购部门下属员工
输入数据:
p1->采购员
输出数据:
采购员->P1,采购员->P5
第三章东方药店进存销系统设计
3.1系统功能结构图
根据面向对象和3层结构的设计思想,可得出如图所示的系统功能结构设计图。
在功能模块示意图的树状结构中,每一个叶节点都是一个最小的功能模块。
每一个功能模块都需要针对不同的表完成相同的数据库操作,即添加,修改,删除及查询显示记录信息。
设计系统要具有以下性质:
1).可维护性由于信息系统需求的不确定性,系统需求可能会随着环境的变化而不断变化,因此,就必须对系统功能进行完善和调整,为此,就要对程序进行补充或修改。
此外,由于计算机软硬件的更新换代也需要对程序进行相应的升级。
2).可靠性:
程序应具有较好的容错能力,意外情况下应便于处理,不至产生意外的操作,从而造成严重损失,致使学生教师信息的丢失。
3).可理解性:
程序不仅要求逻辑正确,计算机能够执行,而且应当层次清楚,便于阅读及修改。
3.1.1系统总体功能结构图
系统总统功能结构图显示系统的框架和功能。
(见图3.1)
3.1.2系统功能模块设计
划分模块的目的主要是降低系统的开发难度,增加系统的可维护性。
系统功能模块化就是将系统划分为子系统,子系统划分为若干模块,大模块再划分为小模块的过程。
系统功能模块设计是使整个系统能基本实现销售药品信息的添加、删除、修改、查询等管理功能,能让企业管理者更直观的了解药品销售状况,以做出相应的审核决策。
管理信息系统(MIS)就是要对这些资源建立正确的数据库,并进行信息的收集、传送、存储、编制成各种凭证、报表、台帐、图形等信息,同时对这些信息进行维护,通过药品进销存系统对药品的进货,销售方便的管理。
并能对财务更加精确的统计。
本系统共包括六大模块,分别是销售管理模块,进货管理模块,库房管理模块,财务管理模块,基础信息管理模块,系统管理模块。
每个模块的功能如下:
(1)销售管理模块功能:
1)实现销售/退货的药品信息的登记;
2)实现销售/退货药品信息的查询和添加;
3)实现销售药品信息报表的生成和打印;
(2).进货管理模块功能:
1)实现采购药品的入库/退货的信息的登记;
2)实现采购药品的入库/退货的信息的查询和添加;
3)实现入库药品信息报表的生成和打印;
(3)库房管理模块功能:
1)实现对仓库里药品信息的查询;
2)实现对库存药品的盘点;
3)实现库存药品信息报表的生成和打印;
图3.1系统功能结构图
4)财务管理模块功能:
(1)实现当日/当月销售药品的结帐;
(2)实现当日/当月销售药品的财务信息报表的生成和打印;
5)基础信息管理模块功能:
(1)实现对药品基础信息的查询,添加,删除,修改;
(2)实现对员工信息的查询,添加,删除,修改;
(3)实现对客户信息的查询,添加,删除,修改;
(4)实现对供应商信息的查询,添加,删除,修改;
6)系统管理模块功能:
(1)实现操作员的添加,修改密码;
(2)实现对操作员权限的确定和修改;
(3)实现数据库文件的备份和恢复;
3.2系统计算机流程图
图3.2系统流程图
3.3代码设计
编码设计是数据库系统开发的前提条件,是系统不可缺少的重要内容。
编码是指与原来名称对应的编号、符号或记号。
它是进行信息交换、处理、传输和实现信息资源共享的关键。
编码也用于指定数据的处理方法、区别数据类型并指定计算机处理的内容等。
本系统内部信息编码采用了统一的编码方式,如下所示:
(1)单据编号
单据编号为单据类别、系统当前日期和单据顺序。
如J1218001表示今年12月18日第一笔进货单。
(2)商品编号
商品编号为字母“yp”、2为类别码和4位数字编码的组合。
如yp010001表示01类第0001种药品。
(3)职员编号
职员编号为字母“yg”、2为部门码和4位数字编码的组合。
如yg010001表示01部门的0001号员工。
3.4数据设计
根据需求分析,一个基本的药品进销售系统数据库中大致包括十多张表,分别存放相应子功能的数据信息,其中销售药品清单,入库药品清单,供应商清单和客户清单都是关键表格,用于存放基础的数据信息。
3.4.1概念结构设计
根据对系统的需求分析,得到以下实体,可采取E-R图的形式表现数据库的设计。
员工实体图:
图3.3
药品实体图:
图3.4
客户实体图:
图3.5
供应商实体图:
图3.6
系统总体E-R图:
图3.7
3.4.2表与表之间的关系
图3.8
3.4.3表的物理结构设计
(以药品表和员工表为例)
(1).药品信息表(yp)
表3.1药品表
字段名
意义
类型
宽度
NULL
PrimaryKey
yp_id
药品编号
char
8
No
√
yp_mc
药品名称
varchar
20
Yes
yp_gg
规格
varchar
40
Yes
yp_cd
产地
varChar
60
Yes
yp_dw
单位
Char
10
Yes
yp_scrq
生产日期
datetime
8
No
yp_bzq
保质期
datetime
8
No
yp_jinjia
进价
Money
8
No
yp_lsj
零售价
money
8
No
gys_mc
供应商名称
Varchar
60
Yes
yp_bz
供应商名称
Varchar
60
Yes
(2).员工信息表(yg)
表3.2员工表
字段名
意义
类型
宽度
NULL
PrimaryKey
yg_id
员工编号
char
8
No
√
yg_name
员工姓名
varchar
20
Yes
yg_csrq
出生日期
datetime
8
Yes
yg_xb
性别
Char
2
Yes
yg_whcd
文化程度
Char
10
Yes
yg_sfzh
身份证号
Char
20
Yes
yg_dh
电话
Char
20
Yes
yg_xj
薪金
Money
8
Yes
yg_pyrq
聘用日期
datetime
8
Yes
3.5系统界面设计
(1)登录窗口
只有用户类型、用户名和密码填写正确才能进入主系统窗口,若三次填写错误,则登录窗口自动关闭,用户无法进入主系统窗口。
图3.9登录界面
(2)进药单录入窗口
点击添加,系统自动生成一个空的进药单,当用户填写完药品编号和进货数量后,按回车,一张完整的进药单完成了。
点击保存,完成进药单的录入及库存的修改。
图3.10入库登记
(3)买药单录入窗口
填写客户所要购买的药品编号或药品名称,点击查看,窗口就会显示该药品的库存量及单价,用户确认药品库存量大于客户所需的数量后,点击添加,系统自动生成一个空的买药单,填写客户购买数量后,按回车,一张完整的买药单完成了。
点击保存,完成买药单的录入及库存的修改。
图3.11销售登记
录入后可以点击查看标签查看。
图3.12销售登记查看
(4)报表界面
当日结帐界面如(图3.13)
第四章东方药店系统实施
4.1主要程序代码
添加按钮:
stringls_yp_id1
/*******声明药品表药品编号的游标********/
declarecursor1cursorforselectdistinctyp_idfromyp;
ddlb_1.reset()
opencursor1;
fetchcursor1into:
ls_yp_id1;
dowhilesqlca.sqlcode=0
ddlb_1.additem(ls_yp_id1)
fetchcursor1into:
ls_yp_id1;
loop
closecursor1;
ddlb_1.setfocus()
ls_jy_date=date(today())
/***********实现入库票号自增功能************/
selectmax(jy_id)
into:
ls_jy_id
fromjinyao;
ifls_jy_id=""orisnull(ls_jy_id)then
ls_jy_id="jy000001"
elsels_jy_id="jy"+string(integer(right(ls_jy_id,6))+1,"000000")
endifll_row=dw_1.insertrow(0)
dw_1.scrolltorow(ll_row)
dw_1.setitem(ll_row,"jy_id",ls_jy_id)
dw_1.setitem(ll_row,"jy_date",ls_jy_date)
dw_1.setfocus()
dw_1.setcolumn('user_name')
sle_1.text=czy//czy为全局变量,指待当前用户的姓名
录入按钮:
ls_yp_id=trim(ddlb_1.text)
ls_user_name=sle_1.text
ls_jy_shuliang=integer(sle_2.text)
/******读取数据库的数据,并将相应的数据显示在dw_1中*******/
selectyp_mc,yp.yp_gg,yp_dw,yp_jinjia,gys_mc,yp_bz,yp_scrq,yp_bzq
Into:
ls_yp_mc,:
ls_yp_gg,:
ls_yp_dw,:
ls_yp_jinjia,:
ls_gys_mc,:
ls_yp_bz,:
ls_yp_scrq,:
ls_yp_bzq
fromyp
whereyp_id=:
ls_yp_id;
dw_1.setitem(ll_row,14,ls_user_name)
dw_1.setitem(ll_row,2,ls_yp_id)
dw_1.setitem(ll_row,3,ls_yp_mc)
dw_1.setitem(ll_row,4,ls_yp_gg)
dw_1.setitem(ll_row,5,ls_yp_dw)
dw_1.setitem(ll_row,9,ls_yp_jinjia)
dw_1.setitem(ll_row,6,ls_jy_shuliang)
dw_1.setitem(ll_row,10,ls_gys_mc)
dw_1.setitem(ll_row,11,ls_yp_bz)
dw_1.setitem(ll_row,7,ls_yp_scrq)
dw_1.setitem(ll_row,8,ls_yp_bzq)
ls_jy_zongjia=ls_yp_jinjia*ls_jy_shuliang
dw_1.setitem(ll_row,12,ls_jy_zongjia)
保存按钮:
/***************保存进药单**************/
Ifls_jy_id=""orisnull(ls_jy_id)orls_yp_id=""orls_user_name=""orsle_2.text=""then
messagebox("提示","信息不全,请填写完整")
else
ifdw_1.update()<>1then
rollback;messagebox("提示","进药表信息保存失败!
",stopsign!
)return;elsecommit;selectgys_idinto:
ls_gys_idfromgyswheregys_mc=:
ls_gys_mc;
stringkc_yp_idselectyp_id,kc_shulianginto:
kc_yp_id,:
ls_kc_shuliangfromkucunwhereyp_id=:
ls_yp_id;/****若库中并没有其存货,则把相关药品信息插入到库中****/ifkc_yp_id=""then
insertintokucunvalues(:
ls_yp_id,:
ls_yp_mc,:
ls_gys_id,:
ls_gys_mc,:
ls_jy_shuliang,0,:
ls_jy_zongjia);
elseintegernew_kc_shuliang
ew_kc_shuliang=ls_kc_shuliang+ls_jy_shuliang
updatekucun
setkc_shuliang=:
new_kc_shuliang,
kc_zongjia=kc_zongjia+:
ls_jy_zongjia
whereyp_id=:
ls_yp_id;endif
ifsqlca.sqlcode<>0then
rollback;messagebox("提示","库存信息保存失败!
")elsecommit;messagebox("提示","库存信息保存成功!
")endifendif
endif
4.2系统测试
软件测试是一个很关键甚至是最关键的步骤,软件测试是对软件规格说明.软件设计和编码的最后复审,目的是为了在软件产品交付之前尽可能发现软件中潜伏的错误。
用以黑盒测试为主、白盒测试为辅的测试方法,检查该系统各模块的输入、输出系统等是否符合需求分析的要求,并检查系统对异常情况的承受能力。
药品进销存系统时,每增加一个构件,都要进行白盒测试。
通过白盒测试后,才把该构件集成到系统中。
当所有的构件都集成完毕,再用黑盒测试。
通过了黑盒测试后,才完成软件开发[4]。
在测试过程中,首先需要对各子单元过程进行测试。
各子单元过程的测试必须先在程序设计员调试并编译通过后才能进行。
在各子单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东方 药店 进存销 系统 开发