药品管理系统的设计与实现毕业设计说明.docx
- 文档编号:9897775
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:61
- 大小:1.97MB
药品管理系统的设计与实现毕业设计说明.docx
《药品管理系统的设计与实现毕业设计说明.docx》由会员分享,可在线阅读,更多相关《药品管理系统的设计与实现毕业设计说明.docx(61页珍藏版)》请在冰豆网上搜索。
药品管理系统的设计与实现毕业设计说明
药品管理系统的设计与实现
专业:
计算机科学与技术学号:
:
指导老师:
[容摘要]
社会在进步,随之而来的还有各种疾病,随着人们生活水平的不断提高,人们越来越重视自己的健康,这加速了医药行业的发展。
在现在“看病难,看病贵”的社会背景下,很多工薪一族在面对一些小疾病的时候往往选择到附近的药店购买非处方药进行治疗。
在这种情况下,中小型便民药店越来越多,而中小型药店普遍存在药品管理混乱等问题,容易造成药品积压甚至失效,导致不必要的损失。
本药品管理系统主要围绕药品管理来操作,根据需求,系统主要实现药品库存管理、销售管理两大业务,为用户提供任意时间段的药品库存查询,设置药品库存下限查询。
同时还向用户提供了库存报表、销售报表、即将过期药品报表、利润报表等丰富的报表。
系统使用Microsoft公司的VisualStudio2010平台,采用C#语言,结合SQLServer2008数据库进行设计与实现。
系统经过测试基本达到了预期的目标,操作界面较友好,操作方法简单,可以用于中小型药店的药品管理。
[关键词]中小型药店;药品管理;C#
1绪论
1.1课题研究背景
药品管理系统可以为药店管理者提供充足的信息和快捷的查询手段。
但一直以来很多中小型药店都使用传统手工的方式进行管理,这种管理方式存在着许多缺点,如效率低、数据易丢失等,容易造成药品积压甚至失效。
另外时间一长,将产生大量的纸质版数据,这对于查询、修改都造成很大不便。
使用计算机对药品进行管理相对于手工管理而言,具有很多优点。
例如:
查询方便快捷、数据存储量大等。
这些优点能够极提高了药品管理的效率,也能更好地保证药品的效期安全,是对消费者负责的态度体现。
因此,开发一套适用于中小型药店的药品管理系统管理软件很有必要。
1.2系统开发的意义
中国现在的医药体系还不成熟,药品管理系统也不成熟。
在国有很多软件公司开发药品管理系统,基本采用进销存模式,系统功能比较完善,但在安全、简捷、性能以与人性化设计方面还存在不足。
2需求分析
2.1系统功能分析
药店的正常运转货源要得到保证,这就必须有着良好的进货入库管理功能,同时为了药品质量的保证,以与在未知药品销量时可以保证药店不至于积存大量的药品,对一些积存的药品进行合理的退货。
作为药店盈利机构,药店的销售是非常重要,同时要求透明化,药店的入库单、销售单、退货信息都必须合理的记录统计。
药品的存货是药店进行正常运行的保证同时合理的库存量更好的应对某些药品需求量的变化,同时记录药品出库信息可以更好的反应药品的销售信息。
在仓库中药品的储藏出现的损失,通过记录的信息可以精准核对药品量的信息。
同时在仓库储存中应设置药品的库存下限,以便与时反映药品的信息,为药品进货提供可靠依据。
[
药品,是药店的资源。
药品的管理直接影响药店的经营,药品管理做得不好会引起药品的混乱,容易导致药品失效,造成损失。
为了维护消费者的利益和药店本身的信誉以与给药店创造更好的效益,本系统应具有以下功能:
1.良好的人机界面。
2.药品入库与调价管理。
3.药品销售与退货管理。
4.药品报损管理。
5.完善的数据查询。
6.丰富的报表。
7.数据导出到Excel、Word、PDF功能。
2.2系统用例分析
根据系统功能分析,可以将系统细分出药品信息管理、药店信息管理、修改密码、入库登记、药品调价、销售登记、药品退货、药品效期查询、药品报损、收入统计、支出统计、利润统计以与用户管理13个子模块,管理员应为药店负责人,从药品入库到销售以与中间的业务,管理员都可以使用,收银员可以使用部分功能,管理员用例图如图1所示,收银员用例图如图2所示。
图1管理员用例图
图2收银员用例图
2.3系统E-R图
图3系统E-R图
2.4运行环境
该系统采用了Client/Server模式软件构造技术,页面系统采用VisualStudio2010开发,数据库采用SQLServer2008作为数据库系统,系统平台为Windows7。
1.MicrosoftVisualStudio2010集成化程度高,控件丰富,开发人员可以直接将各种控件拖放到视图设计器,由软件自动生成控件设计以与窗体布局的设计代码,窗体视图设计更加方便高效
2.MicrosoftSQLServer2008能方便地建立数据库对象,并且SQLServer2008结合VisualStudio2010和C#一起使用,能方便地对数据库对象进行数据操作。
2.5可行性分析
2.5.1技术可行性
1.药店管理的主线是药品,药品从入库到出库以与其它操作即从药店流向消费者的过程,中间不用经过其他部门,没有繁琐的流程。
加上到药店的了解,对于药品管理系统的管理流程和管理容都易于掌握。
2.作为计算机专业的学生,在平时的课程设计的基础上,加上自己的练习以与同学们的帮助,在系统实现上也是可行的。
3.计算机可以安装本系统所需的开发环境SQLServer2008和Visualstudio2010。
2.5.2经济可行性
1.本系统主要面向中小型药店,处理的数据量不是很大,属于小型的系统,只需要购买打印机、电脑即可投入使用,成本低。
2.系统投入使用后可以很好地对药品进行管理,在给药店创造更好的效益的同时有效避免药品积压甚至失效的问题,减少药店损失。
3系统概要设计
3.1功能模块设计
根据系统的需求分析可以将药品管理系统分为如下几个大模块:
登录模块基本信息模块、入库管理模块、销售管理模块,以与库存管理模块、利润统计模块和关于我们模块。
整个系统以药品的主线,入库管理模块是把药品信息存入库存表,其它药品管理相关模块是从库存表取得数据进行业务处理,系统模块结构图如图3所示。
图4系统功能模块结构图
3.2概念结构设计
3.2.1实体属性图
1.药品实体属性图,如图5所示。
药品的属性包括药品的基本信息,如药品编号、药品名称、拼音、药品规格、计量单位、库存低限等。
其中药品编号可以唯一标识药品。
图5药品实体属性图
2.药店实体属性图,如图6所示。
药店实体包含药店名称、固定、手机、药店地址4个基本属性,作为药店标识并用于打印小票。
图6药店实体属性图
3.药品入库单实体属性图,如图7所示。
药品与一般商品稍有不同,很多属性都关系到药品的安全,所以入库单包含很多属性,如入库编号、拼音码、药品名称、药品规格、计量单位、批号、批准文号、入库单价、入库数量、入库总额、入库时间、入库单位、生产厂家、生产日期、失效日期、操作员、备注等17个基本属性。
其中入库编号可唯一标识药品入库信息。
图7药品入库单实体属性图
4.药品调价单实体属性图,如图8所示。
药品调价单包含调价编号、入库编号、拼音码、药品名称、原单价、新单价、经办人、调价时间等基本属性。
图8药品调价单实体属性图
5.药品销售单实体属性图,如图9所示。
药品销售单包含销售编号、入库编号、拼音码、药品名称、药品规格、计量单位、生产厂家、销售时间、销售单价、销售数量、销售总额、操作员等基本属性。
图9药品销售单实体属性图
6.药品退货单实体属性图,如图10所示。
药品退货单包含退货编号、入库编号、拼音码、药品名称、进货单位、进货单价、退货原因、退货时间、退货数量、退货总额、操作员等基本属性。
图10药品退货单实体属性图
7.药品报损单实体属性图,如图11所示。
药品报损单包含报损编号、入库编号、拼音码、药品名称、进货单价、报损原因、报损时间、报损数量、报损总额、操作员等基本属性。
图11药品报损单实体属性图
8.用户实体属性图,如图12所示。
用户实体包含用户编号、用户名、密码、用户、是否管理员5个基本属性。
图12用户实体属性图
3.3数据表设计
本系统使用SQLServer2008作为后台数据库,在SQLServer2008中创建基本表对象。
表对象要根据逻辑设计阶段设计的关系模式来创建。
本系统创建的SQL数据库名称为DrugStore。
包含以下9表。
1.Login(用户信息表)
用户信息表用于用户信息,该表的结构如表1所示。
表1用户信息表
字段名
数据类型
长度
备注
说明
u_id
int
4
Notnull
用户编号(自动编号)
username
varchar
50
主键
用户名
pw
varchar
50
Notnull
密码
realname
varchar
50
Notnull
用户
admin
varchar
50
Notnull
是否管理员
2.Store(药店信息表)
药店信息表用于存储药店的信息,该表的结构如表2所示。
表2药店信息表
字段名
数据类型
长度
备注
说明
storename
varchar
50
Notnull
药店名称
tel
varchar
50
Notnull
固定
mobile
varchar
50
手机
address
varchar
50
Notnull
药店地址
3.Drug(药品信息表)
药品信息表用于药品的基本信息,该表的结构如表3所示。
表3药品信息表
字段名
数据类型
长度
备注
说明
id
int
4
主键
药品编号(自动编号)
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
spec
varchar
50
Notnull
药品规格
unit
varchar
50
Notnull
计量单位
lowwarning
int
4
Notnull
库存低限
4.Ruku(入库信息表)
入库信息表用于存储药品进货入库的各项信息,该表的结构如表4所示。
表4入库信息表
字段名
数据类型
长度
备注
说明
ID
varchar
20
主键
入库编号(自动编号)
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
pihao
varchar
50
Notnull
批号
pizhunwenhao
varchar
50
Notnull
批准文号
spec
varchar
50
Notnull
药品规格
unit
varchar
50
Notnull
计量单位
amount
int
4
Notnull
进货数量
inprice
decimal(18,2)
Notnull
进货单价
allprice
decimal(18,2)
Notnull
进货总额
in_time
datetime
Notnull
进货时间
in_from
varchar
50
Notnull
进货单位
factory
varchar
50
Notnull
生产厂家
producedate
datetime
Notnull
生产日期
usefuldate
datetime
Notnull
失效日期
in_by
varchar
50
Notnull
操作员
remark
varchar
50
备注
5.Kucun(库存信息表)
库存信息表用于存储药品库存的各项信息,该表的结构如表5所示。
表5库存信息表
字段名
数据类型
长度
备注
说明
ID
varchar
20
主键
入库编号(自动编号)
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
factory
varchar
50
Notnull
生产厂家
spec
varchar
50
Notnull
药品规格
unit
varchar
50
Notnull
计量单位
amount
int
4
Notnull
入库数量
pihao
varchar
50
Notnull
批号
pizhunwenhao
varchar
50
Notnull
批准文号
lowwarning
int
4
Notnull
库存低限
inprice
decimal(18,2)
Notnull
进货单价
sellprice
decimal(18,2)
Notnull
销售单价
in_time
datetime
Notnull
入库时间
producedate
datetime
Notnull
生产日期
usefuldate
datetime
Notnull
失效日期
in_by
varchar
50
Notnull
操作员
6.Sell(销售信息表)
销售信息表用于存储售出药品的信息,该表的结构如表6所示。
表6销售信息表
字段名
数据类型
长度
备注
说明
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
factory
varchar
50
Notnull
生产厂家
sellprice
decimal(18,2)
Notnull
销售单价
sellamount
int
4
Notnull
销售数量
allprice
decimal(18,2)
Notnull
销售总额
s_id
varchar
20
Notnull
销售编号(自动编号)
selltime
datetime
Notnull
销售时间
sell_by
varchar
50
Notnull
操作员
ID
varchar
20
Notnull
入库编号(自动编号)
spec
varchar
50
Notnull
药品规格
unit
varchar
50
Notnull
计量单位
7.ReturnG(退货信息表)
退货信息表用于存储退货的药品的各项信息,该表的结构如表7所示。
表7退货信息表
字段名
数据类型
长度
备注
说明
r_id
varchar
20
主键
退货编号(自动编号)
ramount
int
4
Notnull
退货数量
totalprice
decimal(18,2)
Notnull
退货总额
rtime
datetime
Notnull
退货时间
return_by
varchar
50
Notnull
操作员
reason
varchar
50
Notnull
退货原因
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
ID
varchar
20
Notnull
入库编号(自动编号)
inprice
decimal(18,2)
Notnull
入库单价
factory
varchar
50
Notnull
进货单位
8.Breakage(报损信息表)
报损信息表用于存储已报损的药品的各项信息,该表的结构如表8所示。
表8报损信息表
字段名
数据类型
长度
备注
说明
b_id
varchar
20
主键
报损编号
bamount
int
4
Notnull
报损数量
btime
datetime
Notnull
报损时间
breakage_by
varchar
50
Notnull
操作员
reason
varchar
50
Notnull
报损原因
ID
varchar
20
Notnull
入库编号
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品编号
inprice
decimal(18,2)
Notnull
入库单价
allprice
decimal(18,2)
Notnull
报损总额
9.Adjustprice(调价信息表)
调价信息表用于存储药品调价的记录,该表的结构如表9所示。
表9调价信息表
字段名
数据类型
长度
备注
说明
adjust_id
varchar
20
主键
调价编号
ID
varchar
20
Notnull
入库编号
pinyinma
varchar
50
Notnull
拼音码
drugname
varchar
50
Notnull
药品名称
oldprice
decimal(18,2)
Notnull
原单价
newprice
decimal(18,2)
Notnull
新单价
adjust_time
datetime
Notnull
调价时间
adjust_by
varchar
50
Notnull
操作员
4系统详细设计与实现
4.1功能模块的具体实现
4.1.1登录模块
为保证信息安全,设置必须进行识别用户才可进入系统主界面。
用户名与密码其中任一个错误都会有相应的提示信息,并自动清空用户名和密码。
只有两者全部正确后方可进入管理系统主界面。
用户登录模块流程图如图13所示。
图13用户登录模块流程图
登录界面如图14所示。
图14登录界面
主要代码如下:
publicstaticstringflagUsername=null;
publicstaticstringflagPassword=null;
publicstaticstringflagAdmin=null;
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
stringstrUsn=this.userName.Text;
stringstrPsw=this.txtpsw.Text;
try
{
SqlConnectionsc=newSqlConnection("server=.\SQLEXPRESS;database=DrugStore;Trusted_Connection=true");
stringsqlstring="select*fromLoginwhereusername='"+strUsn+"'";
SqlCommandcmd=newSqlCommand(sqlstring,sc);
sc.Open();
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{
if(dr["pw"].ToString()==strPsw)
{
this.DialogResult=DialogResult.OK;
flagUsername=strUsn;//取得登录用户名
flagPassword=strPsw;//取得登录密码,用于修改密码时对比
flagAdmin=dr["admin"].ToString();//取得用户类型,是否管理员
}
else
{
MessageBox.Show("密码错误!
");
}
dr.Dispose();
sc.Close();
}
else
{
if(userName.Text=="")
{
MessageBox.Show("请输入用户名");
}
else
{
MessageBox.Show("该用户名不存在");
}
dr.Dispose();
sc.Close();
}
}
catch(Exceptionex)
{MessageBox.Show("点击按钮事件异常:
\n"+ex.ToString());}
this.userName.Text=null;
this.txtpsw.Text=null;}
4.1.2系统主界面设计
系统主界面中,点击左侧的不同按钮会在右侧的panel容器中显示不同的窗体,点击按钮时,会判断是否有权限,并且文字颜色会以红色突出显示,十分美观友好,系统功能都有很明显的入口。
单击各功能按钮,会进入相应子窗口。
如图15所示。
图15系统主界面
把窗体显示到panel容器的代码(以利润统计按钮为例):
privatevoidbtnReport_Click(objectsender,EventArgse)//只有管理员有权限
{
if(frm_Login.flagAdmin=="管理员")
{
if(panel3.Tag!
=null&&panel3.TagisForm)
{
((Form)panel3.Tag).Close();
}
frm_Reportform5=newfrm_Report();
form5.TopLevel=false;
form5.Parent=panel3;
panel3.Tag=form5;
form5.Show();
}
else
{
MessageBox.Show("没有这个权限!
");
}
}
按钮的文字颜色会以红色突出显示的代码(以利润统计按钮为例):
privatevoidbtnReport_Enter(objectsender,EventArgse)
{
this.label6.Visible=true;
btnReport.ForeColor=Color.Red;
}
privatevoidbtnReport_Leave(objectsender,EventArgse)
{
this.label6.Visible=false;
btnReport.ForeColor=Color.Blue;
}
4.1.3用户管理模块
用户管理仅限管理员使用。
用户管理模块中,在添加用户时,需填写用户名和以与选择用户类型,用户编号自动生成,初始密码自动设为123456,如果添加的用户名已存在,则提示用户名已存在,不能添加,否则添加成功。
另外,选定某一用户后,右键菜单有删除用户、重置密码、设为管理员、设为收银员四个选项,每个操作都设有相应提醒,以防误操作。
用户管理模块流程图如图16所示。
图16用户管理模块流程图
用户管理界面如图17所示。
图17用户管理界面
主要代码如下:
priv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 药品 管理 系统 设计 实现 毕业设计 说明