智慧校园的数据处理技术毕业论文.doc

上传人:laozhun 文档编号:3944989 上传时间:2023-03-28 格式:DOC 页数:45 大小:2.57MB
返回 下载 相关 举报
智慧校园的数据处理技术毕业论文.doc_第1页
第1页 / 共45页
智慧校园的数据处理技术毕业论文.doc_第2页
第2页 / 共45页
智慧校园的数据处理技术毕业论文.doc_第3页
第3页 / 共45页
智慧校园的数据处理技术毕业论文.doc_第4页
第4页 / 共45页
智慧校园的数据处理技术毕业论文.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《智慧校园的数据处理技术毕业论文.doc》由会员分享,可在线阅读,更多相关《智慧校园的数据处理技术毕业论文.doc(45页珍藏版)》请在三一办公上搜索。

1、 题目: 智慧校园的数据处理技术系别: 信息工程系专业: 移动通信技术班级: 移动通信(2)姓名: 吴陆军指导老师: 夏跃武老师完成日期: 2013年10月 目录背景-1引言-2摘要-3第一章 系统整体设计流程及架构图-7 1.1 系统整体设计流程设计-7 1.2 平台总体框架图-7 1.3宿舍和图书馆子场景-8 1.4 数据库的设计-12第二章 需要的硬件条件及网络拓扑图-14 2.1 硬件设备-14 2.2 网络拓扑图-15第三章 具体Android应用程序的开发-16 3.1 环境配置-16 3.2 具体设计-17结论-42致谢-44参考文献-45 背景 物联网(Internet of

2、Things)这个概念是美国麻省理工学院Auto-ID中心Ashton教授于1999年提出来的,其基本含义是:通过射频技术(RFID)等信息传感设备把所有物品和互联网连接起来,实现物品的智能化识别、管理和操作。 通过物联网可以使人、物、信息的相互联通和交流,实现人、物和计算机的智联。 作为新一代技术的标杆,物联网从诞生之时就成为了各国的宠儿,2005年,国际电信联盟(ITU)在其发布的ITU互联网络报告2005中首次对物 联网的概念进行了详细的阐述,2009年,美国政府将物联网提升为国家战略,提出了“智慧地球”的概念,2004年日本提出了U-Japan计划,希望把 日本建成全球ICT最先进的国

3、家,韩国也在2004年提出了U-Korea计划,希望在2012年通过构建世界最先进的物联网基础设施,把韩国打造成未来 广播通信融合领域超一流的强国。我国政府高度重视物联网的发展,2009年8月温家宝总理在视察中科院无锡物联网产业研究所时,对于物联网应 用也提出了一些看法和要求,提出了“感知中国”的概念。2009年11月,国家传感信息中心成立,12月,江苏省无锡市出台了加快建设创新性经济领军城 市的决定,建立了我国首个“国家传感网创新示范区”。2009年11月,中关村物联网产业联盟在北京成立。物联网被我国正式列为国家五大新兴战略性产业 之一,写入“政府工作报告”,物联网在中国受到了全社会极大的关

4、注,其受关注程度是在美国、欧盟、以及其他各国不可比拟的。 引言 随着时代的发展,物联网技术的发展和日渐成熟,为其在智能领域的应用打开了广阔的前景,物联网较早应用与智慧及交通、智慧物流等领域,并起到了良好的示范作用,随着大学教育的扩招和办学规模的不断扩大以及多校区办学模式的出现,学校的师生员工分布和师生的移动性等诸多因素为学校的管理与服务带来了难度,如何高效科学的管理办学事务是一个急需解决的问题,而这恰恰为物联网在智慧校园中的应用提供了契机,随着技术的发展成熟以及再教育行业的应用,物联网在智慧校园方面的应用成果也初见成效。首先来认识一下物联网:它是指将各种信息传感设备与互联网结合起来形成的一个巨

5、大的网络,其作用是让所有物品与网络连接起来,便于识别,管理和控制。物联网是基于泛在网技术建立起来的物物相连的互联网,这种连接可以包含任何时间,任何地点和任何物体的连接。物联网有如下几个特征,一,它是各种感知技术的广泛应用。物联网上部署了海量的多种类型的传感器,每个传感器都是一个信息源,传感器获得的数据具有实时性特点,按一定的频率周期采集环境信息,不断更新数据。其次它是一种建立在互联网上的泛在网络。它的基础和核心仍然是互联网,通过各种有线和无线网络与互联网融合,将物体信息实时准确地传递出去。另外,物联网不仅仅提供了传感器的连接,其自身也具有智能处理能力,能够对物体实施智能控制。智慧校园是指以物联

6、网为基础,以各种应用服务系统为载体而构建的集教学、科研、管理及校园生活为一体的智能化和智慧化教学、学习和生活环境。基于物联网的智慧校园是一个开放的、创新的、协作的、智能的综合信息服务平台,教师、学生和管理者全面感知不同的教学资源,获得互动、共享、协作的学习、工作和生活环境,实现教育信息资源的有效采集分析、应用和服务,智慧校园的重点在“智慧性”,它强调教务教学及科研等职能部门的信息资源整合能力,其核心在于盘活校园内各方、各角色的资源,尤其关注通过技术手段加强信息的互通性和人员的协作能力,智慧校园的核心特征白线在是哪个方面:其一是为广大师生提供一个综合信息服务平台和全面智能感知的周围环境,提供基于

7、角色的个性化制定服务;其二是将基于网络的信息服务功能到学校各个应用系统的服务与管理中去,实现各系统的互联与协作;还有就是通过android这个平台的应用软件实现各个系统的互联,方便快捷,为学校师生提供了良好的服务平台。 摘要提出了智慧校园的概念与设计方法。简要介绍了智慧校园的数据处理技术。系统介绍了一卡通系统及其网络基础。系统介绍了基于android平台的物联网系统及其网络结构词:智慧校园;一卡通;物联网关键字: 智慧校园 数据处理 一卡通 第一章 系统整体设计流程设计及架构图1 、系统整体设计流程设计 智慧校园数据处理技术实训系统是以“智慧校园”体系中最具有代表性的“智慧校园生活”物联网应用

8、部分,本次设计仅包括“宿舍”、“图书馆”两个学生校园生活子场景。 2 平台总体框架图 功能模块图3宿舍子场景: 图1-1 宿舍监控管理子系统用例图图解:(1) 环境数据查询:将采集的环境数据通过多种方式呈现给用户。在通过有线传感网采集 宿舍环境信息后,宿舍成员可以直接在宿舍的终端中查看当前宿舍的温度,湿度等环境信 息。(2) 环境报警:将特殊紧急的情况(系统中表示为火灾)警报发送给管理员,提示管理员注意。当烟雾报警器或火焰报警器侦测到烟雾或火焰时,将连接住宿区管理程序,发送警报给住宿区管理员,寻求管理员的后续处理。(3) 门禁控制:通过学生卡进行门禁管理,本场景中宿舍的出入将由舍员通过刷学生卡

9、进入,在入住时,宿舍舍员需要先登记学生卡信息。(4) 电费支付:远程采集电表的度数,并通过支持RFID技术的学生卡中的学生卡中的电子钱包功能进行电费支付。管理员通过配套的软件以及zigbee协议的无线传感网采集电表读数,再从学生卡的电子钱包中扣除相应的费用。(5) 环境警报报警:通过多种手段提示管理员,注意环境警报信息(6) 小额充值:对学生卡的电子钱包进行充值。4 图书馆子场景: 一 流程图 图解:(1)书本录入:在图书馆管理数据库中添加新购书本的信息,并生成超高频 RFID 标签用于书本识别。当图书馆新购入图书后,图书管理员通过条码识别头扫描书本条码号,填写书本名等信息,图书馆整体图书馆服

10、务书本采购书本录入条形码读取超高频RFID标签生成记录保存管理员借书还书环境监控书本信息读取用户信息读取借阅信息保存书本信息读取借阅记录获取归还记录存环境读数获取摄像头查看窗帘控制学生然后生成代表此书的超高频 RFID 标签,并贴于书本上方便后续管理流程的进行。(2) 借书:通过读取学生卡以及书本上的超高频 RFID 的信息完成借书信息的自动录入操作。当学生借书时,借还子模块将读取学生卡的卡号,而后从数据库中获取学生的基本信息。在获取有效学生信息后,通过超高频 RFID 技术读取学生所借的所有书本的记录,生成借书清单并提交此学生的借书记录到数据库中。通过超高频 RFID 技术快速添加书本记录提

11、高前台接待能力。(3) 还书:通过读取书本上的超高频 RFID 标签中的信息完成还书信息的自动录入操作。还书时学生与管理员不必在现场直接进行每本书的归还操作,而是先将归还的图书在超高频RFID 设备的读取区域内摆放整齐,而后扫描书本上的标签获取书本的借阅信息,提高了工作效率。(4) 环境监控:监控图书馆室内环境以及实时视频信息,并根据环境读数控制环境调节设备(本场景中以窗帘代表)。管理员可以在此界面查看图书馆的环境信息(温度、湿度与光照),并可以自定义窗帘控制的阈值。窗帘将根据实际的环境读数控制运动。管理员还可以通过摄像头查看图书馆内部的情5 数据库的设计本实训系列共须建立4张数据表:用户信息

12、表UserInfo、书本信息表BookInfo、书本存储信息记录表BookStoreInfo、图书借阅记录表BookRentInfo、,各表具体情况见下列各表。 表5-1用户信息表UserInfo序号列名数据类型长度小数位标识主键允许空外键说明1IDint是否记录号2CardNonvarchar30否学生卡号3UserNamenvarchar50否用户名表5-2 书本信息表BookInfo序号列名数据类型长度小数位标识主键允许空外键说明1IDint是否记录号2BookNonvarchar100否书本编号3ISBN_IDint否是书本ISBN号记录号4BookNamenvarchar100否书本

13、名表5-3 书本存储信息记录表BookStoreInfo序号列名数据类型长度小数位标识主键允许空外键说明1IDint是否记录号2ISBNnvarchar50否书本ISBN号3Locationnvarchar50否书本存放位置表5-4 图书借阅记录表BookRentInfo序号列名数据类型长度小数位标识主键允许空外键说明1IDint是否记录号2UIDint否是用户记录号3BIDint否是书本记录号5.5主要数据表关系结构本实训主要数据表表关系结构如下图所示。图5-5 数据表关系结构图 第二章 需要的硬件条件及网络拓扑图2.1 需要的硬件设备 (1) 交换机(2) 服务器(3)串口服务器 (4)超

14、高频RFID (5)读写卡器 (6)Zigbee模块(7)网络摄像头(8)条形码扫描枪(9) 智能电表 (10)智能窗帘(11)火焰探测器、烟感探测器(12)感应式门禁 网络拓扑图 通过以上设备连接好其拓扑图如下 按照一定的顺序分配好IP地址,配置好串口服务器,RFID等硬件设备。 第三章 具体Android应用程序的开发一 环境配置 配置JDK环境变量,及android开发软件环境的搭建二 具体设计宿舍监控系统开发、IC卡充值系统、图书馆系统登记三个android应用程序的开发。2.1.1网络结构图 3.2.1 宿舍监控系统设计3.2.2 系统功能有:(1) 实现高频卡刷卡验证来代替钥匙开门

15、的模式(2) 宿舍内可实时显示宿舍的温度,光照等参数环境(3) 当宿舍发生火灾等特殊情况时,通过烟雾、火焰传感器,将警报信息将发送到保安室(PC端),PC 端将自动通知相关人员处理。3.2.3系统模块功能模块名功能环境监控显示当前环境读数安防报警如果探测到火灾,上报服务器远程报警(界面)显示包含本机IP地址范围远程访问(后台)通过TC协议,与手机端通讯,传输环境信息3.2.4 宿舍高频卡验证场景,宿舍场景监控界面类别ID说明 ButtonbuttonSearch刷卡验证按钮buttonClearBarn清空用户按钮buttonRegister用户注册按钮buttonExit应用退出按钮 Ima

16、geViewimageView_fingerMachine高频刷卡机模拟图com.newland.view.RotateView 无自定义的动态门控件 3.2.5刷卡验证界面属性3.2.6宿舍场景监控界面3.2.7 宿舍场景界面控件属性类别ID说明ButtonbuttonBack返回高频验证界面按钮buttonShowQR显示IP地址二维码按钮buttonExit应用退出按钮com.newland.view.Text3DView无环境数值显示3.2.8高频刷卡操作类高频验证类用到以下函数,引用的jar包为:位于WisdomCampus_Dormlibs底下的HighRFID.jar,主要函数如

17、下:int selectCard(int time,String cardID)功能:寻卡操作,获取卡的序列号参数:time等待卡激活时间(毫秒) cardID输出类型 ,cardID0为卡号返回:执行状态,0寻卡成功 ,1输入参数非法 、 2防冲突失败、3选卡失败、4寻卡失败、6超时、9检测到多张卡 16RC531芯片初始化异常 或者该机型未配备射频卡功能 -1操作失败int openAndConnect(int port ,int mode, int baudRate);功能:连接设备参数:port - 串口(默认值为2,即COM2)mode端口模式(mode=0,表示高频RFID连接至串

18、口),baudRate波特率(默认值为6,表示波特率为57600),取值为0-9,分别表示波特率为 1200,2400,4800,9600,19200,38400,57600,115200 ,230400,921600;返回:执行状态,0命令执行成功,非0执行失败void closeAndDisconnect()功能:断开设备3.2.9 SQlite数据库设计根据高频学生卡的寻卡功能,以学生卡ID作为识别,所以只需一个字段即可实现门禁刷卡进入宿舍,如下表:字段名称数据类型 键说明STUDIENTSCARD_IDvarchar2(20) 主键卡号3.2.9-1 SQLite操作类主要包括数据库初

19、始化、注册用户、删除用户、查询用户等作 位于 com.newland.util底下的MyDatabaseUtils,3.2.9-2具体如下:SQLiteDatabase initdatabase()功能:数据库初始化参数:无返回值:SQLiteDatabase boolean registerdata(String data)功能:注册用户待添加的隐藏文字内容3参数:高频卡号返回值:是否注册成功,true :成功 ,false :失败boolean selectdatabase(String dataforselect)功能:查询用户参数:高频卡号返回值:是否查询成功,true :成功 ,fa

20、lse :失败boolean deletealldata()功能:清空所有用户参数:无返回值:是否删除成功,true :成功 ,false :失败void closedatabase()功能:关闭数据库 3.2.9-3 静态变量存储类ShareData位于包com.newland.model底下,该类定义了常用的静态变量,关键代码如下:package com.newland.model;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;/* * 静态变量类 * aut

21、hor tatung */ public class ShareData public static MyData mdata = null;/ modbus通道数据存储 public static ModbusData modbusData = null;/ modbus数据存储 public static byte addressByte = 0x01;/ 工控模块指令地址码 public static byte functionInByte = 0x01; / 工控模块输入功能码 public static char Request = (char) addressByte, (char

22、) functionInByte,0x00, 0x00, 0x00, 0x07 ;/ 工控模块请求指令,未加后面两位校验位 public static String Request_String = String.valueOf(Request);/ 转化为字符串 public static int current_status = 0;/ 当前状态值 public static boolean fire = false; / 火焰 public static boolean smoke = false;/ 烟感 public static SharedPreferences spPrefer

23、ences;/ 轻量级存储类public static Editor editor;public static boolean dooropen = false;/ 门打开关闭public static int com_modbus = -1; / 有线传感串口值3.2.9-4 TCP通讯类场景模拟当宿舍出现火宅情况下,通过TCP协议将报警信息即时的通知务器端,通讯方式为平板端对客户端的单向通讯,PC为服务端。与PC的端进行通讯的线程类为com.newland.thread.SendPCThread, 关键代码说明如下:if (ShareData.fire | ShareData.smoke)

24、 try mySocket = new Socket(IP, PORT);myBufferedWriter = new BufferedWriter(new OutputStreamWriter(mySocket.getOutputStream();/通过TCP向PC端以JSon格式发送报警信息myBufferedWriter.write(new JSONObject().put(warning, on).toString() + rn);myBufferedWriter.flush();sleep(15000);3.2.9-5刷卡界面验证(1)刷卡验证界面显示项刷卡验证主界面显示项包括:操作

25、按钮区域、动画显示区域。(2)操作功能点操作功能点包括:刷卡验证、清空用户、用户注册、退出。(1) 刷卡验证:验证学生卡是否注册。(2) 清空用户:将学生卡库全部清空。(3) 用户注册:对学生卡进行注册的操作。(4) 退出:退出应用2. 宿舍界面(1)宿舍界面显示项宿舍主界面显示项包括:数据显示区域、动画显示区域。(2)操作功能点操作功能点包括:温度传感、光照传感、火焰传感、烟感传感、设置、返回、退出、二维码图片地址。温度传感:显示当前宿舍的温度值。光照传感:显示当前宿舍的光照值。火焰传感:显示宿舍当前环境监控情况。烟感传感:显示宿舍当前环境监控情况。设置:设置与DoNet端服务器交互的地址。

26、返回:退出宿舍界面并返回到指纹验证界面。二维码图片地址:显示ip地址。 退出:退出宿舍监控应用。烟感传感器的报警可以将香烟的烟靠近,当烟感传感器感测到有烟,会发出“滴滴”警报声音,宿舍界面中的“烟感:正常”立刻显示为“烟感:冒烟”。如下图所示 宿舍场景界面点击设置按钮,可以与DONET程序进行交互,可以将报警信息传递到PC端如图下图所示进行设置。 IP设置界面3.3 IC卡充值系统 3.3.1 IC卡充值系统功能描述及设计说明 IC卡充值系统通过高频设备读取IC卡,为IC卡提供充值功能,并通过POS机打印小票。3.3.2-1 主界面 如图所示3.3.2-2主界面空间属性说明类别ID说明Butt

27、onbtnReadcard读取高频卡btnRecharge充值TextViewtvCardNum显示高频卡号tvBalance充值金额 3.3.3 高频卡操作类 com.newland.dev包下的高频读取类:HighRFID.java,主要包括打开串口连接高频设备、寻卡、密钥验证、读块数据、写块数据、关闭串口断开设备,详细说明如下:int openAndConnect(int port ,int mode, int baudRate);功能:连接设备参数:port - 串口(默认值为2,即COM2)mode端口模式(mode=0,表示高频RFID连接至串口),baudRate波特率(默认值为

28、6,表示波特率为57600),取值为0-9,分别表示波特率为 1200,2400,4800,9600,19200,38400,57600,115200 ,230400,921600;返回:执行状态,0命令执行成功,非0执行失败void closeAndDisconnect()功能:断开设备 参数:无int selectCard(int time,String cardID)功能:寻卡操作,获取卡的序列号参数:time等待卡激活时间(毫秒) cardID输出类型 ,cardID0为卡号 返回:执行状态,0寻卡成功 ,1输入参数非法 、 2防冲突失败、3选卡失败、4寻卡失败、6超时、9检测到多张卡

29、、16RC531芯片初始化异常 或者该机型未配备射频卡功能、-1操作失败 int authenticationExternKey(int block,String key)功能:外部密钥验证参数:block绝对块号,取值范围0-63Key密钥,6个字符返回:执行状态,0操作成功,1输入参数非法,255无卡, 252认证出错、 246未认证,-1操作失败int writeData(int block,String data )功能:写数据块参数:block绝对块号,取值范围0-63,块0及每个区的块3不可写 data要写入的数据字符串,可为任意字符,包括中文字符,总长度不超过 16 个字节,超过

30、则截取前16个字节。返回:执行状态,0命令执行成功,非0执行失败int readData(int block,String data )功能:读数据块参数:block绝对块号,取值范围0-63,块0及每个区的块3不可写Data输出类型:data0为读到的块数据。返回:执行状态吗,0操作成功,1输入参数非法,255无卡, 252认证出错、 246未认证,-1操作失败3.3.4 POS机操作类int openAndConnect(int port ,int mode, int baudRate);功能:连接设备参数:port - 串口(默认值为2,即COM2)mode端口模式(mode=0,表示P

31、OS机连接至串口),baudRate波特率(默认值为7,表示波特率为115200),取值为0-9,分别表示波特率为 1200,2400,4800,9600,19200,38400,57600,115200 ,230400,921600;返回:执行状态,0命令执行成功,非0执行失败void closeAndDisconnect()功能:断开设备 参数:无ArrayList createSPRT(ArrayList datalist)功能:生成小票打印行集合参数:小票数据集合long getWithhold()功能:获得扣款金额 参数:无3.3.4 主界面类文件(1) 欢迎界面类:WelcomeA

32、ctivity.java,为欢迎界面如图5-24,界面加载欢迎界面图片,通过线程停留2秒后进入主界面。 图5-24 欢迎界面(2) 主界面类文件RechargeActivity.java对应“activity_recharge.xml”布局文件的详细功能实现;主要实现了高频读取高频卡、高频卡进行充值、POS机小票打印等功能。该类文件位于“com/newland/ui”包下。以下为该类文件的关键代码:private void initComponent() tvCardNum = (TextView) findViewById(R.id.tvCardNum);tvBalance = (TextV

33、iew) findViewById(R.id.tvBalance);pos = new Pos();handler = new Handler();/ 打印小票线程runnable_SPRT = new Runnable() int index = 0;public void run() / TODO Auto-generated method stubif (index = SPRTlist.size() index = 0;handler.removeCallbacks(this); else try byte bs_line = SPRTlist.get(index).getBytes(

34、GBK);pos.printReceipt(bs_line);index+; / 100ms之后再次运行此runnable,100ms打印一行handler.postDelayed(this, 100); catch (UnsupportedEncodingException e) / TODO 自动生成的 catch 块e.printStackTrace(); ;3.4 图书登记系统 3.4.1图书馆登记系统功能描述及设计说明 3.4.1-1. 功能描述 宿舍场景中学生通过二维码扫描头扫描图书背面的条码,获取图书的编号,在场景中添加图书信息将编号写入到超高频标签并上传保存到PC服务器模块名功

35、能二维码控制扫描图书的二维码远程访问(后台)基于HTTP协议,与PC通讯,上传图书信息 3.4.2 设计说明 3.4.2-1 界面的XML文件 图书馆图书登记场景主要由两个界面组成:图书登记界面,设置服务器地 址界面。 图书登记界面如图下图所示 图书馆登记界面3.4.2-2 属性说明类别ID说明ButtonbtnRegister注册登记按钮EditTextetBookName书名etPressmark书架号etBarcode条码 3.4.3-1 属性说明类别ID说明ButtonbtnSave保存按钮btnCancel取消按钮TextViewtvAddress服务器地址EditTexttxtSe

36、rver地址输入框3.4.4 超高频操作类 超高频的相关操作类位于工程目录/src/com.newland.dev,主要包括超高 频设备的连接、标签写入、设备关闭。关于SuperHighRFID类的方法说明如下。Int openAndConnect(int port, int mode) 功能: 打开连接超高频设备 参数:port:串口 mode:模式(当port=0时 mode=1为超高频) 返回:连接状态,0成功执行, 非0执行失败void closeAndDisconnect( )功能:关闭连接设备 参数:无 返回:无 int writeDataSingle(char accessPwd

37、, int bank, int ptr, int cnt,char writeData, String uii, byte errorCode)功能:将数据写入标签 参数:accessPwd:访问口令(null表示默认) bank:数据类型(00-保留区,01-EPC区,02TID区,03用户区) ptr:起始地址的偏移量 cnt:数据长度(null表示默认) writeData:需要写入的数据 uii:输出参数,uii0返回标签的UII errorCode:输出类型 ,errorCode0为标签返回的Error Code。返回:数据写入标签是否成功, 0成功执行, 非0执行失败 3.4.5

38、二维码扫描头操作类关于Scanner类的方法说明如下:l int openAndConnect(int port, int mode) 功能:打开连接超高频设备 参数:port:串口 mode:模式(当port=0时 mode=3为二维码) 返回:打开二维码扫描头,0成功执行, 非0执行失败l void closeAndDisconnect( ) 功能:关闭连接设备 参数:无 返回:无3.4.6 HTTP通讯类图书馆应用场景主要通过HTTP与PC端进行数据上传,将图书信息进行登记,平板端为客户端,PC端为服务端。1. 通讯类位于com.newland.dataservice.DataConne

39、ct关键代码如下:public String getHttpContent(String strParameter) try /POST提交HttpPost httpPost = new HttpPost(Global.sp.getString(serveraddress, HOSTADDRESS);HttpClient client = new DefaultHttpClient();/ 请求超时client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000);/ 读取超时client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);/设置编码client.getParams().setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET,Ch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号