数据库仓库设备管理课程设计.doc
- 格式:doc
- 大小:321.78 KB
- 文档页数:30
铜陵学院数学与计算机系《数据库课程设计》设计题目:仓库设备管理学生姓名:学号:专业班级:指导教师:时间:2011年6月7日至2011年6月10日指导教师对课程设计(论文)的评语(工作态度、任务完成情况、能力水平、设计说明书(论文)的撰写和图纸质量等):成绩指导教师签字年月日一、系统设计 (4)1、系统设计目标 (4)2、开发设计思想 (4)3、系统功能分析 (4)4、系统功能模块设计 (5)二、数据库设计 (5)1、数据库需求分析 (5)2、数据库概念结构设计 (6)3、数据库逻辑结构设计 (8)三、数据库结构的实现 (9)1.创建设备基本信息代码DEVICE_CODE (9)2.创建企业部门基本信息代码CLASS_NODE (9)3.创建供应商设备信息代码PROVIDER_NODE (10)4.创建设备入库表DEVICE_IN (10)5.创建设备出库表DEVICE_OUT (10)6.创建现有库存表DEVICE (11)7.创建部门需求表DEVICE_NEED (11)8.创建设备还库表DEVICE_RETURN (11)9.创建操作日志表HOWDO (12)四、系统实现 (12)4.1创建应用程序 (12)4.2操作日志模块的设计 (12)1、写日志模块 (12)2、读日志模块 (14)4.3登录窗口的设计和程序初始化 (16)4.4主对话框界面的设计 (17)4.5设备代码管理窗口的建立 (18)4.6库存信息管理窗口的创建 (21)4.7设备入库信息管理 (23)4.8设备入库窗口 (26)4.9帮助模块设计 (28)五、调试过程中的问题 (28)5.1问题和解决方案 (28)5.2系统改进方面 (29)六、课程设计总结 (29)一、系统设计1、系统设计目标由于计算机应用的日益普及,仓库设备管理的自动化是提高工作效率的有效途径,随着企业对仓库设备实行计算机管理,实现仓库设备管理系统势在必行。
系统开发的总统任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到仓库管理效率的目的。
2、开发设计思想在本系统的设计过程中,为了克服仓库管理信息处理量大的困难,满足计算机管理的需要,采取了下面的一些原则:1、统一各种原始单据的格式,统一帐目和报表的格式。
2、删除不必要的管理冗余,实现管理规范化、科学化。
3、程序代码标准化,软件统一化,确保软件的可维护性和实用性。
4、界面尽量简单化,做到实用、方便,尽量满足企业不同层次员工的需要。
5、建立操作日志,系统自动记录所进行的各种操作。
3、系统功能分析本例中的仓库管理系统需要完成的功能主要有以下几点:1.新的设备信息的录入;2.借出、归还、维修时对设备信息的修改;3.对报废设备信息的删除;4.按照一定的条件查询、统计符合条件的设备信息;查询功能至少应该包括设备基本信息的查询、按时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的设备等)查询、按时间点(借入时间,借出时间,归还时间)查询等,统计功能至少包括按时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的设备等)统计、按设备基本信息的统计等;5.对查询、统计的结果打印输出。
4、系统功能模块设计在系统功能分析的基础上,结合Visual C++程序编制的特点,得到如图所示的系统功能模块图。
二、数据库设计1、数据库需求分析在仔细调查企业仓库物资设备管理过程的基础上,得到本系统所处理的数据流程如图本实例设计的数据项和数据结构如下:1、设备代码信息,包括的数据项有设备号、设备名称。
2、现有库存信息,包括的数据项有设备、现有数目、总数目、最大库存和最小库存。
3、设备使用信息,包括的数据项有使用的设备、使用部门、数目、使用时间和出库时状态等。
4、设备采购信息,包括的数据项有采购的设备、采购员、供应商、采购数目和采购时间等。
5、设备归还信息,包括的数据项有归还设备、归还部门、归还数目、归还时间和经手人等。
6、设备需求信息,包括的数据项有需求的部门、需求设备、需求数目和需求时间等。
2、数据库概念结构设计本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体和需求实体,各实体的E-R图及其关系描述如下:库存实体E-R图入库实体E-R图出库实体E-R图企业部门需求实体E-R图还库实体E-R图计划采购实体E-R图实体和实体之间的关系E-R图3、数据库逻辑结构设计在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系。
仓库管理系统数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
三、数据库结构的实现1.创建设备基本信息代码device_codeCREATE TABLE “DMS”.device_code(code V ARCHAR2(6) NOTNULL,name VARCHAR2(20) NOTNULL,CONSTRANT code_code_pk PRIMARY KEY(code))TABLESPACE”USER_DATA”;2.创建企业部门基本信息代码class_nodeCREATE TABLE “DMS”.class_node(node V ARCHAR2(6) NOTNULL,Department VARCHAR2(20) NOTNULL,CONSTRANT node_node_pk PRIMARY KEY(node))TABLESPACE”USER_DATA”;3.创建供应商设备信息代码provider_nodeCREATE TABLE “DMS”.provider_node(node V ARCHAR2(6) NOTNULL,provider VARCHAR2(20)NOTNULL,teleno V ARCHAR2(10) NULL,Code V ARCHAR2(6) NOTNULL,CONSTRANT node_node_pk PRIMARY KEY(node))TABLESPACE”USER_DATA”;4.创建设备入库表device_inCREATE TABLE “DMS”.device_in(code VARCHAR2(6) NOT NULL,in_date DATE NOT NULL,provider VARCHAR2(20) NULL,in_number NUMBER(6) NULL,price NUMBER(6) NULL,buyer VARCHAR2(10) NULL,CONSTRAINT in_date_pk PRIMARY KEY(in_date))TABLESPACE “USER_DA TA”;5.创建设备出库表device_outCREATE TABLE “DMS”.device_out(code VARCHAR2(6) NOT NULL,department VARCHAR2(20) NULL,out_date DATE NULL,out_state NUMBER(1) NULL,out_penson V ARCHAR2(20) NULL,out_number NUMBER(6) NOT NULL,taker V ARCHAR2(10) NULL,usage VARCHAR2(20) NULL,CONSTRAINT out_date_pk PRIMARY KEY(out_date))TABLESPACE”USER_DATA”;6.创建现有库存表deviceCREATETABLE ”DMS”.device(code VARCHAR2(6) NULL,now_number NUMBER(6) NULL,high_number NUMBER(6) NULL,low_ number NUMBER(6) NULL,total_ number NUMBER(6) NULL,CONSTRAINT device_code_pk PRIMARY KEY(code))TABLESPACE”USER_DATA”;7.创建部门需求表device_needCREATE TABLE “DMS”,device_need(code VARCHAR2(10) NOT NULL,department VARCHAR2(10) NOT NULL,need_number NUMBER(6) NULL,begin_date DATE NULL,end_date DATE NULL,)TABLESPACE ”USER_DA TA”;8.创建设备还库表device_returnCREATE TABLE “DMS”,device_return(code VARHAR2(6) NOT NULL,department VARCHAR2(20) NULL,return_date DATE NULL,keeper VARCHAR2(10) NULL,return_number NUMBER(6) NULL,return_person V ARCHAR2(10) NULL,CONSTRAINT return_date_pk PRIMARY KEY (return_date) )TABLESPACE ”USER_DA TA”;9.创建操作日志表howdoCREATE TABLE “DMS”,howdo(do_user V ARCHAR2(10) NOT NULL,do_what V ARCHAR2(40) NOT NULL,do_date DATE NOT NULL,)TABLESPACE “USER_DA TA”;四、系统实现4.1创建应用程序(1)选择“FileNew”中的“新建项目”选项卡中“MFC AppWizard(exe)”,设置合适的目录和项目名,比如“E:\Project”目录下的“DMS”项目。
(2)创建一个对话框应用程序(“Dialog Based”),单击“Next”按钮。
(3)由于在这个项目中将要使用ADO,所以在MFC AppWizard的第二步,需要选中“Automation”选项,使应用程序能够支持自动化对象。
如图1-10所示(4)单击“Finish”按钮结束项目的创建。
主对话框名为CDMSDlg。
(5)项目创建完毕后,在头文件stdafx.h中加入下面4行:#import“c:\programfiles\commonfiles\system\ado\msado15.dll”no_namespace(”EOF”,”adoEOF”) #include”icrsint.h”inline void TESTHR(HRESULT x){if FAILED(x)_com_issue_error(x);};#define DATEFMT Cstring(“’%s”’)4.2操作日志模块的设计1、写日志模块图1-10 使应用程序支持自动化先定义一个名为ClogMngr的类//LogMngr.h//定义一个Log管理器class CLogMngr{public:CLogMngr();virtual ~CLogMngr();public:bool AddLog(LPCSTR op);void Setup(_ConnectionPtr cnnt, CString& user){m_DBCnt = cnnt;m_user = user;}protected:_ConnectionPtr m_DBCnt;CString m_user;};下面是ClogMngr::AddLog内部实现详细过程。