欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2021年ASPNET实训报告.docx

    • 资源ID:4661642       资源大小:1.14MB        全文页数:37页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    2021年ASPNET实训报告.docx

    精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系WEB 项目开发实训报告时间 :第 11 周 第18 周地点 :3405班级 :软 件 1001学号 :20213545姓名 :陈杨欢成果 :2021-02-06第 1 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告目录1. 实训目的32. 实训内容32.1 需求分析32.1.1 概述32.1.2 系统目标32.1.3 开发环境42.2 模块设计42.2.2 系统功能结构52.2.3 文件组成结构62.2.4 主要模块说明72.3 数据库设计82.3.1 数据库概要说明82.3.2 数据库概念设计92.3.3 数据库规律结构设计132.4 具体制作172.4.1 图书借阅172.4.1.1 界面设计172.4.1.2 后台程序设计182.4.1.3 技术总结232.4.2 图书归仍232.4.2.1 界面设计232.4.2.2 后台程序设计242.4.2.3 技术总结292.4.3 读者首页302.4.3.1 界面设计302.4.3.2 后台程序设计312.4.3.3 技术总结323. 实训总结323.1 所遇问题和解决方法323.2 实训感受34第 2 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告1. 实训目的熟识图书馆治理系统开发的基本过程;初步学会针对项目进行分析并设计数据库;熟识对SQL Server 2005的使用;学会设计公共类;学会用所学学问实现本系统的主要功能模块;熟识 LINQ 语句,一方面体会LINQ 语句的简洁有用,另一方面也要熟识到LINQ 语句的局限性;初步建立面对对象的开发思想;体会分层开发模块的有用性;通过本次实训明白自己的学问储备量,争取在今后的学习中补偿自己的不足;自己遇到了问题,通过询问老师和同学,加强自己的表达和沟通才能;通过上网查阅资料,可以拓展视野,收成更多学问;如为分组实训,既可以加强自身的团队协作才能,仍可以使自我的才能得到更好的发挥;2. 实训内容2.1 需求分析2.1.1 概述长期以来,人们使用传统的人工方式治理图书馆的日常业务,其操作流程比较繁琐;在借书时,读者第一将要借的书和借阅证交给工作人员,工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,然后在借阅证和每本书贴的借阅条上填写借阅信息;在仍书时,读者第一将要仍的书交给工作人员,工作 人员依据图书信息找到相应的书卡和借阅证,并填写相应的仍书信息;从上述描述中可以发觉,传统的手工流程存在这种种不足;第一处理借书.仍书业务流程的效率很低;其次处理才能比较低,一段时间内,所能服务的读者人数只能为很有限的;而且,读者借阅图书相当不方便,这会让读者产生厌烦借书的心情,不便于学问文化的传播;为此,图书信息治理系统需要为图书馆及读者解决上述问题,供应快速的信息检索.修改功能及快捷的图书借阅.归仍功能;2.1.2 系统目标依据图书馆日常图书治理工作的需求和图书借阅的治理流程,该系统实施后,应达到以下目标;界面设计友好.美观,数据储备安全.牢靠;基本信息设置保证图书信息和读者信息的分类治理;3第 3 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告强大的查询功能,保证数据查询的敏捷性;实现对图书借阅.续借.归仍过程的全程数据信息跟踪;实现对图书馆信息的修改功能;对书架.图书.读者信息的增.删.改.查简易便利;设置读者借阅和图书借阅排行榜,为图书馆治理供应真实的数据信息;供应治理员修改自己登录密码的功能,保证系统的安全性;供应敏捷.便利的权限设置功能,使整个系统的治理分工明确;采纳人机对话的操作方式,便利治理员的日常操作;实现读者对图书的浏览.查询,对个人信息的查看.修改,对已借图书的续借功能;系统要最大限度地实现易保护性和易操作性;2.1.3 开发环境网站开发环境网站开发环境:Microsoft Visual Studio 2021集成开发环境;网站开发语言:ASP.NET+C#+LINQ;网站后台数据库:SQL Server 2005;开发环境运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1);留意: SP( Server Pack)为 Windows 操作系统补丁;服务器端操作系统:Windows Server 2003( SP1); Web服务器: Internet信息服务器;数据库服务器:SQL Server 2005;浏览器: IE6.0及以上版本;网站服务器运行环境:Mircrosoft.NET Framework SDK v2.0;客户端浏览器:IE6.0及以上版本;辨论率:正确成效1024 768 像 素 ;2.2模块设计2.2.1 系统流程图4第 4 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.2.1.1系统流程图2.2.2 系统功能结构依据图书馆治理系统的特点,可以将其分为治理员治理和读者治理两大部分,治理员的治理分为系统设置.读者治理.图书治理.图书借仍.系统查询等部分, 其中各个部分及其包括的具体功能模块如图2.2.2.1所示;读者治理包括的功能有图书查询.查看超期公告.查阅基本信息.查看借阅历史.更换口令等,如图 2.2.2.2所示;5第 5 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.2.2.1系统功能结构图之治理员治理图 2.2.2.2系统功能结构图之读者治理2.2.3 文件组成结构为了直观地看到整个网站的文件组成结构,下图2.2.3.1将网站的组织结构已展现出来;6第 6 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.2.3.1系统文件组成结构图2.2.4 主要模块说明entry.aspx页面:治理员登录;index.aspx页面:治理员登录后进入的第一个页面,即首页;该页面显示图书借阅的排行榜;另外,可以通过点击“图书名称”查看图书具体信息;7第 7 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告readerInfo.aspx页面:治理员通过此页面可以浏览全部读者的姓名.性别.类型.证件号.联系方式等信息;点击“添加读者信息”便会跳转到另一个页面进行读者的添加操作;点击一条记录后的“修改”,可跳转到另一个页面对这个读者的信息进行修改;点击一条记录后的“删除”,可将该读者信息从图书治理 数据库中排除;bookInfoManage.aspx页面:治理员可对图书的档案信息进行增.删.改的操作;bookBorrow.aspx页面:读者到图书馆借书,治理员只需要输入该读者条形码和所要借的图书条形码,点击相关按钮就可以将读者信息和图书信息显示出来,并可以点击图书信息后的“借阅” 按钮, 进行借阅;当然,假如所要借的书为已借出且未归仍的,为不答应再外借的;当该图书被外借后,会生成图书借阅档案储存到数据库中,可供读者进行日后的查阅;bookReturn.aspx页面:读者将所要仍的书(不管为读者本人所借仍为其他人所借)拿到图书馆,治理员只需要输入图书条形码,点击相关按钮,就可以显示读者信息和所仍图书信息;点击图书信息记录后的 “仍书”,即可将此书归仍,并生成图书归仍档案,以供读者日后查阅;当然,假如图书为超期归仍,就会 有相应的提示,治理员依据弹出的提示框可对其进行罚款;bookBorrowSearch.aspx页面: 本页面为图书借阅查询页面;治理员通过下拉框和单项按钮,搭配挑选查询条件,并在文本框中输入相关信息,点击按钮,页面就会自动显示有关图书的借阅信息;extendedAnn.aspx页面:进入该页面会看到全部的超期未归仍的图书及读者的部分信息,治理员也可以在文本框中输入读者的借书证号进行模糊或精确查询;readerLogin.aspx页面:该页面供读者登录,可以挑选输入借阅证号登录或读者条形码登录;bookSearch.aspx页面: 读者通过下拉框挑选查询条件,并在其后的文本框中输入相应的内容,点击有关按钮,图书信息就会自动显示在页面中;例如,读者挑选图书类别,而后的下拉框中会显示图书的各种类别,如“小说” .“文学”.“历史”.“哲学”等;挑选过后,点击“检索”按钮,页面就会显示相关图书的大致信息;如读者要查看其具体信息,点击其后的“具体”,在另一个页面就可以看到此图书的更为具体的信息;读者可以依据图书信息,打算要不要借阅,假如要借阅,依据图书的馆藏地址.书架.索书号及图书名称很快就可以找到想要借阅的图书,极为便利;BasicInfor.aspx页面:当读者进入此页面时,可以看到自己的基本信息,并可以修改联系电话.联系地址或电子邮件;在个人信息下面会显示当前已借阅的图书信息,而且在图书信息后面,有“续借” 按钮,这样,足不出门,就可以续借图书;borrowHistory.aspx页面:这个页面显示的内容为读者本人曾经全部的借阅信息,包括借书信息和仍书信息;updatepassword.aspx页面:此页面供读者更换登录密码所用;当治理员添加读者时,默认读者登录密码为读者的借阅证号,而后,读者可以登录系统通过此页面更换自己的登录密码,以保安全;2.3数据库设计本系统采纳SQL Server 2005数据库,名称为db_tsrj,其中包含9 张表;下面分别给出数据表概要说明.数据表E-R 图及主要数据表的结构;2.3.1 数据库概要说明8第 8 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告下面为数据表的树形结构图,如图2.3.1.1所示,其中包含系统全部数据表;图 2.3.1.1数据库表结构2.3.2 数据库概念设计通过对本系统进行的需求分析.系统流程设计.以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下;只有系统安排的用户才可以操作图书馆治理系统,而用户的权限又各不相同;治理员权限设置信息实体 E-R 图如图 2.3.2.1所示;图 2.3.2.1治理员权限设置信息实体E-R 图图书借阅信息实体,用于储备全部图书借阅情形的信息,以精确地记录每本图书的借阅情形;图书借阅信息实体E-R 图如图 2.3.2.2所示;9第 9 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.3.2.2图书借阅信息实体E-R 图图书馆对图书的分类,通常为将不同类型的图书分别放置在相应类型的书架上;书架信息实体,用于储备图书馆中全部的书架信息;书架信息实体E-R 图如图 2.3.2.3所示;图 2.3.2.3书架信息实体E-R 图不同的图书会有不同的图书信息;对这些图书进行具体的记录,便利图书分类和查询;图书信息实体,用于储备全部图书的相关信息;图书信息实体E-R 图如图 2.3.2.4所示;10第 10 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.3.2.4图书信息实体E-R 图图书馆中会有不同类型的图书,为了防止图书归类发生纷乱,需建立一个图书类型信息实体,用于储备图书的类型信息;图书类型信息实体E-R 图如图 2.3.2.5所示;图 2.3.2.5图书类型信息实体E-R 图每个事物都有自身的历史背景,图书馆也不例外;为了记录和修改图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于储备与图书馆相关的信息;图书馆信息实体E-R 图如图2.3.2.6所示;11第 11 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.3.2.6图书馆信息实体E-R 图每位可到图书馆借阅图书的读者都有自己的基本信息和借阅信息,一方面,便利治理员修改和查询,另一方面,便利自己查询和修改;读者信息实体,用于储备全部读者的个人信息;读者信息实体E-R 图如图 2.3.2.7所示;图 2.3.2.7读者信息实体E-R 图去图书馆的可能为老师,可能为同学,可能为工人等,所以读者有不同的类型;读者类型信息实体用来储备读者类型信息;读者类型信息实体E-R 图如图 2.3.2.8所示;12第 12 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告图 2.3.2.8读者类型信息实体E-R 图当治理员登录图书治理系统时,需要通过登录窗口验证胜利后才能进入系统主页;治理员信息实体,用来储备治理员的登录名称和密码;治理员信息实体E-R 图如图 2.3.2.9所示;图 2.3.2.9治理员信息实体E-R 图2.3.3 数据库规律结构设计在设计完数据库实体E-R 图之后,需要依据实体E-R 图设计数据表结构;下面给出各数据表的数据结构和用途;tb_admSet(治理员权限设置表);表 tb_admSet用于储存与治理员权限设置相关的信息,该表的结构如表2.3.3.1所示;字段名数据类型长度为否主键描述userIdint4为治理员编号userNamevarchar80否治理员名称systemSetbit1否系统设置readerManagebit1否读者治理bookManagebit1否图书治理bookBorrowbit1否图书借仍systemSearchbit1表 2.3.3.1否治理员权限设置表系统查询13第 13 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告tb_bookBorrow(图书借阅表) ;表 tb_bookBorrow用于储存全部借阅和归仍图书的信息,该表的结构如表2.3.3.2所示;字段名数据类型长度为否主键描述IDint4为系统编号bookBarcodevarchar50否图书条形码bookNamevarchar20否图书名称borrowTimedatetime8否借阅日期returnTimedatetime8否应仍日期readerIDvarchar50否借书证号readerBarCodevarchar50否读者条形码readerNamevarchar20否读者姓名sexvarchar50否读者性别departmentvarchar50否读者单位gradevarchar50否读者类型编号renewCountint4否续借次数extendedDaysint4否超期天数FKMoneydecimal18否罚款金额handlingTimedatetime8否处理时间operationTypesvarchar50否操作类型isReturnbit1否表 2.3.3.2图书借阅表为否归仍tb_bookcase(书架信息表) ;表 tb_bookcase用于储存书架的具体信息,该表的结构如表2.3.3.3所示;字段名数据类型长度为否主键描述bookcaseIDint4为书架编号bookcaseNamevarchar80否表 2.3.3.3书架信息表书架名称14第 14 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告tb_bookInfo(图书信息表) ;表tb_ bookInfo用于储存与图书相关的全部信息,该表的结构如表2.3.3.4所示;字段名数据类型长度为否主键描述bookBarCodevarchar100为图书条形码linebooknumbervarchar50否索书号 bookNamevarchar100否图书名称 bookTypeint4否图书类型编号 bookcaseint4否书架编号 bookConcernvarchar100否出版社 authorvarchar80否作者pricedecimal18否图书价格 Imagevarchar50否图书图片 CollectionAddressvarchar50否馆藏地址 isReturnvarchar50否为否归仍 borrowSumint4否借阅总次数表 2.3.3.4图书信息表tb_bookType(图书类型信息表) ;表 tb_ bookType用于储存图书类型信息,该表的结构如表2.3.3.5所示;字段名数据类型长度为否主键描述typeIDint4为图书类型编号typeNamevarchar50否类型名称borrowDayint4表 2.3.3.5否图书类型信息表可借天数tb_library(图书馆信息表);表 tb_ library用于储存图书馆信息,该表的结构如表2.3.3.6所示;字段名数据类型长度为否主键描述IDint4为系统编号15第 15 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告libraryNamevarchar80否图书馆名称curatorvarchar80否馆长名称telvarchar100否联系电话addressvarchar200否联系地址emailvarchar100否电子邮箱netvarchar200否网址upbuildTimedatetime8否建馆时间remarkvarchar500否备注表 2.3.3.6图书馆信息表tb_readerInfo(读者信息表) ;表 tb_ library用于储存全部读者信息,该表的结构如表2.3.3.7所示;字段名数据类型长度为否主键描述 readerBarCodevarchar50为读者条形码 readerIDvarchar50否借阅证号passWordvarchar50否登录密码 readerNamevarchar50否读者姓名 sexchar10否读者性别 departmentvarchar50否读者单位 readerTypevarchar50否读者类型编号 certificateTypevarchar50否证件类型 certificatevarchar50否证件号码telvarchar50否联系电话emailvarchar50否电子邮箱 canBorrowint4否可借数量 borrowedint4否已借数目 borrowedbookAllnumber int4否借阅总数 contactAddressvarchar50否联系地址 readerImagevarchar50否读者头像 remarkvarchar500否备注16第 16 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告表 2.3.3.7读者信息表tb_readerType(读者类型信息表) ;表 tb_ library用于储存全部读者类型信息,该表的结构如表2.3.3.8所示;字段名数据类型长度为否主键描述idint4为读者类型编号 typevarchar50否读者类型名称 numvarchar50否可借图书数量表 2.3.3.8读者类型信息表tb_user(治理员信息表) ;表 tb_ user用于储存全部治理员信息,该表的结构如表2.3.3.9所示;字段名数据类型长度为否主键描述 userIdint4为治理员编号 userNamevarchar50否治理员名称 userPwdvarchar50否治理员密码表 2.3.3.9治理员信息表2.4具体制作2.4.1 图书借阅2.4.1.1 界面设计17第 17 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告2.4.1.2 后台程序设计图 2.4.1.1.1图书借阅界面设计图public partial class bookBorrow : System.Web.UI.PageMyLinqDataContext db = new MyLinqDataContext();/建立 LINQ对象static int isSum = 0;protected void Page_Load(object sender、 EventArgs e)if (Session"userName" .= null)/判定治理员为否登录if (.getSet()/判定为否拥有权限Response.Write("<script>alert(您没有此权限);location=index.aspx;</script>");elseResponse.Redirect("entry.aspx");/返回到登录页面/ <summary>/自定义方法,返回登录用户的权限/ </summary>/ <returns></returns> public bool getSet()string userName = Session"userName".ToString();/猎取治理员登录名var sql = db.tb_admSet.Where(p => p.userName = userName).First();return Convert.ToBoolean(sql.bookBorrow);/返回为否拥有图书借阅权限/ <summary>/点击“查找读者”按钮,显示读者信息/ </summary>/ <param name="sender"></param>/ <param name="e"></param>protected void btnReaderSearch_Click(object sender、 EventArgs e)bindReaderInfo();/调用自定义方法显示读者信息18第 18 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告/ <summary>/绑定数据到 GridView 控件上/ </summary>/ <param name="sql"></param>public void bindGridView(IQueryable sql)gvBookBorrow.DataSource = sql; gvBookBorrow.DataKeyNames = new string "bookBarCode" ; gvBookBorrow.DataBind();/ <summary>/自定义方法显示读者信息/ </summary>public void bindReaderInfo()string readerBarCode = txtReaderBarCode.Text.Trim();/猎取读者条形码varreaderSql= db.tb_readerInfo.Where(j=> j.readerBarCode= readerBarCode).Count();/在读者信息表中查询符合读者条形码条件的记录数目if (readerSql > 0)var reader = db.tb_readerInfo.Where(s => s.readerBarCode =readerBarCode).First();/猎取该读者具体信息txtReaderName.Text = reader.readerName.ToString();/显示读者姓名txtReaderSex.Text = reader.sex.ToString();/显示读者性别txtCertificateType.Text = reader.certificateType.ToString();/显示证件类型txtCertificate.Text = reader.certificate.ToString();/显示证件号var typeSdr = db.tb_readerType.Where(m => m.id =Convert.ToInt32(reader.readerType).First();/查询符合读者类型编号的记录 txtReaderType.Text = typeSdr.type.ToString();/显示读者类型 txtNum.Text = reader.canBorrow.ToString();/显示仍可以借阅的图书数目 isSum = 1;elseRegisterStartupScript(""、 "<script>alert(读者条形码输入错误.)</script>");/ <summary>/点击“查找图书”按钮,依据图书条形码查找图书/ </summary>/ <param name="sender"></param>19第 19 页,共 35 页 - - - - - - - - - -精品word 可编辑资料 - - - - - - - - - - - - -运算机工程系实训报告/ <param name="e"></param>protected void btnBookSearch_Click(object sender、 EventArgs e)if (isSum > 0)if (Convert.ToInt32(txtNum.Text.Trim() > 0)/判定读者为否仍可以借书if (txtBookBarCode.Text.Trim() .= "")/判定图书条形码为否为空string bookBarCode = txtBookBarCode.Text;/猎取文本框中图书条形码if (db.tb_bookInfo.Where(x => x.bookBarCode = bookBarCode).Count() > 0)/判定图书信息表中符合文本框中图书条形码条件的记录数目为否大于0var sql = db.tb_bookInfo.Where(k => k.bookBarCode = bookBarCode);/依据图书条形码猎取查询tb_bookInfo表中信息bindGridView(sql);/传递参数,绑定数据源elseRegisterStartupScript(""、 "<script>alert(图书条形码错误!)</script>");elseRegisterStartupScript(""、 "<script>alert(图书条形码不能为空)

    注意事项

    本文(2021年ASPNET实训报告.docx)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开