毕业设计(论文)-局域网内网络教学软件开发.doc_第1页
毕业设计(论文)-局域网内网络教学软件开发.doc_第2页
毕业设计(论文)-局域网内网络教学软件开发.doc_第3页
毕业设计(论文)-局域网内网络教学软件开发.doc_第4页
毕业设计(论文)-局域网内网络教学软件开发.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大 连 民 族 学 院 本 科 毕 业 设 计(论 文)局域网内网络教学软件开发学 院(系): 计算机科学与工程学院 专 业: 软件工程 学 生 姓 名: 学 号: 指 导 教 师: 评 阅 教 师: 完 成 日 期: 2012-5-30 大连民族学院局域网内网络教学软件开发摘 要近年来,多媒体技术迅速兴起、蓬勃发展,多媒体系统的应用以极强的渗透力进入了人类生活的各个领域,对人类的生产方式、工作方式甚至生活方式都带来了巨大的变革。同样的,多媒体技术在教育领域中也产生了积极的效应。因为多媒体具有图文、声并茂的特点,在这样的学习环境中大大引起学生对教学内容的高度兴趣,对学生在知识的学习中产生了积极的效应,也为学生提供了一个理想的、可定制的教学环境。在当下多媒体技术普遍应用于教育领域,给教育领域带来的是一种新的教学引导方式,学生在学习知识的过程中,可以对知识有更好的掌握。本文设计的软件就是将多媒体技术应用于教学得到的成果。本文使用Nokia的跨平台的工具包-Qt 实现开发了局域网内教学系统,整个系统实现过程在Nokia Qt Creator IDE 中完成。图形用户交互用 Qt SDK中的designer设计。整个系统实现了学生的对教学课件的查看,对教学对应问题的自主测试,以及教学内容的动手练习。在教师端,老师可以查看学生的信息,还可以对指定学生动态提问,从而实现对学生“一对一”的关注,提高教学效果。关键词:课件查看;自主测试;动态提问; - I -局域网内网络教学软件开发Network teaching software development In local area networkAbstractIn recent years, the multimedia technologies started. The vigorous development rapidly, the multimedia systems applied by the greatly strengthened penetrability entered each domain which the humanity lived, to humanitys production method, the working life style has even brought the huge transformation. Similarly, the multimedia technologies have also had the positive effect in the educational fields. Because multimedia has the chart article, the sound and the luxuriant characteristic, causes the student greatly in such learning environment to the course content high interest, has had the positive effect to the student in the knowledge study, also has provided the teaching environment which for the student ideal, may have custom-made. Applies generally immediately in the multimedia technologies in the educational fields, what brings for the educational fields is one new teaching guidance way, the student in the study knowledge process, may have better grasping to the knowledge. This article is going to discuss the content is applies the multimedia technologies the achievement which obtains in the teaching.This article discusses the software, uses Nokia cross platform tool bag - Qt to realize, the overall system realizes the process to complete in Nokia Qt Creator IDE. The graph user uses in Qt SDK alternately the designer design. The overall system has realized the student to the teaching courseware examination, to the teaching correspondence questions independent test, as well as the course content begins the practice. In the teacher end, teacher may examine students information, but may also to each student dynamic inquiry, has like this completed “one to one” teaching.Key Words: Courseware view; Independent test; Dynamic inquiry- IV -目 录摘 要IAbstractII1 绪论11.1 课题开发背景11.2 课题开发的目的及意义22 软件开发环境及使用技术32.1 开发环境32.2 工具介绍32.2.1 Qt SDK32.2.2 Qt Creator42.2.3 Qt Designer42.2.5 Qt Linguist62.2.6 Mingw62.3 系统中使用的Qt 技术概述72.3.1 Qt: QTreeWidget QTreeWidgetItem72.3.2 Qt: QListWidget QListWidgetItem82.3.3 Qt: QHash,QStringList,QList93 程序分析与设计113.1 系统及其模块介绍113.2 系统工作流程114 程序实现134.1 系统数据库数据签出模块134.2系统登录模块164.3教师端174.3.1班级、学生信息处理模块174.3.2问题信息管理模块184.3.3广播信息模块204.3.4系统托盘模块224.4学生端234.4.1动手练习模块234.4.2自主测试模块264.4.3教学视频回放模块284.4.4广播信息处理模块304.4.5即时问题处理模块314.5服务器广播信息,问题信息中转模块325系统功能模块测试及问题处理34结 论36参 考 文 献37致 谢38局域网内网络教学软件开发1 绪论近年来,多媒体技术迅速兴起、蓬勃发展,多媒体系统的应用以极强的渗透力进入了人类生活的各个领域,对人类的生产方式、工作方式甚至生活方式都带来了巨大的变革。同样的,多媒体技术在教育领域中也产生了积极的效应。因为多媒体具有图文、声并茂的特点,在这样的学习环境中大大引起学生对教学内容的高度兴趣,对学生在知识的学习中产生了积极的效应,也为学生提供了一个理想的、可定制的教学环境。在当下多媒体技术普遍应用于教育领域,给教育领域带来的是一种新的教学引导方式,学生在学习知识的过程中,可以对知识有更好的掌握。我们知道,在传统的教学过程中一切都是固定的,从教学内容、教学策略、教学方式、教学步骤直到学生的自主练习都是由老师事先就全部安排好了的,学生更多的是被动的参与到这个过程。但是在以多媒体技术为基础的教学方式,实现了一种交互式的教学,在这样的交互式的学习环境中,学生可以按照自己的学习基础进行相应的自主的练习。如此一来,学生就必须去发挥自己的主动性、积极性,在这个主动和积极参与的过程中掌握知识,而就是这种主动参与性对学生的主动性、积极性的发挥创造力很好的条件。同时,这个过程中,老师也可以参与到学生的学习中,通过对学生提问的方式来分析学生对知识的掌握程度。本文将要探讨的内容就是将多媒体技术应用于教学得到的成果。本文所探讨的软件,使用Nokia的跨平台的工具包-Qt 实现,整个系统实现过程在Nokia Qt Creator IDE 中完成。图形用户交互用 Qt SDK中的designer设计。1.1 课题开发背景在多媒体技术中,人机交互与立即反馈是其显著特点。由计算机参与的多媒体技术,使得计算机的交互功能完成了老师与学生之间的一对一的教学,这一结合产生出一种新的图文并茂、丰富多彩的人机交互,而且这个过程可以立即反馈。这样的交互方式对于教学有着重要的意义。这样的教学途径,能有效的机房学生的学习兴趣,使学生产生强烈的学习欲望,从而形成了学习的动机。交互性是多媒体计算机所特有的,也正因为这个特点使得多媒体教学成为改变传统教学模式的一个重要因素。本文所述的软件正是为了实现这样的交互性而开发的。在整个系统中,学生可以对教学课件查看,对教学对应问题的自主测试,以及教学内容的动手练习。在教师端,老师可以查看学生的信息,还可以对每一个学生动态提问,这样就完成了“一对一”的教学。1.2 课题开发的目的及意义相比传统的教学方式,多媒体教学有许多的优势:一、 可以把传统教学中的粉笔加黑板的单一、呆板的表现形式转变为直观化的、形象化的、具有激发学生学习兴趣的方式。二、 可以将一些在普通条件下难以实现和观察到的过程用形象化的方式显示出来。三、 可以增大教学的信息量,有助于扩展教学课时的容量,提高教学效率。四、 学生的自主参与,有助于学生自主动手和积极性的发挥。正是因为多媒体教学的这样一系列的好处,本文所述的软件也针对这样特点实现了对应的功能。2 软件开发环境及使用技术2.1 开发环境操作系统平台:Windows 7 English Ultimate Sp1程序设计语言: C+集成开发平台: Qt SDK mingw版本控制: Visual SVN、Tortoise SVN图片处理平台: Adobe Fireworks 、Adobe Photoshop课件处理: pfDesktop、office 2007解析容器: Apache tomcat 6.0.18JVM: Jdk-6u18-windows-i586测试平台:Windows XP Sp3 、Windows 7 English Ultimate Sp1、Ubuntu 12.04数据库:MySQL 5.5.15.0数据库管理工具: Navicat 8.0.28 Enterprise绘图工具:Edraw Mind Map 4系统打包工具:Inno Setup Compiler2.2 工具介绍2.2.1 Qt SDKQt最早是由奇趣科技开发的跨平台的C+图形用户界面应用开发框架。但是它并不只是只能开发GUI程序,我们可以使用Qt开发非GUI的程序。我们可以用Qt完成从嵌入式到操作系统层软件的开发。在Linux操作系统中KDE桌面,就是使用Qt开发的。2008年诺基亚公司收购了奇趣科技,Qt在每一次的版本升级中也不断的加入了新的特性。正是它的跨平台性,以及它的寄住语言是C+,如此在程序执行效率和开发效率中带来了很多的便捷。甚至在目前很火的Android中也有人对Qt的支持NDK。Qt中对信号和事件的处理,使用Qt特有的信号与槽(Signals & Slots)。在开发中Qt SDK会对标注有Q_OBJECT的Class在编译的时候先用moc工具把信号和槽处理的代码转为标准的C+代码,在链接成为可行性文件。2.2.2 Qt CreatorQt Creator,如图2.1, 是Nokia收购Qt之后推出的一款轻量级的跨平台的集成开发环境。此IDE支持Linux 32位、64位、Mac OSX以及Windows。图2.1 Qt Creator 功能方面,Qt Creator包括了项目的生成向导、一个高级的富C+代码编辑器、浏览文件及类的工具、集成了图形化的GDB调试前端,集成qmake构建工具,集成了领先的版本控制软件,包括Git、Perforce和SVN。2.2.3 Qt Designer Qt Designer,如图2.2,是Qt SDK 中设计用户界面的图形化工具,在这个工具中通过拖动课件的方式把我们在程序中需要的课件按照我们需要的设计方式置放到指定的位置。在Qt Designer还把系统的布局管理Layout做成了工具导航,如图2.3,我们可以很方便的对窗体中的控件布局。图2.2 Qt Designer图2.3 Qt Layout图2.4 Qt Assistant2.2.5 Qt Linguist Qt Linguist,如图2.5,Qt本身支持国际化,而对于国际化的处理,Qt提供了这样的一个工具,这个工具给软件的国际化处理带来了很大的便利。通过Qt Linguist加载源文件,将对应需要处理的信息用其他的语言翻译,再保存成qph文件,这个qph文件就可以在我们的程序中使用了,可根据当前的系统区域读取不一样的qph文件,从而实现国际化。图2.5 Qt Linguist2.2.6 Mingw Mingw,其系统二进制目录结构如图2.6。Mingw,是Minimalist GNU on Windows的缩写,指的是只用自由软件来生成纯粹的Win32可执行的编译环境。如此,我们使用Mingw就可以像在Linux下使用GNU程序开发工具。在Mingw中,其核心是GCC,GCC是一套支持众多计算机程序语言的编译系统,且在标准方面最接近标准,所有使用带MingwGCC的Qt,也就是Qt使用的Mingw编译系统,可以更好的支持系统的跨平台性。图2.6 Mingw bin二进制目录结构2.3 系统中使用的Qt 技术概述2.3.1 Qt: QTreeWidget QTreeWidgetItemQTreeWidget QTreeWidgetItem的效果如图2.7:图2.7 QTreeWidget效果图系统中使用QTreeWidgetQTreeWidgetItem的地方和使用的接口,如表2.1:表2.1 QTreeWidget使用及接口说明客户端模块使用接口教师端班级,学生信息列表QTreeWidgetItem(QTreeWidget*parent,inttype=Type)将类型为Type的Item添加到parent QTreeWidgetQTreeWidgetItem(QTreeWidgetItem*parent,inttype=Type )将类型为Type的Item作为parent QTreeWidgetItem的子节点QTreeWidgetItem:setIcon(intcolumn, constQIcon&icon)给列ID为column的Item加入一个图标QTreeWidgetItem:setText(intcolumn, constQString&text)给列ID为column的Item加入文字QTreeWidgetItem:text(intcolumn)const得到Item在列ID为column的文字QTreeWidget:itemPressed (QTreeWidgetItem* item,int column )当触接到一个Item是会发过的信号QTreeWidget:itemDouble (QTreeWidgetItem* item,int column )当双击一个Item是会发过的信号问题信息列表学生端课件列表2.3.2 Qt: QListWidget QListWidgetItemQListWidget QListWidgetItem 的效果如图2.8:图2.8 QListWidget效果图QListWidget,与只用1列的QTreeWidget在运行效果上差不多。系统中使用QListWidget QListWidgetItem的地方和接口,如表2.2:表2.2 QListWidget使用及接口说明客户端模块使用接口教师端广播信息QListWidget:addItem(QListWidgetItem*item)添加一个QListWidgetItem到QListWidgetQListWidgetItem( constQString&text,QListWidget*parent= 0,inttype= Type )构造一个文字为text,QListWidget parent为空,类型为Type的QListWidgetItem2.3.3 Qt: QHash,QStringList,QList为了提高系统的性能,包括来自数据库和系统本身的,在所有数据从数据库中迁出至数据结合,在系统的其他地方只是操作一个数据结合,而不是直接操作数据库。在Qt中,为了处理一些跨平台的需求,对很多数据结构都在标准C+的基础上重新实现了很多,不过它们大多也只是在名字上不一致,多了一个“Q”,在具体的实现上没有太多不一样。系统中使用到的数据集合数据结构具体说明如下:(1) QHash:这是Qt提供的一个类模板,原形QHash,提供了基于hash-table的数据词典。安装键值的对应关系关联数据。这种关联关系可以是一对一的,也是可以是一对多的。具体取决于你建立这个关系的方式,如在建立这种关系的时候,把键值使用insert的方式写入到QHash中,那么这样得到的关联就是一对一的,如若把键值使用insertmulti的方式,那么得到的关联就是一对多的。 在QHash手册中对insert和insertmulti的说明是:insert操作,插入一个新的元素,这个元素有一个键和值,他们是一一对应的,如果在这个词典中有这样的键已经存在了,那么就用新的这个值去替换,如此就完成的一对一的工作;insertmulti操作,与insert操作不同的是,如果这个数据词典中已经说了这个键的话,它不会去覆盖之前的那个值,而只是加入一个新的拥有同样键的一个值。 获取QHash里面的具体某一个元素、这个元素的键以及值的方式:在一一对应关系中,可以通过QHash的size函数得到数据词典中的元素个数,在根据这个size来遍历整个词典就可以得到所有的元素;通过QHash的keys函数可以得到所有的键的一个QList集合,使用QList集合的size方法得到QHash的keys的个数,这个结果与QHash的size得到的结果是一致的,通过遍历整个QList结合就可以得到所有的key,对于每一个key在QHash中有对应了一个value,使用QHash 的value函数,给它一个key就可以得到这个value。反之,可以用使用values得到size,进一步得到某一个vaule在QHash的key。在一对多关联中,类似一对一的处理,先使用keys得到所有的key,再遍历整个QHash,通过value已经传个这个函数的key得到所有的value。也可以通过一个key得到这个QHash中所有有相同key 的value的一个QList集合,在去遍历这个QList集合就可以得到所有的value。(2) QStringList:在Qt中,QStringList其实就是重新实现了QList,只是做了一个只针对Type是QString的处理。往QStringList添加一个QString,可以通过“”操作,原形,QStringList &QStringList:operator(const QString &str),这个是重新实现的操作,把给定的一个QString附加到这定的一个QStringList中,这个过程还可以用append函数进行。也可以使用join方法把很多的QStringList中的所有的QString汇集到一个中QString中去。QStringList的操作如下:QStringList str_list_a;QString str_a = QString(“str_a”);str_list_a str_a; / append the str String to the stringlist str_listQStringList str_list_b;str_list_b.append(str_a);/ str_list_a = str_list_b:trueQString str_b = QString(“str_b”);QString str_list_all;str_list_all str_a str_b;QString all = str_list_all.join(“”);/ all = “str_astr_b” (3) QList这是一个类模板,原形QList,提供了任意数据结构的集中处理的接口。因为QStringList其实就是QList的特别实现,那么在QStringList中有的一些函数,在原本就是QList本身的功能,如“setHostName(host);db-setPort(port.toInt();db-setDatabaseName(teachingroom);db-setUserName(root);db-setPassword(admin);bool dbConn = db-open();if (dbConn) databaseConnectionSuccess = true; else databaseConnectionSuccess = false; QString errorInfo = db-lastError().text()+QObject:tr(nPlease resetting your DB server); QMessageBox:critical(0,QObject:tr(Database Setting Error),errorInfo); QSqlDatabase *db初始化分析:首先,看数据库操作类的构造函数,TeachingDB(QString host,QString port);,可以看出TeachingDB的构造是用来一个类型为QString的host值,以及QString的port值作为参数传入TeachingDB类的。在TeachingDB的构造函数中,使用如表3.2的方式将db初始化。初始化之后给db一个host,也就是数据库的主机地址,QSqlDatabase类中的setHostName使用一个QString的串来设置其主机。同时使用setPort函数来设置数据库的端口,这里将为QString类型的port使用toInt函数得到一个整型。这个port数据源,没有做处理,因为如果不是一个正确的port,在db-open的时候得到的是一个false;这样就会给出一个数据库连接错误的提示。数据自数据库签出,为了提升系统的性能将数据库数据全部加入数据集处理,这里用到了QHash,QList,QStringList。核心处理部分,如下:QHash classList; QHash studentsList; void TeachingDB:initData() classList.clear(); studentsList.clear(); /get class from database QSqlQuery selectClassQuery(SELECT * FROM CLASS;); classList.insert(className,classStudentCount); /get student from database QSqlQuery selectStudentQuery(selectStudentSql); . studentsList.insertMulti(classList.keys().at(i),student); students.insert(studentID+studentName,student); studentsSet.insert(studentID,student); /get questionset from database . questionSet.insert(questionID,question); questionSetList.append(question); . questionHashList.insert(key,question); /get chapterlist from database . chapterList.append(chapterName); 数据自数据库签出核心部分分析:在所有操作之前的clear函数的处理,是为了将已经在数据集中的数据先全部清除的处理。这样到用户刷新数据的时候,不至于数据会重复,因为对某一些,如QStringList的操作时一个append的处理过程。classList是一个以QString类型为键和值的QHash实例。用于存储数据库中班级的信息,自数据库签出之后,把数据库中的班级以及班级任务写到这个QHash中。而在外要使用这些数据的时候,就是用TeachingDB的一个对象来调用如下所示的操作就可以得到具体的数据了,首先使用getClassCount函数得到班级的个数,在使用一个for循环就可以得到所有的班级的信息了。TeachingRoomClass* TeachingDB:getClassFromDB(int index) TeachingRoomClass *currentClass = new TeachingRoomClass; currentClass-setClassName(classList.keys().at(index); currentClass-setClassStudentsCount(classList.values().at(index); return currentClass;int TeachingDB:getClassCount() return classList.size();/从数据库中把所有的班级信息取出int classCount = teachingDB-getClassCount();for(int index=0;index getClassFromDB(index); studentsList、students以及studentsSet这三个都是QHash以QString为键,TeachingRoomStudent*为值的实例。但是他们的QString是不一致的,studentsList键班级作为了key,students键学生的学号和姓名作为了key,而studentsSet将学生的学号作为了key。此处会出现这么些不一样的集合,是为了满足不一样的数据抽取需求。questionSetList是一个QList实例,它使用QuestionSet*作为其数据元。它在数据抽取处理中只是简单的将数据append到这个list里面。questionSet是一个QHash实例,它以QString为key,QuestionSet*为value。它在数据抽取处理中将问题的ID和问题本身insert到这个QHash中。questionHashList与questionSet类似,也是一个以QString为key,QuestionSet*为value的QHash实例。不过其key是问题ID,问题名称,问题发布时间的一个组合。4.2系统登录模块登录效果,如图4.1图4.1左边为服务器端登录效果,中间为学生端登录效果图,右边为教师端登录效果图。当点击任何一个客户端的登录窗口里面的“设置”按钮的时候,都会出现类似如图4.2,服务器端的设置窗口图4.1客户端登录效果图图4.2服务器端的设置窗口这个窗口用于设置在数据库连接需要的hostName以及port。设置完成之后,系统会把这些信息通过QSettings将信息按照系统类型写入到不同的地方。在windows平台会将信息写到系统注册表,如果是Mac OSX平台就会使用XML文件来存储,使用unix like的话,就会将信息使用INI文件来存储。设置完成之后据可以登录到系统了。当系统“登录”按钮的时候,系统会将输入的用户以及密码信息取出,在到数据库中去check一下。如果成功就会登录到系统中,同时开启tomcat服务器,以及广播、即时问题的中转服务。4.3教师端4.3.1班级、学生信息处理模块模块效果,如图4.3这个模块的用户交互参考了MSN和QQ的好友列表。数据的展示使用了Qt的QTreeWidget控件,每一个数据元使用了QTreeWidgetItem数据按照数据库中数据集以及存取数据的方式将数据签出,并写到这个Tree中。核心处理如下: /setting the teacher itemQTreeWidgetItem *teacherItem = new QTreeWidgetItem(ui-studenTree,TEACHER_ITEM); QString userName = tr(jsp001); ui-studenTree-insertTopLevelItem(0,teacherItem); ui-studenTree-clear(); setCurrentTeacherUser(); int classCount = teachinDB-getClassCount(); for(int nClass=0;nClassstudenTree,CLASS_ITEM); classItem-setFont(0,classfont); TeachingRoomClass *currentClass = teachinDB-getClassFromDB(nClass); /add student items *studentItem = new QTreeWidgetItem(classItem,STUDENT_ITEM); 图4.3 班级、学生信息展示图示模块分析:在模块中使用TeachingDB的一个对象teachinDB将数据的数据自数据中签出,并将得到的数据设置到到QTreeWidgetItem中,使用setIcon设置一个Item的Icon,使用setText设置Item的文本信息。4.3.2问题信息管理模块问题信息列表如图4.4在问题列表中同样使用了QTreeWidget来展示。数据类似班级、学生信息一样自数据库签出。问题发送效果如图4.5。问题添加效果如图4.6。问题传输部分核心处理如下int questionSetSize = teachinDB-getQuestionSetSize();for(int quesionIndex=0; quesionIndexsetQuestionSet(teachinDB-getQuestionFromSet(quesionIndex);void SendQuestionDialog:sendQuestionID()int id = ui-questionID-currentIndex(); emit sentQuestion(teacher/+currentStundent-getStudentID()+/+QString:number(id)+n);void MainWindow:sendQuestionInfo(QString questionInfo) socket-write(questionInfo.toUtf8();图4.4问题信息列表图示图4.5问题发送效果图图4.6问题添加效果图4.3.3广播信息模块广播信息模块效果如图4.7。当在文本框内书写好广播消息之后,点击“发送广播”按钮,就可以将广播内容发送。同时这个窗口也会关闭。而当没有书写任何内容就点击“发送广播按钮”的时候会出现如图4.8的提示。图4.7广播信息图4.8 广播信息-没有写入信息广播消息部分核心处理如下 BroadCast *broadCast = new BroadCast;if(broadCast-exec()socket-write(QString(broadcast/+broadCast-getBroadCastContent()+n).toUtf8(); ui-broadCastList-addItem(new QListWidgetItem(broadCast-getBroadCastContent(),ui-broadCastList); 广播消息部分分析,当点击广播按钮的时候会调用如表4.6的模块,首先新建一个broadCast对象,这是一个广播消息的窗体QDialog的对象,其exec方法,当这个QDialog点击“发送广播”按钮的时候会accept这个QDialog,这样QDialog的exec会返回一个宏,如这个QDialog已经accept,那么就会关闭这个QDialog,在将写入的广播信息取出来,在用socket将数据内容写入到socket buffer传到服务器端,服务器端在转换数据到所有在线客户端。4.3.4系统托盘模块模块效果如图4.9图4.9 系统托盘效果图系统托盘创建核心处理如下:void TeachingLoginDialog:createTray() /setting trays icon sysTray-setIcon(QIcon(:/appFace/systray); /setting trays menu sysTrayMenu-addAction(showMainWinAction); sysTrayMenu-addActi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论