整理药品进销存系统.docx

上传人:b****4 文档编号:12024846 上传时间:2023-04-16 格式:DOCX 页数:24 大小:76.40KB
下载 相关 举报
整理药品进销存系统.docx_第1页
第1页 / 共24页
整理药品进销存系统.docx_第2页
第2页 / 共24页
整理药品进销存系统.docx_第3页
第3页 / 共24页
整理药品进销存系统.docx_第4页
第4页 / 共24页
整理药品进销存系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

整理药品进销存系统.docx

《整理药品进销存系统.docx》由会员分享,可在线阅读,更多相关《整理药品进销存系统.docx(24页珍藏版)》请在冰豆网上搜索。

整理药品进销存系统.docx

整理药品进销存系统

药品进销存系统

编辑整理:

 

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(药品进销存系统)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为药品进销存系统的全部内容。

药品进销存系统

需求分析:

设计药品进销存系统并分为六个功能模块.主要用来管理一个小型的药品销售公司。

主要有药品的入库、出库,供货商的管理,,客户管理以及必要的库存检索。

系统用orcal管理数据库,通过MFC实现软件界面可视化,通过函数连接数据库,实现对数据库的基本操作,下面具体分析每个功能模块:

药品清单:

可以建立一张表用于存放药品相关信息。

药品的相关信息包括:

货号、药品名称、类型、进价、售价、生产日期以及有效期至。

可以添加一条记录到药品清单中,也可以删除一条记录,也可以显示药品清单中所有的记录项,实现对这张表的简单管理。

供货商清单:

可以建立一张表存放供货商的相关信息。

供货商清单的相关数据项包括:

供货商号、供货商名称、供货商地点、联系电话。

可以添加一条记录到供货商清单表中,也可以删除掉一条记录,也可以显示供货商清单中的所有记录,实现对供货商信息的简单管理。

客户清单:

可以建立一张表存放客户的相关信息。

客户清单的相关数据项包括:

客户编号、客户名称、地点、电话。

可以添加一条记录到客户清单表中,也可以删除掉一条记录,也可以显示客户清单中的所有记录,实现对客户信息的简单管理.

进货单:

当有药品入库时,进货单中要增加一条相关记录,以记录药品入库信息。

进货单包括的数据项有:

编号、供货商号、货号、仓库、进货数量以及进货日期,进货单中可以增加上一条记录,但是不可以删除一条记录,可以显示进货单中的所有记录,实现对进货单的相关管理.

售货单:

当有药品出库时,售货单中要增加一条相关记录,以记录药品出库信息。

售货单包括的数据项有:

编号、客户编号、货号、仓库、销售数量以及销售日期,售货单中可以增加上一条记录,但是不可以删除一条记录,可以显示售货单中的所有记录,实现对售货单的相关管理.

库存库:

当有药品入库时,库存库要增加相关记录或修改相关记录,当有药品出库时,库存库要修改相关记录或当出库不成功时给出相关警告信息。

库存库包括以下数据项:

货号、仓库、库存数量、库存单价、库存金额。

概念结构设计:

实体间E_R图

关系模型:

(带下划线的表示表的主键)

药品清单(货号,药品名称,类型,进价,售价,生产日期,有效期至)

供货商清单(供货商号,供货商名称,供货商地点,联系电话)

客户清单(客户编码,客户简称,地址,电话)

进货单(编号,供货商号,货号,仓库,进货数量,进货日期)

售货单(编号,客户编号,货号,仓库,销售数量,销售日期)

库存库(货号,仓库,库存数量,库存单价,库存金额)

建表:

增加药品清单表

createtable药品清单

货号varchar(15),

药品名称varchar(20),

类型varchar(6),

进价number(3,1),

售价number(3,1),

生产日期date,

有效期至date,

constraintPK_药品清单primarykey(货号)

);

增加供货商清单表

createtable供货商清单

供货商号varchar(15),

供货商名称varchar(20),

供货商地点varchar(20),

联系电话varchar(15),

constraintPK_供货商清单primarykey(供货商号)

);

增加客户清单表

createtable客户清单

客户编码varchar(15),

客户简称varchar(15),

地址varchar(15),

电话varchar(15),

constraintPK_客户清单PRIMARYKEY(客户编码)

);

增加进货单表

createtable进货单

编号varchar(15),

供货商号varchar(20),

货号varchar(20),

仓库varchar(10),

进货数量number(5),check(进货数量〉=0),

进货日期date,

constraintPK_进货单PRIMARYKEY(编号),

constraintFK_进货单_To_药品清单FOREIGNKEY(货号)

REFERENCES药品清单(货号),

constraintFK_进货单_To_供销商清单FOREIGNKEY(供货商号)

REFERENCES供货商清单(供货商号)

);

增加售货单表

 

createtable售货单

编号varchar(15),

客户编号varchar(20),

货号varchar(15),

仓库varchar(10),

销售数量number(5),

销售日期date,

constraintPK_售货单primarykey(编号),

constraintFK_售货单_To_药品清单FOREIGNKEY(货号)

REFERENCES药品清单(货号),

constraintFK_售货单_To_客户清单FOREIGNKEY(客户编号)

REFERENCES客户清单(客户编码)

);

增加库存库

createtable库存库

货号varchar(15),

仓库varchar(15),

库存数量number(5),

库存单价number(3,1),

库存金额number(7)

);

数据库实施与维护:

整个系统的操作过程:

首先进入登陆界面,用户名和密码都为空,直接单击确认即进入操作界面,单击六个模块中的任意一个按钮进入与其有关的操作界面,再选择所要进行的操作即可弹出相关的对话框,输入用户名和密码后就可实现一系列功能如增加记录,删除和显示记录。

在操作失误的时候系统会给出相应的提示和警告,以提示用户输入规范的数据和进行当前可以进行的操作。

系统优点就是实现了操作并运行成功了,缺点是没有一个人性化的操作界面,操作也让人感到困倦,总的原因还是道行不深,不愿花费太大的精力,属于注重实现,忽略细节的类型。

MFC的代码实现部分:

登陆界面实现代码

voidCMedicineProjectView:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CZhuyemianzhuyemian;

CADMINSETadminset;

CStringyonghuming;

CStringmima;

UpdateData(TRUE);

//CCzhuyemiandlg;

adminset.Open();

GetDlgItem(IDC_EDIT1)—>GetWindowText(yonghuming);

GetDlgItem(IDC_EDIT2)->GetWindowText(mima);

if(adminset.m_SA_NAME!

=yonghuming||adminset.m_SA_VALUE!

=mima)

MessageBox(”用户名或密码错误!

”);

else

zhuyemian.DoModal();

//zhuyemian。

EndDialog(IDD_MEDICINEPROJECT_FORM);

//EndDialog(GetSafeHwnd(),IDD_MEDICINEPROJECT_FORM);

}

主界面操作代码

voidCZhuyemian:

:

OnButton2()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CClientZhujiemianclientzhujiemian;

clientzhujiemian.DoModal();

voidCZhuyemian:

:

OnButton3()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CProviderzhujiemianproviderzhujiemian;

providerzhujiemian。

DoModal();

}

voidCZhuyemian:

:

OnButton1()

//TODO:

Addyourcontrolnotificationhandlercodehere

CMedicinezhujiemianmedicinezhujiemian;

medicinezhujiemian.DoModal();

voidCZhuyemian:

:

OnButton5()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CInlistzhujiemianinlistzhujiemian;

inlistzhujiemian。

DoModal();

}

voidCZhuyemian:

OnButton4()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

COutlistzhujiemianoutlistzhujiemian;

outlistzhujiemian。

DoModal();

}

voidCZhuyemian:

OnButton6()

//TODO:

Addyourcontrolnotificationhandlercodehere

CKucunkuzhujiemiankucunkuzhujiemian;

kucunkuzhujiemian.DoModal();

客户操作的实现代码(药品清单、供货商操作代码类似,在此省略)

//ClientZhujiemian.cpp:

implementationfile

//

#include”stdafx。

h”

#include”MedicineProject.h"

#include"ClientZhujiemian。

h”

#include”Clientitems。

h”

#include"ClientSet.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CClientZhujiemiandialog

 

CClientZhujiemian:

CClientZhujiemian(CWnd*pParent/*=NULL*/)

CDialog(CClientZhujiemian:

IDD,pParent)

{

//{{AFX_DATA_INIT(CClientZhujiemian)

//}}AFX_DATA_INIT

 

voidCClientZhujiemian:

DoDataExchange(CDataExchange*pDX)

CDialog:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CClientZhujiemian)

DDX_Control(pDX,IDC_LIST1,m_Listbox);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CClientZhujiemian,CDialog)

//{{AFX_MSG_MAP(CClientZhujiemian)

ON_BN_CLICKED(IDC_BUTTON1,OnButton1)

ON_BN_CLICKED(IDC_BUTTON3,OnButton3)

ON_BN_CLICKED(IDC_BUTTON2,OnButton2)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CClientZhujiemianmessagehandlers

voidCClientZhujiemian:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CClientitemsclientitems;

clientitems.DoModal();

}

voidCClientZhujiemian:

:

OnButton3()

//TODO:

Addyourcontrolnotificationhandlercodehere

m_Listbox。

Invalidate(FALSE);

intn=m_Listbox。

GetCount();

while(n>=0){

m_Listbox.DeleteString(n);

n--;

}

UpdateData(FALSE);

CClientSetclientshow;

m_Listbox。

SetHorizontalExtent(100);

clientshow。

Open();

clientshow.MoveFirst();

while(!

clientshow。

IsEOF()){

m_Listbox。

AddString(clientshow.m_column1+”"+clientshow。

m_column2+””+

clientshow。

m_column3+"”+clientshow.m_column4);

clientshow。

MoveNext();

}

clientshow。

MoveFirst();

clientshow。

Close();

UpdateData(TRUE);

m_Listbox.Invalidate(FALSE);

}

voidCClientZhujiemian:

OnButton2()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CClientSetclientdelete;

intn;

n=m_Listbox.GetCurSel()+1;

chars[10];

itoa(n,s,10);

MessageBox(s);

clientdelete.Open();

clientdelete。

MoveFirst();

if(n==1)

clientdelete。

Delete();

else{

while(n>1)

{

clientdelete。

MoveNext();

n=n-1;}

clientdelete.Delete();

clientdelete.Close();

进货单操作界面代码(售货单操作界面代码类似,省略)

voidCInlistzhujiemian:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CInlistitemsinlistitems;

inlistitems。

DoModal();

}

voidCInlistzhujiemian:

:

OnButton3()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_listbox.Invalidate(FALSE);

intn=m_listbox.GetCount();

while(n>=0){

m_listbox。

DeleteString(n);

n--;

}

UpdateData(FALSE);

CInlistSet1inlistshow;

CStringa,b;

inlistshow.Open();

inlistshow.MoveFirst();

m_listbox.SetHorizontalExtent(100);

while(!

inlistshow.IsEOF()){

a=(CString)inlistshow.m_column5;

b=inlistshow。

m_column6。

Format("%A%B%d%Y");

m_listbox。

AddString(inlistshow。

m_column1+""+inlistshow。

m_column2+"”+

inlistshow.m_column3+”"+inlistshow.m_column4+""+a+”"+b);

inlistshow.MoveNext();

}

inlistshow。

MoveFirst();

inlistshow。

Close();

UpdateData(TRUE);

m_listbox。

Invalidate(FALSE);

}

增加进货单相关信息代码

voidCInlistitems:

OnButton1()

//TODO:

Addyourcontrolnotificationhandlercodehere

CInlistSet1addrecordset;//定义进货单和库存库对象

CKucunkuset3addtokucunkuset;

CStringa,b,c,d;

CStringe;

addrecordset.Open();

addtokucunkuset。

Open();

e=(CString)m_inlistshuliang;

if(addrecordset.GetRecordCount())

addrecordset。

MoveLast();

GetDlgItem(IDC_EDIT1)—〉GetWindowText(a);//CString类型的变量a得到IDC_EDIT1控件中的内容

GetDlgItem(IDC_EDIT2)->GetWindowText(b);

GetDlgItem(IDC_EDIT3)-〉GetWindowText(c);

GetDlgItem(IDC_EDIT4)->GetWindowText(d);

GetDlgItem(IDC_EDIT5)->GetWindowText(e);

if(a。

IsEmpty()||b。

IsEmpty()||c。

IsEmpty()||d。

IsEmpty())

MessageBox("信息不能为空!

”);

else

{

addrecordset.AddNew();//和售货单不同,只要进货就要往库存库中做记录,而且库存库记录依赖于

addrecordset。

m_column1=a;//进货单相应记录的不同变化而出现不同情况,所以先插入进货单,再

addrecordset。

m_column2=b;//插入或变更库存库的记录

addrecordset。

m_column3=c;

addrecordset。

m_column4=d;

addrecordset。

m_column5=e;

addrecordset。

m_column6=m_inlistdate;

intn=0;//(n的值为什么一直是一呢,不,是反复无常啊!

)用n来得到库存库中的记录个数

charnn[2];

if(addtokucunkuset.GetRecordCount()){

addtokucunkuset。

MoveFirst();

while(!

addtokucunkuset.IsEOF()){

addtokucunkuset.MoveNext();

n++;}

n++;

}

itoa(n,nn,10);

MessageBox(nn);//验证n的大小

/*intn;//这种情况下n总是一

charnn[2];

n=addtokucunkuset。

GetRecordCount();

itoa(n,nn,10);

MessageBox(nn);*/

if(n>1)

addtokucunkuset.MoveFirst();

while(n>0){

if(addtokucunkuset。

m_column1==c&&addtokucunkuset.m_column2==d)

break;

else{

if(addtokucunkuset.IsEOF())

{n——;

break;}

else{

addtokucunkuset。

MoveNext();

n-—;}

if(n)//如果有相应的记录,做更改操作

floatprice,sum,sum0;

intnumber,number0;

CStringsumm;

CStringjiage;

CStringnumberr;

CMedicineSetmedicineset;

medicineset.Open();

medicineset.MoveFirst();

while(medicineset。

m_column1!

=c)

medicineset.MoveNext();

price=atof(medicineset。

m_column4);

number=atoi(e);

number0=atoi(addtokucunkuset。

m_column3);

number0=number0+number;

sum=price*number;

sum0=atof(addtokucunkuset.m_column5);

s

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

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1