1、 药品进销存系统需求分析:设计药品进销存系统并分为六个功能模块。主要用来管理一个小型的药品销售公司。主要有药品的入库、出库,供货商的管理,客户管理以及必要的库存检索。系统用orcal管理数据库,通过MFC实现软件界面可视化,通过函数连接数据库,实现对数据库的基本操作,下面具体分析每个功能模块:药品清单:可以建立一张表用于存放药品相关信息。药品的相关信息包括:货号、药品名称、类型、进价、售价、生产日期以及有效期至。可以添加一条记录到药品清单中,也可以删除一条记录,也可以显示药品清单中所有的记录项,实现对这张表的简单管理。供货商清单:可以建立一张表存放供货商的相关信息。供货商清单的相关数据项包括:
2、供货商号、供货商名称、供货商地点、联系电话。可以添加一条记录到供货商清单表中,也可以删除掉一条记录,也可以显示供货商清单中的所有记录,实现对供货商信息的简单管理。客户清单:可以建立一张表存放客户的相关信息。客户清单的相关数据项包括:客户编号、客户名称、地点、电话。可以添加一条记录到客户清单表中,也可以删除掉一条记录,也可以显示客户清单中的所有记录,实现对客户信息的简单管理。进货单:当有药品入库时,进货单中要增加一条相关记录,以记录药品入库信息。进货单包括的数据项有:编号、供货商号、货号、仓库、进货数量以及进货日期,进货单中可以增加上一条记录,但是不可以删除一条记录,可以显示进货单中的所有记录,
3、实现对进货单的相关管理。 售货单:当有药品出库时,售货单中要增加一条相关记录,以记录药品出库信息。售货单包括的数据项有:编号、客户编号、货号、仓库、销售数量以及销售日期,售货单中可以增加上一条记录,但是不可以删除一条记录,可以显示售货单中的所有记录,实现对售货单的相关管理。库存库: 当有药品入库时,库存库要增加相关记录或修改相关记录,当有药品出库时,库存库要修改相关记录或当出库不成功时给出相关警告信息。库存库包括以下数据项:货号、仓库、库存数量、库存单价、库存金额。概念结构设计:实体间E_R图关系模型:(带下划线的表示表的主键)药品清单(货号,药品名称,类型,进价,售价,生产日期,有效期至)供
4、货商清单(供货商号,供货商名称,供货商地点,联系电话)客户清单(客户编码,客户简称,地址,电话)进货单(编号,供货商号,货号,仓库,进货数量,进货日期)售货单(编号,客户编号,货号,仓库,销售数量,销售日期)库存库(货号,仓库,库存数量,库存单价,库存金额)建表:增加药品清单表create table 药品清单( 货号 varchar(15), 药品名称 varchar(20), 类型 varchar(6), 进价 number(3,1), 售价 number(3,1), 生产日期 date, 有效期至 date, constraint PK_药品清单 primary key (货号);增加供
5、货商清单表create table 供货商清单( 供货商号 varchar(15), 供货商名称 varchar(20), 供货商地点 varchar(20), 联系电话 varchar(15), constraint PK_供货商清单 primary key(供货商号);增加客户清单表create table 客户清单( 客户编码 varchar(15), 客户简称 varchar(15), 地址 varchar(15), 电话 varchar(15), constraint PK_客户清单 PRIMARY KEY (客户编码);增加进货单表create table 进货单( 编号 varc
6、har(15), 供货商号 varchar(20), 货号 varchar(20), 仓库 varchar(10), 进货数量 number(5),check(进货数量=0), 进货日期 date, constraint PK_进货单 PRIMARY KEY (编号), constraint FK_进货单_To_药品清单 FOREIGN KEY (货号) REFERENCES 药品清单(货号), constraint FK_进货单_To_供销商清单 FOREIGN KEY (供货商号) REFERENCES 供货商清单(供货商号);增加售货单表create table 售货单( 编号 varc
7、har(15), 客户编号 varchar(20), 货号 varchar(15), 仓库 varchar(10), 销售数量 number(5), 销售日期 date, constraint PK_售货单 primary key (编号), constraint FK_售货单_To_药品清单 FOREIGN KEY (货号) REFERENCES 药品清单(货号), constraint FK_售货单_To_客户清单 FOREIGN KEY (客户编号) REFERENCES 客户清单(客户编码);增加库存库create table 库存库( 货号 varchar(15), 仓库 varch
8、ar(15), 库存数量 number(5), 库存单价 number(3,1), 库存金额 number(7);数据库实施与维护:整个系统的操作过程:首先进入登陆界面,用户名和密码都为空,直接单击确认即进入操作界面,单击六个模块中的任意一个按钮进入与其有关的操作界面,再选择所要进行的操作即可弹出相关的对话框,输入用户名和密码后就可实现一系列功能如增加记录,删除和显示记录。在操作失误的时候系统会给出相应的提示和警告,以提示用户输入规范的数据和进行当前可以进行的操作。系统优点就是实现了操作并运行成功了,缺点是没有一个人性化的操作界面,操作也让人感到困倦,总的原因还是道行不深,不愿花费太大的精力,
9、属于注重实现,忽略细节的类型。MFC的代码实现部分:登陆界面实现代码void CMedicineProjectView:OnButton1() / TODO: Add your control notification handler code hereCZhuyemian zhuyemian;CADMINSET adminset;CString yonghuming;CString mima;UpdateData(TRUE);/CCzhuyemian dlg;adminset.Open();GetDlgItem(IDC_EDIT1)-GetWindowText(yonghuming);Get
10、DlgItem(IDC_EDIT2)-GetWindowText(mima);if(adminset.m_SA_NAME!=yonghuming|adminset.m_SA_VALUE!=mima)MessageBox(用户名或密码错误!);elsezhuyemian.DoModal();/zhuyemian.EndDialog(IDD_MEDICINEPROJECT_FORM);/EndDialog(GetSafeHwnd( ),IDD_MEDICINEPROJECT_FORM);主界面操作代码void CZhuyemian:OnButton2() / TODO: Add your cont
11、rol notification handler code hereCClientZhujiemian clientzhujiemian;clientzhujiemian.DoModal();void CZhuyemian:OnButton3() / TODO: Add your control notification handler code hereCProviderzhujiemian providerzhujiemian;providerzhujiemian.DoModal();void CZhuyemian:OnButton1() / TODO: Add your control
12、notification handler code hereCMedicinezhujiemian medicinezhujiemian;medicinezhujiemian.DoModal();void CZhuyemian:OnButton5() / TODO: Add your control notification handler code hereCInlistzhujiemian inlistzhujiemian;inlistzhujiemian.DoModal();void CZhuyemian:OnButton4() / TODO: Add your control noti
13、fication handler code hereCOutlistzhujiemian outlistzhujiemian;outlistzhujiemian.DoModal();void CZhuyemian:OnButton6() / TODO: Add your control notification handler code hereCKucunkuzhujiemian kucunkuzhujiemian;kucunkuzhujiemian.DoModal();客户操作的实现代码(药品清单、供货商操作代码类似,在此省略)/ ClientZhujiemian.cpp : implementation file/#include stdafx.h#include MedicineProject.h#include ClientZhujiemian.