已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文本科生毕业论文 院院 系:系: 专专 业:业: 姓姓 名:名: 指导教师:指导教师: 答辩日期:答辩日期: 二二一四年一四年 月月 目目 录录 1 项目需求项目需求.- 1 - 1.1 前言.- 1 - 1.2 RSS 阅读器研究的背景与意义.- 1 - 1.3 分析需求.- 2 - 1.4 功能分析.- 2 - 2 软件开发工具软件开发工具.- 3 - 2.1 .NET 技术简介.- 3 - 2.1.1公共语言运行库.- 3 - 2.1.2.NET基类库.- 3 - 2.2 C#语言简介.- 3 - 3 技术分析技术分析.- 5 - 3.1 泛型.- 5 - 3.2 简单工厂设计模式.- 5 - 3.3 序列化与反序列化.- 5 - 4 软件设计软件设计.- 7 - 4.1 设计方案概述.- 7 - 4.2 类的设计.- 7 - 4.2.1文章类设计Article.cs.- 7 - 4.2.2频道基类类设计FeedBase.cs .- 8 - 4.2.3频道子类类设计RssFeed.cs.- 8 - 4.2.4频道子类类设计AtomFeed.cs.- 8 - 4.2.5 FeedFactory工厂类设计.- 9 - 4.2.6 Profile配置类设计.- 9 - 4.2.7 ProfileManger管理配置类.- 9 - 5 详细设计与编码实现详细设计与编码实现.- 10 - 5.1 类设计.- 10 - 5.1.1文章类设计.- 10 - 5.1.2频道类设计.- 11 - 5.1.3 FeedFactory工厂类设计.- 12 - 5.1.5 ProfileManger管理配置类.- 14 - 5.2 阅读器界面设计.- 17 - 5.2.1主界面设计.- 17 - 5.2.2子界面设计.- 18 - 5.3 数据显示.- 19 - 6 结论结论.- 22 - 6.1 本文完成的工作.- 22 - 6.2 软件的优点与缺点.- 22 - - 1 - 1 项目需求项目需求 1.1 前言前言 获得信息是在人类的生活中是必不可少的环节。如果现在的社会对获得信息不快捷, 那么这个社会将不会像如今这般的发达和进步。在当今网络技术相当发达的今天,大量 的信息充斥在网上。现在网络越来越发达,用户在网上既能工作也能娱乐。当用户在网 上需游览很多个网站才能获取自己多需的信息时,那就感觉很累。因为现在每个网站都 有很多信息,找到自己所喜欢的并不是一件轻松的事。这时 RSS 阅读器的功用就体现出 来了。每当那些网站的信息更新时,阅读器上的信息也会更新。如何让 RSS 阅读器的功 能越来越适合用户口味,成为各个运营商开发一个实时,精确,个性化的 RSS 阅读器变 的至关重要。对具有高效的阅读方式的 RSS 阅读器来说,它的研究也就有其重要的意义。 1.2 RSS 阅读器研究的背景与意义阅读器研究的背景与意义 RSS 阅读器就是能读取 Rss 和 Atom 两种格式文档的软件。RSS 通常被用于新闻和其 他按顺序排列的网站,例如 Blog。 RSS 这种高效的阅读方式在国内并没有得到普及。除了一些博客和主流媒体网站外, 到目前为止大多数人对 RSS 还并不熟悉。RSS 的目标群体是有定向阅读习惯的人,但 RSS 源的质量一直是好差不等的,门户网站信息太多、小网站信息又少,使得 RSS 使用 者难以壮大。目前比较受欢迎的信息主要是 BLOG、分类新闻。国内的 RSS 内容提供商 数目也还不是很多。比较有名的国内 RSS 阅读器有鲜果, 抓虾等。 现在的阅读器主要分为三种: 第一种阅读器是运行在计算机桌面上的应用程序,通过所订阅的网站或博客中的新 闻提供信息,可自动及时的获得更新了的新闻。 第二种阅读器是已内含在计算机应用软件中。例如,Outlook 已经内建了 RSS 的文件 夹,用户只要点击网站订阅按钮或手动在 Outlook 中加入 RSS 地址就可以了。 第三种阅读器是在线的阅读器,其优点在于不用安装就可以获得RSS 阅读的功 能,推荐和收藏自己感兴趣的文章。提供这种服务的主要有两类网站,一种是专门提 供 RSS 阅读器的网站,例如 Google Reader 和鲜果;另一种是提供个性化首页的网站, 例如 netvibes 和雅蛙。 现在网站的广告、不健康的内容充斥着屏幕。这使用户更喜欢自己可以控制的体验。 在一些大的主流媒体网站的推广下,RSS 的用户会越来越多。这使越来越多的内容提供 者为了获得更大的客户群也会推出 RSS 服务,靠这样来获得更大的流量和知名度。在新 闻出版领域,RSS 技术作为电子出版的一个新型渠道已经在新华社等新闻机构得到了尝 试,并逐渐成熟走向商业化。RSS 是伟大的发明,它让读者从被动接受变成主动筛选, - 2 - 极大提高了阅读效率,减少了阅读的额外时间消耗。由于大多数用户对这个新技术还不 怎么熟悉,不怎么会用,除了一些用后爱不释手的技术人员或关注资讯方面的从业人员 外,普通用户跟本就没用上这个新技术,他们了解资讯最多也不过是看看百度新闻或门 户网站新闻之类的对于 RSS 订阅服务只是抱着试试看的想法,日积月累下来大家沉淀下 来的用户并不多,这部分用户距离消费比较远。这些原因最终导致了 RSS 阅读器发展状 况不佳。从技术来说上还没有什么能代替 RSS。相信在不久的未来,RSS 技术会被广泛 应用。 1.3 分析需求分析需求 本设计要设计一个 RSS 阅读器,其实 RSS 是站点用来和其他站点之间共享内容的一 种简易方式(也叫新闻聚合) 。通常被用于新闻和其他按顺序排列的网站。一段项目的介 绍可能包含新闻的全部介绍等。或者仅仅是额外的内容或者简短的介绍。这些项目可以 称为频道,一个频道的链接通常能链接到全部内容。网络用户可以在客户端借助于支持 RSS 的新闻聚合软件(例如抓虾、周博通游览器、本设计的 NewsReader),在不打开网站 内容页面的情况下,将网站提供的支持 RSS 输出的网站内容(新闻、Blog 等)聚集到 RSS 阅读器中,用户可以不必登录各个提供信息的网站,而通过“RSS 阅读器”来阅读 这些内容。 1.4 功能分析功能分析 本设计的类的功能如下: (1)文章类 Article:它的属性主要有文章的标题和文章的链接地址。 (2)频道类(FeedBase 类、RssFeed 类、AtomFeed 类):用来保存频道信息的新闻订阅 点。 (3)工厂类 FeedFactory:自动辨别从网上获得的 Feed 文件是 Rss 类型还是 Atom 类型。 (4)配置类 Profile:用来保存阅读器中显示的各个频道的集合。 (5)类 ProfileManger:用来管理配置信息的 Profile 类。 本设计的 UI 界面主要有如下几个: (1)主界面:软件使用的主要界面。 (2)频道增加界面:用于新增频道所需的界面。 (3)频道修改界面:用于修改频道所需的界面。 (4)频道删除界面:用于删除频道所需的界面。 (5)频道查看界面:用于查看频道所需的界面。 (6)帮助里的 RSS 介绍界面:介绍 RSS 的定义及原理。 (7)帮助里的 RSS 使用界面:介绍 RSS 的使用方法。 (8)帮助里的关于 RSS 版本信息界面:介绍 RSS 的版本信息。 - 3 - 2 软件开发工具软件开发工具 2.1 .NET 技术简介技术简介 .NET 是 Microsoft 公司发布的新一代的系统、服务和编程平台,主要由.NET Framework 和 Microsoft Visual Studio .NET 开发工具组成。 .NET Framework 是一种新的计算平台,它包含了操作系统上软件开发的所有层,简 化了在高度分布式 Internet 环境中的应用程序开发。.NET Framework 主要包含两个最基本 的内核,即公共语言运行库(Common Language Runtime,简称 CLR)和.NET Framework 基本类库,它们为.NET 平台的实现提供了底层技术支持。下面将分别做详细的介绍。 2.1.1 公共语言运行库公共语言运行库 公共语言运行库是.NET Framework 的基础,是.NET Framework 的运行环境。公共 语言运行库是一个在执行时管理代码的代理,以跨语言集成、自描述组件、简单配置和 版本化以及集成安全服务为特点,提供核心服务(如内存管理、线程管理和远程管理) 。 公共语言运行库还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代 码准确性。公共语言运行库遵循公共语言架构(简称 CLI)标准,可以使 C+,C#,Visual Basic 以及 JScript 等多种语言深度集成。在.NET Framework 中,用一种 语言所写的代码能继承用另一种语言所写的类实现,用一种语言所写的代码抛出的异常 能被另一种语言写的代码捕获。 2.1.2.NET 基类库基类库 .NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类 型集合,例如 ADO.NET,ASP.NET 等。.NET 基类库位于公共语言运行库的上层,与. NET Framework 紧密集成在一起,可被.NET 支持的任何语言所使用。.NET 类库非常丰富, 提供数据库访问、XML、网络通信,线程,图形图像、安全、加密等多种功能服务。类 库中的基类提供了标准的功能,例如输入输出、字符串操作、安全管理、网络通信、线 程管理、文本管理和用户界面设计功能。这些类库使得开发人员更容易地建立应用程序 和网络服务,从而提高开发效率。 2.2 c#语言简介语言简介 本设计是用 C#语言编写的。C#是一种面向对象的编程语言,主要用于开发可以在. NET 平台上运行的应用程序。C#的语言体系都构建在.NET 框架上,它是 C 和 C+派生 出来的一种简单、现代、面向对象和类型安全的编程语言,并且能够与.NET 框架完美结 - 4 - 合。C#具有以下突出的特点: (1)语法简洁。不允许直接操作内存,去掉了指针操作。 (2)测底的面向对象设计。C#具有面向对象语言所应用的一切特性封装、继承 和 多态。 (3)与 Web 紧密结合,C#支持绝大多数的 Web 标准。 (4)强大的安全机制。可以消除软件开发中的常见错误(如语法错误) ,.NET 提供的 垃圾回收器能够帮助开发者有效地管理内存资源。 (5)兼容性。因为 C#遵循.NET 的公共语言规范(CLS) ,从而能够保证与其他语言 开发组件的兼容。 (6)灵活的版本处理技术。因为 C#语言本身内置了版本控制功能,使开发人员更加 容易地开发和维护。 (7)完善的错误、异常处理机制。C#提供了完善的错误和异常处理机制,使程序在 交付应用时能够更加准确。 - 5 - 3 技术分析技术分析 3.1 泛型泛型 本设计中使用了泛型技术。泛型是 C#2.0 中的一个新特性。通过泛型可以定义类型安 全的数据类型,它的最显著应用就是创建集合类,可以约束集合类内的元素类型。泛型 有很多传统集合没有的特性,与传统集合相比,它的类型更为安全,无须装箱与拆箱的 操作。泛型对于整个 C#有很重要的意义。它的重要性主要体现在以下几点。 (1)解决了很多繁琐的操作问题,例如传统集合中获取元素需要大量的类型转换,不易 控制程序的异常,而泛型集合无须这些类型的转换,使我们编程更加便捷。 (2)提供了更好的类型安全性。泛型对于类型的约束十分严格,它可以控制我们在集合 中对于不同类型的对象的胡乱使用,从而保证程序类型的安全。 (3)CLR 可以支持泛型,这样使得整个.NET 平台都能使用泛型。 3.2 简单工厂设计模式简单工厂设计模式 简单工厂模式是设计模式中的一种。软件中的设计模式是软件开发中对于某种需求 的一种经验的总结,是特定问题经过实践检验的特定解决方法。一般情况下就是根据参 数数据返回一个适当的子类,然后用基类或接口引用具体的对象,而不用考虑该实际对象的 产生过程。 在设计模式的简单工厂模式中,简单工厂也是用来生产“产品”的,在程序中也就 是“对象。 ”在程序中的类 FeedFactory 就是一个简单工厂,FeedFactory 中的方法 CreateFeed()判断 Feed 文件的格式后会实例化不同子类类型的频道对象,然后将父类作为 返回值,提供给工厂调用者。如果要增加其他的频道类型,只需修改类 FeedFactory,工 厂的调用者无须任何改变这样简化了系统的维护。这样做提高了代码的效率,方便维护。 而且调用者也不需要知道所创建的实例对象属于哪个子类。 设计模式可以提高软件的复用性,使得我们编写的软件更容易扩展,更容易适合需 求的变化,设计模式是面向对象在实际应用的集中体现。 3.3 序列化与反序列化序列化与反序列化 序列化是将对象的状态存储到特定存储介质的过程,也可以说是将对象状态转换为 可保持或传输的格式的过程。在序列化过程中,会将对象的公有成员、私有成员包括类 - 6 - 名,都转换成数据流的形式,存储到介质中,这里说的存储介质通常指的是文件。在本 设计中,通过序列化保存了 Profile 对象的信息,包括它存储的频道信息等。.NET 提供多 种形式的序列化,文本或 XMl 流等。 反序列化就是从特定存储介质(这里说的存储介质通常指的是文件)中,将数据重 新构建对象的过程。通过反序列化,可以将存储在文件上的对象信息读取,然后重新构 建为对象。这样就不需要再将文件上的信息一一读取、分析再组织为对象了。 将对象的字段值保存到磁盘中,并在以后检索此数据。尽管不使用序列化也能完成 这项工作,但这种方法通常很繁琐,而且容易出错。序列化提供了轻松实现这个目标的 快捷方法。通过序列化将对象从一个应用程序发送到另一个应用程序中。在远程通信中 应用非常广泛,可以将应用程序中的对象序列化,然后可以通过网络通信,远程传递给 其他地点的另一个应用程序。 - 7 - 4 软件设计软件设计 4.1 设计方案概述设计方案概述 网络用户在客户端借助于 RSS 的阅读器(比如本设计的 NewsReader 阅读器) ,在不 打开各大新闻门户网站的情况下,将网站提供的支持 RSS 输出的网站内容(新闻,Blog 等)聚集到 RSS 阅读器中。用户可以不必登录各个提供信息的网站,而通过 RSS 阅读器 来阅读这些内容。RSS 阅读器设计方案如下。设计图如 5-1 (1)新闻发布者(我们这里认为是各大新闻网站)会提供这种频道订阅点,也就是 Feed。为此设计相应的方法让阅读器会解析这种 Feed。 (2)阅读器接到 Feed 后,根据设计出的方法分析 Feed 文件后。把解析出的新闻标题、 链接内容保存到集合中。 (3)将解析出的已经保存到集合中的内容组织后,显示到阅读器显示界面中,供用户阅 读。 (4)新闻的内容会不断的进行更新,刷新 Feed。用户就能用阅读器随时能够读取到最新 的文章了。 新闻中心 订阅到 RSS 阅读器 向阅读提交频道 (Feed) 阅读器获取频道 (Feed) 获取文章 阅读分析频道 (Feed) 提供文章链接 用户阅读 图 5-1 阅读器设计图 - 8 - 4.2 类的设计类的设计 4.2.1 文章类设计文章类设计 Article.cs 文章类 Article:它的属性主要有文章的标题和文章的链接地址。文章类 Article 详细 信息如图 5-2。 5-2 文章类 Article 详细信息 4.2.2 频道基类类设计频道基类类设计 FeedBase.cs 频道类(FeedBase 类):是用来保存频道信息的新闻订阅点的基类。类 FeedBase 详 细信息如图 5-3。 5-3 类 FeedBase 详细信息 4.2.3 频道子类类设计频道子类类设计 RssFeed.cs 频道类(RssFeed 类):用来保存 RSS 格式频道信息的新闻订阅点。类 RssFeed 详细 信息如图 5-4。 - 9 - 5-4 类 RssFeed 详细信息 4.2.4 频道子类类设计频道子类类设计 AtomFeed.cs 频道类(AtomFeed 类):用来保存 Atom 格式频道信息的新闻订阅点。类 AtomFeed 详细信息如图 5-5。 5-5 类 AtomFeed 详细信息 4.2.5 FeedFactory 工厂类设计工厂类设计 工厂类 FeedFactory:自动辨别从网上获得的 Feed 文件是 Rss 类型还是 Atom 类型。 工厂类 FeedFactory 使用了简单工厂模式。简单工厂模式是设计模式中的一种。一般情况 下就是根据参数数据返回一个适当的子类,然后用基类或接口引用具体的对象,而不用考虑 该实际对象的产生过程。设计模式是得到了很好研究的范例,是一种经验的总结。软件 中的设计模式是软件开发中对于某种需求的一种经验总结,是特定问题经过实践检验的 特定解决方法。工厂类 FeedFactory 详细信息如图 5-6。 5-6 工厂类 FeedFactory 详细信息 4.2.6 Profile 配置类设计配置类设计 配置类 Profile:用来保存阅读器中显示的各个频道的集合。配置类 Profile 详细信息 如图 5-7。 5-7 配置类 Profile 详细信息 4.2.7 ProfileManger 管理配置类管理配置类 类 ProfileManger:用来管理配置信息的 Profile 类。ProfileManger 管理配置类如图 5- 8。 - 10 - 5-8 ProfileManger 管理配置类详细信息 5 详细设计与编码实现详细设计与编码实现 5.1 类设计类设计 为了实现阅读器的从网上抓取频道链接、获取文件、解析文件按文件格式的不同处 理后都保存在阅读器上的等功能,因此设计 Article 文章类, Feed(FeedBase,RssFeed,AtomFeed)频道类,FeedFactory 工厂类,Profile 配置类, ProfileManger 配置管理类。 5.1.1 文章类设计文章类设计 新闻阅读器的主要对象是新闻,我们称为文章。所以我们要创建一个文章类 Article,它的属性主要有文章的标题和文章的链接地址。类 Article 主要内容如下表 6-1。 表 6-1 类 Article 主要内容 属性 文章标题Title 文章链接Url 类 Article 代码如下: using System; using System.Collections.Generic; using System.Text; namespace NewsReader.Models / / 频道中的文章类 / Serializable class Article - 11 - public Article() public Article(string title, string url) this.title = title; this.url = url; / / 文章标题 / private string title; public string Title get return title; set title = value; / / 文章链接 / private string url; public string Url get return url; set url = value; 5.1.2 频道类设计频道类设计 阅读器组织新闻(文章)的对象是频道,我们称为 Feed。Feed 是用来保存频道信息 的新闻订阅点。一个频道的主要信息大致可以归纳为频道名称,频道链接,频道的详细 说明,频道的文章列表,还可以加入点击次数。如下表 6-2 Feed 类的主要内容: 表 6-2 Feed 类的主要内容 属性方法 频道名称DisplayName填充文章列表 链接地址Url重载构造函数 描述Description - 12 - 点击次数Clicks 很多大型的网站往往都会提供 Rss+Atom 两种格式的频道订阅方式。这两种格式既有 相同的地方,也有不同点。为了实现软件的代码复用,以提高程序的简洁和高效。把这 两种格式相同的属性(频道名称,链接地址,描述,点击次数)放入一个基类 FeedBase 中,把他们不同的属性(获取文章的方法)放入各自的类 RssFees 中和类 AtomFeed 中来 实现。这三个类代码请见附录,关系图 6-3 如下: 图 6-3 类 FeedBase,类 RssFeed 和类 AtomFeed 的类关系图 5.1.3 FeedFactory 工厂类设计工厂类设计 为了自动辨别从网上获得的 Feed 文件是 Rss 类型还是 Atom 类型,创建一个类 FeedFactory 来解决这个问题。这涉及到了软件开发中的简单工厂设计模式。简单工厂模 式是设计模式中的一种。一般情况下就是根据参数数据返回一个适当的子类,然后用基类 或接口引用具体的对象,而不用考虑该实际对象的产生过程。设计模式是得到了很好研究 的范例,是一种经验的总结。软件中的设计模式是软件开发中对于某种需求的一种经验 总结,是特定问题经过实践检验的特定解决方法。类 FeedFactory 类图如下图 图 6-4 类 FeedFactory 类图 FeedFactory 的代码: using System; using System.Collections.Generic; - 13 - using System.Text; using System.Net; using System.Xml; namespace NewsReader.Models / / Feed 的简单工厂 用来控制不同 Feed 的构建 / class FeedFactory public FeedFactory() public static FeedBase CreateFeed(string title, string url, string desc) FeedBase ret;/定义一个 Feed 基类 try /下载 Feed 文件 WebClient myClient = new WebClient(); myClient.DownloadFile(url, unknown.feed); /读取未知文件 XmlDocument myXml = new XmlDocument(); myXml.Load(unknown.feed); XmlNode rootNode = myXml.DocumentElement; /读取根节点 /根据节点值的不同,判断类型 switch (rootNode.Name.ToLower() /判断后创建相应的类型 case rss: ret = new RssFeed(title, url, desc);/父类保存子类对象 break; case feed: ret = new AtomFeed(title, url, desc);/父类保存子类对象 break; default: ret = null; break; - 14 - return ret;/返回一个父类 catch (Exception) throw new Exception(); 在简单工厂设计模式这个方法中有两个重要的特征: (1)返回类型是父类。 (2)方法中根据情况的不同创建不同类型的子类对象,将子类对象用父类保存,然 后返回父类。 类 FeedFactory 就是一个简单工厂,FeedFactory 中方法 CreateFeed()判断 Feed 文 件的格式后会实例化不同子类类型的频道对象,然后将父类作为返回值,提供给工厂调 用者。5.1.4 Profile 配置类设计配置类设计 类 Profile 用来保存阅读器中显示的各个频道的集合。类 Profile 的类图如下图 6-5: 图 6-5 类 Profile 的类图 类 Profile 代码如下: using System; using System.Collections.Generic; using System.Text; namespace NewsReader.Models Serializable class Profile public Profile() public List Feeds = new List(); - 15 - 5.1.5 ProfileManger 管理配置类管理配置类 类 ProfileManger 用来管理配置信息的 Profile 类。 图 6-6 ProfileManger 管理配置类类图 ProfileManger 管理配置类代码如下: using System; using System.Collections.Generic; using System.Collections; using System.Text; using System.Runtime.Serialization.Formatters.Soap; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace NewsReader.Models class ProfileManager public Profile Profile = new Profile(); public ProfileManager() internal Profile Profile1 get throw new System.NotImplementedException(); - 16 - set public void ChannelReset() Profile.Feeds.Clear(); / / 序列化方式保存 Profile 对象 / public void Save() FileStream fileStream = null; try fileStream = new FileStream(profile.bin, FileMode.Create); /定义一个文件流 BinaryFormatter bf = new BinaryFormatter();/二进制方式 bf.Serialize(fileStream, Profile);/序列化保存配置文件对象 Profile catch (Exception) throw; finally fileStream.Close(); / / 反序列化将本地信息转为 Profile / public void Load() FileStream fileStream = null; try - 17 - fileStream = new FileStream(profile.bin, FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); Profile = (Profile)bf.Deserialize(fileStream); catch (Exception) ChannelReset(); finally if (fileStream!=null) fileStream.Close(); 类 ProfileManger 中的 ChannelReset()方法用于重置频道信息(如程序首次运行未找到 用户的配置文件时,或者读取配置文件发生错误时将调用此方法.。 )Load()方法用于读取 配置文件,Save()方法用于保存配置文件。在类 ProfileManger 中通过序列化保存了 Profile 对象的信息,包括它存储的频道信息。.net 提供了多种形式的序列化,文本或 XML 流等。目前使用二进制对泛型支持得最好。在类 ProfileManger 中也通过反序列化将 存储在文件上的对象 Profile 的信息读取出来,然后重新构建为对象。这样就不需要我们 将文件上的信息一一读取,分析在组织为对象了。 5.2 阅读器界面设计阅读器界面设计 5.2.1 主界面设计主界面设计 在 NewsReader 中需设计界面,界面有复杂的也有简单的,如图 6-7 是程序的主界面, 集中要用到很多的控件,要用到 MenuStrip,TreeView, PictureBox,TabControl,Time,WebBrowser 等控件。 - 18 - 图 6-7 是程序的主界面 5.2.2 子界面设计子界面设计 在 NewsReader 中,其中有设计查看(ChannelInfoViewForm) ,修改 (ChannelInfoModifyForm) ,增加(ChannelInfoModifyForm)3 个窗体界面。这三个窗体 包含的内容有很多相同的,因此设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小学一年级数学上学期基础巩固练习卷
- 2025年小学六年级语文上学期古诗文专项试卷
- 2025云服务器租赁合同协议
- 工程项目安全监督办法
- 2025年巡山年终总结
- 2025年山东临沂市纪委公务员遴选笔试真题及答案
- 2025年临床常见病的中西医诊疗与康复新进展题库及答案
- 2025【企业短期融资借款合同】公司短期融资合同
- 2025年城区租房合同标准范本
- 2025年下半年吉林长春理工大学引进博士研究生学历学位高层人才127人(2号)易考易错模拟试题(共500题)试卷后附参考答案
- 日式皮肤专业知识培训班课件
- 《学校食堂大宗食材采购验收管理工作指引》 专题培训
- 企业拆迁补偿的申请书
- 校园歌曲欣赏课件
- 冬季安全驾驶培训试题及答案解析
- 五年级上册科学第三单元地球的表面和内部质量测试卷含答案(3套)苏教版
- 2025年广西行政执法人员执法证考试题库及答案
- 2024-2025学年度江西电力职业技术学院单招《物理》考试综合练习附参考答案详解(培优B卷)
- 消防设施维护保养故障应急预案
- 甲流小儿护理查房
- 电厂工控网络安全培训课件
评论
0/150
提交评论