欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    [毕业设计精品]基于ASP网上收费系统的设计与实现毕业设计(论文).doc

    • 资源ID:3932775       资源大小:382.50KB        全文页数:35页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [毕业设计精品]基于ASP网上收费系统的设计与实现毕业设计(论文).doc

    毕业设计(论文)题 目基于ASP网上收费系统的设计与实现 系 (院)计算机科学技术系专 业计算机网络技术班 级学生姓名学 号指导教师职 称二一年六月 日独 创 声 明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。  作者签名: 二一 年 月 日 毕业设计(论文)使用授权声明本人完全了解关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名: 二一 年 月 日基于ASP网上收费系统的设计与实现摘 要基于ASP网上收费系统是近年来随着网络技术、计算机技术、信息数字化技术、图形影像处理技术的快速发展而出现的。而在线电影收费系统不仅能对电影收看进行收费,通过对数据库的调用使系统管理员对当今最热门的电影进行及时发布,设置和修改工作人员权限,修改管理标准,而且工作人员也可以对新影片进行整理编辑。这样使管理工作变得精确而有序,并且节省了大量人力物力,充分体现了网络信息化管理的优越性。本论文首先提出了在线电影收费的优点,分析了国内在线电影收费系统的应用现状,针对现在网上在线电影收费系统应用存在的不足,提出了更有安全方便有效的在线电影收费系统。并根据系统需求,对系统框架、功能模块和数据库结构进行了详细规划。关键词:在线收费;信息安全;数据流Based on ASP online charging system design and implementationAbstractBased on ASP online fee system is in recent years as the network technology, computer technology and information technology, digital image processing technology of graphics and rapid development. While charging system can not only online movie to watch movie, based on database charge system administrators to call the hottest movie today, and modify permissions, revision management staff and workers of the new film can rearrange editor. So make management becomes precise and orderly, and save a lot of human resources, fully embodies the advantages of network information management.This paper firstly put forward the advantages of online movie fee, this paper analyses the application fee system online movies, for now online movie fee system application deficiency, puts forward more convenient and effective security charge system, online movies. According to the demand of system, the system framework and function module and database structure carried on the detailed planning.Key words: online charge;Information security;Data flow目 录第1章 绪 论11.1 选题来源11.2 选题目的11.3 选题意义11.4 本设计的指导思想2第2章 系统设计分析32.1 需求分析32.2 系统功能分析32.3 数据的需求分析4第3章 概要设计63.1 系统功能结构概念设计63.2 数据库概念结构设计7第4章 详细设计与系统实现94.1 数据库的设计94.1.1 创建数据库94.1.2 创建表和字段94.2 系统总体流程设计104.3 详细设计及实现124.3.1 数据库连接124.3.2 身份及权限验证登录模块124.3.3 用户收费模块204.3.4 密码修改模块224.3.5 系统维护模块23第5章 软件测试235.1 单元测试235.1.1 登录模块测试245.1.2在线收费模块测试245.2 系统测试255.3 结果分析26结 论27参考文献28谢辞29第1章 绪 论1.1 选题来源随着我国经济的持续高速发展和改革开放程度的不断深入,各类企业以迅猛之势发展起来。为了适应快速发展的形式需要,企业的信息化运做也显得空前重要。好的企业信息化管理必将带好的效益,尤其是日新月异的今天。在线电影收费系统不仅能对电影收看进行收费,通过对数据库的调用使系统管理员对当今最热门的电影进行及时发布,设置和修改工作人员权限,修改管理标准,而且工作人员也可以对新影片进行整理编辑。这样使管理工作变得精确而有序,并且节省了大量人力物力,充分体现了网络信息化管理的优越性。因此,设计一个在线电影收费系统,使对收看电影的收费系统化、规范化、智能化和网络化就显的很重要了。所以在本次毕业设计中我选择了“网上收费系统”这个题目进行设计。 1.2 选题目的计算机技术、网络技术、多媒体技术的成熟与发展,为在线收看电影收费强化版权意识提供了强有力的技术支持。随着经济社会的高速发展,盗版现象呈现不可控制的局面,盗版现象的出现给原创带来了不可估量的精神上和经济上的巨大损失,因此在线电影收费系统的开发对这一现象的防治有很大的帮助,对维护正版和版权有着积极的影响。理论联系实际,是对所学知识有更新认识和体会的唯一方法。为了对大学三年所学知识的做一次综合性运用,培养自己的设计能力,增强自己的动手能力,使自己的综合素质得到提高,能够和社会顺利接轨。也为了企业的实际管理需要,我选择了本题目。1.3 选题意义随着IT技术的飞速发展,所有行业的管理都实现了IT化、信息化、科学化。企业化运营的电影网站更是不能例外。电影网站对各项管理实行信息化管理,以提高管理水平和工作效率,同时也最大限度地减少手工操作带来的错误。在线电影收费系统能够方便电影网站的科学管理,是一套基于B/S模式的系统。系统开发的整体任务是实现在线电影收费的系统化、规范化、自动化和智能化,从而达到提高在线电影收费效率的目的。1.4 本设计的指导思想ASP是一种简单易用、完全面向对象、有平台无关性、安全可靠的、主要面向Internet的开发工具。充分利用当前流行的ASP程序设计技术作为指导思想,把在线电影收费系统打造成系统化、规范化、自动化和智能化的系统。围绕实现这个目标,开发设计必须突出坚持收费与技术手段相结合以内容为主的主体性要求。综合使用ASP开发技术。另外运用微软公司的Access数据库,进行了较深入的学习和应用,以此来解决本设计的需求分析及各功能模块的划分及完成。由于本设计涉及到的知识面范围较宽,包括动态页面设计、数据库设计等,而且时间比较紧迫等因素,所以最终决定将本设计的开发重点放在前端服务模块,后台管理员操作管理,力争在有限的时间内完成这些功能的实现。 第2章 系统设计分析2.1 需求分析本系统的开发宗旨,以及总体任务就是要实现在线电影收费的自动化、规范化和系统化。所以为了能够实现编制这个网站所设定的目标,在程序的开发之前,需求分析必不可少。需求分析是介于系统分析和网站设计阶段之间的重要桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从网站角度对它们行检查与调整;另一方面,需求规格说明又是网站设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高网站生产率,降低开发成本,改进网站质量。本系统主要为系统使用者:普通服务人员及管理人员提供相应服务,以及与此相关的信息服务。例如服务人员为用户进行充值,管理人员对新影片进行整理编辑,用户在线观看影片进行付费,等等。2.2 系统功能分析由于业务的需要和保密性,也为了便于管理,用户按权限应分为两种:普通管理人员和高级管理人员。从整体上看,系统应两大模块:一个是前台用户操作模块;另一个是后台管理操作模块。对于前台用户操作模块,普通用户在登录后拥有查看个人信息、修改个人资料、用户续费、查看消费记录等功能。其中用户续费模块又分为计点会员和包月会员两种类型,每种会员类型都有两种付费类型,在线支付和银行卡支付。除此之外前台用户操作模块还具有新用户注册的功能。对于后台管理操作模块,高级管理人员登录后可查询审核前台的服务付费记录。能对新上映的一些影片进行整理编辑,以及对不同的电影点播的收费情况进行设定,编辑电影的收费模式,收费记录的查看。另外,和前台操作的普通用户一样,拥有密码修改及注销操作。 另外,系统需要一个身份及权限验证模块。通过该模块,系统可验证所登录用户的身份以及权限。判断用户是前台普通用户操作模块用户,还是后台高级管理操作模块用户。2.3 数据的需求分析在线电影收费系统是由数据流和一系列的转换构成的,而这些转换将输入数据流变换为输出数据流。数据流图就是用来刻画数据流和转换的信息系统建模技术。它用简单的图形记号分别表示数据流、转换、数据源以及外部实体。它提供了层次结构,让分析人员能够方便地表示任意抽象级管理系统和其子系统,并支持问题分解、逐步求精的分析方法。本系统的顶级数据流图和一级数据流图如下:1 顶级数据流图图2.1 顶级数据流图前台用户人员 后台管理人员 在线电影收费系统显示信息显示器2一级数据流图在线电影收费,用户资料,用户消费编辑新影片增加新影片在线电影收费,用户资料,用户消费记录图2.2 一级数据流图查看用户资料查看用户消费记录口令口令显示信息资料修改服务在线续费服务查看消费记录服务信息提交前台用户人员后台管理人员在线电影收费系统后台管理操作模块前端服务操作模块口令核对口令核对显示器命令信息提交 第3章 概要设计3.1 系统功能结构概念设计根据大型商场管理的业务流程,我们可以把系统分为三大模块:身份及权限验证模块、前台服务操作模块和后台高级管理操作模块。用户可以分为两类:前台服务人员和后台高级管理人员。前台服务人员用户只有的四个模块七个功能,而后台高级管理人员用户则有五个模块七个功能。(1)身份及权限验证模块,登录系统需验证用户和密码,确认存在并且正确后,系统将根据用户的权限进入相应的功能界面。(2)前台服务操作模块中,分为用户资料模块、用户查询模块、用户续费模块及一个注销小模块。其中用户资料模块主要是修改和查询自己的基本资料,用户查询模块主要是查询用户的消费记录、消费信息,用户续费模块主要是对用户的基本消费进行续费。注销模块:注销登录,退出本系统,结束工作状态。(3)后台管理操作模块中,分为审核用户计费管理模块、整理编辑影片模块、查看用户消费记录模块,还有一个注销小模块。审核用户计费管理模块:查看并审核交易业务记录,实现监察在线收费系统的经营状态。整理编辑影片模块:整理新上映的各种类型的影片,进行逐个的编辑,主要是对影片的名字、类型、格式、资料、题材等方面。还有对每个影片在线收看收取的费用的制定。查看用户消费记录模块:该模块主要是进入后台管理模式查看不同用户的在线观看电影的消费记录和统计。以下是在线电影收费系统的逻辑图。在线电影收费系统身份权限验证后台高级管理操作前台普通用户管理查看个人信息修改个人资料用户续费服务查看消费记录审核服务计费整理编辑影片查看用户消费 密码修改 注销登陆 计点会员 包月会员在线支付银行卡支付影片基本资料整理编辑影片在线收看记录影片收费价格设定3.2 数据库概念结构设计数据库设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。通过需求分析,可以得到系统的主要实体以及他们之间的关系如下E-R图所示nmnmmnmnmn图3.2 E-R图nnmm用户入数据库管理记录电影整理入库记录收看记录记录查看查看查看 关系模型的逻辑结构是一组关系模式的集合,E-R图则是由实体、实体的属性和实体间的连续三要素组成的。将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,根据转换的一般原则,与这部分E-R图对应的关系模式为:用户(用户编号,用户账号,用户密码,用户姓名,支付手段,用户余额,用户性别,邮箱,用户类型,用户金额)电影(电影编号,电影名称,电影主演,电影类型,故事情节,电影产地,点播费用,电影时长)收费记录单(收费流水号,收费时间,收费电影编号,收费金额)第4章 详细设计与系统实现4.1 数据库的设计4.1.1 创建数据库点击新建Microsoft Access数据库,命名为“在线电影收费系统”在“对象”中点击“使用设计器创建表”然后逐个保存。4.1.2 创建表和字段在这个系统中要建立3张表,分别是用户信息表、电影信息表收费费记录表。用户信息表:用户信息表用来记录用户信息详细资料,如表4.1所示:表4.1 用户信息表(user)列名数据类型长度字段含义允许空userIDint4用户编号NOT NULLpasswordvarchar50用户密码NOT NULLgivemenvarchar50付款方式NOT NULLmoneynvarchar50金额NULLemailnvarchar4电子邮箱NULLvipvarchar50用户类型NULLsexvarchar50员工性别NULLpaymoneynvarchar50支付金额NULL电影信息表:电影信息表用来记录电影详细信息资料,如表4.2所示:表4.2电影信息表(film)列名数据类型长度字段含义允许空filmIDint4电影编号NOT NULLtitlevarchar50电影名称NOT NULLNamenvrchar50电影主演NULLtypeidint4电影类型NULLhowlongfloat8电影时长NULLwherevarchar50电影产地NULLcontentvarchar500电影大概NULL收费记录表:收费记录表用来记录用户收看电影付费的详细数据,如表4.3所示:表4.3 收费记录表()列名数据类型长度字段含义允许空idint4收费流水号NOT NULLuserIDint4收费用户号NOT NULLfilmIDint4收费电影编号NOT NULLTitlevarchar50收费电影名称NULLpaymoneyint4收费电影金额NULLmoneyFloat8收费电影单价NULLtimevarchar50收费时间NULL4.2 系统总体流程设计 系统的总体流程图为:业务审核TFTF开始结束登录界面用户名及密码验证验证权限前台服务后台管理显示信息图4.1 系统流程图查看个人信息修改个人信息用户续费记录密码修改审核服务计费整理编辑影片收费管理注销登录4.3 详细设计及实现4.3.1 数据库连接考虑到代码的重用性与维护的方便性,本系统采用ASP的文件包含语法,将数据库连接代码单独放在一个文件中,在需要使用的时候,只要通过文件名调用即可。包含文件语法:<!-#include file="文件名.asp" ->。运用了此方法后,使系统模块化,便于修改和维护。在本系统中,我们将数据库连接文件定义为:conn.asp,代码如下:<%dim conn dim connstrconnstr="DBQ="+server.mappath("./data/mayi.asp")+"DefaultDir=;DRIVER=Microsoft Access Driver (*.mdb);" set conn=server.createobject("ADODB.CONNECTION") conn.open connstr %>4.3.2 身份及权限验证登录模块当用户为一般用户时,首先在会员区区域登录,如图,代码如下: <!-#include file="articleconn.asp"-><!-#include file="checkpost.asp"-><!-#include file="MD5/md5.asp"-><%function makePassword(byVal maxLen)Dim strNewPassDim whatsNext, upper, lower, intCounterRandomizeFor intCounter = 1 To maxLenwhatsNext = Int(1 - 0 + 1) * Rnd + 0)If whatsNext = 0 Then'“characterupper = 90lower = 65Elseupper = 57lower = 48End IfstrNewPass = strNewPass & Chr(Int(upper - lower + 1) * Rnd + lower)NextmakePassword = strNewPassend function%> <%dim rsdim sqlsql="select time from home"Set rs= Server.CreateObject("ADODB.Recordset")rs.open sql,conn,1,1maxtime=rs("time")conn.Execute("Delete From online where DATEDIFF('s',lastime, now() > "&maxTime&"*60") '删除超时的用户userid=replace(trim(request("userid"), "'", "''")password=replace(trim(Request("password"), "'", "''")password=md5(password)sql="select * from users where userid='"&userid&"'and password='"&password&"'"set rs=server.createobject("adodb.recordset")rs.open sql,conn,1,3if rs.bof and rs.eof thenresponse.write"<script>alert('用户名或密码错误,不接受!');history.back();</Script>" response.end end ifif trim(request("validateCode")<>trim(session("verifycode") then response.write"<script>alert('验证码错误!');history.back();</Script>"Response.End end ifDim userip ' 数据库中当前登陆用户名保存的ipDim lastime ' 数据库中当前登陆用户名保存的最后刷新网页的时间,是计算用户是否在线的重要数据。Dim userip1 ' 记录当前用户登陆ip,用来区分是否为同一用户的标示userip1=Request.ServerVariables("REMOTE_ADDR")'取得提交登陆信息用户的IPSet ts=Conn.execute("Select * FROM online WHERE username='"& userid & "'")if not ts.eof then ' 查询数据库是否有此用户的登陆过的信息lastime=ts("lastime")userip=ts("userip")else'如果数据库没有次登陆用户纪录则执行下面的语句Dim lsif rs("oklook")=0 then oklook="电影游客" elseif rs("oklook")=1 then oklook="普通会员" elseif rs("oklook")=2 then oklook="白银会员" elseif rs("oklook")=3 then oklook="黄金会员" elseif rs("oklook")=4 then oklook="钻石会员" end if Set ls=Server.CreateObject("ADODB.RECORDSET")ls.Open"Select * From online",CONN,2,2ls.ADDNEWls("username")=useridls("userip")=userip1ls("lastime")=now()ls("grad")=oklookls("times")=rs("nos")ls("name")=rs("name")ls.UPDATEls.CloseSet ls=Nothingend ifif userip<>userip1 and DateDiff("s",Lastime,now() < maxTime*60 then '上句判断如果提交登陆用户ip不是数据库中最后纪录的用户ip并且'用户的最后活动时间和当前时间相隔并没超过规定的秒数则确认此用户当前在线response.write"<script>alert('该用户已经登陆,不接受!');</Script>"response.write"<script Language=Javascript>location.href = 'wantlogin.asp'</script>"response.endelse id=rs("ID")dim radpass radpass=makePassword(6)' userip=Request.ServerVariables("REMOTE_ADDR") conn.Execute("update users set nos=nos+1, login='"&radpass&"' where id="&id) response.cookies("userid")=rs("userid") response.cookies("password")=rs("password") 'response.cookies("userip")=userip response.cookies("login")=radpass response.cookies("okerer")="yesok" 'application(""&userid&"")="yes" response.cookies("myter")="yes" response.cookies("userid").expires=now()+5end if rs.close set rs=nothing conn.close set conn=nothing response.redirect Request.ServerVariables("HTTP_REFERER") %>登陆成功如下图所示:如果不是会员要先进行申请,点击“新用户注册”随后就进入了新会员注册主界面客户应安照界面上的提示填写相关信息,如“用户名”,“真实姓名”,“密码”,代码如下:function formcheck() if (!fucCheckSTR(document.regstep1.userid.value) alert("用户名只能使用英文字母和数字!"); return false; if (document.regstep1.userid.value.length < 4) alert("用户名至少4个字符!"); return false; if (document.regstep1.password.value.length < 6) alert("密码至少6位!"); return false; if (document.regstep1.password.value != document.regstep1.password2.value) alert("两次输入的密码不相同!"); return false; if (document.regstep1.name.value="") alert("姓名不能为空!"); return false; if (document.regstep1.homeaddress.value="") alert("家住地址不能为空!"); return false; if (document.regstep1.city.value="") alert("提示问题不能为空!"); return false; if (document.regstep1.adress.value="") alert("回答问题不能为空!"); return false; if (document.regstep1.myemail.value="") alert("邮件地址不能为空!"); return false; /检查Email地址格式 function chkemail(a) var i=a.length; var temp = a.indexOf(''); var tempd = a.indexOf('.'); if (temp > 1) if (i-temp) > 3) if (tempd!=-1) return 1; return 0; /检查字符串 function fucCheckSTR(NUM) var i,j,strTemp; strTemp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_" if ( NUM.length= 0) return 0 for (i=0;i<NUM.length;i+) j=strTemp.indexOf(NUM.charAt(i); if (j=-1) return 0; return 1; function resetForm() document.regstep1.reset();注册新用户页面:4.3.3 用户收费模块在该模块,高级管理人员可对用户收看电影所收取的费用,代码:private void BindData()string sStr;if (Request.Params"sStr" != null)sStr = Request.Params"sStr"if (sStr.Length > 0)string sSQL = "SELECT O.*, S.Name AS CategoryName FROM dbo.Products O INNER JOIN dbo.Categories S ON O.CategoryID = S.ID WHERE O.ModelNumber LIKE '%" + sStr + "%' OR O.ModelName LIKE '%" + sStr + "%' OR O.Description LIKE '%" + sStr + "%' ORDER BY O.ModelName, O.ModelNumber"datadal.Fill(sSQL);this.DisPage1.Open(datadal.DataSet1);elsedatadal.sTitle = datadal.sTitle + " ;DisPage1.Visible = false;elseResponse.Redirect("Error.aspx?sStr=非法页面访问", true);#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e)InitializeComponent();base.OnInit(e);用户付费页面:4.3.4 密码修改模块该模块中,用户可对自己登录系统的密码进行修改。在passwordModify.jsp输入旧密码、新密码及确认密码后,提交至PasswordModifyAction,在该Action中同样实例化一个功能Bean PasswordModify的对象,用该对象调用查找方法modify,实现查找功能并使用ActionForward返回提示页面显示。4.3.5 系统维护模块在该模块中,管理用户可对本系统使用的数据库进行完整备份。选择链接至backup.asp,点击链接提交至BackupAction,在该Action中使用backup方法。在该方法中实例化Backup Bean的对象,用该对象调用backup方法,将完整的数据库信息备份至D盘根目录下。第5章 软件测试在软件开发的每一个阶段都有可能引入错误,因此我们有必要对程序运行结果的正确性予以分析,在程序开发完成以后,我们有必要对其进行必要的测试。在线电影收费系统,主要是为了实现在线电影收费的系统化、规范化、自动化和智能化。对于在线电影收费系统,主要对其进行了单元测试和集成测试。5.1 单元测试 单元测试在编码阶段进行13。在源代码编制完成并经过编译检查和评审后,就可以开始进行单元测试。测试用例的设计应与评审工作相结合,根据测试和详细设计信息设计测试数据,并给出对应的期望结果。测试对象是经过软件设计并编码的一个个程序模块。单元测试的任务主要包括模块接口技术、模块数据结构的测试、模块中所有独立路径的测试、模块中各条错误处理路径的测试和模块边界条件的测试等。根据需求的不同功能模块,我逐个进行实现,同时单个功能模块进行测试和修改,直至各个功能模块都顺利通过,完成所有单元模块的设计要求。单元模块测试技术则选用白盒测试技术。白盒测试是一种透明的测试技术5,以程序的内部逻辑结构为基础来设计测试用例,原则是:(1) 保证模块中每一独立的路径至少执行一

    注意事项

    本文([毕业设计精品]基于ASP网上收费系统的设计与实现毕业设计(论文).doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开