vs相关教程.docx

上传人:b****1 文档编号:10995338 上传时间:2023-05-28 格式:DOCX 页数:28 大小:40.06KB
下载 相关 举报
vs相关教程.docx_第1页
第1页 / 共28页
vs相关教程.docx_第2页
第2页 / 共28页
vs相关教程.docx_第3页
第3页 / 共28页
vs相关教程.docx_第4页
第4页 / 共28页
vs相关教程.docx_第5页
第5页 / 共28页
vs相关教程.docx_第6页
第6页 / 共28页
vs相关教程.docx_第7页
第7页 / 共28页
vs相关教程.docx_第8页
第8页 / 共28页
vs相关教程.docx_第9页
第9页 / 共28页
vs相关教程.docx_第10页
第10页 / 共28页
vs相关教程.docx_第11页
第11页 / 共28页
vs相关教程.docx_第12页
第12页 / 共28页
vs相关教程.docx_第13页
第13页 / 共28页
vs相关教程.docx_第14页
第14页 / 共28页
vs相关教程.docx_第15页
第15页 / 共28页
vs相关教程.docx_第16页
第16页 / 共28页
vs相关教程.docx_第17页
第17页 / 共28页
vs相关教程.docx_第18页
第18页 / 共28页
vs相关教程.docx_第19页
第19页 / 共28页
vs相关教程.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

vs相关教程.docx

《vs相关教程.docx》由会员分享,可在线阅读,更多相关《vs相关教程.docx(28页珍藏版)》请在冰点文库上搜索。

vs相关教程.docx

vs相关教程

如果有一种语言,它定义编程的本质的今天,它是C++。

这是为高性能软件开发卓越的语言。

它的语法已经成为专业的编程语言的标准,它的设计理念,回荡在整个计算。

1架C++初学者的指南由HerbertSchildt

的C++也从其中包括Java和C#是衍生语言。

简单地说,是一个专业的程序员的能力意味着在C++。

它是对现代编程所有网关。

本模块的目的是介绍C++中,包括其历史,其设计理念,其最重要的一些特性。

到目前为止,关于学习的一种编程语言,最难的事是事实,没有孤立存在的元素。

相反,语言工作的组件连接在一起。

这种相互关联性使得它难以讨论,不涉及其他方面之一的C++。

为了帮助解决这个问题,这个模块提供了几个C++的特点,包括一个C++程序的一般形式,一些基本的控制语句,和经营者的简要概述。

它不会进入太多的细节,而是以共同的任何C++程序的一般概念精矿。

关键技能1.1:

以C++简史

对C++的历史始于与C这样做的原因很容易理解:

C++是后C的基础因此建成,C++是一个超集三C++的扩大和加强了C语言,以支持面向对象编程(其中在此模块中的描述后)。

C++还增加了一些其他改进的C语言,包括一组扩展的库例程。

然而,大部分的品质和风味的C++是直接继承从C因此,要充分理解和欣赏的C++中,你需要了解“如何和为什么”的背后三

陈:

对规划的现代时代的开始

发明的C定义了现代编程时代的开始。

其影响不可低估,因为它从根本上改变了编程进行了接触和思考方式。

其设计理念和语法影响了每一个主要的语言至今。

C为主要,在计算革命的力​​量之一。

C是首次发明并实施由DennisRitchie在DEC的PDP-使用UNIX操作系统11。

C是一个发展的过程,旧名为BCPL语言开始结果。

BCPL是由马丁理查兹。

BCPL影响称为B的语言,这是由KenThompson和发明,导致了C20世纪70年代的发展。

在此之前的C发明,计算机语言,一般设计成学术活动或由官僚委员会。

C是不同的。

它的设计,实施,并通过真实的,程序员开发工作,反映的方式他们走近的编程工作。

它的特点是磨练,测试,想过,以及究竟是谁的人使用的语言反思。

因此,吸引了众多的支持者和ç迅速成为全世界程序员选择的语言。

ç的前身是20世纪60年代结构化编程革命。

结构化编程之前,大项目很难写,因为程序逻辑往往沦为所谓的“意大利面条式代码”的跳跃,来电,并返回纠结质量是难以遵循知名。

结构化语言处理,加入明确界定的控制语句解决这个问题,子程序

2C++的初学者由HerbertSchildt指南

与局部变量和其他改进。

使用结构化语言,它成为可能编写大型程序适度。

虽然有其他结构化语言在时间,如帕斯卡尔,C是第一个成功地结合力量,优雅和表现力。

其简洁,易于使用的语法与它的哲学,程序员(不是语言)负责迅速赢得了许多转换耦合。

它可以是一个有点令人费解,从今天的角度来看,但C是一个新鲜的空气,程序员们期待已久的气息。

因此,ç成为80年代最广泛使用的结构化编程语言。

对于C++需要

鉴于上述讨论,你可能会疑惑为什么C++被发明出来。

由于C是一个成功的计算机编程语言,为什么有别的需要的东西?

答案是复杂性。

纵观历史上的编程,程序的日益复杂,带动了更好的方法来管理这种复杂性的需要。

C++是对这一需要的反应。

为了更好地理解复杂的方案之间日益发展的相互关系和计算机语言,考虑以下。

编程方法发生了巨大变化,因为计算机的发明。

例如,当计算机被发明之初,编程是通过使用计算机的前面板切换在二进制机器指令。

只要计划早只是几百个指令长,这种方法是可行的。

随着程序的增长,发明了汇编语言,使程序员可以更大,日益复杂的程序处理通过使用机器指令的符号表示。

随着事业不断发展,高级语言开发,以使程序员更多的工具,用以处理复杂性。

一种广泛使用的计算机语言,当然,FORTRAN语言。

虽然是一个非常令人印象深刻的FORTRAN语言的第一步,这是很难的语言,鼓励清晰,易于理解的方案。

20世纪60年代诞生了结构化编程,这是由语言编程方法,如C.与鼓励是,第一次,可能编写复杂的程序相当容易适度结构化语言。

然而,即使结构化编程方法,一旦项目达到一定规模,其复杂性超过了什么是程序员可以管理。

到了70年代末,许多项目已接近或在这一点上。

针对这一问题,一种新的方式计划开始出现:

面向对象编程(OOP)。

使用OOP,程序员可以处理更大,更复杂的程序。

麻烦的是,C没有支持面向对象编程。

对于C的面向对象版本的愿望最终导致了创作的C++。

在最后的分析中,虽然C的最喜欢并广泛应用于世界职业的编程语言之一,都会有它的处理能力时,超过的时间复杂性。

一旦程序达到一定的规模,它变得如此复杂,以致难以把握作为一个整体。

3C++的初学者由HerbertSchildt指南

对C++的目的是让这个障碍被打破,并帮助程序员理解和管理更大,更复杂的程序。

C++是出生

C++是由BjarneStroustrup的发明于1979年在贝尔实验室,在美利山,新泽西州。

他最初被称为新语“带类的C。

”然而,1983年改名为C++。

Stroustrup的建立在基础的CC++中,包括C的功能,属性和所有好处。

他还坚持到C的基本理论,程序员,而不是语言,在负责。

在这一点上,关键是要明白,没有创造Stroustrup的一个完全新的编程语言。

相反,他增强了已经非常成功的语言。

的特征,Stroustrup的加入到C大部分被设计为支持面向对象编程。

从本质上讲,C++是在C的面向对象到当C版本的基础建设,Stroustrup的平滑过渡提供了一个面向对象的路径。

而不必去学习一种全新的语言,一个C程序员需要学习收获之前,面向对象方法的好处只有少数几个新的特点。

当创建C++,Stroustrup的知道,重要的是保持,而在同时加入面向对象编程的支持时间的C原始精神,包括它的效率,灵活性和理念。

令人高兴的是,他的目标是完成。

C++仍然提供了自由和C控制与功率耦合的对象,程序员。

虽然C++最初是设计来帮助非常大项目的管理,它是在这个有限的使用没有办法。

事实上,C++的面向对象的属性可以有效地应用于几乎所有的编程任务。

这是并不少见的C++编辑器,例如,数据库,个人档案系统,网络设施和通信程序项目中使用。

因为C++股票C的效率,更高性能的系统软件是用C++构造。

另外,C++是经常的首选Windows编程语言。

对C++演变

由于C++是先发明的,它经历了三个重大修改,每次修改增加和改变的语言。

第一次修订是在1985年和1990年的第二位。

第三次发生在C++标准化进程。

几年前,已开始在一个标准的C++。

为此,一个联合的ANSI(美国国家标准协会)和ISO(国际标准化组织)的标准化委员会成立。

拟议的标准初稿创建于1994年1月25日。

在该草案的ANSI/ISOC++委员会(其中我是成员之一)保持Stroustrup的首次定义的功能和增加了一些新的问题。

但是,在一般情况下,这个初步草案反映了当时的C++的状态。

不久后的C++标准初稿完成后,导致事件发生的标准被大大扩展:

对标准模板库(STL),亚历山大斯捷潘诺夫创作。

STL是一个通用的例程,你可以用它来操纵数据。

它既是强大的

4个C++初学者的指南由HerbertSchildt

典雅。

但它也相当大。

继第一稿,该委员会投票决定,包括在规范的STL对于C++。

除了对STL的扩张远远超过了原来的定义了C++的范围。

虽然重要的是,STL的包容性,除其他外,减缓了标准化的C++。

它是公平地说,对C++标准化远远超过了任何人的预料。

在这个过程中,增加了许多新功能的语言,许多小改动。

事实上,在C++的版本定义的ANSI/ISOC++委员会要大得多,比Stroustrup的原始设计更为复杂。

最后的草案委员会已通过了11月14日,1997年和一个ANSI/ISO标准的C++于1998年成为现实。

这是规范的C++,通常被称为标准C++。

在这本书的材料介绍了标准C++。

这是C++的版本,所有主流的C++编译器,包括微软的VisualC++的支持。

因此,代码和本书中的信息是完全可​​移植。

关键技能1.2:

C++如何涉及到Java和C#

除了C++中,有两个重要的现代编程语言:

Java和C#。

Java是由SunMicrosystems开发的,而C#是由Microsoft创建的。

因为有时对如何将这些涉及两种语言的C++的混乱,使它们的关系进行了简要讨论秩序。

C++是用于Java和C#的父母。

虽然Java和C#增加,删除和修改了这三种语言的各种特征总的语法,几乎是相​​同的。

此外,该对象模型的C++中使用类似的Java和C#所使用的。

最后,整体“外观和感觉”这些语言非常类似。

这意味着一旦你知道C++中,你可以很容易地学习Java或C#。

相反也是如此。

如果你知道Java或C#,学习C++很容易。

这是一个原因,Java和C#C++中共享的语法和对象模型,它促进了一批经验丰富的C++程序员军团的快速通过。

与C++,Java的主要区别,而C#是计算每个类型的环境设计。

C++中的建立是为了生产出的CPU和操作系统特定类型的高性能方案。

例如,如果你想编写一个程序,在英特尔奔腾下运行Windows操作系统,则C++是最好的语言使用。

请教专家

问:

如何Java和C#创建一个跨平台,可移植的程序,为什么不能c++这样做?

答:

Java和C#可以创建跨平台的,可移植的程序和C++不能因为目标代码类型由编译器生成。

在C++案例,从编译器的输出是机器代码

5C++的初学者由HerbertSchildt指南

这是由CPU直接执行。

因此,它是针对某一特定的CPU和操作系统。

如果你想运行的C++在不同的系统程序,你需要重新编译成专门为这种环境有针对性的机器代码。

要创建一个C++程序,将运行在各种环境下,几个不同版本的可执行程序是必要的。

Java和C#实现的伪代码编译成一个,中间语言程序的可移植性。

在Java的情况下,这种中间语言被称为字节码。

对于C#,它被称为微软中间语言(MSIL)。

在这两种情况下,这个伪指令通过一个运行系统。

对于Java,这个运行时系统被称为Java虚拟机(JVM)。

对于C#,这是通用语言运行时(CLR)。

因此,Java程序可以运行在任何环境中的一个JVM可用,和C#程序可以运行在任何在CLR是实施环境。

由于Java和C#程序之间的运行时系统和CPU的立场,Java和C#程序招致的开销,是不是在一个C++程序的执行中。

这就是为什么C++程序的运行速度通常比Java或C#编写的等价程序。

Java和C#是应以独特的编程开发需要互联网的网络环境。

(C#的设计也简化了软件组件的创建。

)互联网连接的是CPU和作业系统的许多不同的类型。

因此,有能力生产的跨平台,可移植的程序成为压倒一切的关注。

第一语言来满足这一需要是Java。

使用Java,它可以写一个程序,在各种环境中运行。

因此,一个Java程序可以自由行动在互联网上。

但是,你的价格支付是效率的可移植性和Java程序执行速度慢于做C++程序。

这同样适用于C#的真实。

在最后的分析,如果你想创建高性能软件的开发,使用C++。

如果你需要创建高度可移植软件,使用Java或C#。

最后一点:

记住是C++,Java和C#是为了解决不同的问题集。

这不是一个问题,其中最好的语言和本身。

相反,它是一个问题,其中语言是正确的手头的工作。

1。

从什么语言是C++派生?

2。

什么是主要因素,推动了创建的C++?

3。

C++的是Java和C#的父母。

真或假?

6C++的初学者由HerbertSchildt指南

答案的关键:

1。

C++是从C派生

2。

增加程序复杂性是主要因素,推动了创建的C++。

3。

真。

关键技能1.3:

面向对象编程

中央到C++是面向对象编程(OOP)。

正如刚才解释的,面向对象的动力是为创造的C++。

正因为如此,它是非常有用的理解面向对象编程的基本原则,然后再写入,即使一个简单的C++程序。

面向对象编程了结构化编程的最好的想法,结合他们的一些新的概念。

其结果是程序的不同组织和更好的方式。

在最一般意义上,一个程序可以被组织中的两种方法之一:

围绕其代码(什么事情),或围绕其数据(谁是受影响)。

只使用结构化编程技术,程序通常围绕代码。

这种方法可以被看作是“演戏的数据代码。

”面向对象的程序工作的其他方式。

他们是围绕数据,与主要原则是“数据控制对代码的访问。

”在一个面向对象的语言,你定义的数据和所允许采取行动对这些数据的程序。

因此,精确的数据类型定义什么样的业务分类可以应用到这些数据。

为支持对象的面向对象编程principles,所有OOP语言,包括C++,有三个共同的特点在:

封装,多态性和继​​承。

让我们来看看每个。

封装

封装是一种编程机制结合在一起的代码和数据被它操控,而且可以防止外界干扰和误用既安全。

在一个面向对象的语言,代码和数据可以绑定在一起这样一种方式,一个独立的黑盒子被创建。

内盒都是必要的数据和代码。

当代码和数据都以这种方式链接在一起,创建一个对象。

换言之,对象是支持封装的设备。

咨询专家

问:

我听到这个词的方法应用到子程序。

是一种方法,作为一个功能一样吗?

答:

一般来说,答案是肯定的。

提到的方法是由Java推广。

什么是C++程序员调用一个函数,一个Java程序员调用一个方法。

C#程序员也使用这个词的方法。

因为它是变得如此广泛的应用,有时这个词时也可使用的方法是指一个C++

7C++的初学者由HerbertSchildt指南

功能。

在一个对象,代码或数据,都可以是私有的对象或公众。

私人代码或数据是众所周知的和可获得的只有另一个对象的一部分。

也就是说,私人代码或数据不能由该程序的对象存在之外的一块访问。

当代码或数据是公开的,程序的其他部分可以访问它,即使它是在一个对象中定义。

通常,一个对象的公共部分,用于提供控制接口的对象的私有元素。

的C++的封装的基本单元是类。

一类定义了对象的形式。

它同时指定了数据和代码,将操作这些数据。

C++使用一类规范建设的对象。

对象是类的实例。

因此,一类是基本上是一套计划,指定如何建立一个对​​象。

代码和数据,构成一类被称为类的成员。

具体来说,成员变量,也称为实例变量,是由类定义的数据。

成员函数的代码是对这些数据进行操作。

函数是C++的任期为一个子程序。

多态性

多态性(来自希腊语,意思是“很多形式”)是质量,让一个接口来访问一般类的行动。

一个简单的例子是多态性的发现,在汽车的方向盘。

方向盘(接口)是一样的没有什么实际的转向机构的类型是使用的问题。

也就是说,以同样的方向盘你的车是否具有手动转向,动力转向,或齿条和小齿轮转向系统。

因此,转动方向盘左侧的车去的原因没有留下无论什么类型的指导使用。

统一接口的好处是,当然,一旦你知道如何操作方向盘,你可以驾驶任何车型。

同样的原理也适用于编程。

例如,考虑一个堆栈(这是一个先入,最后出来的清单)。

你可能有一个程序,需要三个不同类型的栈。

一个堆栈用于整数值,一个浮点值,以及人物之一。

在这种情况下,算法实现每个堆栈是相同的,即使数据被存储不同。

在非面向对象的语言,你需要创建三个堆栈每个使用不同的名称设置程序,不同的组。

但是,由于多态,在C++中,你可以创建一个堆栈例程,对于所有三种情况下工程的一般设置。

这样,一旦你知道如何使用一个堆栈,你可以使用它们。

更普遍而言​​,往往是多态的概念所表达的那句“一个接口,多个方法。

”这意味着它可以设计一个通用的接口,一组相关活动。

多态性有助于减少允许同一接口指定一个总的行动类的复杂性。

这是编译器的工作,选择特定的动作(也就是方法),因为它适用于每一种情况。

你,程序员,不需要做此选择手动。

你只需要记住,并利用通用接口。

8C++的初学者由HerbertSchildt指南

继承

继承是过程,一个对象获得另一个对象的属性。

这一点很重要,因为它支持层次分类的概念。

如果你想想看,大多数是由知识阶层式管理(即自上而下)分类。

例如,红元帅苹果是苹果的分类,而这又是水果类,而这在较大类食物的一部分。

也就是说,食品类具有一定的品质(食用,营养丰富等),其中还,从逻辑上讲,适用于它的子类,水果。

除了这些品质,水果类(多汁,甘甜,等等)区别于其他食物它的具体特征。

苹果的类定义这些素质具体到一个苹果(长在树上,而不是热带等)。

阿红元帅苹果将反过来,继承了前面所有类都将定义的素质和品质,只有那些使独一无二的。

如果没有层次结构的使用,每个对象有明确定义它的种种特点。

使用继承,只需要定义一个对象,它独特的品质在同类产品中进行。

它可以继承其父的一般属性。

因此,它是继承机制,它使一个对象是一个更一般的具体实例。

1。

名称OOP的原则。

2。

什么是封装的基本单位,在C++?

3。

什么是常用的一个子程序长期在C++?

答案的关键:

1。

封装,多态性和继​​承是面向对象的原则。

2。

类是封装的基本单位,在C++。

3。

函数是一个子程序常用的术语在C++。

请教专家

问:

你状态的面向对象编程(OOP)是一种有效的方法来管理大型程序。

然而,似乎OOP的可能大大增加开销相对小的。

因为它涉及到C++,

9C++的初学者由HerbertSchildt指南

这是真的吗?

答:

第一个关键点,了解有关C++是它允许你写面向对象的程序,但不要求你这样做。

这是与C++和Java/C#中,它采用了严格的对象模型,其中每一个方案,至少一个小范围的,面向对象的重要区别之一。

的C++让您选择。

此外,在大多数情况下,面向对象的C++功能,在运行时透明的,所以很少(如果有的话)的开销费用。

关键技能1.4:

阿第一个简单的程序

现在是时候开始编程。

让我们通过编译和运行简单的例子C++程序所示这里开始:

/*这是一个简单的C++程序。

调用此文件Sample.cpp。

*/#包括使用命名空间std;//一个C++程序在main()开始。

诠释的main(){法庭<<“C++是功率编程。

”;返回0;}你将遵循以下三个步骤:

1。

进入程序。

2。

编译程序。

3。

运行该程序。

开始之前,让我们回顾一下两个方面:

源代码和目标代码。

源代码是该方案的人类可读的形式。

它存储在一个文本文件。

目标代码是由编译器创建的可执行程序的形式。

10架C++初学者的指南由HerbertSchildt

输入程序

在这本书中显示的程序都可以从奥斯本的网站:

不过,如果你想手工输入的程序,你可以自由地这样做。

方案中键入自己经常帮你记住的关键概念。

如果您选择手工输入一个程序,你必须使用一个文本编辑器,而不是一个文字处理器。

字处理器通常除了文字格式储存的信息。

这种格式的信息将混淆的C++编译器。

如果您使用的是Windows平台,那么你可以使用写字板,或任何其他程序编辑器,你喜欢。

该文件包含该程序的源代码名称是技术上任意的。

然而,C++程序通常包含在文件中使用的文件扩展名的。

cpp。

因此,你可以叫任何名字的C++程序文件,但它应该使用的。

cpp的扩展。

对于第一个例子中,源文件Sample.cpp名称,以便您可以跟随。

就在这本书的其它方案大多,只需使用您自己选择的名称。

编译程序

你怎么会在你的编译器编译Sample.cpp什么取决于您所使用的选项。

此外,许多编译器,如微软的VisualC++速成版,你可以免费下载,提供两种不同的方法编制的程序:

命令行编译器和集成开发环境(IDE)。

因此,这是不可能给予编译C++程序广义指示。

你必须咨询你的编译器的说明。

虽有前款规定,如果您使用VisualC++,那么最简单的方法来编译和运行方案,这本书是使用命令行编​​译器所提供的这些环境。

例如,要编译Sample.cpp使用VisualC++,您将使用此命令行:

C:

\...>中的cl-GX的Sample.cpp的-GX选项增强汇编。

使用VisualC++命令行编译器,你必须首先执行该批处理文件的vcvars32.bat,这是由VisualC++提供。

(VisualStudio还提供了一个现成使用的命令提示符环境,可通过选择下的MicrosoftVisualStudio,在开始进入显示工具列出了VisualStudio命令提示符启动。

|程序任务栏菜单)的输出一个C++编译器可执行目标代码。

对于Windows环境下,可执行文件将使用与源文件相同的名称,但具有。

exe扩展名。

因此,Sample.cpp可执行版本将在Sample.exe。

运行程序

经过++程序已编译的C,它已准备好运行。

由于从C++编译器是可执行的目标代码,输出到运行程序,只需在命令提示符下输入其名称。

例如,要运行Sample.exe,使用这个命令行:

ç:

\...>样本

11C++的初学者由HerbertSchildt指南

当运行时,程序会显示下列输出:

C++就是力量编程。

如果您使用的是集成开发环境,那么你可以通过选择从菜单运行程序。

请咨询您的特定编译器的指令。

对于这本书的方案,它通常更容易编译并运行命令行。

最后一点:

在这本书中的方案是基于控制台,而不是基于窗口。

也就是说,他们在命令提示符会话中运行。

C++是完全不符合Windows编程回家。

事实上,它是用于Windows开发的最常用的语言。

然而,在本手册中使用Windows图形用户界面(GUI)的方案没有。

这样做的原因很容易理解:

Windows程序是由它们的性质,庞大而复杂的。

必须创造出一个最小的Windows骨骼计划的开销是50至70行代码。

编写Windows程序,演示了C++的功能需要的代码行,每行数百人。

与此相反,基于控制台的程序要短得多,是类课程通常用来教编程。

一旦你掌握了C++中,你将能够适用于任何麻烦你的知识,Windows编程。

第一个样品的程序行线

虽然Sample.cpp很短,它包括几个非常常见的所有C++程序的主要功能。

让我们仔细检查每个方案的一部分。

该计划开始于线/*这是一个简单的C++程序。

调用此文件Sample.cpp。

*/这是一条评论。

像大多数其他编程语言C++允许你进入到一个程序的源代码表示的。

一个注释的内容被编译器忽略。

注释的目的是描述或解释程序的操作,任何人阅读它的源代码。

在本意见的情况下,它确定了方案。

在较为复杂的程序,你会使用注释来帮助解释了每个方案的特点是,如何去宣传他们的工作。

换句话说,你可以使用注释来提供一个“播放按播放”是什么?

你的程序的说明。

在C++中,有两种类型的注释。

你刚才看到了一个被称为多行注释。

这种类型的注释开始于/*(星号后斜线)。

只有当它结束*/是遇到的问题。

这两个符号之间的任何评论完全忽视了编译器。

多行注释可能有一个或多个行长。

该评论(单线)第二类是在发现了一个小程序进一步随后我们会讨论。

下一行的代码如下:

#包括

12个C++初学者的指南由HerbertSchildt

在C++语言定义了几个头,其中包含的信息,要么是必要的或有用的程序。

此程序需要的iost

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

当前位置:首页 > 自然科学 > 物理

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

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