第二章 從結(jié)構(gòu)到類(lèi)的演變_第1頁(yè)
第二章 從結(jié)構(gòu)到類(lèi)的演變_第2頁(yè)
第二章 從結(jié)構(gòu)到類(lèi)的演變_第3頁(yè)
第二章 從結(jié)構(gòu)到類(lèi)的演變_第4頁(yè)
第二章 從結(jié)構(gòu)到類(lèi)的演變_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二章從結(jié)構(gòu)到類(lèi)的演變主講:馮傳勝Email:fcs@2.1結(jié)構(gòu)的演化2.2從結(jié)構(gòu)演變一個(gè)簡(jiǎn)單的類(lèi)2.3面向過(guò)程與面向?qū)ο?.4C++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)2.5使用類(lèi)和對(duì)象2.6string對(duì)象數(shù)組與泛型算法2.1結(jié)構(gòu)的演化2.1.1結(jié)構(gòu)發(fā)生質(zhì)的演變1、函數(shù)與數(shù)據(jù)共存C++允許結(jié)構(gòu)中可以定義函數(shù),稱(chēng)為成員函數(shù)。struct結(jié)構(gòu)名{數(shù)據(jù)成員成員函數(shù)};可以用C語(yǔ)言中使用結(jié)構(gòu)成員的方法使用成員函數(shù)結(jié)構(gòu)對(duì)象.成員函數(shù)例2.1:/*源程序*/#include<iostream>usingnamespacestd;structPoint {voidSetxy(doublea,doubleb) {x=a;y=b;} voidDisplay() {cout<<"("<<x<<","<<y<<")"<<endl;} doublex,y; };voidmain() {Pointa; a.Setxy(10.6,18.5); a.Display(); cout<<"("<<a.x<<","<<a.y<<")"<<endl; };/*運(yùn)行結(jié)果*/(10.6,18.5)(10.6,18.5)結(jié)構(gòu)定義:struct結(jié)構(gòu)名 {數(shù)據(jù)成員 成員函數(shù)};成員函數(shù)使用:結(jié)構(gòu)對(duì)象.成員函數(shù)struct結(jié)構(gòu)中的成員是公有的(public)2、封裝性如果在定義結(jié)構(gòu)時(shí),將數(shù)據(jù)成員使用private關(guān)鍵字,則產(chǎn)生封裝性。例2.2:/*源程序*/#include<iostream>usingnamespacestd;structPoint {public: voidSetxy(doublea,doubleb) {x=a;y=b;} voidDisplay() {cout<<"("<<x<<","<<y<<")"<<endl;} private: doublex,y; };voidmain() {Pointa; a.Setxy(10.6,18.5); a.Display(); cout<<"("<<a.x<<","<<a.y<<")"<<endl; };正確!錯(cuò)誤!對(duì)于私有數(shù)據(jù)成員,必須通過(guò)公有的成員函數(shù)訪(fǎng)問(wèn),這就稱(chēng)為數(shù)據(jù)的封裝性。private的使用使結(jié)構(gòu)具有“類(lèi)”的特性。結(jié)構(gòu)中默認(rèn)成員為public,而類(lèi)中默認(rèn)成員為private。2.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象結(jié)構(gòu)中private的使用使其具有封裝性,所以不能像C語(yǔ)言中那樣使用初始化列表對(duì)結(jié)構(gòu)對(duì)象進(jìn)行初始化。為此我們可以設(shè)計(jì)兩個(gè)特殊的成員函數(shù)來(lái)進(jìn)行初始化。兩個(gè)函數(shù)的名字與結(jié)構(gòu)同名,其原型為Point()Point(double,double)兩函數(shù)為重載函數(shù)。專(zhuān)門(mén)用于對(duì)象的初始化,稱(chēng)為構(gòu)造函數(shù)。例2.3:構(gòu)造函數(shù)。/*源程序*/#include<iostream>usingnamespacestd;structPoint {public: Point(){}; Point(doublea,doubleb) {x=a;y=b;} voidSetxy(doublea,doubleb) {x=a;y=b;} voidDisplay() {cout<<"("<<x<<","<<y<<")"<<endl;}

private:

doublex,y; };voidmain() {Pointa; Pointb(1.0,2.0); a.Setxy(10.6,18.5); a.Display(); b.Display(); };使用構(gòu)造函數(shù)!構(gòu)造函數(shù)的使用方法:構(gòu)造函數(shù)名對(duì)象名(初始化參數(shù));2.2從結(jié)構(gòu)演變一個(gè)簡(jiǎn)單的類(lèi)利用關(guān)鍵字class(類(lèi))代替struct(結(jié)構(gòu))就是一個(gè)標(biāo)準(zhǔn)的類(lèi)。例2.4/*源程序*/#include<iostream>usingnamespacestd;classPoint {public: Point(){}; Point(doublea,doubleb) {x=a;y=b;} voidSetxy(doublea,doubleb) {x=a;y=b;} voidDisplay() {cout<<"("<<x<<","<<y<<")"<<endl;}

private:

doublex,y; };Point類(lèi)Point類(lèi)示意圖voidmain(){Pointa;Pointb(1.0,2.0);a.Setxy(10.6,18.5);a.Display();b.Display(); };類(lèi)的使用與結(jié)構(gòu)相同。如,voidmain() {Pointa; Pointb(1.0,2.0); a.Setxy(10.6,18.5); a.Display(); b.Display(); };類(lèi)名Point具有屬性x和y提供的操作:構(gòu)造函數(shù)PointSetxy用來(lái)給對(duì)象賦值Display用來(lái)輸出x和yPoint類(lèi)示意圖2.3面向過(guò)程與面向?qū)ο竺嫦蜻^(guò)程不必要了解計(jì)算機(jī)的內(nèi)部邏輯,而把精力主要集中在對(duì)如何求解問(wèn)題的方法邏輯和過(guò)程上,通過(guò)編寫(xiě)程序把解決問(wèn)題的步驟告訴計(jì)算機(jī)。例2.5:輸入三角形3個(gè)頂點(diǎn)的坐標(biāo),計(jì)算3邊長(zhǎng)的過(guò)程算法描述。輸入三個(gè)頂點(diǎn)的坐標(biāo)數(shù)據(jù)(6個(gè)數(shù)據(jù))計(jì)算兩個(gè)頂點(diǎn)間的距離得到連長(zhǎng)輸出三個(gè)邊長(zhǎng)C語(yǔ)言中的函數(shù)是功能的抽象。有利于結(jié)構(gòu)化程序設(shè)計(jì)和模塊化設(shè)計(jì),適合于大型程序的開(kāi)發(fā)。解決了大系統(tǒng)多文件的組織與管理。C++是混合型語(yǔ)言,可用于面向過(guò)程軟件的開(kāi)發(fā)。當(dāng)軟件太復(fù)雜,結(jié)構(gòu)化程序設(shè)計(jì)不能滿(mǎn)足要求。人們分析問(wèn)題思考方式的不一致全局變量的大量存在面向過(guò)程存在的問(wèn)題。要求開(kāi)發(fā)人員按計(jì)算機(jī)的結(jié)構(gòu)去思考,而不是按要解決的問(wèn)題的結(jié)構(gòu)去思考。開(kāi)發(fā)人員必須在機(jī)器模型(解空間)和實(shí)際問(wèn)題模型(問(wèn)題空間)之間進(jìn)行對(duì)應(yīng)。面向過(guò)程的方法充滿(mǎn)“變數(shù)”。面向?qū)ο笙鄬?duì)于過(guò)程,對(duì)象是穩(wěn)定的。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,可以將一組密切相關(guān)的函數(shù)統(tǒng)一封裝在一個(gè)對(duì)象中,從而可以合理、有效地避免全局變量的使用。對(duì)象是功能抽象和數(shù)據(jù)抽象的統(tǒng)一。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法不是以函數(shù)過(guò)程和數(shù)據(jù)結(jié)構(gòu)為中心,而是用對(duì)象代表求解問(wèn)題的中心環(huán)節(jié)。例2.6:輸入三角形的3個(gè)頂點(diǎn)坐標(biāo),計(jì)算3條邊的長(zhǎng)度的面向?qū)ο蟮乃惴枋?。?wèn)題以“點(diǎn)”對(duì)象為中心環(huán)節(jié)。邊長(zhǎng)可以看作兩點(diǎn)對(duì)象之間了距離。設(shè)計(jì)Point類(lèi):算法設(shè)計(jì):設(shè)計(jì)Point類(lèi)創(chuàng)建3個(gè)點(diǎn)對(duì)象PointA(x1,y1);PointB(x2,y2);PointC(x3,y3);計(jì)算邊長(zhǎng):AB:A.Getlength(B);BC:B.Getlength(C);AC:A.Getlength(C);輸出三邊長(zhǎng):AB,BC,AC類(lèi)名Point具有屬性x和y提供的操作:構(gòu)造函數(shù)PointGetlength求兩點(diǎn)對(duì)象之間的距離Getx得到點(diǎn)的x坐標(biāo)Gety得到點(diǎn)的y坐標(biāo)軟件開(kāi)發(fā)是對(duì)給定問(wèn)題求解的過(guò)程,包含兩部:認(rèn)識(shí)和描述。問(wèn)題域:軟件開(kāi)發(fā)者將被開(kāi)發(fā)的整個(gè)業(yè)務(wù)范圍稱(chēng)作“問(wèn)題域”。認(rèn)識(shí):就是通過(guò)人的思維,對(duì)該問(wèn)題域客觀存在的事物以及對(duì)所要解決的問(wèn)題產(chǎn)生正確的認(rèn)識(shí)和理解,包括弄清事物的屬性、行為及其彼此之間的關(guān)系并找出解決問(wèn)題的方法。描述:是指人們用一種語(yǔ)言把對(duì)問(wèn)題域中事物的認(rèn)識(shí)、對(duì)問(wèn)題及其解決方法的認(rèn)識(shí)描述出來(lái)。最終描述成一種能被計(jì)算機(jī)讀得懂的語(yǔ)言,即編程語(yǔ)言。客觀事物(問(wèn)題域)縫隙自然語(yǔ)言面向?qū)ο笳Z(yǔ)言面向過(guò)程語(yǔ)言匯編語(yǔ)言機(jī)器語(yǔ)言計(jì)算機(jī)人們對(duì)問(wèn)題認(rèn)識(shí)的差距產(chǎn)生“縫隙”。語(yǔ)言發(fā)展趨勢(shì)原來(lái)的鴻溝語(yǔ)言的發(fā)展使鴻溝逐漸變窄2.4C++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)與傳統(tǒng)的程序設(shè)計(jì)方法相比,面向?qū)ο蟪绦蛟O(shè)計(jì)具有抽象、封裝、繼承和多態(tài)性等關(guān)鍵要素。2.4.1對(duì)象描述對(duì)象的三要素:對(duì)象名、屬性、操作。對(duì)象名:用來(lái)標(biāo)識(shí)一個(gè)具體對(duì)象。屬性:用數(shù)據(jù)來(lái)表示對(duì)象的屬性,一個(gè)屬性就是描述對(duì)象靜態(tài)特征的一個(gè)數(shù)據(jù)項(xiàng)。操作:是描述對(duì)象動(dòng)態(tài)特征(行為)的一個(gè)函數(shù)序列(用函數(shù)實(shí)現(xiàn)操作),也稱(chēng)為方法或服務(wù)。數(shù)據(jù)稱(chēng)為“數(shù)據(jù)成員”,函數(shù)稱(chēng)為“成員函數(shù)”。C++中的對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,要構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組屬性進(jìn)行操作的成員函數(shù)構(gòu)成。對(duì)象名屬性1屬性2…屬性n操作1操作2…操作n例2.7:用簡(jiǎn)單對(duì)象表示平面上的兩個(gè)坐標(biāo)點(diǎn):A(3.5,6.4),B(8.5,8.9)。AX(3.5)Y(6.4)Display();Setxy();Move();BX(8.5)Y(8.9)Display();Setxy();Move();2.4.2抽象和類(lèi)抽象是一種從一般的觀點(diǎn)看待事物的方法,即集中于事物的本質(zhì)特征,而不是具體細(xì)節(jié)或具體實(shí)現(xiàn)??梢詮囊唤M對(duì)象的共同特征進(jìn)一步抽象出來(lái)從而形成“類(lèi)”的概念。類(lèi)由類(lèi)名、一組屬性、一組操作組成。類(lèi)的屬性只是性質(zhì)的說(shuō)明,對(duì)象的屬性才是具體數(shù)據(jù)。如,從上例中A,B兩點(diǎn)抽象出來(lái)的點(diǎn)類(lèi),如右上圖。Pointfloatx;floaty;Display();Setxy();Move();類(lèi)名屬性1屬性2…屬性n操作1操作2…操作n在抽象的過(guò)程中用到“歸納法”和“演繹法”:歸納法:從特殊到一般,即“歸類(lèi)”。演繹法:從一般到特殊,即“分類(lèi)”。類(lèi)與對(duì)象:對(duì)象由一些屬性和操作組成,而這些屬性和操作描述了對(duì)象的內(nèi)部細(xì)節(jié)。類(lèi)是具有相同屬性和操作的一組對(duì)象集合,它為屬于該類(lèi)的全部對(duì)象提供了統(tǒng)一的抽象描述。類(lèi)給出了屬于該類(lèi)的全部對(duì)象的抽象定義,而對(duì)象則是符合這種定義的實(shí)體。2.4.3封裝對(duì)象由屬性與操作組成。屬性只能通過(guò)操作存取操作分內(nèi)部操作和外部操作外部操作提供消息接口對(duì)象內(nèi)部數(shù)據(jù)結(jié)構(gòu)的不可訪(fǎng)問(wèn)性稱(chēng)為信息(數(shù)據(jù))隱藏。數(shù)據(jù)封裝減少了出錯(cuò)的可能性。類(lèi)中封裝是通過(guò)存取權(quán)限實(shí)現(xiàn)的。類(lèi)的屬性和操作分為私有的(private)和公有的(public)兩種類(lèi)型。屬性1屬性2…屬性n內(nèi)部操作1內(nèi)部操作2…內(nèi)部操作n外部操作1外部操作2…外部操作n對(duì)象名2.4.4繼承繼承是一個(gè)類(lèi)可以獲得另一個(gè)類(lèi)的特性的機(jī)制,繼承支持層次概念。低層的類(lèi)只須定義特定于它的特征,而共享高層類(lèi)中的特征。水果蘋(píng)果桔子香蕉紅富士紅香蕉2.4.5多態(tài)性不同的對(duì)象可以調(diào)用相同名稱(chēng)的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱(chēng)為多態(tài)性,程序中只須一般形式的函數(shù)調(diào)用,函數(shù)的實(shí)現(xiàn)細(xì)節(jié)留給接受函數(shù)調(diào)用的對(duì)象。有利于提高解決復(fù)雜問(wèn)題的能力。如“+”7+81.1+2.22.5使用類(lèi)和對(duì)象本節(jié)介紹C++標(biāo)準(zhǔn)程序庫(kù)提供的string和complex類(lèi)。2.5.1使用string對(duì)象C++的string類(lèi)很復(fù)雜,在這里我們只給出它的部分屬性和操作。字符串str是string類(lèi)的屬性函數(shù)string是構(gòu)造函數(shù),有多個(gè)函數(shù)find檢索子串函數(shù)size計(jì)算并返回字符串的長(zhǎng)度函數(shù)substr返回字符串中的子串stringstrstring();findsizesubstr使用頭文件<string>,即應(yīng)有語(yǔ)句#include<string>string對(duì)象的構(gòu)造stringstr=“abc”;stringstr(“abc”);注意:字符串是“”括起來(lái)的字符序列。stringstr=‘a(chǎn)’; //錯(cuò)誤stringstr=“a”; //正確函數(shù)size的應(yīng)用string對(duì)象名.size()字符串連接運(yùn)算符“+”str+“a” //字符串之間的連接Str+‘a(chǎn)’ //字符串與字符之間的連接例2.8:演示使用string對(duì)象及初始化的例子。#include<iostream>#include<string>usingnamespacestd;voidmain() {stringstr1("Wearehere!"); stringstr2="Whereareyou?"; cout<<str1[0]<<str1[11]<<","<<str1<<endl; cout<<str2[0]<<str1[13]<<","<<str2<<endl; cout<<"Pleaseinputaword:"; cin>>str1; cout<<"lengthofthe"<<str1<<"is"<<str1.size()<<"."<<endl; }2.5.2使用string類(lèi)的典型成員函數(shù)實(shí)例對(duì)象調(diào)用成員函數(shù)的語(yǔ)法可表示如下:對(duì)象名稱(chēng).成員函數(shù)(參數(shù)(可供選擇的消息內(nèi)容))函數(shù)size沒(méi)有參數(shù)如,str1.size()函數(shù)substr有兩個(gè)參數(shù)第一個(gè)參數(shù):截取串在字符串中的起始位置(從0開(kāi)始)第二個(gè)參數(shù):截取串的長(zhǎng)度(可以超出字符串的長(zhǎng)度)如,str2=str1.substr(3,3);函數(shù)find有兩個(gè)參數(shù)返回子串在字符串中的位置,找不到返回-1第一個(gè)參數(shù):要查找的子串第二個(gè)參數(shù):開(kāi)始查找的位置(缺省時(shí)默認(rèn)為0)如,inti=str1.find(“are”,0);函數(shù)getline用來(lái)從流cin中讀出輸入的一行給string類(lèi)的對(duì)象,如stringstr;getline(cin,str,‘\n’);功能為從鍵盤(pán)上讀取一串字符給對(duì)象str,以回車(chē)結(jié)束例2.9:將美國(guó)日期轉(zhuǎn)換為國(guó)際日期的例子。如輸入“December29,2008”,則輸出“28December2008”思路:尋找月份。在第一個(gè)空格之前為月份,用find函數(shù)查找空格位置。尋找日子。在第一個(gè)空格之后到“,”之前為日子,用find函數(shù)查找“,”,用substr函數(shù)取日子數(shù)據(jù)。尋找年份。取剩余子串為年份(注意“,”之后有一空格)。/*源程序*/#include<iostream>#include<string>usingnamespacestd;voidmain(){ stringDate; cout<<"InteradateinAmericanformat:"; getline(cin,Date,'\n'); intx=Date.find(""); stringMonth=Date.substr(0,x); inty=Date.find(","); stringDay=Date.substr(x+1,y-x-1);

stringYear=Date.substr(y+2,Date.size()-y-2); stringNewDate=Day+""+Month+""+Year; cout<<"Originaldate:"<<Date<<endl; cout<<"Converteddate:"<<NewDate<<endl;}InteradateinAmericanformat:Dec22,2003Originaldate:Dec22,2003Converteddate:22Dec20032.5.3使用complex對(duì)象用來(lái)定義復(fù)數(shù)對(duì)象使用時(shí)應(yīng)包含頭文件<complex>,即#include<complex>complex對(duì)象有兩個(gè)初始值,用構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)多值處理。complex類(lèi)是一個(gè)模板類(lèi),所謂模板,就是指它可以定義多種數(shù)據(jù)類(lèi)型的復(fù)數(shù)對(duì)象。如實(shí)部與虛部為整數(shù)實(shí)部與虛部為實(shí)數(shù),等其類(lèi)型可在complex后面加“<type>”來(lái)說(shuō)明。complex對(duì)象的定義complex<type>對(duì)象名(實(shí)部,虛部);complexreal;image;complex();real();imag();例2.10:演示使用complex和string對(duì)象及初始化的例子。/*源程序*/#include<iostream>#include<string>#include<complex>usingnamespacestd;voidmain(){ complex<int>num1(2,3); complex<float>num2(2.5,3); stringstr1("Realpartis:"); stringstr2="Imagepartis:"; cout<<str1<<num1.real()<<","<<str2<<num1.imag()<<endl <<str1<<num2.real()<<","<<str2<<num2.imag()<<endl; }Realpartis:2,Imagepartis:3Realpartis:2.5,Imagepartis:32.5.4使用對(duì)象小節(jié)類(lèi)是一類(lèi)對(duì)象的抽象。類(lèi)的屬性稱(chēng)為數(shù)據(jù)成員。如string類(lèi)的str屬性,comple類(lèi)的實(shí)部與虛部。通過(guò)屬性的值來(lái)區(qū)分對(duì)象。通過(guò)成員函數(shù)(操作方法)對(duì)數(shù)據(jù)成員(屬性)進(jìn)行操作。complex類(lèi)是一個(gè)模板類(lèi),即定義復(fù)數(shù)類(lèi)時(shí)與類(lèi)型無(wú)關(guān),只有定義對(duì)象時(shí)才指定實(shí)部與虛部的類(lèi)型。這就象作了一個(gè)燒鑄勺子的模具,具體用什么材質(zhì)(鐵、鋁等)做具體的勺子時(shí)才確定。2.6string對(duì)象數(shù)組與泛型算法第一章中介紹的針對(duì)數(shù)組的泛型算法同樣適用于string類(lèi)。使用時(shí)應(yīng)請(qǐng)注意以下兩點(diǎn):泛型算法中的find函數(shù)與string類(lèi)中find成員函數(shù)的區(qū)別。string類(lèi)中有一個(gè)swap函數(shù)來(lái)交換兩個(gè)對(duì)象的屬性。如,stringstr1(“We”),str2(“You”);str1.swap(str2);上面語(yǔ)句的作用是將str1和str2的屬性交換,所以與以下語(yǔ)句等效str2.swap(str1);例2.11:演示string對(duì)象的例子。#include<iostream>#include<string>#include<algorithm>usingnamespacestd;voidmain(){ stringstr1("Wearehere!"),str2=str1; reverse(&str1[0],&str1[0]+12); cout<<str1<<endl; copy(&str1[0],&str1[0]+12,&str2[0]); cout<<str2<<endl; reverse_copy(&str2[0],&str2[0]+12,ostream_iterator<char>(cout)); cout<<endl;}!ereheraeW!ereheraeWWearehere!從上面例子可以看出,當(dāng)使用string對(duì)象中的地址時(shí)很麻煩,str1不再是一個(gè)地址,而是一個(gè)對(duì)象名,引用字符串第一個(gè)字符的地址不得不用&str1[0]。String類(lèi)提供兩個(gè)成員函數(shù)來(lái)標(biāo)識(shí)string對(duì)象中字符串的存儲(chǔ)空間:begin()函數(shù)end()函數(shù)字符串的存儲(chǔ)區(qū)間為:[begin,end)如,對(duì)于str1Weareher!estr1.begin()str1.end()可見(jiàn),string對(duì)象的字符串中不用“\0”作為結(jié)束標(biāo)志,而char定義的字符串中自動(dòng)加“\0”作為結(jié)束標(biāo)志。例2.12:用成員函數(shù)表示存儲(chǔ)區(qū)間的例子。#include<iostream>#include<string>#include<algorithm>#include<functional>usingnamespacestd;voidmain(){ stringstr1("wearehere!"),str2=str1; reverse(str1.begin(),str1.en

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論