c++3上海交大(針對(duì)譚浩強(qiáng)的書)_第1頁(yè)
c++3上海交大(針對(duì)譚浩強(qiáng)的書)_第2頁(yè)
c++3上海交大(針對(duì)譚浩強(qiáng)的書)_第3頁(yè)
c++3上海交大(針對(duì)譚浩強(qiáng)的書)_第4頁(yè)
c++3上海交大(針對(duì)譚浩強(qiáng)的書)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章程序設(shè)計(jì)初步計(jì)算機(jī)基礎(chǔ)教學(xué)研究室C++語(yǔ)言程序設(shè)計(jì)13.1面向過(guò)程的程序設(shè)計(jì)和算法3.2C++程序和語(yǔ)句3.3賦值語(yǔ)句3.4C++的輸入與輸出3.5編寫順序結(jié)構(gòu)的程序3.6關(guān)系運(yùn)算和邏輯運(yùn)算3.7選擇結(jié)構(gòu)和if語(yǔ)句3.8條件運(yùn)算符和條件表達(dá)式3.9多分支選擇結(jié)構(gòu)和switch語(yǔ)句3.10編寫選擇結(jié)構(gòu)的程序3.11循環(huán)結(jié)構(gòu)和循環(huán)語(yǔ)句3.12循環(huán)的嵌套3.13break語(yǔ)句和continue語(yǔ)句3.14編寫循環(huán)結(jié)構(gòu)的程序2在面向過(guò)程的程序設(shè)計(jì)中,程序設(shè)計(jì)者必須指定計(jì)算機(jī)執(zhí)行的具體步驟,程序設(shè)計(jì)者不僅要考慮程序要“做什么”,還要解決“怎么做”的問(wèn)題,根據(jù)程序要“做什么”的要求,寫出一個(gè)個(gè)語(yǔ)句,安排好它們的執(zhí)行順序。怎樣設(shè)計(jì)這些步驟,怎樣保證它的正確性和具有較高的效率,這就是算法需要解決的問(wèn)題。3.1面向過(guò)程的程序設(shè)計(jì)和算法3算法比較4一個(gè)面向過(guò)程的程序應(yīng)包括以下兩方面內(nèi)容:(1)對(duì)數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(datastructure)。(2)對(duì)操作的描述。即操作步驟,也就是算法(algorithm)。對(duì)于面向過(guò)程的程序,可以用下面的公式表示:程序=算法+數(shù)據(jù)結(jié)構(gòu)作為程序設(shè)計(jì)人員,必須認(rèn)真考慮和設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和操作步驟(即算法)。算法是處理問(wèn)題的一系列的步驟。算法必須具體地指出在執(zhí)行時(shí)每一步應(yīng)當(dāng)怎樣做。3.1算法的概念51.自然語(yǔ)言用中文或英文等自然語(yǔ)言描述算法。但容易產(chǎn)生歧義性,在程序設(shè)計(jì)中一般不用自然語(yǔ)言表示算法。2.流程圖可以用傳統(tǒng)的流程圖或結(jié)構(gòu)化流程圖。用圖的形式表示算法,比較形象直觀,但修改算法時(shí)顯得不大方便。3.偽代碼(pseudocode)

偽代碼是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來(lái)描述算法。4.用計(jì)算機(jī)語(yǔ)言表示算法

用一種計(jì)算機(jī)語(yǔ)言去描述算法,這就是計(jì)算機(jī)程序。3.1算法的表示6圖3.17一個(gè)程序包含一個(gè)或多個(gè)程序單位。每一個(gè)程序單位由以下幾個(gè)部分組成:(1)預(yù)處理命令。如#include命令和#define命令。(2)聲明部分。例如對(duì)數(shù)據(jù)類型和函數(shù)的聲明,以及對(duì)變量的定義。(3)函數(shù)。包括函數(shù)首部和函數(shù)體,在函數(shù)體中可以包含若干聲明語(yǔ)句和執(zhí)行語(yǔ)句。如下面是一個(gè)完整的C++程序:3.2C++程序和語(yǔ)句8#include<iostream>//預(yù)處理命令usingnamespacestd;//在函數(shù)之外的聲明部分inta=3;//在函數(shù)之外的聲明部分intmain()//函數(shù)首部{floatb;//函數(shù)內(nèi)的聲明部分

b=4.5;//執(zhí)行語(yǔ)句

cout<<a<<b;//執(zhí)行語(yǔ)句

return0;//執(zhí)行語(yǔ)句}如果一個(gè)變量在函數(shù)之外進(jìn)行聲明,此變量是全局變量,它的有效范圍是從該行開始到本程序結(jié)束。如果一個(gè)變量在函數(shù)內(nèi)聲明,此變量是局部變量,它的有效范圍是從該行開始到本函數(shù)結(jié)束。C++程序結(jié)構(gòu)可以用圖3.1表示。9聲明語(yǔ)句

如:inta,b;在C++中,對(duì)變量(以及其他對(duì)象)的定義被認(rèn)為是一條語(yǔ)句,并且可以出現(xiàn)在函數(shù)中的任何行,即可以放在其他程序語(yǔ)句可以出現(xiàn)的地方。這樣更加靈活,可以很方便地實(shí)現(xiàn)變量的局部化(變量的作用范圍從聲明語(yǔ)句開始到本函數(shù)或本塊結(jié)束)。102.執(zhí)行語(yǔ)句通知計(jì)算機(jī)完成一定的操作。執(zhí)行語(yǔ)句包括:(1)控制語(yǔ)句,完成一定的控制功能。C++有9種控制語(yǔ)句:①if() (條件語(yǔ)句)

if()~else~(條件語(yǔ)句)③

switch(多分支選擇語(yǔ)句)

④for()~(循環(huán)語(yǔ)句) ⑤while()~(循環(huán)語(yǔ)句)⑥do~while()(循環(huán)語(yǔ)句)⑦continue(結(jié)束本次循環(huán)語(yǔ)句)⑧break(中止執(zhí)行switch或循環(huán)語(yǔ)句) ⑨return(從函數(shù)返回語(yǔ)句)11(2)函數(shù)和流對(duì)象調(diào)用語(yǔ)句。函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句,例如sort(x,y,z);//函數(shù)調(diào)用語(yǔ)句,w=sort(x,y,z);cout<<x<<endl;//流對(duì)象調(diào)用語(yǔ)句cin>>x;(3)表達(dá)式語(yǔ)句。由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句。i=i+1//是一個(gè)賦值表達(dá)式i=i+1;i++;;i+=1;//是一個(gè)語(yǔ)句任何一個(gè)表達(dá)式的最后加一個(gè)分號(hào)都可以成為一個(gè)語(yǔ)句。3.空語(yǔ)句下面是一個(gè)空語(yǔ)句:;如:for(m=0;m<1000;m++);即只有一個(gè)分號(hào)的語(yǔ)句,它什么也不做。4.復(fù)合語(yǔ)句可以用{}把一些語(yǔ)句括起來(lái)成為復(fù)合語(yǔ)句。如下面是一個(gè)復(fù)合語(yǔ)句。{z=x+y;

if(z>100)z=z-100;

cout<<z;}12賦值語(yǔ)句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成。

C++中的賦值號(hào)“=”是一個(gè)運(yùn)算符,可以寫成: a=b=c=d;//多重賦值語(yǔ)句在C++中,賦值表達(dá)式可以包括在其他表達(dá)式之中 例如:if((a=b)>0)cout<<″a>0″<<endl; 表達(dá)式什么意思?3.3賦值語(yǔ)句13輸入和輸出并不是C++語(yǔ)言中的正式組成成分。C和C++本身都沒(méi)有為輸入和輸出提供專門的語(yǔ)句結(jié)構(gòu)。輸入輸出不是由C++本身定義的,而是在編譯系統(tǒng)提供的I/O庫(kù)中定義的。C++的輸出和輸入是用“流”(stream)的方式實(shí)現(xiàn)的。圖3.2和圖3.3表示C++通過(guò)流進(jìn)行輸入輸出的過(guò)程。3.4C++的輸入與輸出14輸入、輸出流15有關(guān)流對(duì)象cin、cout和流運(yùn)算符的定義等信息是存放在C++的輸入輸出流庫(kù)中的,因此如果在程序中使用cin、cout和流運(yùn)算符,就必須使用預(yù)處理命令把頭文件stream包含到本文件中:#include<iostream>常常把由cin和流提取運(yùn)算符“>>”實(shí)現(xiàn)輸入的語(yǔ)句稱為輸入語(yǔ)句或cin語(yǔ)句;把由cout和流插入運(yùn)算符“<<”實(shí)現(xiàn)輸出的語(yǔ)句稱為輸出語(yǔ)句或cout語(yǔ)句。C++的輸入與輸出16cout語(yǔ)句的一般格式為cout<<表達(dá)式1<<表達(dá)式2<<……<<表達(dá)式n;//可以<<endlcin語(yǔ)句的一般格式為cin>>變量1>>變量2>>……>>變量n;//注意:不能>>endl在定義流對(duì)象時(shí),系統(tǒng)會(huì)在內(nèi)存中開辟一段緩沖區(qū),用來(lái)暫存輸入輸出流的數(shù)據(jù)。在執(zhí)行cout語(yǔ)句時(shí),先把插入的數(shù)據(jù)順序存放在輸出緩沖區(qū)中,直到輸出緩沖區(qū)滿或遇到cout語(yǔ)句中的endl(或′\n′)為止,此時(shí)將緩沖區(qū)中已有的數(shù)據(jù)一起輸出,并清空緩沖區(qū)。輸出流中的數(shù)據(jù)在系統(tǒng)默認(rèn)的設(shè)備(一般為顯示器)輸出。*3.4.1輸入流與輸出流的基本操作17一個(gè)cout語(yǔ)句可以分寫成若干行。如cout<<″ThisisasimpleC++program.″<<endl;可以寫成cout<<″Thisis″//注意行末尾無(wú)分號(hào)<<″aC++″<<″program.″<<endl;//語(yǔ)句最后有分號(hào)也可寫成多個(gè)cout語(yǔ)句,即cout<<″Thisis″;//語(yǔ)句末尾有分號(hào)cout<<″aC++″;cout<<″program.″;cout<<endl;以上3種情況的輸出均為ThisisasimpleC++program.18注意:不能用一個(gè)插入運(yùn)算符“<<”插入多個(gè)輸出項(xiàng):cout<<a,b,c;//錯(cuò)誤,不能一次插入多項(xiàng)cout<<a+b+c;//正確,這是一個(gè)表達(dá)式在用cout輸出時(shí),系統(tǒng)會(huì)自動(dòng)判別輸出數(shù)據(jù)的類型,使輸出的數(shù)據(jù)按相應(yīng)的類型輸出一個(gè)cin語(yǔ)句可以分寫成若干行。cin>>a>>b>>c>>d;從鍵盤輸入:1234↙也可以分多行輸入數(shù)據(jù):數(shù)據(jù)之間用空格、TAB鍵或回車分隔

19上面介紹的是使用cout和cin時(shí)的默認(rèn)格式。但有時(shí)人們?cè)谳斎胼敵鰰r(shí)有一些特殊的要求,如在輸出實(shí)數(shù)時(shí)規(guī)定字段寬度,只保留兩位小數(shù),數(shù)據(jù)向左或向右對(duì)齊等。C++提供了在輸入輸出流中使用的控制符(有的書中稱為操縱符),見書中表3.1。需要注意的是:如果使用了控制符,在程序單位的開頭除了要加iostream頭文件外,還要加iomanip頭文件。舉例:輸出雙精度數(shù)。*3.4.2在輸入流與輸出流中使用控制符20doublea=123.456789012345;//對(duì)a賦初值(1)cout<<a;//輸出:123.457(2)cout<<setprecision(9)<<a;//輸出:123.456789(3)cout<<setprecision(6);恢復(fù)默認(rèn)格式(精度為6)(4)cout<<setiosflags(ios∷fixed)<<a;輸出:123.456789(5)cout<<setiosflags(ios∷scientific)<<a;輸出:1.234568e+02(6)cout<<setiosflags(ios∷scientific)<<setprecision(4)<<a;輸出:1.2346e02下面是整數(shù)輸出的例子:intb=123456;對(duì)b賦初值(1)cout<<b;輸出:123456(2)cout<<hex<<b;輸出:1e240(3)cout<<setiosflags(ios∷uppercase)<<b;輸出:1E240(4)cout<<setw(10)<<b<<′,′<<b;輸出:123456,123456(5)cout<<setfill(′*′)<<setw(10)<<b;輸出:****123456(6)cout<<setiosflags(ios∷showpos)<<b;輸出:+123456如果在多個(gè)cout語(yǔ)句中使用相同的setw(n),并使用setiosflags(ios∷right),可以實(shí)現(xiàn)各行數(shù)據(jù)右對(duì)齊。21例3.1各行小數(shù)點(diǎn)對(duì)齊。#include<iostream>#include<iomanip>usingnamespacestd;intmain(){doublea=123.456,b=3.14159,c=-3214.67;cout<<setiosflags(ios∷fixed)<<setiosflags(ios∷right)<<setprecision(2);

cout<<setw(10)<<a<<endl;

cout<<setw(10)<<b<<endl;

cout<<setw(10)<<c<<endl;return0;}//輸出:123.46//字段寬度為10,右對(duì)齊,取兩位小數(shù))3.14-3214.6722C++還保留了C語(yǔ)言中用于輸入和輸出單個(gè)字符的函數(shù),使用很方便。其中最常用的有g(shù)etchar函數(shù)和putchar函數(shù)。1.putchar函數(shù)(字符輸出函數(shù))putchar函數(shù)的作用是向終端輸出一個(gè)字符。例如putchar(c);它輸出字符變量c的值。3.4.3用getchar和putchar

函數(shù)進(jìn)行字符的輸入和輸出23例3.2輸出單個(gè)字符。#include<iostream>//或者包含頭文件stdio.h:#include<stdio.h>usingnamespacestd;intmain(){chara,b,c;a=′B′;b=′O′;c=′Y′;

putchar(a);putchar(b);putchar(c);putchar(′\n′);putchar(66);putchar(79);putchar(89);putchar(10);return0;}運(yùn)行結(jié)果為BOYBOY242.getchar函數(shù)(字符輸入函數(shù))此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。getchar函數(shù)沒(méi)有參數(shù),其一般形式為getchar()函數(shù)的值就是從輸入設(shè)備得到的字符。例3.3輸入單個(gè)字符。#include<iostream>usingnamespacestd;intmain(){charc;c=getchar();putchar(c+32);putchar(′\n′);return0;}在運(yùn)行時(shí),如果從鍵盤輸入大寫字母′A′并按回車鍵,就會(huì)在屏幕上輸出小寫字母′a′。請(qǐng)注意,getchar()只能接收一個(gè)字符。25在C語(yǔ)言中是用printf函數(shù)進(jìn)行輸出,用scanf函數(shù)進(jìn)行輸入的。C++保留了C語(yǔ)言的這一用法。在此只作很簡(jiǎn)單的介紹。scanf函數(shù)一般格式是scanf(格式控制,輸入表列)printf函數(shù)的一般格式是printf(格式控制,輸出表列)3.4.4用scanf和printf函數(shù)進(jìn)行輸入和輸出26C語(yǔ)言的輸入輸出格式控制符%d格式符,用來(lái)輸出十進(jìn)制整數(shù);%o格式符,以八進(jìn)制輸出整數(shù);%x,X格式符,以十六進(jìn)制輸出整數(shù);%u格式符,用來(lái)將unsigned型數(shù)據(jù),既無(wú)符號(hào)數(shù),以十進(jìn)制形式輸出;%c格式符,輸出一個(gè)字符;%s格式符,輸出一個(gè)字符串;%f格式符,用來(lái)輸出實(shí)數(shù),以小數(shù)形式輸出;%e,E格式符,以指數(shù)形式輸出實(shí)數(shù);%g,G格式符,用來(lái)輸出實(shí)數(shù),它根據(jù)數(shù)值大小,自動(dòng)選擇f格式還是e格式,(選占寬最少的一種),且不輸出無(wú)意義的0;l用于輸入輸出長(zhǎng)整型數(shù)據(jù)(可用%ld、%lo、%lx)以及double型數(shù)據(jù)(用%lf或%le)h用于輸入短整型數(shù)據(jù)(可用%hd、%ho、%hx)

27例3.4用scanf和printf函數(shù)進(jìn)行輸入和輸出。#include<stdio.h>intmain(){inta;floatb;charc;

scanf("%d%f%c",&a,&b,&c);//注意在變量名前要加地址運(yùn)算符&

printf("a=%d,b=%f,c=%c\n",a,b,c);return0;}運(yùn)行情況如下:1267.98A↙(本行為輸入,輸入的3個(gè)數(shù)據(jù)間以空格相間)a=12,b=67.980003,c=A(本行為輸出)輸入的整數(shù)12送給整型變量a,67.98送給單精度變量b,字符′A′送給字符變量c。28例3.5求一元二次方程式ax2+bx+c=0的根。a,b,c的值在運(yùn)行時(shí)由鍵盤輸入,它們的值滿足b2-4ac≥0。根據(jù)求x1,x2的算法。它可以編寫出以下C++程序:#include<iostream>#include<cmath>//由于程序要用到數(shù)學(xué)函數(shù)sqrt,故應(yīng)包含頭文件cmathusingnamespacestd;intmain(){floata,b,c,x1,x2;

cin>>a>>b>>c;x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);

cout<<″x1=″<<x1<<endl;

cout<<″x2=″<<x2<<endl;return0;}3.5編寫順序結(jié)構(gòu)的程序29運(yùn)行情況如下:4.58.82.4↙x1=-0.327612x2=-1.17794如果程序中要用到數(shù)學(xué)函數(shù),都要包含頭文件cmath(也可以用老形式的頭文件math.h,但提倡使用C++新形式的頭文件)。在寫程序時(shí),一定要注意將數(shù)學(xué)表達(dá)式正確地轉(zhuǎn)換成合法的C++表達(dá)式。可以看到:順序結(jié)構(gòu)的程序中的各執(zhí)行語(yǔ)句是順序執(zhí)行的。這種程序最簡(jiǎn)單,最容易理解。編寫順序結(jié)構(gòu)的程序30往往要求根據(jù)某個(gè)指定的條件是否滿足來(lái)決定執(zhí)行的內(nèi)容。例如,購(gòu)物在1000元以下的打九五折,1000元及以上的打九折。C++提供if語(yǔ)句來(lái)實(shí)現(xiàn)這種條件選擇。如if(amount<1000)tax=0.95;//amount代表購(gòu)物總額,tax代表折扣elsetax=0.9;//若amount<1000,tax=0.95,否則tax=0.9pay=amount*tax;//pay為實(shí)付款流程可以用圖3.4表示。圖3.43.6關(guān)系運(yùn)算和邏輯運(yùn)算31C++的關(guān)系運(yùn)算符有:①< (小于)②<= (小于或等于) 優(yōu)先級(jí)相同(高)③> (大于)④>= (大于或等于) ⑤== (等于)⑥!= (不等于) 優(yōu)先級(jí)相同(低)3.6.1關(guān)系運(yùn)算和關(guān)系表達(dá)式32例如:

c>a+b等效于c>(a+b)a>b==c等效于(a>b)==ca==b<c等效于a==(b<c)a=b>c等效于a=(b>c)

用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子,稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。例如,關(guān)系表達(dá)式“5==3”的值為“假”,“5>=0”的值為“真”。在C和C++中都用數(shù)值1代表“真”,用0代表“假”。如果有以下賦值表達(dá)式:設(shè):a=3;b=2;c=1;d=a>b則d得到的值為1f=a>b>cf得到的值為0?33關(guān)系表達(dá)式的值(真或假)分別用數(shù)值1和0代表。C++有邏輯型數(shù)據(jù)。邏輯型常量只有兩個(gè),即false(假)和true(真)。邏輯型變量要用類型標(biāo)識(shí)符bool來(lái)定義,它的值只能是true和false之一。如:boolfound,flag=false;//定義邏輯變量found和flag,并使flag的初值為falsefound=true;//將邏輯常量true賦給邏輯變量found由于邏輯變量是用關(guān)鍵字bool來(lái)定義的,因此又稱為布爾變量。邏輯型常量又稱為布爾常量。所謂邏輯型,就是布爾型。3.6.2邏輯常量和邏輯變量34有時(shí)只用一個(gè)關(guān)系表達(dá)式還不能正確表示所指定的條件。C++提供3種邏輯運(yùn)算符:(1)&&邏輯與(相當(dāng)于其他語(yǔ)言中的AND)(2)||邏輯或(相當(dāng)于其他語(yǔ)言中的OR)(3)!邏輯非(相當(dāng)于其他語(yǔ)言中的NOT)邏輯運(yùn)算舉例如下:a&&b若a,b為真,則a&&b為真。a||b若a,b之一為真,則a||b為真。!a若a為真,則!a為假。書中表3.2為邏輯運(yùn)算的“真值表”。3.6.3邏輯運(yùn)算和邏輯表達(dá)式35在一個(gè)邏輯表達(dá)式中如果包含多個(gè)邏輯運(yùn)算符,按以下的優(yōu)先次序:(1)!(非)→&&(與)→||(或),即“!”為三者中最高的。(2)邏輯運(yùn)算符中的“&&”和“||”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符。例如:

(a>b)&&(x>y)可寫成a>b&&x>y(a==b)||(x==y)可寫成a==b||x==y(!a)||(a>b)可寫成!a||a>b將兩個(gè)關(guān)系表達(dá)式用邏輯運(yùn)算符連接起來(lái)就成為一個(gè)邏輯表達(dá)式,上面幾個(gè)式子就是邏輯表達(dá)式。邏輯運(yùn)算和邏輯表達(dá)式36例題:#include<iostream>usingnamespacestd;intmain(){

int

x,y,z;x=y=z=-1;++x&&++y&&++z;

cout<<"x="<<x<<''<<"y="<<y<<''<<"z="<<z<<endl;x=y=z=-1;++x&&++y||++z;

cout<<"x="<<x<<''<<"y="<<y<<''<<"z="<<z<<endl;x=y=z=-1;++x||++y||++z;

cout<<"x="<<x<<''<<"y="<<y<<''<<"z="<<z<<endl;return0;} x=0y=-1z=-1 x=0y=-1z=0 x=0y=0z=037邏輯表達(dá)式的一般形式可以表示為:

表達(dá)式邏輯運(yùn)算符表達(dá)式邏輯表達(dá)式的值是一個(gè)邏輯量“真”或“假”。采取的標(biāo)準(zhǔn)是:如果其值是0就認(rèn)為是“假”,如果其值是非0就認(rèn)為是“真”。

在C++中,整型數(shù)據(jù)可以出現(xiàn)在邏輯表達(dá)式中,在進(jìn)行邏輯運(yùn)算時(shí),根據(jù)整型數(shù)據(jù)的值是0(邏輯量假)或非0(邏輯量真),然后參加邏輯運(yùn)算。

實(shí)際上,邏輯運(yùn)算符兩側(cè)的表達(dá)式可以是任何類型的數(shù)據(jù),如字符型、浮點(diǎn)型或指針型等。系統(tǒng)最終以0和非0來(lái)判定它們屬于“真”或“假”。例如′c′&&′d′的值為1。邏輯運(yùn)算和邏輯表達(dá)式38if語(yǔ)句是用來(lái)判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。3.7選擇結(jié)構(gòu)和if語(yǔ)句3.7.1if語(yǔ)句的3種形式1.if(表達(dá)式)語(yǔ)句例如:if(x>y)cout<<x<<endl;這種if語(yǔ)句的執(zhí)行過(guò)程見圖3.5(a)。2.if(表達(dá)式)語(yǔ)句1else語(yǔ)句2例如:if(x>y)cout<<x;elsecout<<y;見圖3.5(b)。39圖3.5403.if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3…elseif(表達(dá)式m)語(yǔ)句m else語(yǔ)句n41#include<iostream>usingnamespacestd;intmain(){intmark;

cout<<"輸入分?jǐn)?shù):"<<endl;

cin>>mark;

if(mark>=90)

cout<<"優(yōu)"; elseif(80<=mark&&mark<90)

cout<<"良"; elseif(70<=mark&&mark<80)

cout<<"中";elseif(60<=mark&&mark<70)

cout<<"及格"; else

cout<<"不及格";

cout<<endl;return0;}42例3.6求三角形的面積。#include<iostream>#include<cmath>//使用數(shù)學(xué)函數(shù)時(shí)要包含頭文件cmath#include<iomanip>//使用I/O流控制符要包含頭文件iomanipusingnamespacestd;intmain(){doublea,b,c;

cout<<″pleaseentera,b,c:″;

cin>>a>>b>>c;if(a+b>c&&b+c>a&&c+a>b){//復(fù)合語(yǔ)句開始

doubles,area;//在復(fù)合語(yǔ)句內(nèi)定義變量

s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));

cout<<setiosflags(ios∷fixed)<<setprecision(4);//指定輸出的數(shù)包含4位小數(shù)

cout<<″area=″<<area<<endl;//在復(fù)合語(yǔ)句內(nèi)輸出局部變量的值

}//復(fù)合語(yǔ)句結(jié)束elsecout<<″itisnotatrilateral!″<<endl;return0;}//pleaseentera,b,c:2.453.674.89↙area=4.356543在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。一般形式如下:if() if()語(yǔ)句1 else語(yǔ)句2 內(nèi)嵌ifelse if()語(yǔ)句3 else語(yǔ)句4 內(nèi)嵌if應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系。else總是與它上面最近的、且未配對(duì)的if配對(duì)。3.7.2if語(yǔ)句的嵌套44注意:如果if與else的數(shù)目不一樣,為順利的實(shí)現(xiàn)程序,可以加花括號(hào)來(lái)確定配對(duì)關(guān)系。例如:if(){if()語(yǔ)句1}//這個(gè)語(yǔ)句是上一行if語(yǔ)句的內(nèi)嵌ifelse語(yǔ)句2//本行與第一個(gè)if配對(duì)這時(shí){}限定了內(nèi)嵌if語(yǔ)句的范圍,{}外的else不會(huì)與{}內(nèi)的if配對(duì)。關(guān)系清楚,不易出錯(cuò)。45條件運(yùn)算符要求有3個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C++中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2∶表達(dá)式3條件運(yùn)算符的執(zhí)行順序是:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。“max=(a>b)?a:b”的執(zhí)行結(jié)果是將條件表達(dá)式的值賦給max。也就是將a和b二者中的大者賦給max。3.8條件運(yùn)算符和條件表達(dá)式46switch語(yǔ)句是多分支選擇語(yǔ)句,用來(lái)實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。它的一般形式如下:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1case常量表達(dá)式2:語(yǔ)句2...case常量表達(dá)式n:語(yǔ)句ndefault:語(yǔ)句n+1

}3.9多分支選擇結(jié)構(gòu)和switch語(yǔ)句47例如,要求按照考試成績(jī)的等級(jí)打印出百分制分?jǐn)?shù)段,可以用switch語(yǔ)句實(shí)現(xiàn):switch(grade)

{case′A′:cout<<″85~100\n″;

case′B′:cout<<″70~84\n″;

case′C′:cout<<″60~69\n″;

case′D′:cout<<″<60\n″;

default:cout<<″e(cuò)rror\n″;

}說(shuō)明:(1)switch后面括號(hào)內(nèi)的“表達(dá)式”,允許為數(shù)值、字符、枚舉。(2)當(dāng)switch表達(dá)式的值與某一個(gè)case子句中的常量表達(dá)式的值相匹配時(shí),就執(zhí)行此case子句中的內(nèi)嵌語(yǔ)句,若所有的case子句中的常量表達(dá)式的值都不能與switch表達(dá)式的值匹配,就執(zhí)行default子句的內(nèi)嵌語(yǔ)句。{case1:cout<<“A\n”;case2:cout<<“B\n”;case3:cout<<“C\n”;case4:cout<<“D\n”;default:cout<<“Nopass\n”;}48(3)每一個(gè)case表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象。(4)各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)“default:…”,再出現(xiàn)“case′D′:…”,然后是“case′A′:…”。(5)執(zhí)行完一個(gè)case子句后,流程控制轉(zhuǎn)移到下一個(gè)case子句繼續(xù)執(zhí)行。“case常量表達(dá)式”只是起語(yǔ)句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。在執(zhí)行switch語(yǔ)句時(shí),根據(jù)switch表達(dá)式的值找到與之匹配的case子句,就從此case子句開始執(zhí)行下去,不再進(jìn)行判斷。(6)應(yīng)該在執(zhí)行一個(gè)case子句后,使流程跳出switch結(jié)構(gòu),即終止switch語(yǔ)句的執(zhí)行。可以用一個(gè)break語(yǔ)句來(lái)達(dá)到此目的。switch(grade)

{case′A′:

cout<<″85~100\n″;break;case′B′:

cout<<″70~84\n″;break;case′C′:

cout<<″60~69\n″;break;case′D′:

cout<<″<60\n″;break;default:

cout<<″e(cuò)rror\n″;break;

}49最后一個(gè)子句(default)可以不加break語(yǔ)句。如果grade的值為′B′,則只輸出“70~84”。流程圖見圖3.7。圖3.750在case子句中雖然包含一個(gè)以上執(zhí)行語(yǔ)句,但可以不必用花括號(hào)括起來(lái),會(huì)自動(dòng)順序執(zhí)行本case子句中所有的執(zhí)行語(yǔ)句。(7)多個(gè)case可以共用一組執(zhí)行語(yǔ)句,如

...case′A′:

case′B′:

case′C′:cout<<″>60\n″;break;

...當(dāng)grade的值為′A′、′B′或′C′時(shí)都執(zhí)行同一組語(yǔ)句。51例3.8編寫程序,判斷某一年是否為閏年。#include<iostream>usingnamespacestd;voidmain(void){

intyear;boolIsLeapYear;cout<<"Entertheyear:";cin>>year;

IsLeapYear=((year%4==0&&

year%100!=0)||(year%400==0));if(IsLeapYear) cout<<year<<"isaleapyear"<<endl;

else

cout<<year<<"isnotaleapyear"<<

endl;}//運(yùn)行情況如下:

①2005↙2005isnotaleapyear.②1900↙1900isaleapyear.3.10編寫選擇結(jié)構(gòu)的程序52在人們所要處理的問(wèn)題中常常遇到需要反復(fù)執(zhí)行某一操作的情況。這就需要用到循環(huán)控制。許多應(yīng)用程序都包含循環(huán)。順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu),是各種復(fù)雜程序的基本構(gòu)造單元。因此程序設(shè)計(jì)者必須熟練掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用方法。3.11循環(huán)結(jié)構(gòu)和循環(huán)語(yǔ)句533.11.1用while語(yǔ)句構(gòu)成循環(huán)形式:while(表達(dá)式)語(yǔ)句

可以是復(fù)合語(yǔ)句,其中必須含有改變條件表達(dá)式值的語(yǔ)句。執(zhí)行順序:先判斷表達(dá)式的值,為true時(shí),再執(zhí)行語(yǔ)句。54例3.10求1+2+3+…+100。用流程圖表示算法,見圖3.10。根據(jù)流程圖寫出程序:#include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;while(i<=100){sum=sum+i;i++;}cout<<″sum=″<<sum<<endl;}運(yùn)行結(jié)果為sum=5050553.11.2用do-while語(yǔ)句構(gòu)成循環(huán)一般形式do語(yǔ)句while(表達(dá)式)可以是復(fù)合語(yǔ)句,其中必須含有改變條件表達(dá)式值的語(yǔ)句。執(zhí)行順序先執(zhí)行循環(huán)體語(yǔ)句,后判斷條件。

表達(dá)式為true時(shí),繼續(xù)執(zhí)行循環(huán)體與while語(yǔ)句的比較:While語(yǔ)句執(zhí)行順序

先判斷表達(dá)式的值,為true時(shí),再執(zhí)行語(yǔ)句56

圖3.11圖3.12用do-while語(yǔ)句構(gòu)成循環(huán)57例3.11用do-while語(yǔ)句求1+2+3+…+100。先畫出流程圖,見圖3.12??删帉懗鱿旅娴某绦颍?include<iostream>usingnamespacestd;intmain(){inti=1,sum=0;do{sum=sum+i;i++;}while(i<=100);

cout<<″sum=″<<sum<<endl;return0;}583.11.3用for語(yǔ)句構(gòu)成循環(huán)語(yǔ)法形式for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句

循環(huán)前先求解循環(huán)條件判定每次執(zhí)行完循環(huán)體后求解C++中的for語(yǔ)句使用最為廣泛和靈活,不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全可以代替while語(yǔ)句。59說(shuō)明:(1)for語(yǔ)句的一般格式中的“表達(dá)式1”可以省略,此時(shí)應(yīng)在for語(yǔ)句之前給循環(huán)變量賦初值,但表達(dá)式1后的分號(hào)不能省。(2)表達(dá)式1可以是設(shè)置循環(huán)變量初值的賦值表達(dá)式。(3)表達(dá)式2不能省略,省略即不判斷循環(huán)條件,循環(huán)無(wú)終止地進(jìn)行下去。(4)表達(dá)式2一般是關(guān)系表達(dá)式(如i<=100)或邏輯表達(dá)式(如a<b&&x<y),但也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非零,就執(zhí)行循環(huán)體。(5)表達(dá)式3包括使循環(huán)趨于結(jié)束的操作(修正循環(huán)變量)。

//用for循環(huán)語(yǔ)句求1+2+3+…+100。#include<iostream>usingnamespacestd;intmain(){int

i,sum=0;

for(i=1;i<=100;i++)sum=sum+i;

cout<<"sum="<<sum<<endl;return0;}for(inti=1,sum=0;i<=100;i++)inti=1,sum=0;for(;i<=100;i++)60 用上述三種循環(huán)語(yǔ)句求

while語(yǔ)句:n=1;s=0;while(n<=100)

{

s=s+n;

n=n+1;

}

n=1;s=0;do{s=s+n;

n=n+1;}while(n<=100);

do-while語(yǔ)句:for(n=1,s=0;n<=100;n++)

s=s+n;

for語(yǔ)句:61(1)3種循環(huán)都可以用來(lái)處理同一問(wèn)題,一般情況下它們可以互相代替。(2)while和do-while循環(huán),是在while后面指定循環(huán)條件的,在循環(huán)體中應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句(如i++,或i=i+1等)。

for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此for語(yǔ)句的功能更強(qiáng),凡用while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。(3)用while和do-while循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在while和do-while語(yǔ)句之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。3.11.4幾種循環(huán)的比較62一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。3種循環(huán)(while循環(huán)、dowhile循環(huán)和for循環(huán))可以互相嵌套。例如,下面幾種都是合法的形式:(1)while() {┆ while() {…} }3.12循環(huán)的嵌套63(2)do{┆do{…}while();}while();(3)for(;;){┆for(;;){…}}(4)while(){┆do{…}while();┆}(5)for(;;){┆while(){…}┆}(6)do{┆for(;;){…}}while();643.13break語(yǔ)句和continue語(yǔ)句break語(yǔ)句Break語(yǔ)句用于強(qiáng)制退出循環(huán)語(yǔ)句以及switch語(yǔ)句的執(zhí)行,程序流程轉(zhuǎn)到直接執(zhí)行循環(huán)體后面的語(yǔ)句。不宜用在別處。continue語(yǔ)句結(jié)束本次循環(huán),程序流程轉(zhuǎn)去執(zhí)行對(duì)條件的判斷,如果這時(shí)循環(huán)條件為真,則開始下一次循環(huán),否則終止循環(huán)(continue語(yǔ)句不能用在switch語(yǔ)句中)。Goto語(yǔ)句大量使用goto語(yǔ)句將會(huì)使程序的流程無(wú)規(guī)律,降低程序的可讀性,程序設(shè)計(jì)中提倡少使用goto語(yǔ)句。65break和continue語(yǔ)句break語(yǔ)句使流程從循環(huán)體內(nèi)跳出循環(huán)體,提前結(jié)束循環(huán)

while(表達(dá)式1){ :

if(表達(dá)式2)break;

:}continue語(yǔ)句使流程結(jié)束本次循環(huán),進(jìn)入下次循環(huán),并不結(jié)束整個(gè)循環(huán)while(表達(dá)式1){ :

if(表達(dá)式2)continue;

:}66

圖3.18圖3.1967【例3.7】求下列級(jí)數(shù)的前m項(xiàng)和,要求其誤差小于0.00001。分析:級(jí)數(shù)的通項(xiàng)為xm/m!,

第i項(xiàng)ti與第i-1項(xiàng)ti-1之間存在如下關(guān)系:

ti=ti-1*x/iinti(1);floatt(1),e(0);while(t>1e-5){e+=t;t/=i;i++;}inti(1);floatt(1),e(0);for(;t>1e-5;){e+=t;t/=i;i++;}for(i=1,t=1,e=0;t>1e-5;e+=t,t/=i,i++);分號(hào)不能省略空語(yǔ)句68例:求部分級(jí)數(shù)和【例3.13】計(jì)算sin(x)的值,公式為:當(dāng)?shù)趎項(xiàng)的絕對(duì)值小于10-5時(shí)結(jié)束。分析:關(guān)鍵是找部分級(jí)數(shù)和的通項(xiàng),如下表示:

ti+2=-1*ti*x*x/((i+1)*(i+2))i=1,3,5,7…t=x;while(fabs(t)>=1e-5){

sinx+=t;t=-t*x*x/((i+1)*(i+2));i=i+2;}69例3.12用下面公式求π的近似值。π/4≈1-1/3+1/5-1/7+…直到最后一項(xiàng)的絕對(duì)值小于10-7為止。根據(jù)給定的算法很容易編寫程序如下:#include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;intmain(){ints=1;doublen=1,t=1,pi=0;

while((fabs(t))>1e-7){pi=pi+t;n=n+2;3.14編寫循環(huán)結(jié)構(gòu)的程序70

s=-s;t=s/n;}pi=pi*4;cout<<″pi=″<<setiosflags(ios∷fixed)<<setprecision(6)<<pi<<endl;return0;}運(yùn)行結(jié)果為pi=3.141592注意:不要把n定義為整型變量,否則在執(zhí)行“t=s/n;”時(shí),得到t的值為0(原因是兩個(gè)整數(shù)相除)。71例:3-(2)乘法口訣表//3-2-(1).cpp#include"iostream"usingnamespacestd;voidmain(){

cout<<"\t九九乘法表"<<endl;

cout<<"\t-----------"<<endl;

for(inti=1;i<=9;i++){

for(intj=1;j<=i;j++)

cout<<i<<"×"<<j<<"="<<i*j<<'\t';

cout<<endl;}}

//3-2-(2).cppfor(inti=1;i<=9;i++){

for(intj=i;j<=9;j++)cout<<i<<"×"<<j<<"="<<i*j<<'\t';

cout<<endl;}72例3.13求Fibonacci數(shù)列前40個(gè)數(shù)。這個(gè)數(shù)列有如下特點(diǎn):第1、2個(gè)數(shù)為1、1。從第3個(gè)數(shù)開始,每個(gè)數(shù)是其前面兩個(gè)數(shù)之和。即F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2(n≥3)這是一個(gè)有趣的古典數(shù)學(xué)問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子。小兔子長(zhǎng)到第3個(gè)月后每個(gè)月又生一對(duì)兔子。假設(shè)所有兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?可以從書中表3.4看出兔子數(shù)的規(guī)律。根據(jù)給出的每月兔子總數(shù)的關(guān)系,可編寫程序如下:73#include<iostream>#include<iomanip>usingnamespacestd;intmain(){longf1,f2;

inti;f1=f2=1;for(i=1;i<=20;i++){cout<<setw(12)<<f1<<setw(12)<<f2;//設(shè)備輸出字段寬度為12,每次輸出兩個(gè)數(shù)

if(i%2==0)cout<<endl;//每輸出完4個(gè)數(shù)后換行,使每行輸出4個(gè)數(shù)

f1=f1+f2;//左邊的f1代表第3個(gè)數(shù),是第1、2個(gè)數(shù)之和

f2=f2+f1;//左邊的f2代表第4個(gè)數(shù),是第2、3個(gè)數(shù)之和

}return0;}74例:3-(3)最大公約數(shù)用輾轉(zhuǎn)相除法求兩自然數(shù)的最大公約數(shù)。算法思想:(1)對(duì)于已知兩數(shù)m,n,使得m>n(2)m除以n得余數(shù)r(3)若r=0,則n為最大公約數(shù),結(jié)束;否則執(zhí)行(4)(4)m?n,n?r,再重復(fù)執(zhí)行(2)mnr1252521210輾轉(zhuǎn)相除法while((r=m%n)!=0){m=n;n=r;}cout<<n;輾轉(zhuǎn)相減法

m=m-nm>nn=n-mn>m

m、n為公約數(shù)m=nwhile(m!=n)if(m>n)m-=n;elsen-=m;75程序://輾轉(zhuǎn)相減法

3-3-(2).cpp#include"iostream.h"voidmain() {intm,n,t;

cout<<"請(qǐng)輸入

m、n:"<<endl;

cin>>m>>n;

while(m!=n){ if(m>n)m-=n; else n-=m;}

cout<<"最大公約數(shù)為"<<n<<endl;}//輾轉(zhuǎn)相除法

3-3-(1).cpp#include"iostream.h"voidmain() {intm,n,t,r;

cout<<"請(qǐng)輸入

m、n:"<<endl;

cin>>m>>n;

if(m<n){t=m;m=n;n=t;} while((r=m%n)!=0){ m=n; n=r;}

cout<<"最大公約數(shù)為"<<n<<endl;}76例3.14找出100~200間的全部素?cái)?shù)。編寫程序如下:#include<iostream>#include<cmath>#include<iomanip>usingnamespacestd;intmain(){intm,k,i,n=0;

boolprime;//定義布爾變量prime

for(m=101;m<200;m=m+2)//判別m是否為素?cái)?shù),m由101變化到200,增量為2{prime=true;//循環(huán)開始時(shí)設(shè)prime為真,即先認(rèn)為m為素?cái)?shù)

k=int(sqrt(m));//用k代表根號(hào)m的整數(shù)部分

for(i=2;i<=k;i++)//此循環(huán)作用是將m被2~根號(hào)m除,檢查是否能整除

if(m%i==0)//如果能整除,表示m不是素?cái)?shù)77{prime=false;//使prime變?yōu)榧?/p>

break;//終止執(zhí)行本循環(huán)

}if(prime)//如果m為素?cái)?shù)

{cout<<setw(5)<<m;//輸出素?cái)?shù)m,字段寬度為5n=n+1;//n用來(lái)累計(jì)輸出素?cái)?shù)的個(gè)數(shù)

}if(n%10==0)cout<<endl;//輸出10個(gè)數(shù)后換行

}

cout<<endl;//最后執(zhí)行一次換行

return0;}78例:質(zhì)數(shù)

【例3.12】求2~100之間的素?cái)?shù),并以每行顯示8個(gè)質(zhì)數(shù)。質(zhì)數(shù):除1和它本身外,不能被其他任何一個(gè)整數(shù)整除的自然數(shù)。分析:(1)判別某數(shù)m是否為素?cái)?shù)最簡(jiǎn)單的方法是:用i=2,3,…,m-1逐個(gè)判別m能否被i整除,只要有一個(gè)能整除,m不是素?cái)?shù),退出循環(huán);若都不能整除,則m是素?cái)?shù)??蛇M(jìn)一步證明:若m不能被中任一整數(shù)整除,則m為質(zhì)數(shù)。(2)每行顯示8個(gè),只要對(duì)求得的質(zhì)數(shù)計(jì)數(shù),滿8個(gè)換行。

........for(i=2;m%i!=0;i++);if(i==m)........

........k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)......79程序:#include“iostream.h”voidmain(){intm,i,countm(0);

booltag;for(m=2;m<=100;m++) {tag=false;//tag初值為false for(i=2;i<=m-1;i++) if(m%i==0)tag=true; if(tag==false) //等價(jià)于if(!tag) {cout<<m<<'\t';

countm++; if(countm%8==0)c

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論