ImageVerifierCode 换一换
格式:DOCX , 页数:50 ,大小:251.66KB ,
资源ID:22439924      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22439924.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机毕业设计仓库管理系统Word格式文档下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机毕业设计仓库管理系统Word格式文档下载.docx

1、本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体和需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 列名数据类型可否为空说明codeV

2、ARCHAR2(6)NOTNULL设备号(主键)nameVARCHAR2(20)NULL设备名称表1-2 设备入库表device_in设备号in_dateDATE NOTNULL入库时间(主键)provider供应商 telenoVARCHAR2(10)in_numberNUMBER(6) NULL入库数量 price价格 buyer采购员表1-3 设备出库表device_outdepartment使用部门out_date出库时间(主键)out_stateNUMBER(1)出库状态out_person经手人out _number出库数量 taker领取人 usage用途表1-4 现有库存表de

3、vicenow_number现有库存high _number最大库存low _number最少库存total _number总数表1-5 部门需求表device_need部门名称need _number需求数量begin_date需求开始时间end_date需求结束时间表1-6 设备还库表device_returnreturn_date还库时间(主键) keeper仓库管理员 return_ number归还数量 return_date归还人表1-7 操作日志表 howdodo_user操作员do_whatVARCHAR2(40)操作内容do_date操作时间表1-8 设备采购计划表devic

4、e_wantbuytotal_number总库存max_numberbuy_number购买数量buy_date计划采购时间(主键)3、数据库结构的实现4、创建应用程序(1)(1) 选择“FileNew”中的“新建项目”选项卡中“MFC AppWizard(exe)”,设置合适的目录和项目名,比如“E:Project”目录下的“DMS”项目。(2)(2) 创建一个对话框应用程序(“Dialog Based”),单击“Next”按钮。(3)(3) 由于在这个项目中将要使用ADO,所以在MFC AppWizard的第二步,需要选中“Automation”选项,使应用程序能够支持自动化对象。如图1-

5、10所示(4)(4) 单击“Finish”按钮结束项目的创建。主对话框名为CDMSDlg。(5)(5) 项目创建完毕后,在头文件stdafx.h中加入下面4行:#import“c:programfilesmonfilessystemadomsado15.dll”no_namespace(”EOF”,”adoEOF”)#include”icrsint.h”inline void TESTHR(HRESULT x)if FAILED(x)_issue_error(x);#define DATEFMT Cstring(“%s”)5、操作日志模块的设计(1)写日志模块图1-10 使应用程序支持自动化先

6、定义一个名为ClogMngr的类/LogMngr.h/定义一个Log管理器class CLogMngr public: CLogMngr(); virtual CLogMngr(); bool AddLog(LPCSTR op); void Setup(_ConnectionPtr nt, CString& user) m_DBt = nt; m_user = user; protected: _ConnectionPtr m_DBt; CString m_user;下面是ClogMngr:AddLog内部实现详细过程。/LogMngr.cpp/向数据库中添加Log记录的代码。bool CLo

7、gMngr:AddLog(LPCSTR op) CTime tm = CTime:GetCurrentTime(); CString sql_; sql_.Format(INSERT INTO HOWDO (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_t sql = sql_; try m_DBt-Execute(sql

8、,NULL,adCmdText); catch(_error& e) CString Error = e.ErrorMessage(); AfxMessageBox(e.ErrorMessage(); return false; return true;(2)读日志模块图1-11 查看日志窗口初始化界面代码如下:BOOL CDlgViewLog:OnInitDialog() CDialog:OnInitDialog(); m_list.InsertColumn(0,操作员); m_list.InsertColumn(1,操作日期 m_list.InsertColumn(2,操作内容 RECT

9、rect; m_list.GetWindowRect(&rect); int wid = 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(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPT

10、ION: OCX Property Pages should return FALSEvoid CDlgViewLog:RefreshData() m_list.DeleteAllItems(); m_list.SetRedraw(FALSE); _bstr_t strSQL(SELECT * FROM HOWDO _RecordsetPtr MySet; int i = 0; MySet.CreateInstance(_uuidof(Recordset); MySet = m_DBt-Execute(strSQL,NULL,adCmdText); _variant_t Holder; whi

11、le(!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

12、_list.SetRedraw(TRUE); return; m_list.SetRedraw(TRUE);OnClickListVllog(NMHDR* pNMHDR, LRESULT* pResult) int i = 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/删除所有日志记录的函数。On

13、BtnVlrmall() TRUNCATE TABLE HOWDO EndDialog(0);6、登录窗口的设计和程序初始化在CDMSDlg:OnInitDialog()中加入这样一段代码:/DMSDlg.cpp/弹出登录界面CDlgLogIn dlg; do if (!dlg.DoModal() EndDialog(0); while (dlg.m_UsrName.GetLength()=0);它的目的是弹出图1-12所示的登录对话框,并从中获得一个有效的用户名。图1-12 登录界面得到有效用户名后,程序用如下代码:/ DMSDlg.cpp/建立数据库连接,初始化成员变量/登录数据库,若失败

14、,则关闭程序。 m_DBt.CreateInstance(_uuidof(Connection); CString sql_; sql_.Format(DSN=DMS;UID=%s;PWD=%s,dlg.m_UsrName,dlg.m_UsrPwd); _bstr_t sql=sql_;/建立连接Open(sql,-1);/初始化日志管理器 m_logMngr.Setup(m_DBt,dlg.m_UsrName);/记录此次登录 m_logMngr.AddLog(登录数据库 AfxMessageBox(e.ErrorMessage(); this-EndDialog(0);在程序结束时关闭数据

15、库连接。/关闭数据库连接void CDMSDlg:OnDestroy() OnDestroy(); m_DBt-7、主对话框界面的设计登录完成后,显示出主对话框。它的界面设计如图1-13所示,单击某个按钮就能弹出某个功能的界面。图1-13 主对话框界面以其中“设备代码”按钮为例,说明它的事件处理函数。代码如下:/显示设备代码管理界面OnBtnDevcode() CDlgDevcode dlg; dlg.Setup(m_DBt,&m_logMngr); this-ShowWindow(SW_HIDE); dlg.DoModal();ShowWindow(SW_SHOW);其他按钮的事件处理函数,

16、代码与“设备代码”按钮的事件处理函数相同。8、设备代码管理窗口的建立对话框类名为CdlgDevcode设计如图1-14所示图1-14 设备代码管理窗口/DlgDevcode.cpp/对话框的初始化BOOL CDlgDevcode:/切分列表控件设备号设备名 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

17、_CLICK, IDC_LIST_DEVCODE, OnClickListDevcode) /AFX_MSG_MAPEND_MESSAGE_MAP()/事件处理部分void CDlgDevcode:OnClickListDevcode(NMHDR* pNMHDR, LRESULT* pResult) m_code = m_list.GetItemText(i,0); m_name = m_list.GetItemText(i,1);其余程序的清单如下:/ DlgDevcode.cpp : implementation file/#include stdafx.hDMS.hDlgDevcode.

18、h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CDlgDevcode dialogCDlgDevcode: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

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

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