计算机毕业设计仓库管理系统Word格式文档下载.docx
- 文档编号:22439924
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:50
- 大小:251.66KB
计算机毕业设计仓库管理系统Word格式文档下载.docx
《计算机毕业设计仓库管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机毕业设计仓库管理系统Word格式文档下载.docx(50页珍藏版)》请在冰豆网上搜索。
本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体和需XX体,各实体的E-R图及其关系描述如下:
图1-3库存实体E-R图
图1-4入库实体E-R图
图1-5出库实体E-R图
图1-6部门需XX体E-R图
图1-7还库实体E-R图
图1-8计划采购实体E-R图
图1-9实体和实体之间的关系E-R图
2、3数据库逻辑结构设计
在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系。
仓库管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表1-1设备代码表device_code
列名
数据类型
可否为空
说明
code
VARCHAR2(6)
NOTNULL
设备号(主键)
name
VARCHAR2(20)
NULL
设备名称
表1-2设备入库表device_in
设备号
in_date
DATE
NOTNULL
入库时间(主键)
provider
供应商
teleno
VARCHAR2(10)
in_number
NUMBER(6)
NULL
入库数量
price
价格
buyer
采购员
表1-3设备出库表device_out
department
使用部门
out_date
出库时间(主键)
out_state
NUMBER
(1)
出库状态
out_person
经手人
out_number
出库数量
taker
领取人
usage
用途
表1-4现有库存表device
now_number
现有库存
high_number
最大库存
low_number
最少库存
total_number
总数
表1-5部门需求表device_need
部门名称
need_number
需求数量
begin_date
需求开始时间
end_date
需求结束时间
表1-6设备还库表device_return
return_date
还库时间(主键)
keeper
仓库管理员
return_number
归还数量
return_date
归还人
表1-7操作日志表howdo
do_user
操作员
do_what
VARCHAR2(40)
操作内容
do_date
操作时间
表1-8设备采购计划表device_wantbuy
total_number
总库存
max_number
buy_number
购买数量
buy_date
计划采购时间(主键)
3、数据库结构的实现
4、创建应用程序
(1)
(1)
选择“FileNew”中的“新建项目”选项卡中“MFCAppWizard(exe)”,设置合适的目录和项目名,比如“E:
\Project”目录下的“DMS”项目。
(2)
(2)
创建一个对话框应用程序(“DialogBased”),单击“Next”按钮。
(3)(3)
由于在这个项目中将要使用ADO,所以在MFCAppWizard的第二步,需要选中“Automation”选项,使应用程序能够支持自动化对象。
如图1-10所示
(4)(4)
单击“Finish”按钮结束项目的创建。
主对话框名为CDMSDlg。
(5)(5)
项目创建完毕后,在头文件stdafx.h中加入下面4行:
#import“c:
\programfiles\monfiles\system\ado\msado15.dll”no_namespace(”EOF”,”adoEOF”)
#include”icrsint.h”
inlinevoidTESTHR(HRESULTx){ifFAILED(x)__issue_error(x);
};
#defineDATEFMTCstring(“’%s”’)
5、操作日志模块的设计
(1)写日志模块
图1-10使应用程序支持自动化
先定义一个名为ClogMngr的类
//LogMngr.h
//定义一个Log管理器
classCLogMngr
{
public:
CLogMngr();
virtual~CLogMngr();
boolAddLog(LPCSTRop);
voidSetup(_ConnectionPtrnt,CString&
user)
{
m_DBt=nt;
m_user=user;
}
protected:
_ConnectionPtrm_DBt;
CStringm_user;
下面是ClogMngr:
:
AddLog内部实现详细过程。
//LogMngr.cpp
//向数据库中添加Log记录的代码。
boolCLogMngr:
:
AddLog(LPCSTRop)
CTimetm=CTime:
GetCurrentTime();
CStringsql_;
sql_.Format("
INSERTINTOHOWDO(do_user,do_what,do_date)VALUES('
%s'
'
%d-%d-%d%d:
%d:
%d'
)"
m_user,op,
tm.GetYear(),tm.GetMonth(),tm.GetDay(),
tm.GetHour(),tm.GetMinute(),tm.GetSecond());
_bstr_tsql=sql_;
try
m_DBt->
Execute(sql,NULL,adCmdText);
catch(__error&
e)
CStringError=e.ErrorMessage();
AfxMessageBox(e.ErrorMessage());
returnfalse;
}
returntrue;
}
(2)读日志模块
图1-11查看日志窗口
初始化界面代码如下:
BOOLCDlgViewLog:
OnInitDialog()
CDialog:
OnInitDialog();
m_list.InsertColumn(0,"
操作员"
);
m_list.InsertColumn(1,"
操作日期"
m_list.InsertColumn(2,"
操作内容"
RECTrect;
m_list.GetWindowRect(&
rect);
intwid=rect.right-rect.left;
m_list.SetColumnWidth(0,wid/3);
m_list.SetColumnWidth(1,wid/3);
m_list.SetColumnWidth(2,wid/3);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
RefreshData();
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
voidCDlgViewLog:
RefreshData()
m_list.DeleteAllItems();
m_list.SetRedraw(FALSE);
_bstr_tstrSQL("
SELECT*FROMHOWDO"
_RecordsetPtrMySet;
inti=0;
MySet.CreateInstance(__uuidof(Recordset));
MySet=m_DBt->
Execute(strSQL,NULL,adCmdText);
_variant_tHolder;
while(!
MySet->
adoEOF)
{
Holder=MySet->
GetCollect("
do_user"
if(Holder.vt!
=VT_NULL)
m_list.InsertItem(i,(char*)(_bstr_t)Holder);
Holder=MySet->
do_date"
if(Holder.vt!
m_list.SetItemText(i,1,(char*)(_bstr_t)Holder);
do_what"
m_list.SetItemText(i,2,(char*)(_bstr_t)Holder);
MySet->
MoveNext();
}
MySet->
Close();
m_list.SetRedraw(TRUE);
return;
m_list.SetRedraw(TRUE);
OnClickListVllog(NMHDR*pNMHDR,LRESULT*pResult)
inti=m_list.GetSelectionMark();
m_opr=m_list.GetItemText(i,0);
m_date=m_list.GetItemText(i,1);
m_op=m_list.GetItemText(i,2);
UpdateData(FALSE);
*pResult=0;
//DlgViewLog.cpp
//删除所有日志记录的函数。
OnBtnVlrmall()
TRUNCATETABLEHOWDO"
EndDialog(0);
6、登录窗口的设计和程序初始化
在CDMSDlg:
OnInitDialog()中加入这样一段代码:
//DMSDlg.cpp
//弹出登录界面
CDlgLogIndlg;
do
if(!
dlg.DoModal())
EndDialog(0);
}while(dlg.m_UsrName.GetLength()==0);
它的目的是弹出图1-12所示的登录对话框,并从中获得一个有效的用户名。
图1-12登录界面
得到有效用户名后,程序用如下代码:
//DMSDlg.cpp
//建立数据库连接,初始化成员变量
//登录数据库,若失败,则关闭程序。
m_DBt.CreateInstance(__uuidof(Connection));
CStringsql_;
sql_.Format("
DSN=DMS;
UID=%s;
PWD=%s"
dlg.m_UsrName,dlg.m_UsrPwd);
_bstr_tsql=sql_;
//建立连接
Open(sql,"
"
"
-1);
//初始化日志管理器
m_logMngr.Setup(m_DBt,dlg.m_UsrName);
//记录此次登录
m_logMngr.AddLog("
登录数据库"
AfxMessageBox(e.ErrorMessage());
this->
EndDialog(0);
在程序结束时关闭数据库连接。
//关闭数据库连接
voidCDMSDlg:
OnDestroy()
OnDestroy();
m_DBt->
7、主对话框界面的设计
登录完成后,显示出主对话框。
它的界面设计如图1-13所示,单击某个按钮就能弹出某个功能的界面。
图1-13主对话框界面
以其中“设备代码”按钮为例,说明它的事件处理函数。
代码如下:
//显示设备代码管理界面
OnBtnDevcode()
CDlgDevcodedlg;
dlg.Setup(m_DBt,&
m_logMngr);
this->
ShowWindow(SW_HIDE);
dlg.DoModal();
ShowWindow(SW_SHOW);
其他按钮的事件处理函数,代码与“设备代码”按钮的事件处理函数相同。
8、设备代码管理窗口的建立
对话框类名为CdlgDevcode设计如图1-14所示
图1-14设备代码管理窗口
//DlgDevcode.cpp
//对话框的初始化
BOOLCDlgDevcode:
//切分列表控件
设备号"
设备名"
m_list.SetColumnWidth(0,wid/2);
m_list.SetColumnWidth(1,wid/2);
//读取已有数据
//DlgDevcode.cpp
//消息映射部分
BEGIN_MESSAGE_MAP(CDlgDevcode,CDialog)
//{{AFX_MSG_MAP(CDlgDevcode)
ON_NOTIFY(NM_CLICK,IDC_LIST_DEVCODE,OnClickListDevcode)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//事件处理部分
voidCDlgDevcode:
OnClickListDevcode(NMHDR*pNMHDR,LRESULT*pResult)
m_code=m_list.GetItemText(i,0);
m_name=m_list.GetItemText(i,1);
其余程序的清单如下:
//DlgDevcode.cpp:
implementationfile
//
#include"
stdafx.h"
DMS.h"
DlgDevcode.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
////////////////////////////////////////////////////////////////////////////
//CDlgDevcodedialog
CDlgDevcode:
CDlgDevcode(CWnd*pParent/*=NULL*/)
:
CDialog(CDlgDevcode:
IDD,pParent)
//{{AFX_DATA_INIT(CDlgDevcode)
m_code=_T("
m_name=_T("
//}}AFX_DATA_INIT
m_DBt=NULL;
m_log=NULL;
DoDataExchange(CDataExchange*pDX)
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgDevcode)
DDX_Control(pDX,IDC_LIST_DEVCODE,m_list);
DDX_Text(pDX,IDC_EDIT_DCCODE,m_code);
DDX_Text(pDX,IDC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 毕业设计 仓库 管理 系统