《J2EE程序设计》课程设计大作业-图书管理系统.doc_第1页
《J2EE程序设计》课程设计大作业-图书管理系统.doc_第2页
《J2EE程序设计》课程设计大作业-图书管理系统.doc_第3页
《J2EE程序设计》课程设计大作业-图书管理系统.doc_第4页
《J2EE程序设计》课程设计大作业-图书管理系统.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

JAVAEEJAVAEE课程设计课程设计 全套设计加扣全套设计加扣 30122505823012250582 题目名称: 图书管理系统图书管理系统 系 名 称: 计算机科学与信息工程学院计算机科学与信息工程学院 专业班级: 10 级软件工程级软件工程 学号姓名: 2 2013 年 12 月 0 目目 录录 一、选题意义选题意义.1 二、需求分析需求分析.1-3 三、总体设计总体设计.3 四、详细设计详细设计.4-27 4-1 图书馆信息4-5 4-2 管理员设置. 6-9 4-3书架管理.10-11 4-4读者档案管理.12-14 4-5 图书类型管理 15-16 4-6 图书借阅17-18 4-7 图书归还19-20 4-8 图书档案查询21-22 4-9 图书借阅查询.22-23 4-10 图书借阅排行榜.23-24 4-11 读者借阅排行榜.25-26 4-12 密码修改.26-27 五、系统测试系统测试.28-30 六、总总结结. 30 七、参考文献参考文献.31 1 一、选题的意义:一、选题的意义:当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正 是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用 计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理 与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理 好图书馆信息而设计的。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数 据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管 理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工 处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往 往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、 手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。 总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于 信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本 环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式 对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复 杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作 人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资 料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加 困难了。 基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系 统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准 确、有效的查询和修改图书情况。 二、需求分析:二、需求分析:一直以来人们使用传统的人工方式管理图书管的日常工作,对于 图书管的借书和还书过程,想必大家都很熟悉。在计算机尚未在图书管广泛使用之前, 借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书 和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅 证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程 2 就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的 书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。 以上所描述的手工过程的不足之处显而易见。首先,处理借书还书的业务流程的效 率很低;其次,处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计 算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借 书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选 书和看书上。 为方便对图书管书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高 图书管的管理效率。使用该程序之后,管理人员可以查询某位读者图书的借阅情况。 本次毕业设计 “图书借管理系统”主要是利用.NET 技术编制的一个管理软件,用以 实现图书、借阅者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一 个完整论证。 图书借阅管理系统是一种基于集中统一规划的数据管理新模式。在对图书、读者的 管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统 提供极大的帮助。 目前,在大多数图书管理中,查找图书都是采用传统的查询方法,让读者在图书分 类架上一本一本地去查找,这样不仅很难找到自己所需要的图书,且费时费力。而图书 管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个一个去 查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理 员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库 后要经历较长的时间方能借出。 为提高图书查询效率,减少图书管理员的工作负担,有必要开发一个小型图书管理 软件来对图书实施有效管理。该系统必须具备以下功能: 1能对各类图书实行分类管理; 2提供必要的读者信息; 3能进行各种高级查询(如图书分类,图书编号的查询等) ; 这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而 且能让图书管理员以最高的效率办理借阅手续。 设计目标: 针对以上情况,决定构建一个图书借阅管理系统,要求该系统登录后实行图书管理。 3 包括可以对图书的查询、图书的借阅或还书手续,另外,图书管理员能根据需要通过该 系统修改图书信息,增加或删除图书书目等。该系统设有超级用户,当管理员以超级用 户登录时,图书管理员有着最大的权限,能通过管理界面设置图书借阅期限和读者信息, 并能有效地管理图书分类、读者信息及图书管理员的登录帐目等。 系统设计原则: 实用性原则 适合于中小型图书管图书管理,用户界面友好,操作方便,具有高效的 数据处理能力。 三、总体设计:三、总体设计:图书管理者的需求是查询图书馆所存的图书、借阅者的借阅情况 及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形 成借书或还书查询给借阅者查看确认,可直接查看图书馆图书情况。图书借阅者、图书 进行管理和维护,及系统状态的查看、维护。 图书馆工作人员有修改图书借阅者借书和还书记录的权限,在此模块中,图书馆工 作人员可以为图书借阅者加入借书记录或是还书记录。 系统功能详细模块设计图系统功能详细模块设计图 系统登录 首页 系统设置 读者管理 图书管理 图书借还 更改口令 系统查询 退出系统 借阅排行榜 图书馆信息 读者类型管理 读者档案管理 图书类型管理 图书档案管理 图书借阅 图书续借 图书归还 图书档案查询 图书借阅查询 书架设置 管理员设置 4 四、详细设计四、详细设计 Bookaction.javaBookaction.java packagepackage com.shuangyulin.action;com.shuangyulin.action; importimport java.util.List;java.util.List; importimport com.opensymphony.xwork2.ActionContext;com.opensymphony.xwork2.ActionContext; importimport com.opensymphony.xwork2.ActionSupport;com.opensymphony.xwork2.ActionSupport; importimport com.shuangyulin.dao.BookDAO;com.shuangyulin.dao.BookDAO; importimport com.shuangyulin.dao.BookTypeDAO;com.shuangyulin.dao.BookTypeDAO; importimport com.shuangyulin.domain.Book;com.shuangyulin.domain.Book; importimport com.shuangyulin.domain.BookType;com.shuangyulin.domain.BookType; importimport com.shuangyulin.test.TestUtil;com.shuangyulin.test.TestUtil; publicpublic classclass BookActionBookAction extendsextends ActionSupportActionSupport /查询字段查询字段 privateprivate StringString barcode;barcode; /图书条形码图书条形码 privateprivate StringString bookName;bookName; /图书名称图书名称 privateprivate BookTypeBookType bookType;bookType; /图书类别图书类别 privateprivate intint currentPage;currentPage; /当前页当前页 privateprivate intint totalPage;totalPage;/一共多少页一共多少页 privateprivate intint recordNumber;recordNumber; /总共多少记录总共多少记录 privateprivate BookBook book;book;/待操作的图书对象待操作的图书对象 /*/*业务层对象业务层对象*/*/ BookDAOBookDAO bookDAObookDAO = = newnew BookDAO();BookDAO(); 5 publicpublic BookBook getBook()getBook() returnreturn book;book; publicpublic voidvoid setBook(BooksetBook(Book book)book) this.bookthis.book = = book;book; publicpublic StringString getBarcode()getBarcode() returnreturn barcode;barcode; publicpublic voidvoid setBarcode(StringsetBarcode(String barcode)barcode) this.barcodethis.barcode = = barcode;barcode; publicpublic StringString getBookName()getBookName() returnreturn bookName;bookName; publicpublic voidvoid setBookName(StringsetBookName(String bookName)bookName) this.bookNamethis.bookName = = bookName;bookName; 6 publicpublic BookTypeBookType getBookType()getBookType() returnreturn bookType;bookType; publicpublic voidvoid setBookType(BookTypesetBookType(BookType bookType)bookType) this.bookTypethis.bookType = = bookType;bookType; publicpublic intint getCurrentPage()getCurrentPage() returnreturn currentPage;currentPage; publicpublic voidvoid setCurrentPage(intsetCurrentPage(int currentPage)currentPage) this.currentPagethis.currentPage = = currentPage;currentPage; publicpublic intint getTotalPage()getTotalPage() returnreturn totalPage;totalPage; publicpublic voidvoid setTotalPage(intsetTotalPage(int totalPage)totalPage) this.totalPagethis.totalPage = = totalPage;totalPage; 7 publicpublic intint getRecordNumber()getRecordNumber() returnreturn recordNumber;recordNumber; publicpublic voidvoid setRecordNumber(intsetRecordNumber(int recordNumber)recordNumber) this.recordNumberthis.recordNumber = = recordNumber;recordNumber; /*/*添加图书视图添加图书视图*/*/ publicpublic StringString AddView()AddView() /*/*查询所有的图书类别信息查询所有的图书类别信息*/*/ ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); ListList bookTypeListbookTypeList = = bookTypeDAO.QueryAllBookTypeInfo();bookTypeDAO.QueryAllBookTypeInfo(); ctx.put(bookTypeList,ctx.put(bookTypeList, bookTypeList);bookTypeList); returnreturn add_view;add_view; SuppressWarnings(deprecation)SuppressWarnings(deprecation) publicpublic StringString AddBook()AddBook() /*/*验证条形码是否已经存在验证条形码是否已经存在*/*/ ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); StringString barcodebarcode = = book.getBarcode();book.getBarcode(); BookBook db_bookdb_book = = bookDAO.GetBookByBarCode(barcode);bookDAO.GetBookByBarCode(barcode); 8 if(nullif(null !=!= db_book)db_book) ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(该条形码已经存在该条形码已经存在!);!); returnreturn error;error; trytry BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); bookTypebookType = = bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId();bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId(); book.setBookType(bookType);book.setBookType(bookType); bookDAO.AddBook(book);bookDAO.AddBook(book); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书添加成功图书添加成功!);!); returnreturn add_success;add_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书添加失败图书添加失败!);!); returnreturn error;error; /*/*查询图书信息查询图书信息*/*/ publicpublic StringString QueryBook()QueryBook() if(barcodeif(barcode = null)null) barcodebarcode = = ; if(nullif(null = bookName)bookName) bookNamebookName = = ; if(currentPageif(currentPage = 0)0) currentPagecurrentPage = = 1;1; ListList bookListbookList = = bookDAO.QueryBookInfo(barcode,bookDAO.QueryBookInfo(barcode, bookName,bookName, bookType,bookType, currentPage);currentPage); bookDAO.CalculateTotalPageAndRecordNumber(barcode,bookName,bookType);bookDAO.CalculateTotalPageAndRecordNumber(barcode,bookName,bookType); /计算总的页数和总的记录数计算总的页数和总的记录数 totalPagetotalPage = = bookDAO.getTotalPage();bookDAO.getTotalPage(); /获取到总的页码数目获取到总的页码数目 9 recordNumberrecordNumber = = bookDAO.getRecordNumber();bookDAO.getRecordNumber(); /当前查询条件下总记录数当前查询条件下总记录数 BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); ListList bookTypeListbookTypeList = = bookTypeDAO.QueryAllBookTypeInfo();bookTypeDAO.QueryAllBookTypeInfo(); ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); ctx.put(bookList,ctx.put(bookList, bookList);bookList); ctx.put(totalPage,ctx.put(totalPage, totalPage);totalPage); ctx.put(recordNumber,ctx.put(recordNumber, recordNumber);recordNumber); ctx.put(currentPage,ctx.put(currentPage, currentPage);currentPage); ctx.put(barcode,ctx.put(barcode, barcode);barcode); ctx.put(bookName,ctx.put(bookName, bookName);bookName); ctx.put(bookType,ctx.put(bookType, bookType);bookType); ctx.put(bookTypeList,ctx.put(bookTypeList, bookTypeList);bookTypeList); returnreturn query_view;query_view; /*/*查询要修改的图书信息查询要修改的图书信息*/*/ publicpublic StringString ModifyBookQuery()ModifyBookQuery() BookBook book=book= bookDAO.GetBookByBarCode(barcode);bookDAO.GetBookByBarCode(barcode); BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); ListList bookTypeListbookTypeList = = bookTypeDAO.QueryAllBookTypeInfo();bookTypeDAO.QueryAllBookTypeInfo(); ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); ctx.put(bookTypeList,ctx.put(bookTypeList, bookTypeList);bookTypeList); ctx.put(book,ctx.put(book, book);book); returnreturn modify_view;modify_view; 10 /*/*更新图书信息更新图书信息*/*/ publicpublic StringString ModifyBook()ModifyBook() ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); trytry BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); bookTypebookType = = bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId();bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId(); book.setBookType(bookType);book.setBookType(bookType); bookDAO.UpdateBook(book);bookDAO.UpdateBook(book); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书更新成功图书更新成功!);!); returnreturn modify_success;modify_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书更新失败图书更新失败!);!); returnreturn error;error; /*/*删除图书删除图书*/*/ publicpublic StringString DeleteBook()DeleteBook() ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); trytry bookDAO.DeleteBook(barcode);bookDAO.DeleteBook(barcode); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书删除成功图书删除成功!);!); returnreturn delete_success;delete_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书删除失败图书删除失败!);!); returnreturn error;error; 11 Booktypeaction.javaBooktypeaction.java packagepackage com.shuangyulin.action;com.shuangyulin.action; importimport java.util.List;java.util.List; importimport com.opensymphony.xwork2.ActionContext;com.opensymphony.xwork2.ActionContext; importimport com.opensymphony.xwork2.ActionSupport;com.opensymphony.xwork2.ActionSupport; importimport com.shuangyulin.dao.BookTypeDAO;com.shuangyulin.dao.BookTypeDAO; importimport com.shuangyulin.domain.BookType;com.shuangyulin.domain.BookType; importimport com.shuangyulin.test.TestUtil;com.shuangyulin.test.TestUtil; publicpublic classclass BookTypeActionBookTypeAction extendsextends ActionSupportActionSupport /*/*业务层对象业务层对象*/*/ BookTypeDAOBookTypeDAO bookTypeDAObookTypeDAO = = newnew BookTypeDAO();BookTypeDAO(); privateprivate BookTypeBookType bookType;bookType; publicpublic BookTypeBookType getBookType()getBookType() returnreturn bookType;bookType; 12 publicpublic voidvoid setBookType(BookTypesetBookType(BookType bookType)bookType) this.bookTypethis.bookType = = bookType;bookType; publicpublic StringString AddView()AddView() returnreturn add_view;add_view; SuppressWarnings(deprecation)SuppressWarnings(deprecation) publicpublic StringString AddBookType()AddBookType() /*/*验证图书类别名称是否已经存在验证图书类别名称是否已经存在*/*/ ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); StringString bookTypeNamebookTypeName = = bookType.getBookTypeName();bookType.getBookTypeName(); if(bookTypeDAO.QueryBookTypeInfoByNameFlag(bookTypeName)if(bookTypeDAO.QueryBookTypeInfoByNameFlag(bookTypeName) = 1)1) ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(该类别名称已经存在该类别名称已经存在!);!); returnreturn error;error; trytry bookTypeDAO.AddBookType(bookType);bookTypeDAO.AddBookType(bookType); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书类别信息添加成图书类别信息添加成 功功!);!); returnreturn add_success;add_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书类别信息添加失败图书类别信息添加失败! ! );); returnreturn error;error; 13 /*/*查询图书类别信息查询图书类别信息*/*/ publicpublic StringString QueryBookType()QueryBookType() ListList bookTypeListbookTypeList = = bookTypeDAO.QueryAllBookTypeInfo();bookTypeDAO.QueryAllBookTypeInfo(); ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); ctx.put(bookTypeList,ctx.put(bookTypeList, bookTypeList);bookTypeList); returnreturn query_view;query_view; /*/*查询要修改的读者类别信息查询要修改的读者类别信息*/*/ publicpublic StringString ModifyBookTypeQuery()ModifyBookTypeQuery() BookTypeBookType db_bookTypedb_bookType = = bookTypeDAO.GetBookTypeById(bookType.getBookTypeId();bookTypeDAO.GetBookTypeById(bookType.getBookTypeId(); ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); ctx.put(db_bookType,ctx.put(db_bookType, db_bookType);db_bookType); returnreturn modify_view;modify_view; /*/*更新图书类别信息更新图书类别信息*/*/ publicpublic StringString ModifyBookType()ModifyBookType() ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); trytry 14 bookTypeDAO.UpdateBookType(bookType);bookTypeDAO.UpdateBookType(bookType); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书类别信息更新成图书类别信息更新成 功功!);!); returnreturn add_success;add_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书类别信息更新失败图书类别信息更新失败! ! );); returnreturn error;error; /*/*删除图书类别删除图书类别*/*/ publicpublic StringString DeleteBookType()DeleteBookType() ActionContextActionContext ctxctx = = ActionContext.getContext();ActionContext.getContext(); trytry /这里需要先查询该类别下是否还存在图书信息这里需要先查询该类别下是否还存在图书信息 bookTypeDAO.DeleteBookType(bookType.getBookTypeId();bookTypeDAO.DeleteBookType(bookType.getBookTypeId(); ctx.put(message,ctx.put(message, .URLEncoder.encode(.URLEncoder.encode(图书类别信息删除成图书类别信息删除成 功功!);!); returnreturn add_success;add_success; catchcatch (Exception(Exception e)e) e.printStackTrace();e.printStackTrace(); ctx.put(error,ctx.put(error, .URLEncoder.encode(.URLEncoder.encode(图书类别信息删除失败图书类别信息删除失败! ! );); returnreturn error;error; 15 Changepasswordaction.javaChangepasswordaction.java packagepackage com.shuangyulin.action;com.shuangyulin.action; importimport com.opensymphony.xwork2.ActionContext;com.opensymphony.xwork2.ActionContext; importimport com.shuangyulin.dao.AdminDAO;com.shuangyulin.dao.AdminDAO; importimport com.shuangyulin.domain.Admin;com.shuangyulin.domain.Admin; publicpublic classclass ChangePasswordActionChangePasswordAction privateprivate StringString oldPassword;oldPassword; privateprivate StringString newPassword;newPassword; privateprivate StringString newPassword2;newPassword2; publicpublic StringString getOldPassword()getOldPassword() returnreturn oldPassword;oldPassword; publicpublic voidvoid setOldPassword(StringsetOldPassword(String oldPassword)oldPassword) this.oldPasswordthis.oldPassword = = oldPassword;oldPassword; publicpublic StringString getNewPass

温馨提示

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

评论

0/150

提交评论