




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仓库管理系统 仓库管理是整个物资供应管理系统的核心。本实例着重讲解仓库管理模块,给出数据库设计和程序实现过程。 1、系统设计1、1系统设计目标系统开发的总统任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到仓库管理效率的目的。1、2开发设计思想在本系统的设计过程中,为了克服仓库管理信息处理量大的困难,满足计算机管理的需要,采取了下面的一些原则: 统一各种原始单据的格式,统一帐目和报表的格式。 删除不必要的
2、管理冗余,实现管理规范化、科学化。 程序代码标准化,软件统一化,确保软件的可维护性和实用性。 界面尽量简单化,做到实用、方便,尽量满足企业不同层次员工的需要。 建立操作日志,系统自动记录所进行的各种操作。1、3系统功能分析 本例中的仓库管理系统需要完成的功能主要有以下几点:
3、60; 仓库管理各种信息的输入,包括入库、出库、还库、需求信息的输入等。 仓库管理各种信息的查询、修改和维护。 设备采购报表的生成。 在库存管理中加入最高储备和最低储备字段,对仓库中的物资设备实现监控和报警。 企业各部门的物资需求的管理。
4、160; 操作日志的管理。 仓库管理系统的使用帮助。1、4系统功能模块设计 在系统功能分析的基础上,结合Visual C+程序编制的特点,得到如图1-1所示的系统功能模块图。仓库管理系统系统模块维护模块输入模块查看模块报表模块帮助模块入库模块还库模块出库模块需求模块日志管理
5、 图1-1 系统功能模块图 2、数据库设计2、1数据库需求分析在仔细调查企业仓库物资设备管理过程的基础上,得到本系统所处理的数据流程如图1-2所示:仓库现有库存各部门需求企业生产计划汇总设备采购设备出库设备入库设备还库 图1-2 数据流程图本实例设计的数据项和数据结构如下: 设备代码信息,
6、包括的数据项有设备号、设备名称。 现有库存信息,包括的数据项有设备、现有数目、总数目、最大库存和最小库存。 设备使用信息,包括的数据项有使用的设备、使用部门、数目、使用时间和出库时状态等。 设备采购信息,包括的数据项有采购的设备、采购员、供应商、采购数目和采购时间等。
7、 设备归还信息,包括的数据项有归还设备、归还部门、归还数目、归还时间和经手人等。 设备需求信息,包括的数据项有需求的部门、需求设备、需求数目和需求时间等。2、2数据库概念结构设计本实例根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体和需求实体,各实体的E-R图及其关系描述如下:现有库存设备号现有库存警戒库存总数 图1-3 库存实体
8、E-R图入库设备号供应商信息采购价格数量采购员 图1-4 入库实体E-R图出库设备号使用部门数量时间经手人 图1-5 出库实体E-R图部门需求设备号需求部门需求数量需求时间 图1-6 部门需求实体E-R图设备还库设备号还库时间、人还库数量经手人 图1-7 还库实体E-R图计划采购设
9、备号库存信息供应信息时间 图1-8计划采购实体E-R图入库现有库存出库还库部门需求设备采购 图1-9实体和实体之间的关系E-R图2、3数据库逻辑结构设计在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系。仓库管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。表1-1 设备代码表device_code 列名数据类型可否为空
10、说明codeVARCHAR2(6)NOTNULL设备号(主键)nameVARCHAR2(20)NULL设备名称 表1-2 设备入库表device_in列名数据类型可否为空说明codeVARCHAR2(6)NOTNULL设备号in_dateDATE NOTNULL入库时间(主键)providerVARCHAR2(20)NULL供应商 telenoVARCHAR2(10)NULL供应商电话in_numberNUMBER(6) NULL入库数量 priceNUMBER(6) NULL价格 buyerVARCHAR2(10)NULL采购员 表1-3 设备出库表device_out列名数据类型可否为空说
11、明codeVARCHAR2(6)NOTNULL设备号departmentVARCHAR2(20)NULL使用部门out_dateDATE NULL出库时间(主键)out_stateNUMBER(1) NULL出库状态out_personVARCHAR2(10) NULL经手人out _numberNUMBER(6) NOTNULL出库数量 takerVARCHAR2(10) NULL领取人 usageVARCHAR2(20) NULL用途 表1-4 现有库存表device列名数据类型可否为空说明codeVARCHAR2(6)NOTNULL设备号(主键)now_numberNUMBER(6) N
12、ULL现有库存high _numberNUMBER(6) NULL最大库存low _numberNUMBER(6) NULL最少库存total _numberNUMBER(6) NULL总数 表1-5 部门需求表device_need列名数据类型可否为空说明codeVARCHAR2(6)NOTNULL设备号departmentVARCHAR2(20)NOTNULL部门名称need _numberNUMBER(6) NULL需求数量begin_dateDATE NULL需求开始时间end_dateDATE NULL需求结束时间 表1-6 设备还库表device_return列名数据类型可否为空说
13、明codeVARCHAR2(6)NOTNULL设备号return_dateDATE NULL还库时间(主键) keeperVARCHAR2(20) NULL仓库管理员 return_ numberNUMBER(6) NULL归还数量 return_dateVARCHAR2(10) NULL归还人 表1-7 操作日志表 howdo列名数据类型可否为空说明do_userVARCHAR2(10) NOTNULL操作员do_whatVARCHAR2(40) NOTNULL操作内容do_dateDATE NOTNULL操作时间 表1-8 设备采购计划表device_wantbuy列名数据类型可否为空说明
14、codeVARCHAR2(6)NOTNULL设备号now_numberNUMBER(6) NULL现有库存total_numberNUMBER(6) NULL总库存max_numberNUMBER(6) NULL最大库存buy_numberNUMBER(6) NULL购买数量providerVARCHAR2(10)NULL供应商 priceNUMBER(6) NULL价格buy_dateDATE NULL计划采购时间(主键)3、数据库结构的实现4、创建应用程序(1) (1) &
15、#160; 选择“FileNew”中的“新建项目”选项卡中“MFC AppWizard(exe)”,设置合适的目录和项目名,比如“E:Project”目录下的“DMS”项目。(2) (2) 创建一个对话框应用程序(“Dialog Based”),单击“Next”按钮。(3) (3)
16、60; 由于在这个项目中将要使用ADO,所以在MFC AppWizard的第二步,需要选中“Automation”选项,使应用程序能够支持自动化对象。如图1-10所示(4) (4) 单击“Finish”按钮结束项目的创建。主对话框名为CDMSDlg。(5) (5) 项目创建完
17、毕后,在头文件stdafx.h中加入下面4行:#import“c:programfilescommonfilessystemadomsado15.dll”no_namespace(”EOF”,”adoEOF”)#include”icrsint.h”inline void TESTHR(HRESULT x)if FAILED(x)_com_issue_error(x);#define DATEFMT Cstring(“%s”)5、操作日志模块的设计(1)写日志模块 图1-10 使应用程序支持自动化先定义一个名为ClogMngr的类/LogMngr.h/定义一个Log管理器class CLogMn
18、gr 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内部实现详细过程。/LogMngr.cpp/向数据库中添加Log记录的代码。bool CLogMngr:AddLog(LPCSTR op)CTime tm = CTime
19、:GetCurrentTime();CString sql_; sql_.Format("INSERT INTO HOWDO (do_user,do_what,do_date) VALUES('%s','%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_; trym_DBCnt
20、->Execute(sql,NULL,adCmdText);catch(_com_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(
21、1,"操作日期");m_list.InsertColumn(2,"操作内容");RECT 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
22、 TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE void CDlgViewLog:RefreshData()m_list.DeleteAllItems();m_list.SetRedraw(FALSE); _bstr_t strSQL("SELECT * FROM HOWDO");_RecordsetPtr MySet; int i = 0;tryMySet.Create
23、Instance(_uuidof(Recordset); MySet = m_DBCnt->Execute(strSQL,NULL,adCmdText);_variant_t Holder;while(!MySet->adoEOF) Holder = MySet->GetCollect("do_user");if(Holder.vt!=VT_NULL)m_list.InsertItem(i, (char*)(_bstr_t)Holder); Holder = MySet->GetCollect("do_date");if
24、 (Holder.vt!=VT_NULL)m_list.SetItemText(i, 1, (char*)(_bstr_t)Holder); Holder = MySet->GetCollect("do_what");if(Holder.vt!=VT_NULL)m_list.SetItemText(i, 2, (char*)(_bstr_t)Holder); MySet->MoveNext(); MySet->Close();catch(_com_error& e) AfxMessageBox(e.ErrorMessage()
25、;m_list.SetRedraw(TRUE);return; m_list.SetRedraw(TRUE);void CDlgViewLog: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;/DlgV
26、iewLog.cpp/删除所有日志记录的函数。void CDlgViewLog:OnBtnVlrmall() _bstr_t strSQL("TRUNCATE TABLE HOWDO"); trym_DBCnt->Execute(strSQL,NULL,adCmdText);catch(_com_error& e) AfxMessageBox(e.ErrorMessage();EndDialog(0); RefreshData();6、登录窗口的设计和程序初始化在CDMSDlg:OnInitDialog()中加入这样一段代码:/DMSDlg.cpp/
27、弹出登录界面CDlgLogIn dlg;doif (!dlg.DoModal()EndDialog(0); while (dlg.m_UsrName.GetLength()=0);它的目的是弹出图1-12所示的登录对话框,并从中获得一个有效的用户名。图1-12 登录界面得到有效用户名后,程序用如下代码:/ DMSDlg.cpp/建立数据库连接,初始化成员变量/登录数据库,若失败,则关闭程序。m_DBCnt.CreateInstance(_uuidof(Connection);CString sql_;sql_.Format("DSN=DMS;UID=%s;PWD=%s",d
28、lg.m_UsrName,dlg.m_UsrPwd);_bstr_t sql=sql_;/建立连接m_DBCnt->Open(sql,"","",-1);/初始化日志管理器 m_logMngr.Setup(m_DBCnt,dlg.m_UsrName);/记录此次登录m_logMngr.AddLog("登录数据库");catch(_com_error& e) AfxMessageBox(e.ErrorMessage();this->EndDialog(0); 在程序结束时关闭数据库连接。/ DMSDlg.c
29、pp/关闭数据库连接void CDMSDlg:OnDestroy() CDialog:OnDestroy();m_DBCnt->Close();7、主对话框界面的设计登录完成后,显示出主对话框。它的界面设计如图1-13所示,单击某个按钮就能弹出某个功能的界面。图1-13 主对话框界面以其中“设备代码”按钮为例,说明它的事件处理函数。代码如下:/ DMSDlg.cpp/显示设备代码管理界面void CDMSDlg:OnBtnDevcode() CDlgDevcode dlg;dlg.Setup(m_DBCnt,&m_logMngr);this->ShowWindow(SW_H
30、IDE);dlg.DoModal();this->ShowWindow(SW_SHOW);其他按钮的事件处理函数,代码与“设备代码”按钮的事件处理函数相同。8、设备代码管理窗口的建立对话框类名为CdlgDevcode设计如图1-14所示图1-14 设备代码管理窗口 /DlgDevcode.cpp/对话框的初始化BOOL CDlgDevcode:OnInitDialog() CDialog:OnInitDialog();/切分列表控件m_list.InsertColumn(0,"设备号");m_list.InsertColumn(1,"设备名");R
31、ECT rect;m_list.GetWindowRect(&rect);int wid = rect.right - rect.left;m_list.SetColumnWidth(0,wid/2);m_list.SetColumnWidth(1,wid/2);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);/读取已有数据 RefreshData();return TRUE; / DlgDevcode.cpp/消息映射部分BEGIN_MESSAGE_MAP(CDlgDevcode, CDialog) /AFX_MSG_MAP(CD
32、lgDevcode)ON_NOTIFY(NM_CLICK, IDC_LIST_DEVCODE, OnClickListDevcode)/AFX_MSG_MAPEND_MESSAGE_MAP()/事件处理部分void CDlgDevcode:OnClickListDevcode(NMHDR* pNMHDR, LRESULT* pResult) int i = m_list.GetSelectionMark(); m_code = m_list.GetItemText(i,0);m_name = m_list.GetItemText(i,1); UpdateData(FALSE
33、);*pResult = 0;其余程序的清单如下:/ DlgDevcode.cpp : implementation file/ #include "stdafx.h"#include "DMS.h"#include "DlgDevcode.h" #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CDlgDevcode dialogCDlgDevcode:CDlgDevcode(CWnd*
34、 pParent /*=NULL*/): CDialog(CDlgDevcode:IDD, pParent)/AFX_DATA_INIT(CDlgDevcode)m_code = _T("");m_name = _T("");/AFX_DATA_INITm_DBCnt = NULL;m_log = NULL; void CDlgDevcode:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CDlgDevcode)DDX_Cont
35、rol(pDX, IDC_LIST_DEVCODE, m_list);DDX_Text(pDX, IDC_EDIT_DCCODE, m_code);DDX_Text(pDX, IDC_EDIT_DCNAME, m_name);/AFX_DATA_MAP BEGIN_MESSAGE_MAP(CDlgDevcode, CDialog)/AFX_MSG_MAP(CDlgDevcode)ON_NOTIFY(NM_CLICK, IDC_LIST_DEVCODE, OnClickListDevcode)ON_BN_CLICKED(IDC_BTN_DCADD, OnBtnDcadd)O
36、N_BN_CLICKED(IDC_BTN_DCDEL, OnBtnDcdel)ON_BN_CLICKED(IDC_BTN_DCUPD, OnBtnDcupd)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CDlgDevcode message handlers/负责读取已有数据的函数void CDlgDevcode:RefreshData()m_list.DeleteAllItems();m_list.SetRedraw(FALSE); _bstr_t strSQL("SELECT * FROM DEVICE_CODE");_RecordsetPt
37、r MySet; int i = 0;tryMySet.CreateInstance(_uuidof(Recordset); /执行SOL语句读取记录MySet = m_DBCnt->Execute(strSQL,NULL,adCmdText);_variant_t Holder;while(!MySet->adoEOF) /取出code字段的数据 Holder = MySet->GetCollect("code");if(Holder.vt!=VT_NULL)m_list.InsertItem(i, (char*)(_bstr_t)Holde
38、r); /取出name字段的数据 Holder = MySet->GetCollect("name");if(Holder.vt!=VT_NULL)m_list.SetItemText(i, 1, (char*)(_bstr_t)Holder);MySet->MoveNext(); catch(_com_error& e) AfxMessageBox(e.ErrorMessage();m_list.SetRedraw(TRUE);return; m_list.SetRedraw(TRUE);/负责添加记录的函数void CDlgDevcode:OnBtn
39、Dcadd() UpdateData(); CString sql_;sql_.Format("INSERT INTO DEVICE_CODE (code,name) VALUES('%s','%s')", m_code, m_name);_bstr_t sql = sql_; trym_DBCnt->Execute(sql,NULL,adCmdText);catch(_com_error& e) AfxMessageBox(e.ErrorMessage();return; m_log->AddLog(
40、"添加设备记录。"); RefreshData(); /负责删除记录的函数void CDlgDevcode:OnBtnDcdel() UpdateData(); CString sql_;sql_.Format("DELETE FROM DEVICE_CODE WHERE CODE='%s'",m_code);_bstr_t sql = sql_;trym_DBCnt->Execute(sql,NULL,adCmdText); catch(_com_error& e) AfxMessageBox(e.ErrorMe
41、ssage();return; m_log->AddLog("删除设备记录。"); RefreshData(); /负责更新数据的函数void CDlgDevcode:OnBtnDcupd() UpdateData(); CString sql_;sql_.Format("UPDATE DEVICE_CODE SET NAME='%s' WHERE CODE='%s'",m_name,m_code);_bstr_t sql = sql_; trym_DBCnt->Execute(sql,NU
42、LL,adCmdText); catch(_com_error& e) AfxMessageBox(e.ErrorMessage();return; m_log->AddLog("更新设备记录。"); RefreshData(); 9、库存信息管理窗口的创建用户可以在此新增、修改、删除某种设备的记录。单击主对话框中的“库存信息”按钮,将出现图1-15所示的界面。新增记录时,用户在“设备号”组合框中选择一个设备号,在下面填入各种数量,之后单击“新增”按钮即可向表中增加记录。修改记录时,用户单击列表中某一行,程序利用1、8提到的方法,在窗口下面把这一行记录的详细信
43、息显示出来,用户即可对之修改。“设备号”这个子窗口初始化的时候有如下代码:/DlgDev.cpp /对话框的初始化BOOL CDlgDev:OnInitDialog() CDialog:OnInitDialog();/切分列表控件m_list.InsertColumn(0,"设备号");m_list.InsertColumn(1,"现存数量");m_list.InsertColumn(2,"最大数量");m_list.InsertColumn(3,"最小数量");m_list.InsertColumn(4,&quo
44、t;总数");RECT rect;m_list.GetWindowRect(&rect);int wid = rect.right - rect.left;m_list.SetColumnWidth(0,wid/5);m_list.SetColumnWidth(1,wid/5);m_list.SetColumnWidth(2,wid/5);m_list.SetColumnWidth(3,wid/5);m_list.SetColumnWidth(4,wid/5); m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
45、_RecordsetPtr pRst = NULL;IADORecordBinding *picRs = NULL; /Interface Pointer declared.(VC+ Extensions) CDevCodeRs rs; try_bstr_t strSQL("SELECT * FROM DEVICE_CODE"); TESTHR(pRst.CreateInstance(_uuidof(Recordset); /读取所有的设备编号pRst = m_DBCnt->Execute(strSQL, NULL, adCmdText);/数据绑
46、定TESTHR(pRst->QueryInterface(_uuidof(IADORecordBinding),(LPVOID*)&picRs);TESTHR(picRs->BindToRecordset(&rs); int i = 0;while (!pRst->adoEOF) /向组合框控件中添加所有的设备编号m_devs.AddString(rs.m_sz_code);pRst->MoveNext();picRs->Release();pRst->Close();catch(_com_error& e) AfxMess
47、ageBox(e.ErrorMessage();EndDialog(0);return TRUE; RefreshData(); return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE图1-15 库存信息管理10、设备入库信息管理在主对话框中单击“入库信息”按钮就进入如图1-16所示的界面。图1-16 设备入库信息管理界面下面是修改和删除记录的代码:void CDlgViewDevIn:OnBtn
48、Viupdate() if (!UpdateData()return; CString sql_;sql_.Format(CString("SELECT * FROM DEVICE_IN WHERE in_date=")+DATEFMT, m_date);_bstr_t sql = sql_; _RecordsetPtr pRst = NULL;IADORecordBinding *picRs = NULL; /Interface Pointer declared.(VC+ Extensions) CDevInRs rs; tryTESTHR(
49、pRst.CreateInstance(_uuidof(Recordset);pRst->Open(sql,_variant_t(IDispatch *) m_DBCnt, true),adOpenKeyset,adLockOptimistic,adCmdText); /数据绑定TESTHR(pRst->QueryInterface(_uuidof(IADORecordBinding),(LPVOID*)&picRs);TESTHR(picRs->BindToRecordset(&rs); /填写需要修改的数据strcpy(rs.m_sz_code,m_cod
50、e);strcpy(rs.m_sz_date,m_date);strcpy(rs.m_sz_provider, m_provider);strcpy(rs.m_sz_tel, m_tel);rs.m_f_number = m_number;rs.m_f_price = m_price;strcpy(rs.m_sz_buyer, m_buyer); /开始更新数据TESTHR(picRs->Update(&rs); /释放ADO对象picRs->Release();pRst->Close();catch(_com_error& e) AfxMessageBox(
51、e.ErrorMessage();return; MessageBox("完成操作!");m_log->AddLog("修改入库信息"); RefreshData(); void CDlgViewDevIn:OnBtnVidel() if (!UpdateData()return; CString sql_;sql_.Format(CString("DELETE FROM DEVICE_IN WHERE in_date=")+DATEFMT, m_date);_bstr_t sql =
52、sql_; try /执行删除数据的SOL语句m_DBCnt->Execute(sql, NULL, adCmdText);catch(_com_error& e) AfxMessageBox(e.ErrorMessage();return; MessageBox("完成操作!");m_log->AddLog("删除入库信息"); RefreshData();11、设备入库窗口在主对话框中单击“设备入库”按钮就进入如图1-17所示的界面。 图1-17 设备入库登记界面下面就是单击“确定”按钮之后,更新数据库操作的代
53、码:/DlgDevIn.cpp/添加入库记录void CDlgDevIn:OnBtnDiadd() if (m_devs.GetCurSel()=CB_ERR)MessageBox("请选择一个设备");return; if (!UpdateData()return; _RecordsetPtr pRst = NULL;CDevInRs rs; tryTESTHR(pRst.CreateInstance(_uuidof(Recordset); /打开数据库表格到Recordest对象pRst->Open("device_in&q
54、uot;,_variant_t(IDispatch *) m_DBCnt, true),adOpenKeyset,adLockOptimistic,adCmdTable); /填写新数据m_devs.GetWindowText(rs.m_sz_code,11);sprintf(rs.m_sz_date,"%d-%d-%d %d:%d:%d",m_date.GetYear(), m_date.GetMonth(), m_date.GetDay(),m_time.GetHour(), m_time.GetMinute(), m_time.GetSecond();strcpy(rs.m_sz_provider, m_provider);strcpy(rs.m_sz_tel, m_tel);rs.m_f_number = m_number;rs.m_f_price = m_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国磨石地面砖市场调查研究报告
- 2025年中国石线异行磨边市场调查研究报告
- 2025年中国电子根管测量器项目投资可行性研究报告
- 2025年中国生物分离系统项目投资可行性研究报告
- 2025年中国环境试验机市场现状分析及前景预测报告
- 2025年中国燃油燃气热水炉数据监测研究报告
- 2025年中国塑胶泡沫项目投资可行性研究报告
- 公安专业考试试题及答案
- 保管员考试试题及答案
- 房车驾照考试试题及答案
- 2025年中考英语高频词汇变形归纳《背诵版+默写版》
- 仓储物流管理试题及答案
- 《儿童常见病预防》课件
- 护士招考三基试题及答案
- 2024年湖南省城步苗族自治县事业单位公开招聘医疗卫生岗笔试题带答案
- 第32届全国中学生物理竞赛复赛试题
- 《采煤学》教材笔记
- 汉字介绍课件
- 2025年熔化焊接与热切割作业证理论考试试题(1000题)附答案
- 2025年度继续教育公需科目(AI工具学习与运用)考试试题(满分版含答案)
- 广东广东省青少年发展基金会招聘笔试历年参考题库附带答案详解
评论
0/150
提交评论