




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录题目一图书管理系统11.1 题目简介11.2 课程设计目的11.3 功能描述11.4 总体设计21.4.1 构建开发环境21.4.2 网站功能结构21.4.3 系统流程图31.5 数据库设计41.5.1 E-R图41.5.2 数据表示设计61.6 实现过程111.6.1 系统登录设计111.6.2 主界面设计141.6.3 图书借阅设计171.6.4 图书续借设计231.6.5 图书归还设计261.7 调试运行291.8 小结29题目一图书管理系统1.1 题目简介随着网络技术的高速发展和计算机应用的普及,利用计算机对图书馆的日常工作进行管理势在必行。虽然目前很多大型的图书馆已经有一整套比较
2、完善的管理系统,但是在一些中小型的图书馆中,大部分工作仍需由手工完成,工作效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态及时地调整图书结构。为了更好地适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。1.2 课程设计目的1. 加深对面向对象程序设计思想的理解,能对网站功能进行分析,并设计合理的类结构。2. 掌握JSP网站的基本开发流程。3. 掌握JDBC技术在实际开发中的应用。4. 掌握Servlet技术在实际开发中的应用。5. 掌握JSP经典设计模式中Model2的开发流程。6.
3、 提供网站的开发能力,能够运用合理的控制流程编写高效的代码。7. 培养分析问题、解决实际问题的能力。1.3 功能描述图书馆管理系统是一个小型的图书馆管理系统,该系统的主要功能如下:1. 美观友好的操作界面,能保证系统的易用性。2. 管理图书类型信息、图书信息和书架信息等功能。3. 读者类型和读者档案管理功能。4. 可以实现图书的借阅、续借和归还功能。5. 提供查看图书借阅排行榜功能。6. 具有借阅到期提醒功能。7. 查询图书借阅信息。8. 图书档案查询功能。1.4 总体设计1.4.1 构建开发环境图书馆管理系统的开发环境具体要求如下:开发平台:Windows XP(SP2)/Windows S
4、erver 2003(SP2)/Windows 7。开发技术:JSP+Servlet+HTML 5+JavaScript。后台数据库:MySQL。Java开发包:Java SE Development KET(JDK) version 7 Update 3。Web服务器:Tomcat 7.0.27。浏览器:IE 9.0以上版本、Firefox等。分辨率:最佳效果1024×768像素。1.4.2 网站功能结构在图书馆管理系统中主要包含6大功能模块,分别为系统设置模块、读者管理模块、图书管理模块、图书借还模块、系统查询模块和更改口令模块,它们的具体介绍如下。系统设置:用来对系统的一些基础
5、参数进行设置,主要包括图书管理信息、管理员设置、参数设置、书架设置。读者管理:用来对读者类型和读者档案进行管理。图书管理:用来对图书类型和图书档案进行管理。图书借还:用来实现图书的借阅、续借和归还等功能。系统查询:用来实现图书的借阅信息的查询,主要包括图书档案查询、图书借阅查询、借阅到期提醒等。更改口令:主要用于修改登陆管理员的密码。图书管理系统的功能结构图,如图1-1所示。图1-1 图书管理系统的功能结构图1.4.3 系统流程图图书馆管理系统的系统流程如下图1-2所示。图1-2 图书管理系统的系统流程图1.5 数据库设计由于本系统是为中小型图书馆开发的程序,需要充分考虑到成本及用户需求(如跨
6、平台)等问题,而MySQL是目前最为流行的开放源代码的数据库,是完全网络化的跨平台的关系型数据库系统,正好满足了中小型企业的需求,所以本系统采用MySQL数据库。1.5.1 E-R图根据对系统所做的需求分析,规划出本系统中使用的数据库实体分别为图书档案实体、读者档案实体、图书借阅实体、图书归还实体和管理员实体。下面将介绍几个关键实体的E-R图。1. 图书档案实体图书档案实体包括编号、条形码、书名、类型、作者、译者、出版社、定价、页码、书架、库存容量、录入时间、操作员和是否删除等属性。其中“是否删除属性”用于标记图书是否被删除,由于图书馆中的图书信息不可以被随意删除,所以即使当某种图书不能再借阅
7、,而需要删除其档案信息时,也只能采用设置删除标记的方法。图书档案实体的E-R图如图1-3所示。图1-3 图书档案E-R图2. 读者档案实体读者档案实体包括编号、姓名、性别、条形码、职业、出生日期、有效证件、证件号码、电话、电子邮件、登记日期、操作员、类型和备注等属性。读者档案实体的E-R图如图1-4所示。图1-4 读者档案E-R图3. 借阅档案实体借阅档案实体包括编号、读者编号、图书编号、借书时间、应还时间、操作员和是否归还等属性。借阅档案实体的E-R图如图1-5所示。图1-5 借阅档案E-R图4. 归还档案实体归还档案实体包括编号、读者编号、图书编号、归还时间和操作员等属性。借阅档案实体的E
8、-R图如图1-6所示。图1-6 归还档案E-R图1.5.2 数据表示设计结合实际情况及对用户需求的分析,图书馆管理系统的db_library数据库中需要创建如图1-7所示的12张数据表。图1-7 db_library数据库包含的数据表下面将给出这些数据表的结构及说明。1. tb_manager(管理员信息表)管理员信息表主要用来保存管理员信息。结构如表1-1所示。表1-1 tb_manager结构及说明2. tb_purview(权限表)权限表主要用来保存管理员的权限信息,该表中的id字段与管理员信息表中的id字段相关联。结构如表1-2所示。表1-2 tb_purview结构及说明3. tb_
9、bookinfo(图书信息表)图书信息表主要用来保存图书信息。结构如表1-3所示。表1-3 tb_bookinfo结构及说明4. tb_parameter(参数设置表)参数设置表主要用来保存办证费及书证的有效期限等信息。结构如表1-4所示。表1-4 tb_parameter结构及说明5. tb_booktype(图书类型表)图书类型表主要用来保存图书类型信息。结构如表1-5所示。表1-5 tb_booktype结构及说明6. tb_bookcase(书架信息表)书架信息表主要用来保存书架信息。结构如表1-6所示。表1-6 tb_bookcase结构及说明7. tb_borrow(图书借阅信息表
10、)图书借阅信息表主要是用来保存图书借阅信息。结构如表1-7所示。表1-7 tb_borrow结构及说明8. tb_giveback(图书归还信息表)图书归还信息表主要用来保存图书归还信息。结构如表1-8所示。表1-8 tb_giveback结构及说明9. tb_readertype(都这类型信息表)读者类型信息表主要用来保存读者类型信息。结构如表1-9所示。表1-9 tb_readertype结构及说明10. tb_reader(读者信息表)读者信息表主要用来保存读者信息。结构如表1-10所示。表1-10 tb_reader结构及说明11. tb_library(图书馆信息表)图书馆信息表主要
11、用来保存图书馆信息。结构如表1-11所示。表1-11 tb_library结构及说明12. tb_publishing(出版社信息表)出版社信息表主要用来保存出版社信息。结构如表1-12所示。表1-12 tb_publishing结构及说明1.6 实现过程1.6.1 系统登录设计系统登录时进入图书管理系统的入口。在运行本系统后,首先进入的是系统登录页面,在该页面中,系统管理员可以通过输入正确的管理员名称和密码登录到系统,当用户未输入管理员名称或密码时,系统会通过Javascript进行判断,并给予提示信息。系统登录的运行结果如图1-8所示。图1-8 系统登录的设计结果1. 界面设计系统登录页面
12、主要用于收集管理员的输入信息及通过自定义的Javascript函数验证输入信息是否为空,该页面中涉及的表单元素如表1-13所示。表1-13 系统登录页面所涉及的表单元素编写自定义的Javascript函数,用于判断管理员名称和密码是否为空。代码如下:<script type="text/javascript">function check(form)if (.value="")alert("请输入管理员名称!");.focus();return false;if (form.pwd.va
13、lue="")alert("请输入密码!");form.pwd.focus();return false;</script>2. 关键代码在实现系统登录时,主要是解决如何在Servlet中获取提交的登录信息,以及验证输入的管理员信息是否合法,如果合法则将页面重定向到系统主界面,否则给出提示信息。这是将涉及以下两个方法。方法一:/ 管理员身份验证public void managerLogin(HttpServletRequest request,HttpServletResponse response) throws ServletExcep
14、tion, IOException ManagerForm managerForm = new ManagerForm();managerForm.setName(request.getParameter("name");managerForm.setPwd(request.getParameter("pwd");int ret = managerDAO.checkManager(managerForm);/调用ManagerDAO类的checkManager()方法if (ret = 1) /将登录到系统的管理员名称保存到session中 HttpSe
15、ssion session=request.getSession(); session.setAttribute("manager",managerForm.getName();request.getRequestDispatcher("main.jsp").forward(request, response);/转到系统主界面 else request.setAttribute("error", "您输入的管理员名称或密码错误!");request.getRequestDispatcher("error
16、.jsp").forward(request, response);/转到错误提示页方法二:/ 管理员身份验证public int checkManager(ManagerForm managerForm) int flag = 0; / 标记变量,值为0时表示不成功,值为1时表示成功String sql = "SELECT * FROM tb_manager where name='"+ ChStr.filterStr(managerForm.getName() + "'" / 连接SQL语句,并过滤管理员名称中的危险字符Re
17、sultSet rs = conn.executeQuery(sql);try if (rs.next() String pwd = ChStr.filterStr(managerForm.getPwd(); / 获取输入的密码并过滤输入字符串中的危险字符if (pwd.equals(rs.getString(3) flag = 1; / 表示验证成功 else flag = 0; / 表示验证不成功 else flag = 0; / 表示验证不成功 catch (SQLException ex) flag = 0; / 表示验证不成功 finally conn.close(); / 关闭数据
18、库连接return flag;在实现系统登录时,从网站安全的角度考虑,仅仅使用上面介绍的系统登录页面并不能有效地保证系统的安全,一旦系统主界面的地址被他人获得,就可以通过在地址栏中输入系统的主界面地址而直接进入系统中。这时,我们可以在每个页面的顶端添加以下验证用户是否登录的代码。<%String manager = (String)session.getAttribute(“manager”);If(manager = null | “”.equals(manager)response.sendRedirect(“login.jsp”);%>这样,当系统调用每个页面时,都会判断se
19、ssion变量manager是否存在,如果不存在,将页面重定向到系统登录界面。1.6.2 主界面设计管理员通过“系统登录”模块的验证后,可以登录到图书馆管理系统的主界面。系统主界面主要包括Banner信息栏、导航栏、排行榜和版权信息4部分。其中,导航栏中的功能菜单将根据登录管理员的权限进行显示。例如,系统管理员mr登录后,将拥有整个系统的全部功能,因为它是超级管理员。图1-9 主界面的设计效果1. 界面设计在图1-9所示的界面中,Banner信息栏、导航栏和版权信息,并不是仅存在与主界面中,其他功能模块的子界面中也需要包括这些部分。因此,可以将这几个部分分别保存在单独的文件中,这样,在需要放置
20、相应功能时只需包含这些文件即可。主界面的布局如图1-10所示。图1-10 主界面的布局应用<% include %>指令包含文件的方法进行主界面布局的代码如下:<% include file=”banner.jap”%><%include file="navigation.jsp"%><section><div style="text-align:right;padding-right:10px;height:30px;"class="word_orange">当前位置:首页
21、 >>> </div><div style="height:57px;clear:both"><!-显示图书借阅排行榜-><img src="Images/main_booksort.gif" height="57px"></div><div style="height:300px;padding-left:20px;"> <!-此处省略了显示图书借阅排行的代码-><
22、/div></section><% include file=”copyright.jsp” %>在上面的代码中,第一行的代码,用于应用<% include %>指令包含banner.jsp文件,该文件用于显示Banner信息及当前登录管理员;第二行的代码,用于应用<% include %>指令包含navigation.jsp文件,该文件用于显示当前系统时间及系统导航菜单;最后一行的代码,用于应用<% include %>指令包含copyright.jsp文件,该文件用于显示版权信息。2. 关键代码在实现主界面时,需要显示图书借
23、阅排行榜,所以需要编写DAO方法从数据库中统计出借阅排行数据,并保存到Collection集合中。从数据库中统计借阅排行数据的关键代码如下:public Collection<BorrowForm> bookBorrowSort() String sql = "select * from (SELECT bookid,count(bookid) as degree FROM" + " tb_borrow group by bookid) as borr join (select b.*, as bookcaseName" + &q
24、uot;,p.pubname,t.typename from tb_bookinfo b left join tb_bookcase" + " c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join " + "tb_booktype t on b.typeid=t.id where b.del=0)" + " as book on borr.bookid=book.id order by borr.degree desc limit 10 " Colle
25、ction<BorrowForm> coll = new ArrayList<>();/创建并实例化Collection对象 BorrowForm form = null;/声明BorrowForm对象 ResultSet rs = conn.executeQuery(sql);/执行查询语句 try while (rs.next() form = new BorrowForm();/实例化BorrowForm对象 form.setBookId(rs.getInt(1);/获取图书ID form.setDegree(rs.getInt(2);/获取借阅次数 form.s
26、etBookBarcode(rs.getString(3);/获取图书条形码 form.setBookName(rs.getString(4);/获取图书名称 form.setAuthor(rs.getString(6);/获取作者 form.setPrice(Float.valueOf(rs.getString(9);/获取定价 form.setBookcaseName(rs.getString(16);/获取书架名称 form.setPubName(rs.getString(17);/获取出版社 form.setBookType(rs.getString(18);/获取图书类型 coll.
27、add(form);/保存到Collection集合中 catch (SQLException ex) System.out.println(ex.getMessage();/输出异常信息 conn.close();/关闭数据库连接 return coll; 1.6.3 图书借阅设计管理员登录后,选择“图书借还/图书借阅”命令,进入到图书借阅页面,在该页面中的“读者条形码”文本框中输入读者的条形码后,单击“确定”按钮,系统会自动检索出该读者的基本信息和未归还的借阅图书信息。如果找到对应的读者信息,就将其显示在页面中,此时输入图书的条形码或图书名称后,单击“确定”按钮,借阅指定的图书。图书借阅页
28、面的运行结果如图1-11所示。图1-11 图书借阅页面1. 界面设计图书借阅页面总体上可以分为两个部分:一部分用于查询并显示读者信息;另一部分用于显示读者的借阅信息和添加读者借阅信息。图书借阅页面在Dreamweaver中的设计效果如图1-12所示。图1-12 在Dreamweaver中图书借阅页面的设计效果由于系统要求一个读者只能同时借阅一定数量的图书,并且该数量由读者类型表tb_readerType中的可借数量number决定,所以这里编写了自定义的Javascript函数checkbook(),用于判断当前选择的读者是否还可以借阅新的图书,同时该函数还具有判断是否输入图书条形码或图书名称
29、的功能,代码如下:<script type="text/javascript">function checkreader(form)if(form.barcode.value="")alert("请输入读者条形码!");form.barcode.focus();return;form.submit();function checkbook(form)if(form.barcode.value="")alert("请输入读者条形码!");form.barcode.focus();ret
30、urn;if(form.inputkey.value="")alert("请输入查询关键字!");form.inputkey.focus();return;if(form.number.value-form.borrowNumber.value<=0)alert("您不能再借阅其他图书了!");return;form.submit();</script>2. 关键代码在实现图书借阅时,需要编写Servlet方法,用于实现图书借阅。实现图书借阅的方法bookborrow()的具体代码如下: private void b
31、ookborrow(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /查询读者信息 readerForm.setBarcode(request.getParameter("barcode");/获取读者条形码 /根据读者条形码获取读者信息 ReaderForm reader = (ReaderForm) readerDAO.queryM(readerForm); request.setAttribute("readerinfo
32、", reader);/保存读者信息到request中 /查询读者的借阅信息 request.setAttribute("borrowinfo",borrowDAO.borrowinfo(request.getParameter("barcode"); /完成借阅 String f = request.getParameter("f");/获取查询条件 String key = request.getParameter("inputkey");/获取输入的关键字 if (key != null &
33、& !key.equals("") /判断是否有符合条件的图书 String operator = request.getParameter("operator");/ BookForm bookForm=bookDAO.queryB(f, key);/根据查询条件获取图书信息 if (bookForm!=null) int ret = borrowDAO.insertBorrow(reader, bookDAO.queryB(f, key), operator);/保存图书借阅信息 if (ret = 1) request.setAttribu
34、te("bar", request.getParameter("barcode"); request.getRequestDispatcher("bookBorrow_ok.jsp").forward(request, response); else request.setAttribute("error", "添加借阅信息失败!");/保存提示信息到request中 request.getRequestDispatcher("error.jsp").forward(requ
35、est, response);/转到错误提示页 else request.setAttribute("error", "没有该图书!");/保存提示信息到request中 request.getRequestDispatcher("error.jsp").forward(request, response);/转到错误提示页 else request.getRequestDispatcher("bookBorrow.jsp").forward(request, response); 在实现图书借阅的方法中,还需要调
36、用readerDAO类的queryM()方法,BorrowDAO类的borrowinfo()方法,bookDao类的queryB()方法和BorrowDAO类的insertBorrow()方法,具体代码如下:public ReaderForm queryM(ReaderForm readerForm) ReaderForm readerForm1 = null;String sql = ""if (readerForm.getId() != null) /根据读者ID查询读者信息sql = "select r.*, as typename,t.numb
37、er from tb_reader r left join tb_readerType t on r.typeid=t.id where r.id="+ readerForm.getId() + "" else if (readerForm.getBarcode() != null) /根据读者条形码查询读者信息sql = "select r.*, as typename,t.number from tb_reader r left join tb_readerType t on r.typeid=t.id where r.barcode=&
38、quot;+ readerForm.getBarcode() + ""ResultSet rs = conn.executeQuery(sql);/执行查询语句String birthday=""try while (rs.next() readerForm1 = new ReaderForm();readerForm1.setId(Integer.valueOf(rs.getString(1);/获取读者IDreaderForm1.setName(rs.getString(2);/获取读者姓名readerForm1.setSex(rs.getStrin
39、g(3);/获取读者性别readerForm1.setBarcode(rs.getString(4);/获取读者条形码readerForm1.setVocation(rs.getString(5);/获取职业birthday=rs.getString(6);/获取生日readerForm1.setBirthday(birthday=null?"":birthday);readerForm1.setPaperType(rs.getString(7);/获取证件类型readerForm1.setPaperNO(rs.getString(8);/获取证件号码readerForm1
40、.setTel(rs.getString(9);/获取联系电话readerForm1.setEmail(rs.getString(10);/获取E-mail地址readerForm1.setCreateDate(rs.getString(11);/获取创建日期readerForm1.setOperator(rs.getString(12);/获取操作员readerForm1.setRemark(rs.getString(13);/获取备注readerForm1.setTypeid(rs.getInt(14);/获取读者类型IDreaderForm1.setTypename(rs.getStri
41、ng(15);/获取读者类型名称readerForm1.setNumber(rs.getInt(16);/获取可借数量 catch (SQLException ex) conn.close();/关闭数据库连接return readerForm1;public Collection<BorrowForm> borrowinfo(String str) String sql="select borr.*,book.bookname,book.price,pub.pubname," + " bookcasename,r.barcode fro
42、m (select * from tb_borrow " + "where ifback=0) as borr left join tb_bookinfo book on borr.bookid" + "=book.id join tb_publishing pub on book.isbn=pub.isbn join" + " tb_bookcase bs on book.bookcase=bs.id join tb_reader r on" + " borr.readerid=r.id where r.barc
43、ode='"+str+"'" ResultSet rs=conn.executeQuery(sql);/执行查询语句 Collection<BorrowForm> coll=new ArrayList<>(); BorrowForm form=null; try while (rs.next() form = new BorrowForm(); form.setId(Integer.valueOf(rs.getInt(1);/获取ID号 form.setBorrowTime(rs.getString(4);/获取借阅时间 f
44、orm.setBackTime(rs.getString(5);/获取归还时间 form.setBookName(rs.getString(8);/获取图书名称 form.setPrice(Float.valueOf(rs.getFloat(9);/获取定价 form.setPubName(rs.getString(10);/获取出版社 form.setBookcaseName(rs.getString(11);/获取书价名称 coll.add(form);/添加借阅信息到Collection集合中 catch (SQLException ex) System.out.println(&quo
45、t;借阅信息:"+ex.getMessage();/输出异常信息 conn.close();/关闭数据库连接 return coll; 1.6.4 图书续借设计管理员登录后,选择“图书借还”/“图书续借”命令,进入图书续借界面,在该页面中的“读者条形码”文本框中输入读者的条形码后,单击“确定”,系统会自动检索出该读者的基本信息和未归还的借阅图书信息。如果找到对应的读者信息,则将其显示在页面中,此时单击“续借”超链接,即可续借指定图书(即将该图书的归还时间延长到指定日期,该日期由续借日期加上该书的可借天数计算得出)。图书续借页面的运行结果如图 1-13所示:图1-13 图书续借页面1.
46、 界面设计图书续借页面的设计方法同图书借阅页面类似,有所不同的是,在图书续借页面中没有添加借阅图书功能,而是添加了“续借”超链接。图书续借页面在Dreamweaver中的设计效果如图1-14所示。图1-14 在Dreamweaver中的图书续借页面的设计效果在单击“续借”超链接时,还需要将读者条形码和借阅ID号一起传递到图书续借的Servlet控制类中,代码如下:<a href=”borrow?action=bookrenew&barcode=<%=barcode%>&id=<%=id%>”>续借</a>2. 关键代码实现图书续借
47、功能与图书借阅类似,有所不同的是实现图书续借的方法为bookrenew() ;保存图书续借信息的方法为renew()。这两个方法的关键代码如下:/图书续借的方法bookrenew()public int back(int id,String operator) /根据借阅ID获取读者ID和图书ID String sql0="SELECT readerid,bookid FROM tb_borrow WHERE id="+id+"" ResultSet rs1=conn.executeQuery(sql0);/执行查询语句 int flag=0; try
48、if (rs1.next() Calendar calendar=Calendar.getInstance(); /获取系统日期 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date date=java.sql.Date.valueOf(format.format(calendar.getTime();/还书日期 int readerid=rs1.getInt(1);/获取读者ID int bookid=rs1.getInt(2);/获取图书ID String sql1=&qu
49、ot;INSERT INTO tb_giveback (readerid,bookid,backTime" + ",operator) VALUES("+readerid+","+bookid+",'" +date+"','"+operator+"')"/保存归还信息 int ret=conn.executeUpdate(sql1);/执行更新语句 if(ret=1) String sql2 = "UPDATE tb_borrow SET if
50、back=1 where id=" + id +"" flag = conn.executeUpdate(sql2);/执行更新语句 else flag=0; catch (Exception ex1) conn.close();/关闭数据库连接 return flag; /保存图书续借信息的方法renew()public int renew(int id) String sql0="SELECT bookid FROM tb_borrow WHERE id="+id+""/根据借阅ID查询图书ID的SQL语句 Result
51、Set rs1=conn.executeQuery(sql0);/执行查询语句 int flag=0; try if (rs1.next() /获取可借天数 String sql1 = "select t.days from tb_bookinfo b left join" + " tb_booktype t on b.typeid=t.id where b.id=" +rs1.getInt(1) + ""/获取可借天数的SQL语句 ResultSet rs = conn.executeQuery(sql1);/执行查询语句 int
52、days = 0; try if (rs.next() days = rs.getInt(1);/获取可借天数 catch (SQLException ex) /计算归还时间 Calendar calendar=Calendar.getInstance(); /获取系统日期 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");/设置日期格式 java.sql.Date date=java.sql.Date.valueOf( format.format(calendar.getTime();/借书日期 ca
53、lendar.add(calendar.DAY_OF_YEAR, days);/加上可借天数 java.sql.Date backTime= java.sql.Date.valueOf(format.format(calendar.getTime();/归还日期 String sql = "UPDATE tb_borrow SET backtime='" + backTime + "' where id=" + id + ""/更新归还时间完成续借 flag = conn.executeUpdate(sql);/执行更新语句 cat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门脸屋租赁合同协议
- 食品原材料进货合同协议
- 顶楼漏水修理合同协议
- 食品注册服务合同协议
- 防冲撞设施安装合同协议
- 长期劳务招工合同协议
- 闲置小鱼缸出售合同协议
- 马铃薯种薯跨境贸易电子签名认证条款二零二五年3月合同
- 门窗维修小区合同协议
- 食品炒货进货合同协议
- 短视频内容课件
- 素养为本的教学评一体化教学设计核心理念
- 译林版三年级上册英语书单词表
- 康复科并发症二次残疾
- (新版)拖拉机驾驶证科目一知识考试题库500题(含答案)
- 2025年中考物理一轮复习:物理学与社会发展 专项练习
- DL∕T 526-2013 备用电源自动投入装置技术条件
- 2024年北京大兴区九年级初三一模英语试题和答案
- 食品生物化学 知到智慧树网课答案
- 2024年江苏国信新丰海上风力发电有限公司招聘笔试冲刺题(带答案解析)
- 学术交流英语(学术写作)智慧树知到期末考试答案2024年
评论
0/150
提交评论