




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网上购物系统的设计与实现 毕业论文 题 目 网上购物系统的设计与实现 学生姓名 专业班级 学 号 院 (系) 指导教师(职称) 完成时间 网上购物系统的设计与实现 I 网上购物系统的设计与实现 摘 要 短信平台是基于中国移动、联通、电信直接提供的网关或者基于 GSM/CDMA 模块实 现短信批量发送和自定义发送的,它分为软件单机版 CS 结构和网络共享版 BS 结构。 传统企业短信平台多采用基于网关的 BS 架构模式,考虑到系统的经济性特别是针 对个人用户,本次毕业设计所开发的系统采用基于 GSM/CDMA 模块的 CS 架构模式。同 时为了方便用户使用,本系统将 CS 架构的 C 与 S 集成在一起。用户所看到的将只有客 户端模块。 针对 GSM 模块和 CDMA 模块的差异,系统将自动识别并调用相关 AT 指令以完成同样 的功能。系统的实现采用 MFC 串口编程技术,这样在 Windows 平台下的通用性更好。 本系统包含了短信发送、短信管理、语音通话、通讯录管理、媒介测试等几个模 块。同时为了方便用户,本系统的信息存储未采用传统商业数据库,而采用将用户所 有信息以文本文件保存在本地,这样即使在系统崩溃,用户的通讯录及短信内容依然 可以方便地手工查看。 关键词 通讯录;短信平台; GSM; CDMA 网上购物系统的设计与实现 II GSM/CDMA-BASED SMS PLATFORM RESEARCH AND DESIGN Abstract SMS platform is based on the gateway provided directly by China Mobile,China Unicom,China Telecom or based on GSM / CDMA module to send custom batch SMS.It can be divided into the software stand-alone CS structure and structure of the network share version of BS. More traditional enterprise messaging platform, gateway-based BS structure, taking into account the economics of the system especially for individual users, this graduation design the software system based on GSM / CDMA modules of CS architecture model.At the same time for the convenience of users, the system will be C outp(PORT+3,0 x80); outp(PORT,0 x0C); outp(PORT+1,0); outp(PORT+3 ,0 x3a); outp(PORT+3 ,0 x03); i=inp(PORT+5) outp(PORT+5,i); (2)使用串行通信控件 MSComm 网上购物系统的设计与实现 13 串行通信控件 MSCOmm32.OCX 提供了使用 RS-232 来进行数据通信的所有协议,VC 为该控件提供了标准的事件处理函数、过程,并通过属性和方法提供了串行通信的设 置。它使用户能够方便地访问 Windows 串行通信驱动程序的大多数特性,包括输入、 输出缓冲区的大小及决定何时使用流控制命令挂起数据传输等。 在 ClassWizard 中为新创建的通信控件定义成员对象(CMSComm m_Serial),通过 该对象便可以对串口属性进行设置,MSComm 控件共有 27 个属性。以下是通过设置控件 属性对串口进行初始化的实例: BOOL CSampleDlg: PortOpen() BOOL m_Opened; . m_Serial.SetCommPort(2); / 指定串口号 m_Serial.SetSettings(4800,N,8,1); / 通信参数设置 m_Serial.SetInBufferSize(1024); / 指定接收缓冲区大小 m_Serial.SetInBufferCount(0); / 清空接收缓冲区 m_Serial.InputMode(1); / 设置数据获取方式 m_Serial.SetInputLen(0); / 设置读取方式 m_Opened=m_Serail.SetPortOpen(1); / 打开指定的串口 return m_Opened; 打开所需串口后,我们需要考虑串口通信的时机。在接收或发送数据过程中,可 能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非 常有效的方法。使用 OnComm 事件和 CommEvent 属性捕捉并检查通信事件和错误的值。 发生通信事件或错误时将触发 OnComm 事件,CommEvent 属性的值将被改变,应用程序 通过检查 CommEvent 属性值并作出相应的反应。 (3)使用 API 函数 网上购物系统的设计与实现 14 控件虽然简单易用,但由于必须拿到对话框中使用,在一些需要在线程中实现通 信的应用场合下,控件的使用显得捉襟见肘。API 是附带在 Windows 内部的一个极其重 要的组成部分。Windows 的 32 位 API 主要是一系列很复杂的函数和消息集合。它可以 看作是 Windows 系统为在其下运行的各种开发系统提供的开放式通用功能增强接口。 通信程序在 CreateFile 处指定串口设备及相关的操作属性,再返回一个句柄,该 句柄将被用于后续的通信操作,并贯穿整个通信过程。串口打开后,其属性被设置为 默认值,根据具体需要,通过调用 GetCommState(hComm, bReadStatus = ReadFile( m_hIDComDev, buffer, dwBytesRead, if(!bReadStatus) if(GetLastError()=ERROR_IO_PENDING) WaitForSingleObject(m_OverlappedRead.hEvent,1000); return (int)dwBytesRead); return(0); return (int)dwBytesRead); (4)多线程下实现串行通信 Windows 内部的抢先调度程序在活动的线程之间分配 CPU 时间,Windows 区分两种 不同类型的线程,一种是用户界面线程(User Interface Thread),它包含消息循环或 消息泵,用于处理接收到的消息;另一种是工作线程(Work Thread),它没有消息循环, 用于执行后台任务、监视串口事件的线程即为工作线程。 多线程程序的编写在端口的配置,连接部分与单线程的相同,在端口配置完毕后, 最重要的是根据实际情况,建立多线程之间的同步对象,如信号灯、临界区和事件等。 网上购物系统的设计与实现 15 一切就绪后即可启动工作线程,程序如下: CWinThrea CommThread = AfxBegin Thread(CommWatchThread, / 线程函数名 (LPVOID) m_pTTYInfo, / 传递的参数 THREAD_PRIORITY_ABOVE_NORMAL, / 设置线程优先级 (UINT) 0, / 最大堆栈大小 (DWORD) CREATE_SUSPENDED , / 创建标志 (LPSECURITY_ATTRIBUTES) NULL); if(WaitCommEvent(pTTYInfo-idComDev, ResetEvent(pTTYInfo-hPostEvent); / 置同步事件对象为非信号态 :PostMessage(CSampleView,ID_COM1_DATA,0,0); / 发送通知消息 BEGIN_MESSAGE_MAP(CSampleView, CView) /AFX_MSG_MAP(CSampleView) ON_MESSAGE(ID_COM1_DATA, OnProcessCom1Data) ON_MESSAGE(ID_COM2_DATA, OnProcessCom2Data) /AFX_MSG_MAP END_MESSAGE_MAP() 多线程的实现可以使得各端口独立,准确地实现串行通信,使串行通信具有更广泛 的灵活性与严格性,且充分利用CPU时间。但在具体的实时监控系统中如何协调多个线 程、线程之间以何种方式实现同步,这是多线程串行通信程序实现的难点。 网上购物系统的设计与实现 16 2.2.5.2 串行通信的操作方式 (1)同步方式 同步方式中,读串口的函数试图在串口的接收缓冲区中读取规定数目的数据,直 到规定数目的数据全部被读出或设定的超时时间已到时才返回。例如: COMMTIMEOUTS timeOver; memset( DWORD timeMultiplier,timeConstant; timeOver.ReadTotalTimeoutMultiplier=timeMultiplier; timeOver.ReadTotalTimeoutConstant=timeConstant; SetCommTimeouts(hComport, ReadFile(hComport,inBuffer,nWantRead, COMMTIMEOUTS 结构用于设置读写函数的等待时间。 在 ReadFile 函数中 hComport 为待读串口句柄;inBuffer 为输入缓冲区大小; nWantRead 为每次调用 ReadFile 时,函数试图读出的字节数;nRealRead 为实际读出 的字节数;最后一个参数值 NULL 代表 ReadFile 将采用同步文件读写的方式。 如果所规定的待读取数据的数目 nWantRead 较大且设定的超时时间也较长,而接 收缓冲区中数据较少,则可能引起线程阻塞。解决这一问题的方法是检查 COMSTAT 结 构的 cbInQue 成员,该成员的大小即为接收缓冲区中处于等待状态的数据的实际个数。 如果令 nWantRead 的值等于 COMSTAT.cbInQue,就能较好地防止线程阻塞。 (2)查询方式 查询方式,即一个进程中的某一线程定时地查询串口的接收缓冲区,如果缓冲区 中有数据,就读取数据;若缓冲区中没有数据,该线程将继续执行,因此会占用大量 的 CPU 时间,它实际上是同步方式的一种派生。例如: COMMTIMEOUTS timeOver; memset( timeOver.ReadIntervalTimeout=MAXWORD; SetCommTimeouts(hComport. 网上购物系统的设计与实现 17 ReadFile(hComport.inBuffer.nWantRead. 除了 COMMTIMEOUTS 结构的变量 timeOver 设置不同外,查询方式与同步方式在程 序代码方面很类似,但二者的工作方式却差别很大。尽管 ReadFile 采用的也是同步文 件读写方式,但由于 timeOver 的区间超过时间设置为 MAXWORD,所以 ReadFile 每次将 读出接收队列中的所有处于等待状态的数据,一次最多可读出 nWantRead 个字节的数 据。 (3)异步方式 异步方式中,利用 Windows 的多线程结构,可以让串口的读写操作在后台进行, 而应用程序的其他部分在前台执行。例如: OVERLAPPED wrOverlapped; COMMTIMEOUTS timeOver; memset( DWORDtimeMultiplier,timeConstant; timeOver.ReadTotalTimeoutMultiplier=timeMultiplier; timeOver.ReadTotalTimeoutConstant=timeConstant; SetCommTimeouts(hComport, wrOverlapped.hEvent=CreateEvent(NULL.TRUE,FALSE,NULL); ReadFile(hComport,inBuffer,nWantRead, GetOverlappedResult(hComport, ResetEvent(wrOverlapped.hEvent); 上面代码中的 ReadFile 由于采用了异步方式,所以它只返回数据是否已开始读入 的状态,并不返回实际的读入数据,即 ReadFile 中的 nRealRead 无效。实际读入的数 据是由 GetOverlappedResult 函数返回的,该函数的最后一个参数值为 TRUE,表示它 等待异步操作结束后才返回到应用程序,此时,GetOverlappedResult 函数与 WaitForSingleObject 函数等效。 当采用异步方式时,在用 CreateFile 打开串口设备时,CreateFile 函数的参数 fdwAttrsAndFlags 必须设为 FILE_FLAG_ OVERLAPPED。在 Windows 中,只有在串行设 备上才支持异步文件读写,并且,GetOverlappedResult 函数也只支持串行设备或用 网上购物系统的设计与实现 18 DeviceloControl 函数打开的文件。 (4)事件驱动方式 若对端口数据的响应时间要求较严格,可采用事件驱动方式。事件驱动方式通过 设置事件通知,当所希望的事件发生时,Windows 发出该事件已发生的通知,这与 DOS 环境下的中断方式很相似。Windows 定义了 9 种串口通信事件,较常用的有以下三种: EV_RXCHAR:接收到一个字节,并放入输入缓冲区; EV_TXEMPTY:输出缓冲区中的最后一个字符,发送出去; EV_RXFLAG:接收到事件字符(DCB 结构中 EvtChar 成员),放入输入缓冲区。 在用 SetCommMask()指定了有用的事件后,应用程序可调用 WaitCommEvent()来等 待事件的发生。SetCommMask(hComm,0)可使 WaitCommEvent()中止。例如: COMSTAT comStat; DWORD dwEvent; SetCommMask(hComport,EV_RXCHAR); if(WaitCommEvent(hComport, 程序中,我们首先用 SetCommMask 函数设置事件代码,上面的代码中为 EV_RXCHAR,表示接收到一个字符时触发这一事件,然后调用 WaitCommEvent 函数等待 该事件的发生。注意,WaitCommEvent 函数第 3 个参数 1pOverlapped 可以是一个 OVERLAPPED 结构的变量指针,也可以是 NULL,当用 NULL 时,表示该函数是同步的, 否则表示该函数是异步的。 (5)几种方式的比较 在一般要求情况下,查询方式是一种最直接的读串口方式。但定时查询存在一个 致命弱点,即查询是定时发生的,可能发生得过早或过晚。在数据变化较快的情况下, 特别是主控计算机的串口通过扩展板扩展至多个时,需定时地对所有串口轮流查询, 此时容易发生数据的丢失。虽然定时间隔越小,数据的实时性越高,但系统的资源也 被占去越多。 Windows 中提出文件读写的异步方式,主要是针对文件 I/O 相对较慢的速度而进行 的改进,它利用了 Windows 的多线程结构。虽然在 Windows 中没有实现任何对文件 I/O 网上购物系统的设计与实现 19 的异步操作,但它却能对串口进行异步操作。采用异步方式,可以提高系统的整体性 能,在对系统强壮性要求较高的场合,建议采用这种方式。 事件驱动方式是一种高效的串口读方式。这种方式的实时性较高,特别是对于扩 展了多个串口的情况,并不要求像查询方式那样定时地对所有串口轮流查询,而是像 中断方式那样,只有当设定的事件发生时,应用程序得到 Windows 操作系统发出的消 息后,才进行相应处理,避免了数据丢失。在实时性要求较高的场合,建议采用这种 方式。 2.2.6 AT 指令介绍 PC 机和 GSM/CDMA 引擎之间采用 AT 指令实现互相之间的通信,因此有必要了解一 下 AT 指令的格式和几条常用的指令。 PC 机发出的 AT 指令用来建立通信链路,AT 指令集的命令格式帧都以 AT 开头, ” AT”或者”at”的前缀必须出现在每一个命令行的开始。 基于 GSM 的 AT 指令和基于 CDMA 的 AT 指令格式略有差别,下面分别介绍。 2.2.6.1 常用的 GSM AT 指令 AT 指令功 能 AT + CSCASMS service center address (设置短消息中心号码) AT + CMGF Select SMS message format (选择短消息信息 格式:0PDU ;1文本) AT + CMGSSend SMS message(发送短消息) AT + CNMI New SMS message indications (显示新收到的短消息) AT + CMGL List SMS message f rom preferred store (列出SIM 卡中的短消息 PDU/ text : 0/“REC UNREAD”2 未读, 1/“REC READ”2 已读, 2/“STO UNSENT”2 待发, 3/“STO SENT”2 已发,4/“ALL”2 全部的) AT + CMGR Read SMS message (读短消息) AT + CMGD Delete SMS message (删除SIM 卡内存的短消息) AT + CPMS Preferred SMS message storage (选择短消息内存) 网上购物系统的设计与实现 20 2.2.6.2 常用的 CDMA AT 指令 (以华为公司出品的CDMA2000上网卡指令为例) (1)发送短信指令: AT+CPMS=ME 选择短信存储器 AT+CMGF=1 设置短信格式为文本 AT%CMGL=ALL 列出当前选择短信存储器全部短信的序号和状态 AT%CMGS发送号码,引号引起。 OY短信内容为“你好”, 对应UNICODE 编码 Ctrl+z 发送 (2)接收中文短信指令 AT+CPMS=“ME” 读取新短信 AT%CMGR=0 发送短信方信息 AT%CMGR=1 AT%CMGR=7 读取相对应序号的短信 AT+CMGD=3 AT+CMGD=0 删除短信,只能一条一条的删,没有全部删指令。 (3)语音通话指令 AT$HSDEV= 0 选择语音通道命令 0:话筒,1:免提 AT%SETEC=1 回音消除控制, 0表示不使用回音消除,15 表示回音消 除的不同级别。 AT+CDV10000 拨打电话10000,拨通后模块是无法判断对方有没有接听的, 这是由于目前的网络状态决定,在中国GSM模块如果对方接 听,会返回“OK”,但CDMA网络里没有相对应的提示 AT+CHV 模块主动挂机 AT$QCCAV 接听电话 2.3 功能描述 短信平台实现的功能主要有:短信发送、短信接收、短信管理、通讯录管理、语音 网上购物系统的设计与实现 21 通话、媒介自适应。 2.3.1 短信发送 短信可以单发,可以群发,可以定时发送,可以定制发送。 定时发送是指可以编辑好短信,选定要发送的联系人,设定一个时间,系统在所预 先设定的时间点发短信发送出去。 定制短信是指为了某一个特定事件而发出的短信,用户可以在短信开头以 N 个数字 标识,发送的时候选择定制发送,要求手机终端针对该定制短信的回复必须以同样的 N 个数字开头,发送之后在短信管理面板系统会自动新建一个以该数字标识命名的目录 项。所有回复短信自动归类到此目录下。 2.3.2 短信接收 接收到的短信系统负责自动归类。默认在短信管理面板按时间段分类。 2.3.3 短信管理 在短信管理面板用户可以进行短信查看,导出,新建短信分组,更改短信分组。 2.3.4 通讯录管理 在通讯录管理面板用户可以进行通讯录的查看、通讯录的导入、通讯录的导出、联 系人的添加、编辑、删除等操作。 2.3.5 语音通话 语音通话面板用户可以进行语音呼叫、通话,但要求通信设备支持,目前只有特定 上网卡支持语音通话功能,但普通 GSM/CDMA 模块都支持拨号呼叫功能。 2.3.6 媒介自适应 媒介测试面板负责提示用户当前所用 GSM/CDMA 模块的厂商、型号、连接状态等信 息,只要 PC 连接有 GSM/CDMA 模块,短信平台负责自动识别并连接。 网上购物系统的设计与实现 22 2.4 系统的功能结构图 2.4.1 短信平台系统结构 DB 短信平台 客户端 GSM/ CDMA MODEM Data操作 图 2-1 短信平台系统结构 DB 短信管理模块短信收发模块 短信查看、 删除、导出 发送短信、定制 短信、定时短 信、接收短信 图 2-2 软件结构图 短信平台 短 信 发 送 模 块 短 信 管 理 模 块 媒 介 检 测 模 块 通 讯 录 管 理 模 块 语 音 通 话 模 块 图 2-3 短信平台功能模块 启动服务 初始化服务 系统配置文件 运行短信收发程序服务器进入监听状态 短信收发程序进入检测状态 图2-4 短信平台启动流程 网上购物系统的设计与实现 23 程序启动 程序初始化 配置文件 检测GSM/CDMA MODEM状态 启动发送/接收线程 发送线程检测是 否有短信要发送 接收线程检测是 否有收到短信 将短信发送出去接收短信存入数据库中 程序结束 数据库 是 否 是 否 图2-5 短信收发程序工作流程 2.4.2 短信发送模块 在短信发送面板用户可以选择联系人,可以选择任意群组,也可以单个选择。发 送定制短信时点击定制按钮,短信将以定制形式发送,但要求前 n 个字符必须为数字, 否则不予发送。短信发送模块需求如图 2-6 所示。 网上购物系统的设计与实现 24 联系人选择 联系人列表 编辑短信 定制短信 定时短信 发送短信 图 2-6 短信发送模块 2.4.3 短信管理模块 在短信管理面板,用户可以查看和删除短信,并可以导入导出。短信管理模块需 求如图 2-7 所示。 网上购物系统的设计与实现 25 收件箱管理 发件箱管理 定制短信管理 短信详情 查找短信 短信列表 图 2-7 短信管理模块 2.4.4 语音通话模块 在语音通话面板用户可以选择树控件里的联系人列表,也可以手工输入,支持鼠标 点击输入和键盘输入。语音通话模块需求如图 2-8 所示。 联系人选择 呼叫 图 2-8 语音通话模块 2.4.5 通讯录管理模块 在通讯录管理面板用户可以添加、编辑和删除联系人,并且可以导入导出。通讯录 管理模块需求如图 2-9 所示。 网上购物系统的设计与实现 26 添加联系人 编辑联系人 删除联系人 导入通讯录 导出通讯录 查找联系人 图 2-9 通讯录管理 2.4.6 媒介检测模块 在媒介检测模块显示用户所用的通信媒介类型和连接状态。媒介检测模块需求如图 2-10 所示。 检测媒介型号 检测连接状态 图 2-10 媒介检测模块 网上购物系统的设计与实现 27 3 系统总体设计 3.1 数据存储的设计 3.1.1 E-R 图 用户 联系人 已发短信 已收短信 通信、 管理 发送、 管理 接收、 管理 ID姓名电话分组单位 职位 级别 Email 备注 接收方 发送时间 发送状态 接收状态 是否定制 短信分组 短信内容 发送方 接收时间 是否定制 短信分组 短信内容 n 1 1n 1 n 图3-1 E-R图 3.2 系统流程 3.2.1 系统数据流程 系统的数据流程图如下: 网上购物系统的设计与实现 28 后台服务器模块 短信存储模块历史记录模块 短信发送/接收模块 客户端模块 桌面客户端 移动通信网络 移动公司短信服务器 终端手机 图 3-2 整体系统数据流图 3.3 逻辑结构设计 概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概 念结构设计阶段设计好的基本 E-R 图转换为与选用数据库管理系统(DBMS)产品所支 持的数据模型相符合的结构设计。本系统未采用传统 DBMS,而是采用自定义文件存储 格式。 3.3.1 通讯录文件 此文件用来存储通讯录信息。包含所有的联系人信息。 Address.txt 文件以行为单位,每一行为一个联系人,格式如下 Long int ID,CString name,CString phonenumber,CString group,CString company,CString job,CString level,CString detail 3.3.2 联系人分组文件 此文件用来保存所有分组名称。 具体格式为: Group.txt CString All,CString group1,CString group2,CString group3,CString groupN 网上购物系统的设计与实现 29 3.3.3 短信存储文件 此文件用来保存所有接收到的短信和发出的短信。 具体格式为: CString phone1,CString phone2,CString time,CString reply(yes/no),CString sms content 网上购物系统的设计与实现 30 4 系统详细设计与初步实现 4.1 运行平台或环境 运行平台:Windows98/2000/xp/2003/vista/Windows7 要求:系统装有相应 GSM/CDMA 模块驱动软件。 4.2 系统详细设计(界面设计) 4.2.1 主界面 启动短信平台,默认打开的是短信发送面板,以方便用户发送短信。 图4-1 短信平台主界面 网上购物系统的设计与实现 31 4.2.2 短信发送模块 在短信发送面板,用户可以在左侧的联系人树状列表中勾选联系人,然后单击=按 钮,选中的联系人将导入到列表视图控件里,选中列表视图中一个联系人,也可以单 击GetActiveView(); m_pViews1=(CView*)new CSenderView(); m_pViews2=(CView*)new CManagerView(); 网上购物系统的设计与实现 36 m_pViews3=(CView*)new CPhoneView(); m_pViews4=(CView*)new CAddressView(); m_pViews5=(CView*)new CMediaView(); CDocument* pCurrentDoc=(CFrameWnd*)m_pMainWnd)-GetActiveDocument(); CCreateContext context; context.m_pNewViewClass=NULL; context.m_pNewDocTemplate=NULL; context.m_pLastView=NULL; context.m_pCurrentFrame=NULL; context.m_pCurrentDoc=pCurrentDoc; UINT viewIDNUMVIEWS; viewID1=AFX_IDW_PANE_FIRST+1; CRect rect(0,0,0,0); for(int nView=1;nViewCreate(NULL,NULL, (AFX_WS_DEFAULT_VIEW (CFormView*)m_pViews1)-OnInitialUpdate(); (CFormView*)m_pViews2)-OnInitialUpdate(); (CFormView*)m_pViews3)-OnInitialUpdate(); (CFormView*)m_pViews4)-OnInitialUpdate(); (CFormView*)m_pViews5)-OnInitialUpdate(); SwitchView(SENDER); 4.3.3 短信发送模块 发送PDU格式短信,手机号码需要做一系列转换,下面是相关代码。 CString CMethod:PhoneChange(CString phone) 网上购物系统的设计与实现 37 if(phone.GetLength()=11) /普通手机号码,未加86 phone=86+phone; else if(phone.GetLength()=13) /861XXXXXXXXXX 13位 phone=phone; else if(phone.GetLength()=14) /+861XXXXXXXXXX 14位 phone=phone.Right(13); else CString str; str=phone+:手机号码位数不合法!; AfxMessageBox(str); /号码位数为奇数,需要加F,变为偶数位 phone+=F; /现在phone为14位 /号码两字节一组,高字节与低字节交换 for(int i=0;i addr = 683108020005F0 3、将短信息中心号码前面加上字符91,91是国际化的意思 = addr = 91683108020005F0 4、算出 addr 长度,结果除2,格式化成2位的16进制字符串,16 / 2 = 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物业管理师面试高频问题精解
- 2025年财务会计专员中级求职面试技巧与常见问题解析
- 2025年汽车维修技术员岗位技能测评试卷及答案解析
- 机票知识培训
- 2025年模特经纪人执业资格考试试题及答案解析
- 2025年家庭服务师初级笔试备考模拟题集
- 2025年交通规划师专业能力评估试题及答案解析
- 2025年建筑材料化验员职业资格考试试题及答案解析
- 2025年机动车驾驶教练员专业资格考试试题及答案解析
- 2025年环境保护监测员资格考试试题及答案解析
- 二年级上册语文课内阅读理解每日一练(含答案)
- 苏式彩画古建181班授课郭佩锦37课件讲解
- 2025-2030年中国功率器件市场发展趋势规划研究报告
- 基层管理培训课程
- 宇宙飞船的发射与回收技术分析
- 2025农村租地合同农村租地合同范本
- 2024考研 政治 思维导图(马原)
- 物业小区安全生产管理制度
- 高血压性脑出血中国多学科诊治指南2020
- 心肺复苏术课件2024新版
- 孕产妇危重症评审实施方案解读课件
评论
0/150
提交评论