已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 网上书店 OnlineOnline BookStoreBookStore SystemSystem 毕业 论文 前前 言言 随着 Internet 国际互联网的发展 越来越多的企业开始建造自己的网站 基于 Internet 的信息服务 商务服务已经成为现代企业一项不可缺少的内容 很多企业都 已不满足于建立一个简单的仅仅能够发布信息的静态网站 现代企业需要的是一个功 能强大的 能提供完善的电子商务服务的动态商务网站 JSP 是 Sun 公司推出的一种网站开发技术 Sun 公司借助自己在 Java 上的不凡造 诣 又把人们引进 JSP 时代 JSP 即 Java Server Page 它可以在 Servlet 和 JavaBean 的支持下 完成功能强大的 Web 应用程序 所以 在我的毕业设计中 我采 用了 JSP 作为开发工具 构建了一个能实现简单的小型动态商务网站 网上书店 该系统能实现用户的注册 登录功能 能够实现商品的查询 订购等功能 该系统基 本上具备一个网上商品销售系统应该具备的功能 该设计项目基本上体现了构建一个 动态商务网站所需要的技术 2 通过这次的毕业设计 我了解了目前流行的动态商务网站的构成和运作原理 掌 握了用 JSP 构建动态网站的相关知识和技术原理 锻炼了自己的动手实践能力 更重 要的是 通过这次的毕业设计 我培养出了刻苦钻研的学习精神和严肃认真的学习态 度 这对我以后的学习和工作有很大的益处 在这次毕业设计过程中 我得到了指导老师李家兵老师和其他同组同学的悉心指导 在此 我对他们表示衷心的感谢 第一章第一章 概述概述 1 11 1 开发背景开发背景 随着时代的发展 信息技术 Internet Intranet 技术 数据库技术的不断发展完 善 网络进程的加快 传统的购物方式也越来越不能满足人们快节奏的生活需求 使 得企业的 IT 部门已经认识到 Internet 的优势 电子商务就是在这样一个背景下产生发 展起来的 伴随着电子商务技术的不断成熟 电子商务的功能也越来越强大 注册用 户可以在网上搜索购买到自己想要的各种商品 初步让人们体会到了足不出户 便可随 意购物的快感 我的毕业设计也就正是一个电子商务系统的开发 网上商品销售系统 1 21 2 JSPJSP 简介简介 JSP Java Server Pages 是由 Sun Microsystems 公司倡导 许多公司参与一起 建立的一种动态网页技术标准 JSP 技术在 Servlet 技术基础上发展起来的 它正在飞 3 速发展中 现已成为 Java 服务器编程的重要组成部分 它虽然还未成型 但是它必将 和 J2EE Java 2 Enterprise Edition 一起发展 JSP 是结合 markup HTML 和 XML 和 Java 代码来处理一种动态页面 每一页第一次 被调用时 通过 JSP 引擎自动被编译成 Servlet 然后被执行 以后每次调用时 执行 编译过的 Servlet JSP 提供了多种方式访问 Java class Servlet Applets 和 Web Server 因此 Web 应用的功能可以分成多个明确定义公用接口的组件 通过 JSP 将它 们结合在一起 1 2 11 2 1 JSPJSP 的运行原理的运行原理 在 JSP 第一次获得来自于客户端浏览器的请求时 JSP 文件将被 JSP 引擎 JSP engine 转换成一个 Servlet 即将 jsp 文件编译成 Java Class 文件 当 Servlet 引擎接收到请求后 如果设置了使用最新的 JSP 它就会去找 JSP 文件 检查 该文件在上次编译后是否改动过 如果改动过 就会重新编译生成新的 Servlet 最终 将请求转交给编译好的 Servlet 引擎执行 如图 1 1 Client 客户端客户端 请求请求 Request Web Server 响应响应 Response Server extension 服务器扩展服务器扩展 Servlet engine JSP engine Servlet 引引 擎擎 JSP 引擎引擎 Class loader Java complier JSP parser 类载入器类载入器 Java 编译器编译器 JSP 语法分析语法分析 器器 4 图 1 1 JSP 运行原理 在编译时如果发现 JSP 文件有任何语法错误 转换过程将中断 并向客户端发出 出错信息 如果编译成功 则所转换产生的 Servlet 代码被编译 然后该 Servlet 被 JSP 引擎加载到内存中 此时 JSP 引擎还请求了 jspInit 方法的执行 并对此 Servlet 初始化 JspInit 方法在 Servlet 的生命周期中只被请求一次 然后将被调 用来处理客户端的请求和回复操作 对于所有随后对该 JSP 文件的请求 服务器将检 查该 JSP 文件自最后一次被存取后是否经过修改 如果没有修改 则将请求交还给还 在内存中的 Servlet 的 jspService 方法 执行回复操作 由于 Servlet 始终驻于内 存 所以响应是非常快的 Jsp 页面在第一次访问时由于要转化和编译 运行速度较慢 但是当第二次访问该页时 由于文件已经被编译成字节码文件了 所以速度非常得快 1 2 21 2 2 JSPJSP 页面的组成页面的组成 JSP 页面看上去像标准的 HTML 和 XML 页面 并附带有 JSP 引擎能够处理和解析执 5 行的代码与组件 通常 JSP 代码和组件用于创建在最终页面上显示的文本 通常来说 JSP 页面包括编译指令 动作指令 声明 表达式和程序段等内容 1 21 2 3 3 JavaBeanJavaBean 技术介绍技术介绍 JavaBean 技术是一种基于 Java 的组件技术 JavaBean 组件可以用来执行复杂的 计算任务 或负责与数据库的交互以及数据的提取等 是解决代码重用问题的一种策 略 以前的组件无法实现真正的代码重用 其主要原因就是它们对于处理平台的依赖 和对开发语言的依赖过重 由于 Java 语言在这些方面所具有的特点和优势 使得基于 它的软件 JavaBean 组件技术倍受人们的关注 它的任务就是 一次编写 可以在任何 地方执行 可以在任何地方重用 JavaBean 组件可以在任何地方冲用包括了可以在应 用程序 其他组件 文档 Web 站点和应用程序构造器工具等多种方案中再利用 为了创建和使用 Java 软件组件 JavaBean 被实现为一种独立于平台和结构的应用 程序接口 它的实现可以忽略内部的结构及细节问题 只需要定义其外部的特征及对 外功能就行 其中 属性 方法和事件三种接口可以独立对外进行开发 JavaBean 的实质就是一个 class 文件 也可以成为类文件 JavaBean 以 binary 格式保存 可以保护 Java 源代码不容易被他人抄袭 1 2 41 2 4 JSPJSP 的运行环境的运行环境 要运行 Jsp 需要有支持 Jsp 的服务器 这里分 2 种情况 一种是自身就支持 Jsp 6 的服务器 如 Jrun Weblogic JSWDK 等 而另一种则是在不支持 Jsp 的服务器上安装 Jsp 引擎的插件 如在 IIS Apache 等服务器上安装 WebSphere tomcat Resin 等插件 其中主流服务器是 Weblogic 和 tomcat Weblogic 是一款功能强大的服务器软件 配置比较简单 而且 Jsp 的扩展功能较多 附带了数据库的 JDBC 驱动程序 支持 JHTML 一种与 Jsp 十分相似的技术 是目前市 场占有率最高的服务器 Tomcat 服务器是 Apache Group Jakarta 小组开发的一个免费服务器软件 适合于 嵌入 Apache 中使用 而且 它的源代码可以免费获得 你可以自由地对它进行扩充 访问的地址 http jakarta apache org tomacat index html Tomcat 服务器的兼 容性很好 如 WebLogic 服务器采用其为 Web 服务器引擎 Jbuilder 将其作为标准的测 试服务器 Sun 公司也将其作为 JSP 技术应用的示例服务器 第二章第二章 需求需求分析分析 2 12 1 系统说明系统说明 本系统是一个中小型的电子商务系统 网上书店 可以为各类用户提供方便的 在线买书环境 符合目前国内流行的电子商务模式 用户可以在系统中实现注册 浏 览商品 搜索查询商品 下定单 处理定单等功能 管理员可以通过用户管理 定单 管理 商品管理 评论管理等管理功能来对系统进行维护更新 7 2 22 2 系统功能简介系统功能简介 2 2 12 2 1 基本功能基本功能 游客可以浏览网站 用户登陆 用户能够浏览网站 提供搜索引擎 使用户能够按特定的条件对所需商品进行搜索 用户下定单购买商品 2 2 22 2 2 用户界面设计用户界面设计 第三章第三章 系统设计系统设计 3 13 1 系统设计思想系统设计思想 本系统采用三层架构设计 它的工作原理如图 3 1 所示 8 图 3 1 采用三层构架以后 用户界面层通过统一的接口向业务层发送请求 业务层按自己的逻辑 规则将请求处理之后进行数据库操作 然后将数据库返回的数据封装成类的形式返回给用户界 面层 这样用户界面层甚至可以不知道数据库的结构 它只要维护与业务层之间的接口即可 3 23 2 系统功能模块化系统功能模块化 如图 3 2 为本系统的功能模块图 用户登录 在线购书 查看购物车 在线购书 察看订单信息 察看图书详细 购买 图书查询 9 图 3 2 3 33 3 数据库设计数据库设计 数据库在一个信息管理系统中占有非常重要的地位 数据库结构设计的好坏将 直接对应用系统的效率 以及实现的效果产生影响 合理的数据库结构设计可以提 高数据存储的效率 保证数据的完整和一致 3 3 13 3 1 数据库需求分析数据库需求分析 针对一般在线书店的需求 得出如下需求信息 用户分为游客和已注册用户 订单分为单张详细订单和总订单 一个用户可以购买多本图书 一个用户对应一张订单 察看图书详细资料 购买 查看订单详细 继续购书 清空购物车 提交购物车 删除已经选购的图书 修改购买数量 购买 10 一个列表对应多张订单 针对本系统功能分析 总结出如下的需求信息 用户 包括数据项 用户 ID 用户名 密码 图书 包括数据项 图书编号 图书名 价格 图书介绍 订单列表 包括数据项 订单编号 图书编号 购书数量 订单 包括数据项 订单编号 用户编号 下单时间 3 3 23 3 2 数据库概念结构数据库概念结构 从本系统中规划出的实体有 用户实体 图书实体 订单实体 订单列表实体 用户信息实体的 E R 图如图 3 4 所示 图书实体的 E R 图如图 3 5 所示 订单实体的 E R 图如图 3 6 所示 订单列表实体的 E R 图如图 3 7 所示 11 3 3 33 3 3 数据库逻辑机构设计数据库逻辑机构设计 在线书店数据库中各个表的设计结果如下面的标和所示 表 3 8 为图书信息列表 表 3 8 表 3 9 为用户信息列表 表 3 9 12 表 3 10 为订单总表 记录某个用户的订单信息 表 3 10 表 3 11 为订单表 记录但张订单的具体信息 表 3 11 第四章第四章 详细设计详细设计 4 14 1 系统概述系统概述 我设计的这个系统是一个由 JSP 实现的网上购书系统 它实现了基本的登录验证 查询商品 分页处理 购物车处理以及订单处理功能 其主要界面见图 4 1 13 图 4 1 4 24 2 系统主要文件系统主要文件 这个购书系统主要有 2 类文件 一类是 Bean 文件 我把它们统一放在了 cart 文件夹里 保存在 jakarta tomcat 5 0 27 common classes cart 下 这是 tomcat 要求的默认存放 Bean 的路径 另一类是 jsp 文件 保存在 jakarta tomcat 5 0 27 webapps ROOT 这是 tomcat 的默认工作环境 Bean 文件 CartManager java OrderEntity java OrderItemEntity java ProductEntity java UserEntity java Jsp 文 件 cart jsp 14 4 34 3 详细代码及说明详细代码及说明 4 3 14 3 1 实现用户实体的实现用户实体的 BeanBean 1 用户作为实体 我把他的 id 姓名 密码作为其属性在 Bean 里面做了定义 它们都是和数据库里的 user 表相对应的 在这个 Bean 里封装的方法也主要是对这个 表进行操作 这个几个属性都被定义为类的私有成员 外界不可访问 private String id private String userName private String userPassword 2 构造函数里做了 2 件事情 第一 寻找数据库连接驱动 第二 对上面的 3 个 私有成员初始化 public static String sDBDriver sun jdbc odbc JdbcOdbcDriver public static String sConnStr jdbc odbc cart public static Connection conn null public UserEntity String id String userName String userPassword try Class forName sDBDriver catch java lang ClassNotFoundException e 15 System err println UserEntity e getMessage this id id this userName userName this userPassword userPassword 3 这个类我封装了 2 类方法 一是查找特定用户名的所有记录 代码如下 public static UserEntity queryUser String userName throws SQLException try Class forName sDBDriver catch java lang ClassNotFoundException e System err println UserEntity e getMessage String sql select id user name user password from user where user name ResultSet rs null try conn DriverManager getConnection sConnStr 16 PreparedStatement prepStmt conn prepareStatement sql prepStmt setString 1 userName rs prepStmt executeQuery catch SQLException ex System err println OrderItemEntity executeQuery ex getMessage UserEntity user null if rs next user new UserEntity rs getString 1 rs getString 2 rs getString 3 return user 该类封装的另一种方法是 用户名和密码的获得 这个主要是为了方便后面验证 用户合法性使用 public String getUserName return userName public String getUserPassword return userPassword 17 4 3 24 3 2 实现商品实体的实现商品实体的 BeanBean 虽然我做的是一个购书系统 但考虑到系统的可扩展性 我把书当作一种商品来 进行定义 同样 参照数据库里的 product 表 我给商品这个类定义了如下 4 个属性 商品 id 商品名称 商品价格 商品 note 其类型同样是该类的私有属性 private String id private String productName private String productPrice private String productNote 1 其构造函数和用户实体类基本上一致 所以代码及其说明我在这里就 省略了 2 对商品的操作也主要是 2 类 一类是对特定商品的查询 其原理和查 询用户是一样的 但是有一点小小的区别 即查询商品可以使查询所有的商品 或者是查询特定 id 的商品 我通过以下代码把这 2 种查询合在了 queryProduct 这个函数里 String sql select id product name product price product note from product if productIpareTo 0 sql sql where id Vector v new Vector 18 ResultSet rs null 其关于连接数据库 查询记录的代码和上面的大致雷同 所以在这里就省 略了 显示商品是分页显示的 其代码如下 while rs next i if i pageCount pageSize if i pageCount 1 pageSize v add new ProductEntity rs getString 1 rs getString 2 rs getString 3 rs getString 4 else break 这一段代码的主要功能是 每一页最多显示 pageSize 个商品 如果超过 pageSize 个 就分页显示 PageSize 在后面将会定义 其值我设置为 10 3 第二类方法是查询商品的 id 全称 价格和 note 例如查找商品的 ID public String getProductId return id 19 4 3 34 3 3 实现订购单实体的实现订购单实体的 BeanBean 客户每次购买一种商品都会产生一次订购单 它包括订单号 所购买的书 号 所购买这种书的数量 这些构成了这个类的私有属性 private String id private String orderId private String productId private String productNum 1 客户每次选中一种商品后 点击放入购物车 就会产生一个订单 其实现代码如下 String sql insert into order item order id product id product num 20 values ResultSet rs null try conn DriverManager getConnection sConnStr PreparedStatement prepStmt conn prepareStatement sql prepStmt setString 1 orderId prepStmt setString 2 productId prepStmt setString 3 productNum prepStmt executeUpdate 订购单 书号 购买数量都是作为参数传过来的 很明显 新建一张订购单其 实就是在 order item 表里插入一条新纪录就可以了 其原理已经在上面说过来了 就不在此重复了 2 在后面的购物车里 一名顾客的最终消费总额就是根据这里一张张的订购 单得到的 所以查找特定订单号的订购单是这个类里面不可缺少的方法 它的算法 实质上就是条件查询 和前面的无条件查询相比 我只把 sql 语句作了改动 String sql select id order id product id product num from order item where order id 3 第 3 个被封装的方法是设置 获得订购单号 书号 定购数量 并且还可 以获得 session price 21 4 3 44 3 4 实现购物车实体的实现购物车实体的 BeanBean 在现实生活中 人们去超市买东西 都是把商品放在一个购物篮里 等到把所有 要买的东西选购完毕后 一起拿到收银台前付钱 我在程序里定义的购物车实体就是 模拟这个功能 作为购物车 购物人 购物时间 所购书的总价格都是必不可少的 private String id private String userName private String orderDate private String orderPrice 我觉得在这个Bean里面主要要解决的一个问题 如何解决一个新的购物车 当一 个顾客买完书提交购物车后 我们必须插入一个新的购物车纪录 这是由 insertOrder 方法来实现的 其插入代码如下 conn DriverManager getConnection sConnStr PreparedStatement prepStmt conn prepareStatement sql String curDate java util Calendar getInstance getTime toString prepStmt setString 1 userName prepStmt setString 2 curDate prepStmt setString 3 orderPrice prepStmt executeUpdate 22 这里 插入的原理和前面是相同的 但是有一个地方需要解释 即购物时间字段 是采用的java util Calendar getInstance getTime 这是一个库函数 被封装 在java util 在这个类定义的开头 我把这个库文件包含进来 import java util 这个方法返回的结果必须把转化成 String 否则后面插入数据库时会出现类型不 匹配的错误 toString 就是用来实现类型转换的 为了方便后面对这个购物车进行操作 我在这个方法里还获得了该购物车的 id String selectStatement select id from orderlist where user name order by id desc PreparedStatement prepStmt conn prepareStatement selectStatement prepStmt setString 1 userName ResultSet rs prepStmt executeQuery rs next String result rs getString 1 return result 在sql里 查询特定用户购物车的id号 并且按照降序排列 是因为 针对一个网 上购书系统 顾客可以多次在这里购书 那么在购物车表单里 针对一个顾客会有很 多条他的购物纪录 而在数据库里 各条记录的id是安装时间先后顺序逐渐递增的 如果安装降序排列 那么得到的第一条记录则是最新插入的纪录 result rs getString 1 表示只把该条记录的第一个字段传给result 即把购物车的id 23 号传给result 4 3 54 3 5 实现购物实体的实现购物实体的 BeanBean 1 买书的第一步便是用户登录 现在购书网站都要求已经注册过的用户才能 购买书籍 这样便于网站管理 checkUser String userName String userPassword 就是用来检验用户的合法性的 public int checkUser String userName String userPassword int result 0 UserEntity user null try user UserEntity queryUser userName catch SQLException ex System err println ex getMessage if user null return 0 String pass user getUserPassword if pareTo userPassword 0 result 1 24 this userName userName return result 这个函数传过来的 2 个参数分别是用户登录时候填写的用户名和密码 前面已经 介绍过 在 UserEntity 里面有一个查询特定用户名的记录的方法 我根据用户登录上 填写的用户名查询记录 queryUser userName 并把结果赋给一个对象 user 把传过 来的密码和和这个对象的密码比较 pareTo userPassword 0 如果相同 则用户是合法的 可以购买本网 站的书籍 result 1 如果不相同 则说明他是非法登录的 只能浏览网站 不能买 书 result 0 Result 就是这个函数的返回值 是一个整型变量 2 证明是合法用户后 就必须给这个用户一个购物车 用户每次选中一本书 点击 放入购物车 就必须添加一个订购单 这就相当于把用户要买的书放入购物 车里 insertOrder 就是用来实现这些的 其主要代码如下 25 public void insertOrder insert intoDataBase try if orderPrice 0 return OrderEntity oe new OrderEntity null userName null Integer toString orderPrice orderId oe insertOrder for int i 0 i orderItem size i OrderItemEntity oi OrderItemEntity orderItem elementAt i oi setOrderId orderId oi insertOrderItem catch SQLException ex System err println InsertOrder executeQuery ex getMessage orderItem removeAllElements orderPrice 0 当 orderPrice 0 说明用户还没有开始买书 在这个时候创建购物车 并且获得 26 它的 id 号 保存在 orderId 这个变量里 一个客户可以有很多张订购单 但是购物车 id 号是一样的 所以在插入订购单的时候 必须把其购物车的 id 号设置为 orderId 3 addOrderItem String productId String productPrice 实现的是购买一种商 品多次 public void addOrderItem String productId String productPrice for int i 0 i orderItem size i OrderItemEntity oi OrderItemEntity orderItem elementAt i String pId oi getProductId if pIpareTo productId 0 int num Integer parseInt oi getProductNum num oi setProductNum Integer toString num this orderPrice Integer parseInt productPrice return OrderItemEntity oiNew new OrderItemEntity null null productId 1 Integer parseInt productPrice orderItem add oiNew this orderPrice Integer parseInt productPrice 因为每点击一次 放入购物车 只能购买相应的商品一次 并且数量之能为 1 27 但是购买的是同一个商品 其 productId 是一致的 要重新写入一张订购单 就必须 把原来 productId 的订购单修改一下就可以了 比较用户确实是买的一样 id 的书 pIpareTo productId 如果是 则修改订购单的数量 num 把总价格加上本 书的价格 this orderPrice Integer parseInt productPrice 通过以上的操作 把修改 后的结果作为新的属性重新插入成新的订购单 4 在 CartManager 类里 还封装了一个书查询的方法 主要是调用了 ProductEntity 类里的 queryProduct 方法 需要说明的地方是 先是查询结果的 时候分页显示的 每页显示的书籍的资料最多不超过 10 本 这是由 pageSize 这个变 量来实现的 关于这个变量 我把它定义成 CartManage 的私有成员 private int pageSize 10 28 public void setPageSize int pageSize this pageSize pageSize 4 3 64 3 6 前台运行程序前台运行程序 cart jspcart jsp 通过这个 jsp 程序 我实现了 3 个功能 1 显示主页面 2 把主页面里浏览者的资料和请求传给后台的 Bean 来处理 3 调用 Bean 来实现系统的登录 查询 分页处理 购书等功能 在程序的开头有这样 2 条语句 上面已经说明 我把所有的 Bean 文件都放在了 cart 里面 要使得能在 jsp 文件 中使用它们 就必须用 import 把 cart 包含进来 下面我想介绍一下 useBean 这个动作 通过 useBean 动作我建立了一个类型为 cartManager 的 Bean 对象 cartManager 我实现的所有功能都是通过调用这个对象的 方法来实现的 1 我把主页面分为 3 个部分 每个部分作为一个表格来处理 29 实现登录框的表格 实现登录框的表格 登录 用户名 密码 实现书籍清单的表格 实现书籍清单的表格 商品ID 31 商品ID 商品名称 商品价格 商品说明 当前第页 实现购物信息的表格实现购物信息的表格 32 购物车 商品ID 数量 上面只列出了部分代码 从上面的代码里很容易发现一个共同点 就是它们都是 用了标签 我通过这个标签 把前台的数据传给后台的函数 form 有 2 个 很重要的属性 一是 action 它用来指明从客户端保存的数据传到哪里去 在我的程 序里 它通常都只向 cart jsp 然后在 cart jsp 里 用 request 对象来接收这些数据 最终作为函数的参数使用 二是 method 它是指传递数据的方式 在这里我都是采用 的 post 方式 Form 里面很重要的另外一个东西就是 input 它是与用户进行交互的 主要工具 根据不同的类型 可以有不同的作用 我使用了其空白框给用户填写数据 其 type text 按钮是 form 里必不可少的 type submit 只有当用户点击确定 按钮 客户端才会最终把这些数据传给 cart jsp 来处理 2 我在实现这个系统的时候 主要是根据用户对页面的点击做出回应的 所以在 cart jsp 里我设置了一个 String op request getParameter op 当 op 取不同的值 的时候 就调用不同的函数完成不同的功能 其代码如下 if op null if result 1 loginInfo 登录成功 欢迎你 else loginInfo 登录失败 表示顾客点击的是 登录 这个时候就调用cartManager类里的 checkUser 方法 这里用的对象cartManager就是先前在开通通过uesBean动作定义 的那个对象 UserName是刚刚通过登录表格的form标签传过来的用户名 它作为 checkUser的实参 这个参数返回一个int值 1表示登录成功 0表示登录失败 if op null else loginInfo 请先登录 34 如果客户点击放入购物车 这时就会有2种情况 一种是这位顾客还没有登录 那么他是不能买书的 另外一种是登录成功 那必须为这次采购插入一张订购单 我 是通过购物车类中的usename来识别这2种情况的 因为只要他登录成功 系统就会为 他创建一个购物车类的对象 那么他的username一定不为空 就执行cartManager 对 象的addOrderItem 方法 这个函数在调用的时候必须传过去的参数是 书名号 书价格 如果比较的结果为空 则打印请先登录的提示信息 if op null 如果顾客把书放入购物车后又不想买了 就会执行cartManager对象的 deleteOr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国输液器材料行业市场前景预测及投资价值评估分析报告
- 2026年中国泵用输液器行业市场前景预测及投资价值评估分析报告
- 2026年中国单级磁力泵行业市场前景预测及投资价值评估分析报告
- 2026年中国石棉覆盖物行业市场规模及投资前景预测分析报告
- 助理工程师岗位考核及总结报告
- 校企合作项目管理与评估手册
- 制造业生产流程优化方案案例分析
- 会计师事务所笔试真题试卷集
- 常用商务英语口语表达大全
- 急诊科与病房无缝对接服务流程全集
- 《现代企业管理》期末考试复习题(附答案)
- 湖南省长沙市师大附中2025-2026学年高一上学期10月月考化学试题(原卷版)
- 南充市嘉陵城市发展集团有限公司2025年公开招聘工作人员(10人)笔试历年参考题库附带答案详解
- 2025广东深圳市龙岗区国资国企系统面向全市集中选聘中层管理人员考试及考察笔试历年参考题库附带答案详解
- 2025年炼钢项目可行性研究报告
- 马克思宗教观课件
- 堤防工程施工规范(2025版)
- 安全生产考核巡查办法全文
- 秉持责任担当厚植家国情怀-主题班会课件
- 水电站运行和管理课件
- 叶片泵的叶轮理论与性能
评论
0/150
提交评论