课题报告.docx

上传人:b****8 文档编号:10120169 上传时间:2023-05-23 格式:DOCX 页数:19 大小:116.22KB
下载 相关 举报
课题报告.docx_第1页
第1页 / 共19页
课题报告.docx_第2页
第2页 / 共19页
课题报告.docx_第3页
第3页 / 共19页
课题报告.docx_第4页
第4页 / 共19页
课题报告.docx_第5页
第5页 / 共19页
课题报告.docx_第6页
第6页 / 共19页
课题报告.docx_第7页
第7页 / 共19页
课题报告.docx_第8页
第8页 / 共19页
课题报告.docx_第9页
第9页 / 共19页
课题报告.docx_第10页
第10页 / 共19页
课题报告.docx_第11页
第11页 / 共19页
课题报告.docx_第12页
第12页 / 共19页
课题报告.docx_第13页
第13页 / 共19页
课题报告.docx_第14页
第14页 / 共19页
课题报告.docx_第15页
第15页 / 共19页
课题报告.docx_第16页
第16页 / 共19页
课题报告.docx_第17页
第17页 / 共19页
课题报告.docx_第18页
第18页 / 共19页
课题报告.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课题报告.docx

《课题报告.docx》由会员分享,可在线阅读,更多相关《课题报告.docx(19页珍藏版)》请在冰点文库上搜索。

课题报告.docx

课题报告

 

信科专业综合实践课程设计

实践报告

题目:

C#连连看

班级:

信科09-3班

学号:

08093590

姓名:

赵梓宇

指导教师:

马老师

中国矿业大学计算机学院

2012-10-21

摘要

游戏“连连看”,只要将相同花色的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。

游戏速度节奏快,画面清晰可爱,老少皆宜。

丰富的道具和公共模式的加入,增强游戏的竞争性。

多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。

使用新颖的连击积分规则,使游戏玩家在体会连击的快感后,同时对自己的游戏速度,更有挑战性和追求极速的欲望。

游戏通过定义数组,根据一定的算法实现规定的路径判断。

现在小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。

连连看游戏就是典型了!

 

不管你走到哪个游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。

游戏产业作为现代电脑电子技术的产物,正在以其独特的魅力在全世界的娱乐领域占据主流位置,我们在承认广大娱乐网民的选择空间狭小的同时,也必须明确的一点就是游戏本身所具有的强大的吸引力。

游戏的吸引力主要在于,它在让玩家打发时间的同时,可以让人实现在显示生活中不能实现的理想,得到在现实中不能得到的东西。

而且游戏产业促动高科技技术不断升级,作为经济增长的一大支撑点,已经成为经济腾飞的“第四产业”。

作为编写本程序的语言C#,其本身是一种最新的、面向对象的编程语言C#看起来与Java有着惊人的相似它包括了诸如单一继承、界面、与JAVA几乎同样的语法和编译成中间代码再运行的过程。

正是由于C#面向对象的卓越设计使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。

使用简单的C#语言结构这些组件可以方便的转化为XML网络服务从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。

关键字:

小游戏连连看数组路径判断

目录

第1章课题概述1

1.1课题背景1

1.2课题目的与意义1

1.3报告组织结构1

第2章相关理论与技术2

2.12

2.1.12

2.1.22

2.22

2.32

第3章课题详细设计与实现3

3.13

3.1.13

3.1.23

3.23

3.33

结论4

参考文献5

 

第1章课题概述

1.1课题背景

连连看游戏是一种桌面益智小游戏。

它简单易上手好玩还锻炼人深受人们喜爱网上有各种不同的连连看版本从FLSASH版本的连连看到社交网络的连连看很多用户深深喜爱这款小游戏所以如何编写更好版本的连连看也就意味着更好的市场前景。

休闲益智简单的游戏设计的目的是满足了人们休闲的需要在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松。

现在桌面小游戏、在线网页游戏、社交游戏越来越受网民欢迎除了玩的方法简单外很多游戏不乏经典。

连连看游戏就是一个典型。

不管走到哪个网页游戏网站哪个社交游戏平台连连看游戏总是排在玩家欢迎排名的前5位休闲、趣味、益智是连连看玩不厌的精华且不分男女老少、工薪白领是一款适合大众的经典网络休闲小游戏。

并且玩连连能锻炼人的观察仔细的能力越相似的越难分辨这就要看你不是有耐心还能考察人得反应能力当然这个能力也是能慢慢培养的玩连连看还有好多优点以上的这几点玩连连看都能帮你很好的实现。

连连看,又称对对卡,是指图案配对的一种益智游戏,有多种形式,如卡片游戏、电子游戏或网络游戏)与“找出两幅图片中的不同”类游戏同为比眼力。

的游戏。

最早期的形式是一副卡片中每种图案有相同的两张,先洗牌,然后排好卡片,背面朝上,玩家轮流揭开卡片,每次揭两张,如两张图案不同则回复背面朝上的状态,如揭到两张图案相同则取走卡片,到桌上所有卡片都被取走时即结束游戏,手上最多卡片者为胜利者。

由于玩法简单,常用作儿童启蒙教育游戏。

又有一种字图连连看,是一种专供幼童识字认图的游戏,与一般连连看不同的是它并非以一对相同图案成对,而是以字配图成对。

相关内容连连看则是以两张内容相关的卡片(可以是字或图)配成对代替相同图案。

也有以扑克牌进行游戏的,把相同点数视为相同图案。

连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。

游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。

这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。

并于2004年,取得了国家版权局的计算机软件著作权登记证书。

随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。

如“水晶连连看”“果蔬、连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。

2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。

“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。

最新连连看版本:

连连看5.0,很多人玩过单机版的连连看,但很少有人知道连连看的生命史,连连看是台湾的陈一进、简诚志先生改编、发明的一种桌面游戏。

连连看的最新版本区别与以往各个版本主要特点有:

1.全新引擎,游戏更为华丽、不再是静止不动。

2.总共五种游戏模式、三种难度等级、十三种关卡。

3.主题模式可自定义主题、玩家自己的图片、头像、音乐、链接将可进入游戏。

4.革新的动态头像。

5.漂亮的动态背景。

6.联机模式、可以边和朋友语音聊天,边玩连连看。

7.自带地图编辑器,可自己制作地图,并加入游戏。

8.更多改进期待您在游戏中发掘。

 

1.2课题目的与意义

连连看游戏是一种桌面益智小游戏。

它简单易上手好玩还锻炼人深受人们喜爱,网上有各种不同的连连看版本,从FLSASH版本的连连看到社交网络的连连看,很多用户深深喜爱这款小游戏。

休闲益智简单的游戏设计的目的是满足了人们休闲的需要,在紧张工作之余休闲类的小游戏能够给人带来最大程度的放松。

现在桌面小游戏、在线网页游戏、社交游戏越来越受网民欢迎,除了玩的方法简单外,很多游戏不乏经典。

连连看游戏就是一个典型。

不管走到哪个网页游戏网站,哪个社交游戏平台,连连看游戏总是排在玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络休闲小游戏。

并且玩连连能锻炼人的观察仔细的能力,越相似的越难分辨这就要看你不是有耐心,还能考察人得反应能力,不过这些能力不都是天生的也是可以通过慢慢培养而产生,比如玩连连看游戏就能让这些能力得到一个很好的锻炼,连连看还有好多优点,比如简单易学等。

开发游戏行业无疑有着很好的发展空间和前景,现在这方面的人才非常紧缺,成为一个优秀的游戏开发者是许多开发者梦寐以求的一件事情,但做任何一件工作都是需要实际的经验的,这次连连看游戏的开发可以增加对游戏开发的经验,对开发游戏的编程语言也有着加深理解的作用,是一次理论和实践的完美结合,同时也是为以后的职业生涯奠定了坚实的基础。

1.3报告组织结构

第2章相关理论与技术

2.1设计原理

本设计采用单机模式,当在规定的时间内消完全部的图片则当前关卡通过,如果在规定的时间内没能消完所有的图片则游戏结束,结束后可以选择重新开始新游戏。

游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。

当前,前提是点击两张相同的图片,若点击的是同一张图片或者两张不同的图片,则不予处理。

在两张相同图片用三根以内的直线能连在一起,就可以消去;否则,不予处理。

游戏过程,如果玩家在一定的时间内消完则提示玩家胜利,并进入下一关。

如果在一定时间内图片没有消完则提示玩家Failed。

考虑到本游戏软件是单机小游戏,所以充分考虑到了它的娱乐性,并没有很复杂的功能。

2.2方案选择

在概要设计阶段,主要有两中方案可供选择:

一、所有的图片都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张图片的的出现次数为偶数,时间会有限制,每一关的图片数量或时间是不同的,这样就增加了游戏的难度。

二、在同一区域中,图片出现的重复次数是可以由玩家选择的,时间由游戏约定。

不过玩家选择的种类数和重复次数必须是偶数才可以顺利完成游戏,否则游戏虽然可以正常运行,但无法完成游戏。

在第一种方案中,由于出现的图片的种类数和重复次数都由软件约定,这样就缺乏玩家自主选择的空间,只是在玩游戏时系统已经是设定好的游戏,不能改变什么,这样就在无意中降低了玩家在游戏的过程中乐趣,最后致使玩家放弃继续玩下去。

我们参考了网络上的连连看游戏,考虑到游戏的娱乐性。

所以我们放弃第一种方案的设计思想,参考网络上流行的连连看的游戏,选用第二种方案。

2.3主要问题

开始制作游戏时,主要要解决的问题有以下几个方面:

如何设置整个游戏的界面;如何控制连连看游戏中随机图片的生成且每种图片必须为偶数个;游戏开始后,判断鼠标两次点击的图片能否消去,即图片是否相同且图片之间路径的判断;如何判断游戏是否结束以及输赢问题等。

2.4技术要求

本游戏软件可以再大多数计算机上运行,游戏中能正确判断鼠标两次点下的图片是否可以消去、能正确判断游戏是否已经结束。

 

第3章课题详细设计与实现

3.1游戏设计技术原理

3.1.1开发语言

C#是一种编程语言,它简单、安全、面向对象语言的设计。

C#是微软公司研究员AndersHejlsberg的成果。

C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。

但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,COM(组与件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。

C#是专门为.NET的应用而开发的语言。

它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。

C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。

不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。

.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。

C#看起来与Java有着相似之处;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程,它吸收了JAVA语言的很多优点。

使用了简单的C语言结构,C#有些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。

C#具备JAVA和C语言的一些特点,它是面向对象的语言设计,还要JAVA和C语言不具备的特点,C语言中的一些易出现问题的语法进行了一定的改进,使得它能既对简单又方便的解决问题。

在C#中类的声明与Java很相似.这是合理的因为经验告诉我们Java模型工作得很好.Java的关键字import已经被替换成using,它起到了同样的作用.一个类开始执行的起点是静态Main()方法.下面的HelloWorld程序展示了程序基本结构形式:

{Console.ReadLine();}}usingSystem;classHello{staticvoidMain()

Console.WriteLine("Hello,world");在这个例子中,System这个名字指向

一个包括了基本C#实用类集合的命名空间(namespace).这个命名空间包括了Console类,它在这个例子中被用来输出一个字符串.类可以是抽象的和不可继承的:

一个被申明成abstract的类不能被实例化;它只能被用做一个基类.C#关键字lock就象Java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类.界面:

就象在Java中一样,一个界面是一组方法集合的抽象定义.当一个类或结构体实现一个界面的时候,它必须实现这个界面中定义的所有方法.一个单一的类可以实现几个界面.也许以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化.布尔运算:

条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔常量true和false是C#中的关键字.错误处理:

如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:

由底层.NET框架进行自动内存垃圾回收.一个基本的C#类中包含数据成员、属性、构造器和方法。

属性可以是静态或实例成员。

C#是一个强类型的语言,它的数值类型有一些可以进行隐式转换,其他的必须显式转换,隐式转换的类型只能是长度短的类型转换成长的类型,例如int可以转换成long,float,double,decimal.反之必须显式的转换.例:

a=7;floatb=a;//隐式转换int

longc=12L;//和C++一样必须加上a=(int)c;//显式转换使后缀L才能定义为long型不然就为int型了用上面的显示转换不能用在bool和string类型上。

2.2.3提高性能提升在性能提高方面,ASP.NET团队会在在微软的分布式缓存Velocity发布之后,为ASP.NET提供相应的各类provider。

这样ASP.NET便可以将数据缓存,会话状态等各种信息存放在进程外的的分布式缓存中,以此得到更好的性能和健壮性。

这些provider实现可以与ASP.NET现有的扩展方式良好集成,对开发人员的使用保持透明。

3.1.2面向对象

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

面向对象的基本概念:

1.对象。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

2.对象的状态和行为。

对象具有状态,一个对象用数据值来描述它的状态。

对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中3.类。

具有相同或相似性质的对象的抽象就是类。

因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

4.类的结构。

在客观世界中有若干类,这些类之间有一定的结构关系。

通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

(1)一般——具体结构称为分类结构,也可以说是“或”关系,或者是“isa”关系。

(2)整体——部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“hasa”关系。

5.消息和方法。

对象之间进行通信的结构叫做消息。

在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。

发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。

一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

面向对象的特征:

1.对象唯一性。

每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。

在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。

分类性。

分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。

一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。

任何类的划分都是主观的,但必须与具体的应用有关。

3.继承性。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。

在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。

采用继承性,提供了类的规范的等级结构。

通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。

4.多态性(多形性)。

多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。

多态性增强了软件的灵活性和重用性。

面向对象的要素:

1.抽象。

抽象是指强调实体的本质、内在的属性。

在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。

使用抽象可以尽可能避免过早考虑一些细节。

类实现了对象的数据(即状态)和行为的抽象。

2.封装性。

封装性是保证软件部件具有优良的模块性的基础。

面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。

对象是封装的最基本单位。

封装防止了程序相互依赖性而带来的变动影响。

面向对象的封装比传统语言的封装更为清晰、更为有力。

3.共享性。

面向对象技术在不同级别上促进了共享同一类中的共享。

同一类中的对象有着相同数据结构。

这些对象之间是结构、行为特征的共享关系。

在同一应用中共享。

在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,使各相似子类共享共同的结构和行为。

使用继承来实现代码的共享,这也是面向对象的主要优点之一。

在不同应用中共享。

面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。

通过类库这种机制和结构来实现不同应用中的信息共享。

3.1.3各个模块的详细算法设计

1时间限制模块的算法设计

时间限制模块的算法主要分为如下几步:

(1)在游戏开始时,设置当前限制时间(nOverTime)为60秒。

(2)设定一个时间定时器TIMER1,时间间隔为1000ms。

(3)当每一次时间间隔到时,就把当前限制时间减少一秒。

(4)如果游戏中有一对棋子消除时,就把限制时间增加三秒。

(5)如果限制时间变成零秒,说明游戏结束,弹出结束提示对话框。

如果当前游戏等级超过记录等级,还要弹出英雄榜对话框对话。

2消除相同棋子模块的算法设计

消除相同棋子模块的算法主要分为如下几步:

(1)当鼠标单击棋子时,保存到棋子坐标及类型到第一次选中变量中。

(2)得到鼠标第二次选中的棋子坐标及类型。

(3)比较两次棋子类型,如果相同,转步骤(4)。

如果不相同,转步骤(5)。

(4)画一条连接线,并消除这对棋子,退出等待下一次鼠标选择。

(5)把鼠标第二次选中的棋子坐标及类型赋值给第一次选中变量。

 

3游戏升级模块的算法设计

游戏升级模块的算法主要分为如下几步:

(1)保存当前游戏等级和限制时间初始值。

(2)当游戏中的棋子全部被消除完毕时,就把当前游戏等级增加一级。

(3)把限制时间的初始值减少5秒。

(4)调用重新开始游戏接口函数。

4消除提示模块的算法设计

消除提示模块的算法主要分为如下几步:

(1)判断提示次数变量的值,如果等于0,结束。

(2)查找当前棋盘中相同的棋子。

(3)在相同棋盘中,查找可以消除的棋子。

(4)给出提示连线,提示次数变量减少1。

5棋子换盘模块的算法设计

棋子换盘模块的算法主要分为如下几步:

(1)保存当前棋盘数组中的数据到临时数组中。

(2)循环的从临时数组中,随机取出数据保存到棋盘数组中。

6音乐播放模块的算法设计

需要在用户选择音乐播放时,把音乐资源载入程序并播放。

7帮助类模块的算法设计

把相应的对话框资源显示出来即可。

 

3.2设计构思

3.2.1游戏画面目标

一个精美的游戏画面往往能够吸引更多的玩家来尝试娱乐,这不仅仅是增加了娱乐者的好奇,一个的游戏画面能使游戏者的心情愉快达到娱乐休闲的目的,再者一个游戏画面,对于设计者来说,可以算是简单的地方;但对于玩家,这却是重要的,一般玩家不会关心你是怎么实现的,他所关心的是画面的美观,漂亮,是不是能让人赏心悦目。

本文设计的画面虽不完美,也整体得当,设置合理和和更人性化。

3.2.2游戏的路径判断

1:

两张图片是相同的2:

两张图片之间连线的折点不超过两个。

那么两张图片的连接情况可以分为三种情况:

(1):

直线相连

(2):

一个折点(3):

两个折点;由此分析我们知道,每一个折点必定有且至少有一个坐标(x或者y)和两张图片中的任意一张图片是相同的,即折点必定在两张图片所在的x方向或y方向的直线上,只有这样两张图片才能在不超过两个折点进行连接。

所以得出路径的判断是:

假设两张图片A,B,如果有两个折点分别在x,y那么

(1):

如果验证A,B直线连线,则连接成立

(2):

搜索以A,的x,方向四条直线By(可能某两条直线会重合)上的有限点,每次取两点作为z1,z2,验证A到z1/z1到z2/z2到B是否都能直线相连,是则路径连接成立否则连接不成立。

3.2.3游戏的系统结构图

3.3程序算法设计

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。

算法分析的目的在于选择合适算法和改进算法。

一个算法的评价主要从时间复杂度和空间复杂度来考虑。

算法的时间复杂度是指执行算法所需要的时间;算法的空间复杂度是指算法需要消耗的内存空间。

开发一个游戏,分析算法前,应先抽象出游戏基本结构,对于连连看游戏来说,核心的部

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2