游戏交易平台报告 2.doc_第1页
游戏交易平台报告 2.doc_第2页
游戏交易平台报告 2.doc_第3页
游戏交易平台报告 2.doc_第4页
游戏交易平台报告 2.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

网络游戏交易平台 蒋瑞红的B/S模式生产实习报告书班 级: Z090556 姓 名: 蒋瑞红 学 号: Z09055612 同组成员: 无 指导教师: 高 翔 洛阳理工学院生产实习报告书目录1. 设计题目12. 设计内容13. 功能模块划分14. 实验总结24.1 开发背景与需求分析24.2 系统功能介绍44.3 核心技术105. 核心代码126. 致谢237. 参考文献24B/S模式网络编程实习报告书时间:2011/2012学年第一学期第16,17周1. 设计题目网络游戏交易平台(游戏币下单系统)2. 设计内容设计一个简单的游戏币下单系统,包括网络游戏交易前台和游戏交易平台后台管理两部分,可以实现对网络游戏在线下单,及网络游戏交易的后台管理功能。网络游戏交易平台也是一个网络游戏下单网站,由前台下单和网站后台管理两大部分组成。3. 功能模块划分网络游戏交易平台也是一个网络游戏下单网站,由前台下单和网站后台管理两大部分组成。(1)前台功能模块具有会员权限的人通过后台认证进入前台,主要包括首页、我的帐户、我想出售、CdKey、关于我们、选择游戏、游戏在线下单、查看订单详情、搜索已经下过的订单、网站和网络游戏新闻、新用户注册、登录、修改密码等一些常用操作。网站的前台系统功能结构如图3-1所示。图3-1前台系统功能结构图(2)后台管理模块后台主要包括后台登录模块、基本信息管理、新闻管理、游戏管理、游戏服务器管理、管理员管理、订单管理、退出后台。后台主要对前台的信息进行管理,管进员可以通过后台对前台的信息进行添加、修改、删除等操作,以便及时更新数据库的内容,从而更新前台信息,让用户能及时了解游戏下单、网站和游戏新闻等信息。网站的后台系统功能结构如图3-2所示。图3-2 后台系统功能结构图网站的主要功能流程如图3-3所示。图 3-3 下单流程4. 实验总结4.1 开发背景与需求分析随着科学技术和社会的发展,网络更为人们所熟知,计算机应用于人们生活的各方方面,给人们带来了随踵而至的社会、经济效益,游戏作为一项新兴的网络文化产业,促进了中国网络经济的发展,丰富和满足了群众的文化娱乐生活。而玩家则认为闲暇时玩游戏是一种休息的方式,可以联络朋友之间的感情。近年网络游戏产业的爆炸式增长,虚拟物品的交易需求也随之出现,为满足这部分需求,网络游戏交易平台成为一种应运而生的新生事物而迅猛发展,就像随着房地产业的快速发展,房地产中介也水涨船高一样。游戏交易平台,是专门为网络游戏提供相关交易服务的电子商务平台,包括网络游戏交易、游戏币交易、代练、寄售担保等等综合性业务。游戏迷们经常访问的5173游戏交易平台一样,它可以提供这些交易服务。基于ASP.NET的游戏交易平台的设计和开发主要提供游戏交易业务,由于本人能力有限,本系统相对较简单,只实现了部分功能。这个系统可以为网民提供一个便利的游戏交易平台。网络游戏交易平台使用ASP.NET(C#语言)技术设计的,可以对网站中的游戏种类、游戏服务器、游戏新闻进行动态的管理,提高了网站管理员的工作效率。该系统具有一般游戏交易网站系统的功能,提供对游戏下单与管理功能,主要包括前台用户在线下单和后台管理区。游戏几乎是所有的游戏爱好者所关注的,人们可以从中选择有出售或要购买的游戏类型,根据提示可以快速进行在线下单,完成游戏交易。网络游戏交易平台用B/S模式,采用基于C#和Access数据库的编程。下面是数据库的设计:表4.1 游戏表字段AnclassidAnclassorderidimgstatus类型自动编号文本数字文本文本标住游戏ID游戏名称定单编号游戏图片状态表 4.2 网站新闻表字段NewidTitleContentAdddateLyCounts类型自动编号文本备注日期/时间文本数字标住新闻编号标题新闻内容发表时间新闻来源浏览次数表 4.3 会员表字段IdGameuserGamepassQuestionAnswerTel类型自动编号文本文本文本文本文本标住会员编号会员名称会员密码密码问题密码答案联系电话字段BanknoRealnameBanktypeAddressMemosFlag类型文本文本文本文本备注数字标住银行帐号真实姓名银行名称地址备注身份认证表4.4 银行表字段IdBankOrdered类型自动编号文本数字标住银行编号银行名称定单编号表4.5 管理员表字段IdEnternEnterp类型自动编号文本文本标住管理员编号管理员名称管理员密码表 4.6 游戏提供单位表字段IdDwname类型自动编号文本标住单位编号单位名称本游戏交易平台还包括网站基本信息表(config)、游戏下单表(dingdan)、游戏服务器表(nclass)和游戏新闻表(news),由于某些表的字段和前面几张表的差不多,还有就是字段太多了,在这就不再详细介绍了,下面会有介绍。4.2 系统功能介绍本系统包括游戏交易前台和游戏交易管理后台两部分,下面是详细介绍。游戏交易网站前台主要功能模块介绍:网站导航:主要包括网站首页、我的账户、我想出售、CdKey、关于我们。(2)登录模块:本模块包括新用户注册、忘记密码功能。新用户注册为用户进入本网站提供入口。忘记密码可以为用户重新设置密码。(3)选择游戏模块:主要功能(4)游戏下单模块:主要用于显示正在销售的游戏图片和本网站所提供的交易的游戏种类,点击相应的图片或单击“下单”进入游戏下单页面。(5)查看下单记录模块:主要用于显示下过的订单记录。(6)网站和网游新闻模块:主要用于显示网站和网络游戏新闻列表。点击列表可以进入相应的页面查看新闻的详细信息。下面分别详细介绍游戏交易前台的主要功能。网络游戏交易平台是一个开放式的平台,普通用户可以进入本平台网站首页,可以浏览一些公共信息。前台首页是浏览者打开一个网站后第一眼看到的网页,网站能不能吸引浏览者,在很大程度上取决于首页做得怎么样。首页包含内容虽然丰富但不杂乱,色彩搭配要合理,整体风格要独特。网站前台首页的运行结果如图4-1所示。图4-1 网站首页运行结果如果普通用户想通过本系统进行游戏交易,用户可以先进行会员注册。点击首页中的“新用户注册”连接,注册运行界面如图4-2所示。图 4-2 新会员注册点击“同意协议”,进入用户信息填写页面,然后根据提示可以完成用户注册。此页面设计如图4-3所示。图 4-3 新会员信息填写用户注册成功之后,如果需要登录进行游戏交易,新用户必须经过管理员的身份认证才可以进入本游戏交易平台进行交易。管理员认证的部分界面如图4-4所示。图 4-4 管理员认证部分界面新会员通过认证后,可以进入本平台进行交易,会员在本平台首页的登录模块进入本系统,登录成功后,显示欢迎界面,运行效果如图4-5所示。图 4-5 欢迎界面然后根据网站导航,进入首页在选择游戏模块中进行下单,也可以在欢迎界面进行快捷配置下单,完成游戏交易功能。两功能差不多,在这主要介绍在网站首页选择游戏下单进行游戏交易。游戏选择模块主要包括显示当前可以出售游戏类型图片和本网站所有出售的游戏类型一览表。点击游戏图片或点击下面的框架游戏列表下单,可以下单页面,该页面的设计效果如图4-6所示。图 4-6 游戏选择模块点击图片可以进入该游戏类型的所有游戏种类列表,然后点击“下单”可以进入下单页面,如果直接点击“下单”,可以直接进入该游戏的下单界面,下单界面运行部分界面效果图如4-7所示。图 4-7 游戏下单的部分界面下单成功后,通过Response.Write(alert(提交成功!);window.top.location=order_list.aspx;可以转到order_list.aspxyem页面,查看“我的订单记录”,页面效果如图4-8所示。图 4-8 下单记录在该页面点击红色箭头转到viewdingdan.aspx页面,可以查看订单详情,效果图如图4-9所示。图 4-9 订单详情下面主要介绍网站新闻管理。网站新闻模块的主要功能是让用户浏览网站和网游新闻,因此网站新闻模块主要包括显示网站新闻列表、显示网站新闻内容两个部分。效果图如图4-10所示。图 4-10 网站新闻此页面的主要代码是通过调用主页面中的Listnews()和Listgamenews()实现的。点击相应列表项进入相应的新闻内容页面,可以浏览新闻的内容,执行页面效果如图4-11所示。图 4-11 网站新闻详细内容前台的用户登录、修改密码、修改资料、忘记密码,关于我们、流程说明等功能,在此不在一一的详细介绍。后台功能模块设计网站的后台很重要,它实现信息的管理功能,管理你网站前台所有信息操作比如游戏信息、订单信息、新闻信息发布、修改、删除,一个好的后台可以轻松的管理你网站上的所有内容信息,后台管理主要包括以下功能模块:(1)登录模块:主要用于管理员登录网站后台。验证进入者身份,非管理员不得进入,因为后台信息的修改对整个网站起着决定作用。(2)基本信息管理模块:主要用于对网站基本信息的编辑、修改。(3)新闻管理模块:主要用于新闻信息信息添加、修改、删除。(4)游戏管理模块:主要用于对游戏信息添加、修改、删除,它可以上传游戏图片到数据库。(5)游戏服务器管理模块:主要用于对游戏服务器添加、修改、删除。(6)管理员修改模块:主要包括管理员添加、删除。(7)退出后台管理模块:退出后台管理系统。管理员通过后台登录入口进入后台登录模块,后台登录模块主要用于验证管理员的身份和密码。后台登录模块的运行效果如图4-12所示。图 4-12 后台登录进入后台后可以点击左侧基本信息管理、新闻管理、游戏管理、游戏服务器管理、会员管理、订单管理、管理员管理,进入相应的管理页面。基本信息管理模块:主要管理前台首页网站信息,设计页面如图4-13所示。图 4-13 基本信息管理新闻新管理,主要对前台网站新闻的添加、删除和修改,也可以设计新闻信息在前台显示的格式,运行效果如图4-14所示。图 4-14 网站新闻管理游戏管理模块,主要对前台选择游戏模块中显示的游戏,进行添加、删除和修改,可以上传游戏种类的图片,在前台显示。设计界面如图4-15所示。图 4-15 游戏管理界面游戏服务器的管理主要是对游戏的供应商、价格、收购数量限制等的添加、删除和修改,在此对游戏进行批量的删除。设计界面如图4-16所示。图 4-16 服务器管理界面会员管理较简单,主要是对会员信息的修改和删除,修改功能也就是前面介绍的会员认证功能,不能通过认证的会员可以直接删除。详细内容在此不再介绍。管理员管理主要是对管理员的添加和删除,设计简单功能也很简单。运行效果如图4-17所示。图 4-17 管理员管理关键问题解决方法,本系统中的关键问题包括:(1)系统设计中所用的技术。在本次设计中通过使用ASP.NET中c#技术和 Access数据库来设计的。(2)在几乎所有的web应用中都需要对访问者(用户)进行权限管理,这也是本系统的一个重点。我们希望某些操作只对特定的用户开放, 以及某些操作只有符合身份的用户才能进行。这之中涉及到了身份验证和权限管理。出于信息安全和其他一些原因的考虑,项目中的一些页面要求用户满足了一定条件之后才能访问。(3)数据库管理与维护,对一些敏感信息进行加密,防止未授权用户改动数据库。只有授权用户才能登录系统,对于某个操作,需要具有相应权限才能进行操作,对于用户的密码等敏感信息采用MD5进行加密。4.3 核心技术(1)、Web.config文件配置ASP.NET应用程序的配置功能放在Web.config文件中,它包含每一个具体Web应用程序的配置信息。在程序运行时,ASP.NET使用分层虚拟目录结构的Web.config文件提供的配置信息为每个惟一的URL资源计算一组配置设置,然后缓存结果配置设置,以供所有页面对资源的请求使用。Web.config文件对于访问站点的用户来说是不可见的,而且也是不可访问的,它基于XML,每个配置文件都包含XML标记和子标记的嵌套层次结构。游戏交易平台的Web.config文件中的配置: 通过键/值对key和value配置数据库连接的相关信息,将Access数据库games.mdb文件用相对路径的方式设置为字符串ConnectionString在程序代码中进行连接引用。还有就是通过 节可以配置 ASP.NET 使用的,安全身份验证模式,以标识传入的用户。在Web.config文件中的配置代码是:(2)、Web用户控件该系统中创建了五个Web用户控件head.ascx、end.ascx、left.ascx、leftcon.ascx和login.ascx,在首页、在线下单、新闻详细内容查看、新闻分类等前台页面的HTML代码里都进行了引用,在head.ascx来介绍它的使用方法。调用方式为:。 Register指令注册用户控件,同时把属性TagName(标签名)和TagPrefix(标签前缀)添加到 Register指令中,Src属性表示该用户控件相对于父页面的相对地址。用户控件也是服务器端控件,还必须在用户控件代码中添加Runat=server属性,用法是。用户控件是非常易于代码重用的,可以把许多相关功能和用户界面封装在一个用户控件中,然后在任何需要该功能的地方重用此控件。(3)、通用类代码在所有相关页面显示文件和Web用户控件的代码隐藏文件.aspx.cs或.ascx.cs中,通过对数据访问类的引用(以创建类实例方式),调用数据访问类里的相应函数完成相关功能,如建立数据库连接、打开和关闭数据库、对数据库执行查询、插入、删除和更新操作、页面登录检验等。此处列举 dbcon类(数据访问类)的源码:public class dbconpublic dbcon()/ TODO: 在此处添加构造函数逻辑 public static OleDbConnection createconnection() OleDbConnection conn = new OleDbConnection(PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source= + HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath + System.IO.Path.AltDirectorySeparatorChar + App_Data/ + System.Configuration.ConfigurationManager.AppSettingsConnectionString); return conn; (4)、文本编辑器的引用用做网站时经常用到FreeTextBox,下面简单介绍一下如何在中使用f reetextbox.dll组件。本游戏网站的f reetextbox.dll组件配置如下:打开vs2008,在“解决方案”中的项目下点右键,选择“添加引用”,选择“浏览”,插入下载的 freetextbox.dll文件(文件夹下有A1.1/2.0/3.5各个环境下可以使用的FreeTextBox.dll,请选择对应的版本),确定。此时可以在目录栏中看到一个 Bin 文件夹,其中含有freetextbox.dll文件。 进入default.aspx(刚才建的网站页面)页面,在源码的第二行添加上注册代码 ,代码如下:在源码页面的中间加上如下代码:此时会发现bin目录中多了一个“app_licenses.dll”文件,在该网站中还会出现一个licenses.licx的文件,同时界面上出现了设计框。如图4-18所示。图 4-18 freeTextBox5. 核心代码前台登录按钮主要的代码:protected void ImageButton1_Click(object sender, ImageClickEventArgs e) if (Request.CookiesCheckCode = null) Response.Write(alert(您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统! );javascript:history.go(-1); if(String.Compare(Request.CookiesCheckCode.Value, txtcode.Text.ToUpper(), true) != 0)/验证码的验证 Response.Write(alert(验证码错误,请输入正确的验证码!);window.top.self.location=default.aspx;);return; OleDbConnection conn = dbcon.createconnection();/数据库连接 conn.Open();string strSql = select id,gamesuser,gamespass,flag from gameuser where gamesuser=username and gamespass=userpass; OleDbParameter sqlpUser = new OleDbParameter(username, OleDbType.VarChar, 30); sqlpUser.Value = txtuser.Text; OleDbParameter sqlpPass = new OleDbParameter(userpass, OleDbType.VarChar, 40); sqlpPass.Value = FormsAuthentication.HashPasswordForStoringInConfigFile(txtpass.Text, md5);/引用System.Web.Security的库函数对得到的密码MD5加密 OleDbCommand mycommand = new OleDbCommand(strSql, conn); mycommand.Parameters.Add(sqlpUser); mycommand.Parameters.Add(sqlpPass); OleDbDataReader dr = mycommand.ExecuteReader();/使用DataReader从结果集中提取数据 if (dr.Read() OleDbCommand mycom = new OleDbCommand(select * from config, conn);OleDbDataReader rs = mycom.ExecuteReader(); if (rs.Read()/验证用户名和密码 ession.Timeout = 60; if (rsrz.ToString() = 是)/判断用户是否通过认证 if (drflag.ToString() = 1) essiongameuser = txtuser.Text; Sessiongameuserid = drid.ToString(); Response.Redirect(welcome.aspx);/登录成功转到欢迎页面 else Response.Write(alert(对不起,您的用户还没有通过验证!);javascript:history.go(-1); return; else Sessiongameuser = txtuser.Text; Sessiongameuserid = drid.ToString(); Response.Redirect(default.aspx); else Response.Write(alert(对不起,您的用户名或密码错误!);javascript:history.go(-1); return; conn.Close(); 游戏交易下单提交按钮主要代码:protected void ImageButton3_Click(object sender,ImageClickEventArgs e) if (Page.IsValid) OleDbConnection conn = dbcon.createconnection(); conn.Open();/数据库连接,打开数据库 OleDbCommand com1 = new OleDbCommand(select top 1 * from nclass where nclassid= + labnclassid.Text + order by nclass, conn); OleDbDataReader dr = com1.ExecuteReader(); if (dr.Read() if (Convert.ToInt32(drsulian.ToString() Convert.ToInt32(drshou.ToString() Convert.ToInt32(Labsun.Text) | drzt.ToString().Trim() = 满仓) Response.Write(alert(对不起,你的交易量已经超过网站的总交易量,或本服务器已经停止下单!);window.self.location=addbuy.aspx?id= + labanclassid.Text + ;); return;string dingdan = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();/订单编号的生成string strSql = insert into dingdang (dingdan,realname,bankacname,bankacno,email,times,fanshi,anclassid,nclassid,anclass,nclass,shulian,jiage,counts,memos,userid,bankatype,shid,alipay,alipayname,yxj,qq)/下单,插入数据values(dingdan,realname,bankacname,bankacno,email,times,fanshi,anclassid,nclassid,anclass,nclass,shulian,jiage,counts,memos,userid,bankatype,shid,alipay,alipayname,yxj,qq);OleDbParameter sdingdan = new OleDbParameter(dingdan, OleDbType.VarChar, 50); sdingdan.Value = dingdan; OleDbParameter srealname = new OleDbParameter(realname, OleDbType.VarChar, 20); srealname.Value = realname.Value; OleDbParameter sbankacname = new OleDbParameter(bankacname, OleDbType.VarChar, 20); sbankacname.Value = bankacname.Value; OleDbParameter sbankacno = new OleDbParameter(bankacno, OleDbType.VarChar, 50); sbankacno.Value = bankacno.Value; OleDbParameter semail = new OleDbParameter(email, OleDbType.VarChar, 50); semail.Value = email.Value; OleDbParameter stimes = new OleDbParameter(times, OleDbType.DBTimeStamp); stimes.Value = Convert.ToDateTime(labjydate.Text); OleDbParameter sfanshi = new OleDbParameter(fanshi, OleDbType.Numeric, 2);fanshi.Value = Convert.ToInt32(RadioButtonList1.SelectedItem.Value); OleDbParameter sanclassid = new OleDbParameter(anclassid, OleDbType.Numeric); sanclassid.Value = Convert.ToInt32(labanclassid.Text); OleDbParameter snclassid = new OleDbParameter(nclassid, OleDbType.Numeric); snclassid.Value = Convert.ToInt32(labnclassid.Text); OleDbParameter sanclass = new OleDbParameter(anclass, OleDbType.VarChar, 50); sanclass.Value = labanclass.Text; OleDbParameter snclass = new OleDbParameter(nclass, OleDbType.VarChar, 50); snclass.Value = labnclass.Text; OleDbParameter sshulian = new OleDbParameter(shulian, OleDbType.Numeric); sshulian.Value = Convert.ToInt32(Labsun.Text); OleDbParameter sjiage = new OleDbParameter(jiage, OleDbType.Double); sjiage.Value = Convert.ToDouble(Labjiage.Text); OleDbParameter scounts = new OleDbParameter(counts, OleDbType.Double); scounts.Value = Convert.ToDouble(labcounts.Text); OleDbParameter smemo = new OleDbParameter(memos, OleDbType.LongVarChar); smemo.Value = memo.Value; OleDbParameter suserid = new OleDbParameter(userid, OleDbType.Numeric); suserid.Value = Convert.ToInt32(labuserid.Text); OleDbParameter sbankatype = new OleDbParameter(bankatype, OleDbType.VarChar, 50); sbankatype.Value = DropDownList2.SelectedItem.Value; OleDbParameter sshid = new OleDbParameter(shid, OleDbType.VarChar, 50); if (labshid.Text = ) sshid.Value = 等待分配; else sshid.Value = labshid.Text; OleDbParameter Salipay = new OleDbParameter(alipay, OleDbType.VarChar, 50); Salipay.Value = txtalipay.Value; OleDbParameter Salipayname = new OleDbParameter(alipayname, OleDbType.VarChar, 50); Salipayname.Value = txtalipayname.Value; OleDbParameter Syxj = new OleDbParameter(yxj, OleDbType.VarChar, 50); Syxj.Value = rblzf.SelectedValue; OleDbParameter Sqq=new OleDbParameter(qq,OleDbType.VarChar,50); Sqq.Value=qq.Value; OleDbCommand com = new OleDbCommand(strSql, conn); com.Parameters.Add(sdingdan); com.Parameters.Add(srealname); com.Parameters.Add(sbankacname); com.Parameters.Add(sbankacno); com.Parameters.Add(semail); com.Parameters.Add(stimes); com.Parameters.Add(sfanshi); com.Parameters.Add(sanclassid); com.Parameters.Add(snclassid); com.Parameters.Add(sanclass); com.Parameters.Add(snclass); com.Parameters.Add(sshulian); com.Parameters.Add(sjiage); com.Parameters.Add(scounts); com.Parameters.Add(smemo); com.Parameters.Add(suserid); com.Parameters.Add(sbankatype); com.Parameters.Add(sshid); com.Parameters.Add(Salipay); com.Parameters.Add(Salipayname); com.Parameters.Add(Syxj); com.Parameters.Add(Sqq); try com.ExecuteNonQuery(); com.CommandText = update nclass set shou=shou+ + Labsun.Text + where nclassid= + labnclassid.Text; com.ExecuteNonQuery();/下单成功,改变售货量 conn.Close();Response.Write(alert(提交成功!);window.top.location=order_list.aspx); catch conn.Close();/关闭数据库Response.Write(alert(提交失败,请重新提交!);window.location=order.aspx); /发货按钮protected void Button1_Click(object sender, EventArgs e) upda(); protected void upda() OleDbConnection conn = dbcon.createconnection(); conn.Open();/连接打开数据库 OleDbParameter sid = new OleDbParameter(dingdan, OleDbType.VarChar); sid.Value = labdindang.Text; OleDbCommand com = new OleDbCommand(update dingdang set dingdanzt=已发货 where dingdan=dingdan, conn);/确定发货,更新订单的状态 com.Parameters.Add(sid); com.ExecuteNonQuery(); conn.Close(); /删除订单protected void Button2_Click(object sender, EventArgs e) OleDbConnection conn = dbcon.createconnection(); conn.Open(); OleDbParameter sid = new OleDbParameter (dingdan, OleDbType.Va

温馨提示

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

评论

0/150

提交评论