C++語言程序設(shè)計(jì)課后答案(鄭莉第版)_第1頁
C++語言程序設(shè)計(jì)課后答案(鄭莉第版)_第2頁
C++語言程序設(shè)計(jì)課后答案(鄭莉第版)_第3頁
C++語言程序設(shè)計(jì)課后答案(鄭莉第版)_第4頁
C++語言程序設(shè)計(jì)課后答案(鄭莉第版)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章概述

1-1簡(jiǎn)述計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展歷程。

解:

迄今為止計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言、高級(jí)語言等階段,C++語

言是一種面向?qū)ο蟮木幊陶Z言,也屬于高級(jí)語言。

1-2面向?qū)ο蟮木幊陶Z言有哪些特點(diǎn)

解:

面向?qū)ο蟮木幊陶Z言與以往各種編程語言有根本的不同,它設(shè)計(jì)的出發(fā)點(diǎn)就是為了能更直接

的描述客觀世界中存在的事物以及它們之間的關(guān)系。面向?qū)ο蟮木幊陶Z言將客觀事物看作具

有屬性和行為的對(duì)象,通過抽象找出同一類對(duì)象的共同屬性(靜態(tài)特征)和行為(動(dòng)態(tài)特征),

形成類。通過類的繼承與多態(tài)可以很方便地實(shí)現(xiàn)代碼重用,大大縮短了軟件開發(fā)周期,并使

得軟件風(fēng)格統(tǒng)一。因此,面向?qū)ο蟮木幊陶Z言使程序能夠比較直接地反問題域的本來面目,

軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來進(jìn)行軟件開發(fā)。C++語言是目

前應(yīng)用最廣的面向?qū)ο蟮木幊陶Z言。

1-3什么是結(jié)構(gòu)化程序設(shè)計(jì)方法這種方法有哪些優(yōu)點(diǎn)和缺點(diǎn)

解:

結(jié)構(gòu)化程序設(shè)計(jì)的思路是:自頂向下、逐步求精;其程序結(jié)構(gòu)是按功能劃分為若干個(gè)基本模

塊;各模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和

循環(huán)三種基本結(jié)構(gòu)組成;其模塊化實(shí)現(xiàn)的具體方法是使用子程序。結(jié)構(gòu)化程序設(shè)計(jì)由于采用

了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個(gè)較復(fù)雜的程序系統(tǒng)

設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。

雖然結(jié)構(gòu)化程序設(shè)計(jì)方法具有很多的優(yōu)點(diǎn),但它仍是一種面向過程的程序設(shè)計(jì)方法,它把數(shù)

據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程都要

進(jìn)行相應(yīng)的修改,每一種相對(duì)于老問題的新方法都要帶來額外的開銷,程序的可重用性差。

由于圖形用戶界面的應(yīng)用,程序運(yùn)行由順序運(yùn)行演變?yōu)槭录?qū)動(dòng),使得軟件使用起來越來越

方便,但開發(fā)起來卻越來越困難,對(duì)這種軟件的功能很難用過程來描述和實(shí)現(xiàn),使用面向過

程的方法來開發(fā)和維護(hù)都將非常困難。

1-4什么是對(duì)象什么是面向?qū)ο蠓椒ㄟ@種方法有哪些特點(diǎn)

解:

從一般意義上講,對(duì)象是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物,它可以是有形的,也可以是無形

的。對(duì)象是構(gòu)成世界的一個(gè)獨(dú)立單位,它具有自己的靜態(tài)特征和動(dòng)態(tài)特征。面向?qū)ο蠓椒ㄖ?/p>

的對(duì)象,是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是用來構(gòu)成系統(tǒng)的一個(gè)基本單位,由一

組屬性和一組行為構(gòu)成。

面向?qū)ο蟮姆椒▽?shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體

一對(duì)象。對(duì)同類型對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行

處理。類通過一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通訊。

這樣,程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。

通過實(shí)現(xiàn)繼承與多態(tài)性,還可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方

便。

面向?qū)ο蠓椒ㄋ鶑?qiáng)調(diào)的基本原則,就是直接面對(duì)客觀存在的事物來進(jìn)行軟件開發(fā),將人們?cè)?/p>

日常生活中習(xí)慣的思維方式和表達(dá)方式應(yīng)用在軟件開發(fā)中,使軟件開發(fā)從過分專業(yè)化的方

法、規(guī)則和技巧中回到客觀世界,回到人們通常的思維。

1-5什么叫做封裝

解:

封裝是面向?qū)ο蠓椒ǖ囊粋€(gè)重要原則,就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單

位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。

1-6面向?qū)ο蟮能浖こ贪男┲饕獌?nèi)容

解:

面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用,它包括面向?qū)ο蟮姆治?/p>

(00A)、面向?qū)ο蟮脑O(shè)計(jì)(00D)、面向?qū)ο蟮木幊?OOP)、面向?qū)ο蟮臏y(cè)試(00T)和面向

對(duì)象的軟件維護(hù)(OOSM)等主要內(nèi)容。

1-7簡(jiǎn)述計(jì)算機(jī)內(nèi)部的信息可分為幾類

解:

計(jì)算機(jī)內(nèi)部的信息可以分成控制信息和數(shù)據(jù)信息二大類;控制信息可分為指令和控制字兩

類;數(shù)據(jù)信息可分為數(shù)值信息和非數(shù)值信息兩類。

1-8什么叫二進(jìn)制使用二進(jìn)制有何優(yōu)點(diǎn)和缺點(diǎn)

解:

二進(jìn)制是基數(shù)為2,每位的權(quán)是以2為底的寨的進(jìn)制,遵循逢二進(jìn)一原則,基本符號(hào)為0

和1。采用二進(jìn)制碼表示信息,有如下幾個(gè)優(yōu)點(diǎn):1.易于物理實(shí)現(xiàn);2.二進(jìn)制數(shù)運(yùn)算簡(jiǎn)單;

3.機(jī)器可靠性高;4.通用性強(qiáng)。其缺點(diǎn)是它表示數(shù)的容量較小,表示同一個(gè)數(shù),二進(jìn)制較其

他進(jìn)制需要更多的位數(shù)。

1-9請(qǐng)將以下十進(jìn)制數(shù)值轉(zhuǎn)換為二進(jìn)制和十六進(jìn)制補(bǔ)碼:

(1)2(2)9(3)93

(4)-32(5)65535(6)-1

解:

(1)(2)10=(10)2=(2)16

(2)(9)10=(1001)2=(9)16

(3)(93)10=(1011101)2=(5D)16

(4)(-32)10=()2=(E0)16

(5)(65535)10=()2=(FFFF)16

(6)(-1)10=()2=(FFFF)16

1-10請(qǐng)將以下數(shù)值轉(zhuǎn)換為十進(jìn)制:

(1)(1010)2(2)()2(3)(01011111)2

(4)(7F)16(5)(2D3E)16(6)(F10E)16

解:

(1)(1010)2=(10)10

(2)()2=(143)10

(3)(01011111)2=(24515)10

(4)(7F)16=(127)10

(5)(2D3E)16=(11582)10

(6)(F10E)16=(61710)10

1-11簡(jiǎn)要比較原碼、反碼、補(bǔ)碼等幾種編碼方法。

解:

原碼:將符號(hào)位數(shù)字化為0或1,數(shù)的絕對(duì)值與符號(hào)一起編碼,即所謂"符號(hào)——絕對(duì)值表

示"的編碼。

正數(shù)的反碼和補(bǔ)碼與原碼表示相同。

負(fù)數(shù)的反碼與原碼有如下關(guān)系:

符號(hào)位相同(仍用1表示),其余各位取反(0變1,1變0)。

補(bǔ)碼由該數(shù)反碼的最末位加1求得。

第二章C++簡(jiǎn)單程序設(shè)計(jì)

2-1C++語言有那些主要特點(diǎn)和優(yōu)點(diǎn)

解:

C++語言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C,二是支持面向?qū)ο蟮姆椒?。C++是一

個(gè)更好的C,它保持了C的簡(jiǎn)潔、高效、接近匯編語言、具有良好的可讀性和可移植性等特

點(diǎn),對(duì)C的類型系統(tǒng)進(jìn)行了改革和擴(kuò)充,因此C++比C更安全,C++的編譯系統(tǒng)能檢查出更

多的類型錯(cuò)誤。C++語言最重要的特點(diǎn)是支持面向?qū)ο蟆?/p>

2-2下列標(biāo)識(shí)符哪些是合法的

Program,,_lock,test2,3inl,?mail,A_B_C_D

解:

Program,_lock,test2,A_B_C_D是合法的標(biāo)識(shí)符,其它的不是。

>

2-3例中每條語句的作用是什么

#include<>

voidmain(void)

cout?',Hello!\nM;

cout<<MWelcometoc++!\n";

}

解:

#include<>201/4

2.201%4

3.201/

解:

1.50

2.1

3.

2-10執(zhí)行完下列語句后,a、b、c三個(gè)變量的值為多少

a=30;

b=a++;

c=++a;

解:

a:32;b:30;c:32;

2-11在一個(gè)for循環(huán)中,可以初始化多個(gè)變量嗎如何實(shí)現(xiàn)

解:

在for循環(huán)設(shè)置條件的第一個(gè)";"前,用,分隔不同的賦值表達(dá)式。

]

例如:

for(x=0,y=10;x<100;x++,y++)

2-12執(zhí)行完下列語句后,n的值為多少

intn;

for(n=0;n<100;n++)

解:

n的值為100

2-13寫一條for語句,計(jì)數(shù)條件為n從].00到200,步長為2;然后用while和do…while

語句完成同樣的循環(huán)。

解:

for循環(huán):

for(intn=100;n<=200;n+=2);

while循環(huán):

intx=100;

while(n<=200)

n+=2;

do…while循環(huán):

intn=100;

do

(

n+=2;

}while(n<=200);

2-14if(x=3)和if(x==3)這兩條語句的差別是什么

解:

語句if(x=3)把3賦給x,賦值表達(dá)式的值為true,作為if語句的條件;語句if(x=3)

首先判斷x的值是否為3,若相等條件表達(dá)式的值為ture,否則為false。

2-15什么叫做作用域什么叫做局部變量什么叫做全局變量,如何使用全局變量

解:

作用域是一個(gè)標(biāo)識(shí)符在程序正文中有效的區(qū)域。局部變量,一般來講就是具有塊作用域的變

量;全局變量,就是具有文件作用域的變量。

2-16已知x、y兩個(gè)變量,寫一條簡(jiǎn)單的if語句,把較小的的值賦給原本值較大的變量。

解:

if(x>y)

x=y;

elsen”;

?

cout?"Thesizeofashortintis:\t"<<sizeof(short)?”bytes.\nn;

cout?”Thesizeofalongintis:\tH<<sizeof(long)<<"bytes.\nH;

cout?”Thesizeofacharis:\t\tH?sizeof(char)?”bytes.\nM;

cout<<°Thesizeofafloatis:\t\tM<<sizeof(float)<<"bytes.\nH;

cout?°Thesizeofadoubleis:\tw?sizeof(double)<<"bytes.\nH;

return0;

)

程序運(yùn)行輸出:

Thesizeofanintis:4bytes.

Thesizeofashortintis:2bytes.

Thesizeofalongintis:4bytes.

Thesizeofacharis:1bytes.

Thesizeofafloatis:4bytes.

Thesizeofadoubleis:8bytes.

2-20打印ASCII碼為32~127的字符。

解:

ttinclude<>

intmain()

(

for(inti=32;i<128;i++)

cout?(char)i;

return0;

)

程序運(yùn)行輸出:

!n#$%G'()*+,./09:;<>@ABCDEFGHIJKLMNOP_QRSTUVWXYZ[\]'abcdefghijklmnopqrstuvwxy

z<|>~s

2-21運(yùn)行下面的程序,觀察其輸出,與你的設(shè)想是否相同

ttinclude<>

intmain()

(

unsignedintx;

unsignedinty=100;

unsignedintz=50;

x=y-z;

cout?"Differenceis:"<<x;

x=z-y;

cout?H\nNowdifferenceis:”?x?endl;

return0;

}

解:

程序運(yùn)行輸出:

Differenceis:50

Nowdifferenceis:46

注意,第二行的輸出并非-50,注意x、y、z的數(shù)據(jù)類型。

2-22運(yùn)行下面的程序,觀察其輸出,體會(huì)i++與++i的差別。

#include<>

intmain()

(

intmyAge=39;n";

cout<<"Youare:"<<yourAge?"yearsold\nn;

myAge++;.\n”;

cout?"Iam:"?myAge?"yearsold.\n";

cout?"Youare:"<<yourAge?”yearsold'n";

cout<<HAnotheryearpasses\n";

cout?°Iam:"?myAge++?"yearsold.\n,r;

cout<<"Youare:"?++yourAge<<"yearsold\nn;

cout?"Let'sprintitagain.\nH;

]

cout?"Iam:"?myAge?"yearsold.\n'r;

cout<<"Youare:"<<yourAge?”yearsold\n',;

return0;

}

解:

程序運(yùn)行輸出:

Iam39yearsold

Youare39yearsold

Oneyearpasses

Iam40yearsold

Youare40yearsold

Anotheryearpasses

Iam40yearsold

Youare41yearsold

Let'sprintitagain

Iam41yearsold

Youare41yearsold

2-23什么叫常量什么叫變量

解:

所謂常量是指在程序運(yùn)行的整個(gè)過程中其值始終不可改變的量,除了用文字表示常量外,也

可以為常量命名,這就是符號(hào)常量;在程序的執(zhí)行過程中其值可以變化的量稱為變量,變量

是需要用名字來標(biāo)識(shí)的。

2-24變量有哪幾種存儲(chǔ)類型

解:

變量有以下幾種存儲(chǔ)類型:

auto存儲(chǔ)類型:采用堆棧方式分配內(nèi)存空間,屬于一時(shí)性存儲(chǔ),其存儲(chǔ)空間可以被若干變

量多次覆蓋使用;

register存儲(chǔ)類型:存放在通用寄存器中;

extern存儲(chǔ)類型:在所有函數(shù)和程序段中都可引用;

static存儲(chǔ)類型:在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。

2-25寫出下列表達(dá)式的值:

1.2<3&&6<9

2.!(4<7)

3.!(3>5)||(6<2)

解:

1.true

2.false

3.true

2-26若a=1,b=2,c=3,下列各式的結(jié)果是什么

1.aIb-c

2.ab&-c

3.a&b|c

4.a|b&c

$

解:

1.-1

2.1

3.3

4.3

2-27若a=1,下列各式的結(jié)果是什么

1.!a|a

2.~a|a

3.aa

4.a?2

解:

1.1

2.-1

3.0

4.0

2-28編寫一個(gè)完整的程序,實(shí)現(xiàn)功能:向用戶提問"現(xiàn)在正在下雨嗎",提示用戶輸入Y或

N?若輸入為Y,顯示"現(xiàn)在正在下雨。若輸入為N,顯示"現(xiàn)在沒有下雨。否則繼續(xù)

提問"現(xiàn)在正在下雨嗎"

解:

源程序:

#include<>

#include<>

voidniain()

(

charflag;

while(l)

cout<<"現(xiàn)在正在下雨嗎(YesorNo):M;

cin>>flag;

if(toupper(flag)二二'Y,)

(

cout<〈"現(xiàn)在正在下雨。

break;

}

if(toupper(flag)='N')

(

cout<<"現(xiàn)在沒有下雨。";

break;

)

}

)

程序運(yùn)行輸出:

現(xiàn)在正在下雨嗎(YesNo):x

現(xiàn)在正在下雨嗎(YesorNo):l

現(xiàn)在正在下雨嗎(YesNo):q

現(xiàn)在正在下雨嗎(YesorNo):n

現(xiàn)在沒有下雨。

或:

現(xiàn)在正在下雨嗎(YesNo):y

現(xiàn)在正在下雨。

2-29編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問"你考試考了多少分(0100)\接收輸入后

判斷其等級(jí),顯示出來。規(guī)則如下:

解:

ttinclude<>

voidmain()

inti,score;

cout?”你考試考了多少分(O'lOO):";

cin?score;

if(score>100||score<0)

cout<<"分?jǐn)?shù)值必須在。到100之間!

else

(

i=score/10;

switch(i)

(

case10:

case9:

cout<<"你的成績?yōu)閮?yōu)!

break;

case8:

cout<<"你的成績?yōu)榱?!”?/p>

break;

case7:

case6:

cout?"你的成績?yōu)橹校?;

break;

default:

cout<<"你的成績?yōu)椴睿?;

)

)

)

程序運(yùn)行輸出:

你考試考了多少分(0~100):85

你的成績?yōu)榱迹?/p>

2-30(1)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示"Menu:A(dd)D(elete)S(ort)Q(uit),

Selectone:”提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、

D、S時(shí)分別提示”數(shù)據(jù)已經(jīng)增加、刪除、排序。”輸入為Q時(shí)程序結(jié)束。要求使用if-else

語句進(jìn)行判斷,用break、continue控制程序流程。

解:

#include<>

#include<>

voidmain()

charchoice,c;

while(1)

{

cout?"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:

cin>>c;

choice=toupper(c);

if(choice=='A*)

cout?"數(shù)據(jù)已經(jīng)增加."<<endl;

continue;

)

elseif(choice=='D')

(

cout<〈"數(shù)據(jù)已經(jīng)刪除."<<endl;

continue;

)

elseif(choice='S')

(

cout?"數(shù)據(jù)已經(jīng)排序."<<endl;

continue;

)

elseif(choice=='Q')

break;

)

}

程序運(yùn)行輸出:

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:a

數(shù)據(jù)已經(jīng)增加.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:d

數(shù)據(jù)已經(jīng)刪除.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:s

數(shù)據(jù)已經(jīng)排序.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:q

(2)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示"Menu:A(dd)D(elete)S(ort)Q(uit),Select

one:"提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S

時(shí)分別提示”數(shù)據(jù)已經(jīng)增加、刪除、排序?!陛斎霝镼時(shí)程序結(jié)束。要求使用Switch語句。

解:

源程序:

ttinclude<>

#include<>

voidmain()

charchoice;

while(1)

cout<<"Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:

cin?choice;

switch(toupper(choice))

(

case'A':

cout<<"數(shù)據(jù)已經(jīng)增加."<<endl;

break;

case'Dr:

cout<<"數(shù)據(jù)已經(jīng)刪除."<<endl;

break;

case'Sr:

cout<<"數(shù)據(jù)已經(jīng)排序."<<endl;

break;

case'Q':

exit(0);

break;

default:

?

}

}

)

程序運(yùn)行輸出:

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:a

數(shù)據(jù)已經(jīng)增加.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:d

數(shù)據(jù)已經(jīng)刪除.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:s

數(shù)據(jù)已經(jīng)排序.

Menu:A(dd)D(elete)S(ort)Q(uit),Selectone:q

2-31用窮舉法找出l~100間的質(zhì)數(shù),顯示出來。分別使用while,do-while,for循環(huán)語句

實(shí)現(xiàn)。

解:

源程序:

使用while循環(huán)語句:

#include<>

#include<>

voidmain()

inti,j,k,flag;

i二2;

whiled<=100)

(

flag=1;

k=sqrt(i);

J=2;

while(j<=k)

if(i%j==0)

(

flag=0;

break;

}

j++;

)

j

if(flag)

cout?i<〈"是質(zhì)數(shù)."<<endl;

i++;

}

)

使用do…while循環(huán)語句:

#include<>

#include<>

)

voidmain()

(

inti,j,k,flag;

i=2;

do{

flag=1;

k=sqrt(i);

J=2;

do(

if(i%j==0)

(

flag=0;

break;

j++;

}while(j<=k);

if(flag)

cout<<i<<"是質(zhì)數(shù),"<<endl;

i++;

}while(i<=100);

)

使用for循環(huán)語句:

#include<>

#include<>

?

voidmain()

(

inti,j,k,flag;

for(i=2;i<=100;i++)

(

flag=1;

k=sqrt(i);

for(j=2;j<=k;j++)

(

if(i%j==0)

(

flag=0;

break;

)

}

if(flag)

cout?i<<"是質(zhì)數(shù),"?endl;

}

}

程序運(yùn)行輸出:

2是質(zhì)數(shù).

3是質(zhì)數(shù).

5是質(zhì)數(shù).

7是質(zhì)數(shù).

11是質(zhì)數(shù).

13是質(zhì)數(shù).

17是質(zhì)數(shù).

19是質(zhì)數(shù).

23是質(zhì)數(shù).

29是質(zhì)數(shù).

31是質(zhì)數(shù).

37是質(zhì)數(shù).

41是質(zhì)數(shù).

43是質(zhì)數(shù).

47是質(zhì)數(shù).

53是質(zhì)數(shù).

59是質(zhì)數(shù).

61是質(zhì)數(shù).

67是質(zhì)數(shù).

71是質(zhì)數(shù).

73是質(zhì)數(shù).

79是質(zhì)數(shù).

83是質(zhì)數(shù).

89是質(zhì)數(shù).

97是質(zhì)數(shù).

2-32比較Break語句與Continue語句的不同用法。

解:

Break使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句,不能用在別

處;

continue語句結(jié)束本次循環(huán),接著開始判斷決定是否繼續(xù)執(zhí)行下一次循環(huán);

2-33定義一個(gè)表示時(shí)間的結(jié)構(gòu)體,可以精確表示年、月、日、小時(shí)、分、秒;提示用戶輸

入年、月、日、小時(shí)、分、秒的值,然后完整地顯示出來。

解:

源程序見"實(shí)驗(yàn)指導(dǎo)"部分實(shí)驗(yàn)二

2-34在程序中定義一個(gè)整型變量,賦以1~100的值,要求用戶猜這個(gè)數(shù),比較兩個(gè)數(shù)的大

小,把結(jié)果提示給用戶,直到猜對(duì)為止。分別使用while、do…while語句實(shí)現(xiàn)循環(huán)。

解:

nNumberone:";

cin>>one;

cout?"Numbertwo:";

cin>>two;

answer=Divider(one,two);

if(answer>-1)

cout?"Answer:"<<answer;

else

cout<<"Error,can'tdividebyzero!";

s

return0;

}

程序運(yùn)行輸出:

Entertwonumbers.

Numberone:8

Numbertwo:2

Answer:4

3-8編寫函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為:C=(F-32)*5/9;在主程序中提示

用戶輸入一個(gè)華氏溫度,轉(zhuǎn)化后輸出相應(yīng)的攝氏溫度。

解:

源程序見"實(shí)驗(yàn)指導(dǎo)"部分實(shí)驗(yàn)三

3-9編寫函數(shù)判斷一個(gè)數(shù)是否是質(zhì)數(shù),在主程序中實(shí)現(xiàn)輸入、輸出。

解:

ttinclude<>

ttinclude<>

intprime(inti);?endl;

else

cout?i<<"不是質(zhì)數(shù)."<<endl;

)

intprime(inti)

(

intj,k,flag;

flag=1;

k=sqrt(i);

for(j=2;j<=k;j++)

if(i%j==0)

(

flag=0;

break;

)

)

if(flag)

return1;

else

return0;

)

程序運(yùn)行輸出:

請(qǐng)輸入一個(gè)整數(shù):1151

1151是質(zhì)數(shù).

3-10編寫函數(shù)求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。

解:

源程序:

^include<>

^include<>

intfnl(inti,intj);n";

(7);

(20);

cout?”NowJackis”;

cout?()<<"yearsoldand”;

cout<<()<<"poundsweight.,r;

return0;

}

程序運(yùn)行輸出:

JackisaDogwhois2yearsoldand10poundsweight.

NowJackis7yearsold20poundsweight.

4-9設(shè)計(jì)并測(cè)試一個(gè)名為Rectangle的矩形類,其屬性為矩形的左下角與右上角兩個(gè)點(diǎn)的坐

標(biāo),能計(jì)算矩形的面積。

]

解:

源程序:

#include<>

classRectangle

(

public:

Rectangle(inttop,intleft,intbottom,intright);

^Rectangle(){}

*

intGetTopOconst{returnitsTop;}

intGetLeft()const{returnitsLeft;}

intGetBottomOconst{returnitsBottom;)

intGetRight()const{returnitsRight;}

voidSetTop(inttop){itsTop=top;}

voidSetLeft(intleft){itsLeft二left;}

voidSetBottom(intbottom){itsBottom=bottom;}

voidSetRight(intright){itsRight=right;}

intGetArea()const;

private:

intitsTop;

intitsLeft;

intitsBottom;

intitsRight;

);

Rectangle::Rectangle(inttop,intleft,intbottom,intright)

itsTop=top;

itsLeft=left;

itsBottom=bottom;

itsRight=right;

)

intRectangle::GetArea()const

(

)

intWidth二itsRight-itsLeft;

intHeight=itsTop-itsBottom;

return(Width*Height);

)

intmain()

(

RectangleMyRectangle(100,20,50,80);

intArea=();

cout<<"Area:n<<Area<<''\nu;

return0;

)

程序運(yùn)行輸出:

Area:3000

UpperLeftXCoordinate:20

4-10設(shè)計(jì)一個(gè)用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型

人員都具有的屬性:number(編號(hào))、sex(性別)、birthday(出生日期)、id(身份證號(hào))

等等。其中“出生日期”定義為一個(gè)“日期”類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息的錄入

和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、帶缺省形參值的

成員函數(shù)、聚集。

解:

本題用作實(shí)驗(yàn)四的選做題,因此不給出答案。

4-11定義一個(gè)矩形類,有長、寬兩個(gè)屬性,有成員函數(shù)計(jì)算矩形的面積

解:

^include<>

classRectangle

(

public:

Rectangle(floatlen,floatwidth)

(

Length=len;

Width=width;

}

^Rectangle(){};

floatGetAreaO{returnLength*Width;}

floatGetLengthO{returnLength;}

floatGetWidthO{returnWidth;}

private:

floatLength;

floatWidth;

);

voidmain()

(

floatlength,width;

cout?"請(qǐng)輸入矩形的長度:";

cin?length;

cout?”請(qǐng)輸入矩形的寬度:";

cin>>width;

Rectangler(length,width);

cout<<"長為"length<<"寬為"<<width<<"的矩形的面積為:"

?()?endl;

)

程序運(yùn)行輸出:

Y

請(qǐng)輸入矩形的長度:5

請(qǐng)輸入矩形的寬度:4

長為5寬為4的矩形的面積為:20

4-12定義一個(gè)“數(shù)據(jù)類型“datatype類,能處理包含字符型、整型、浮點(diǎn)型三種類型的數(shù)

據(jù),給出其構(gòu)造函數(shù)。

解:

#include<>

classdatatype(

enum{

character,

integer,

floating_point

}vartype;

union

(

charc;

inti;

floatf;

};

public:

datatype(charch){

vartype=character;

c=ch;

)

datatype(intii){

vartype二integer;

i=ii;

}

datatype(floatff){

vartype=floating_point;

f=ff;

}

voidprint();

);

voiddatatype::print(){

switch(vartype){

casecharacter:

cout<<"字符型:”《c?endl;

break;

caseinteger:

cout?"整型:M?i<<endl;

$

break;

casefloating_point:

cout?"浮點(diǎn)型:"<<f?endl;

break;

}

}

voidmain(){

datatypeA('c'),B(12),C;

>

0;

0;

0;

)

程序運(yùn)行輸出:

字符型:c

整型:12

浮點(diǎn)型:

4-13定義一個(gè)Circle類,有數(shù)據(jù)成員半徑Radius,成員函數(shù)GetAreaO,計(jì)算圓的面積,

構(gòu)造一個(gè)Circle的對(duì)象進(jìn)行測(cè)試。

解:

#include<>

classCircle

(

public:

Circle(floatradius){Radius=radius;}

"Circle(){}

)

floatGetArea(){return*Radius*Radius;}

private:

floatRadius;

);

voidmain()

(

floatradius;

cout<〈”請(qǐng)輸入圓的半徑:”;

cin>>radius;

Circlep(radius);

cout<<"半徑為"<<radius<<"的圓的面積為:n?()

?endl;

}

程序運(yùn)行輸出:

請(qǐng)輸入圓的半徑:5

半徑為5的圓的面積為:

4-14定義一個(gè)tree類,有成員ages,成員函數(shù)grow(intyears)對(duì)ages加上ycars,age()

顯示tree對(duì)象的ages的值。

解:

#include<>

classTree{

intages;

public:

Tree(intn=0);

"TreeO;

voidgrow(intyears);

voidage();

);

Tree::Tree(intn){

ages=n;

}

Tree::"TreeO{

age();

voidTree::grow(intyears){

ages+=years;

)

voidTree::age(){

cout<<"這棵樹的年齡為"<<ages<<endl;

)

voidmain()

<

(

Treet(12);

0;

(4);

}

程序運(yùn)行輸出:

這棵樹的年齡為12

這棵樹的年齡為16

)

第五章C++程序的基本結(jié)構(gòu)

5-1什么叫做作用域有哪幾種類型的作用域

解:

作用域討論的是標(biāo)識(shí)符的有效范圍,作用域是一個(gè)標(biāo)識(shí)符在程序正文中有效的區(qū)域。C++的

作用域分為函數(shù)原形作用域、塊作用域(局部作用域)、類作用域和文件作用域.

5-2什么叫做可見性可見性的一般規(guī)則是什么

解:

可見性是標(biāo)識(shí)符是否可以引用的問題;

可見性的一般規(guī)則是:標(biāo)識(shí)符要聲明在前,引用在后,在同一作用域中,不能聲明同名的標(biāo)

識(shí)符。對(duì)于在不同的作用域聲明的標(biāo)識(shí)符,遵循的原則是:若有兩個(gè)或多個(gè)具有包含關(guān)系的

作用域,外層聲明的標(biāo)識(shí)符如果在內(nèi)層沒有聲明同名標(biāo)識(shí)符時(shí)仍可見,如果內(nèi)層聲明了同名

標(biāo)識(shí)符則外層標(biāo)識(shí)符不可見。

5-3下面的程序的運(yùn)行結(jié)果是什么,實(shí)際運(yùn)行一下,看看與你的設(shè)想有何不同。

^include<>

voidmyFunctionO;

intx=5,y=7;

intmain()

(

cout<<"xfrommain:"?x<<"\n";

cout?"yfrommain:"?y?"\n\n";

myFunctionO;

cout<<"BackfrommyFunction!\n\nn;

cout?"xfrommain:"?x?"\n";

cout?”yfrommain:"?y?"\n";

return0;

)

voidmyFunctionO

inty=10;

cout?”xfrommyFunction:"?x?"\rT;

cout<<"yfrommyFunction:"<<y<<"\n\n";

)

解:

程序運(yùn)行輸出:

xfrommain:5

yfrommain:7

xfrommyFunction:5

yfrommyFunction:10

BackfrommyFunction!

xfrommain:5

yfrommain:7

5-4假設(shè)有兩個(gè)無關(guān)系的類Engine和Fuel,使用時(shí),怎樣允許Fuel成員訪問Engine中的

私有和保護(hù)的成員

解:

源程序:

classfuel;

classengine

(

friendclassfuel;

private;

intpowerlevel;

public;

engine(){powerLevel=0;}

voidengine_fn(fuel&f);

);

classfuel

(

friendclassengine;

private;

intfuelLevel;

public:

fuel(){fuelLevel=0;}

voidfuel_fn(engine&e);

):

5-5什么叫做靜態(tài)數(shù)據(jù)成員它有何特點(diǎn)

解:

類的靜態(tài)數(shù)據(jù)成員是類的數(shù)據(jù)成員的一種特例,采用static關(guān)鍵字來聲明。對(duì)于美的普通

數(shù)據(jù)成員,每一個(gè)類的對(duì)象都擁有一個(gè)拷貝,就是說每個(gè)對(duì)象的同名數(shù)據(jù)成員可以分別存儲(chǔ)

不同的數(shù)值,這也是保證對(duì)象擁有自身區(qū)別于其它對(duì)象的特征的需要,但是靜態(tài)數(shù)據(jù)成員,

每個(gè)類只要一個(gè)拷貝,由所有該類的對(duì)象共同維護(hù)和使用,這個(gè)共同維護(hù)、使用也就實(shí)現(xiàn)了

同一類的不同對(duì)象之間的數(shù)據(jù)共享。

%

5-6什么叫做靜態(tài)函數(shù)成員它有何特點(diǎn)

解:

使用static關(guān)鍵字聲明的函數(shù)成員是靜態(tài)的,靜態(tài)函數(shù)成員屬于整個(gè)類,同一個(gè)類的所有

對(duì)象共同維護(hù),為這些對(duì)象所共享。靜態(tài)函數(shù)成員具有以下兩個(gè)方面的好處,一是由于靜態(tài)

成員函數(shù)只能直接訪問同一個(gè)類的靜態(tài)數(shù)據(jù)成員,可以保證不會(huì)對(duì)該類的其余數(shù)據(jù)成員造成

負(fù)面影響;二是同一個(gè)類只維護(hù)一個(gè)靜態(tài)函數(shù)成員的拷貝,節(jié)約了系統(tǒng)的開銷,提高程序的

運(yùn)行效率。

5-7定義一個(gè)Cat類,擁有靜態(tài)數(shù)據(jù)成員HowManyCats,記錄Cat的個(gè)體數(shù)目;靜態(tài)成員函

數(shù)GetHowMany(),存取HowManyCats。設(shè)計(jì)程序測(cè)試這個(gè)類,體會(huì)靜態(tài)數(shù)據(jù)成員和靜態(tài)成

員函數(shù)的用法。

解:

源程序:

#include<>

classCat

(

public:

Cat(intage):itsAge(age){HowManyCats++;}

virtual~Cat(){HowManyCats—;}

virtualintGetAge(){returnitsAge;}

virtualvoidSetAge(intage){itsAge=age;}

staticintGetHowMany(){returnHowManyCats;}

private:

intitsAge;

staticintHowManyCats;

);

intCat::HowManyCats=0;

voidTelepathicFunctionO;

intmain()

constintMaxCats=5;

Cat*CatHouse[MaxCats];inti;

for(i=0;i<MaxCats;i++)

(

CatHouseti]=newCat(i);

TelepathicFunction();

}

for(i=0;i<MaxCats;i++)

deleteCatHouse[i];

TelepathicFunction();

)

return0;

}

voidTelepathicFunction()

(

cout?"Thereare"?Cat::GetHowMany()?"catsalive!\nM;

}

程序運(yùn)行輸出:

Thereare1catsalive!

Thereare2catsalive!

Thereare3catsalive!

Thereare4catsalive!

Thereare5catsalive!

Thereare4catsalive!

Thereare3catsalive!

Thereare2catsalive!

Thereare1catsalive!

Thoreare0catsalive!

5-8什么叫做友元函數(shù)什么叫做友元類

解:

友元函數(shù)是使用friend關(guān)鍵字聲明的函數(shù),它可以訪問相應(yīng)類的保護(hù)成員和私有成員。友

元類是使用friend關(guān)鍵字聲明的類,它的所有成員函數(shù)都是相應(yīng)類的友元函數(shù)。

5-9如果類A是類B的友元,類B是類C的友元,類D是類A的派生類,那么類B是類A

的友元嗎類C是類A的友元嗎類D是類B的友元嗎

解:

類B不是類A的友元,友元關(guān)系不具有交換性;

類C不是類A的友元,友元關(guān)系不具有傳遞性;

類D不是類B的友元,友元關(guān)系不能被繼承。

5-10靜態(tài)成員變量可以為私有的嗎聲明一個(gè)私有的靜態(tài)整型成員變量。

解:

可以,例如:

private:

staticinta;

5-11在一個(gè)文件中定義一個(gè)全局變量n,主函數(shù)main。,在另一個(gè)文件中定義函數(shù)fnl(),

在main。中對(duì)n賦值,再調(diào)用fnl(),在fnl()中也對(duì)n賦值,顯示n最后的值。

解:

#include<>

#include

intn;

voidmain()

(

n=20;

fnl();

cout?"n的值為"<<n;

)

.\ntt;}

private:

myColoritsColor;

};

Mammal::Mammal():

itsAge(l),

itsWeight(5)

(

cout?°Mammalconstructor...\n,f;

}

Mammal::^Mammal()

(

cout?HMammaldestructor...\nn;

)

Dog::Dog():itsColor(WHITE)

(

cout?°Dogconstructor...\nM;

}

Dog::"Dog()

(

cout<<"Dogdestructor...\nn;

}

intmain()

DogJack;

0;

0;

cout<<"Jackis"<<()<<"yearsold\n,r;

return0;

)

程序運(yùn)行輸出:

Mammalconstructor...

Dogconstructor...

Mammalsound!

Tailwagging...

Fidois1yearsold

Dogdestructor...

Mammaldestructor...

7-7定義一個(gè)基類,構(gòu)造其派生類,在構(gòu)造函數(shù)中輸出提示信息,觀察構(gòu)造函數(shù)的執(zhí)行情況。

解:

#include<>

classBaseClass

i

(

public:

BaseClass();

};

BaseClass::BaseClass()

(

cout<<"構(gòu)造基類對(duì)象!"<<endl;

}

classDerivedClass:publicBaseClass

(

public:

DerivedClass();

};

DerivedClass::DerivedClass0

(

cout<<"構(gòu)造派生類對(duì)象!"?endl;

)

voidmain()

DerivedClassd;

)

程序運(yùn)行輸出:

構(gòu)造基類對(duì)象!

構(gòu)造派生類對(duì)象!

7-8定義一個(gè)Document類,有name成員變量,從Document派生出Book類,增加PageCount

變量。

解:

#include<>

#include<>

classDocument

(

public:

Document(){};

Document(char*name);

char*Name;voidPrintNameOf0;};

Document::Document(char*name)

(

Name=newchartstrlen(name)+1];

strcpy(Name,name);

);

voidDocument::PrintNameOf0

{

cout?Name?endl;

)

classBook:publicDocument

(

public:

Book(char*name,longpagecount);

voidPrintNameOf();

private:

longPageCount;

};

Book::Book(char*name,longpagecount):Document(name)

(

PageCount=pagecount;

)

voidBook::PrintNameOf()

cout?"Nameofbook:";

Document::PrintNameOf();

)

voidmain()

(

Documenta('rDocumentl'*);

Bookb("Book1”,100);

0;

}

程序運(yùn)行輸出:

Nameofbook:Bookl

7-9定義基類Base,有兩個(gè)共有成員函數(shù)fnl()、fn2(),私有派生出Derived類,如果想

在Derived類的對(duì)象中使用基類函數(shù)fnl(),應(yīng)怎么辦

解:

classBase

(

>

public:

intfnl()const{return1;)

intfn2()const{return2;}

);

classDerived:privateBase

(

public:

intfnl(){returnBase::fnl();};

intfn2(){returnBase::fn20;};

};

voidmain()

(

Deriveda;

0;

)

7-10定義object類,有weight屬性及相應(yīng)的操作函數(shù),由此派生出box類,增加Height

和width屬性及相應(yīng)的操作函數(shù),聲明一個(gè)box對(duì)象,觀察構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。

解:

#include<>

classobject

(

private:

intWeight;

public:

object()

cout?"構(gòu)造object對(duì)象"?endl;

Weight=0;

}

intGetWeight(){returnWeight;)

voidSetWeight(intn){Weight=n;}

"object(){cout?"析構(gòu)object對(duì)象"?endl;)

};

classbox:publicobject

(

private:

intHeight,Width;

public:

box()

(

cout?"構(gòu)造box對(duì)象"?endl;

Height=Width=0;

}

intGetHeight(){returnHeight;)

voidSetHeight(intn){Height=n;}

intGetWidthO{returnWidth;)

voidSetWidth(intn){Width=n;}

"box(){cout?"析構(gòu)box對(duì)象"<<endl;)

);

voidmain()

(

boxa;

)

程序運(yùn)行輸出:

構(gòu)造object對(duì)象

構(gòu)造box對(duì)象

析構(gòu)box對(duì)象

]

析構(gòu)object對(duì)象

7-11定義一個(gè)基類BaseClass,從它派生出類DerivedClass,BaseClass有成員函數(shù)fnl()、

fn2(),DerivedClass也有成員函數(shù)fnl()、fn2(),在主程序中定義一個(gè)DerivedClass的

對(duì)象,分別用DerivedClass的對(duì)象以及BaseClass和DerivedClass的指針來調(diào)用fnl()、

fn2(),觀察運(yùn)行結(jié)果。

解:

#include<>

classBaseClass

(

public:

)

voidfnl();

voidfn2();

);

voidBaseClass::fnl()

(

cout<〈"調(diào)用基類的函數(shù)fnl()"<<endl;

}

voidBaseClass::fn2()

(

cout?"調(diào)用基類的函數(shù)fn2()"endl;

)

classDerivedClass:publicBaseClass

(

public:

voidfnl();

voidfn2();

);

voidDerivedClass::fnl()

(

cout<〈"調(diào)用派生類的函數(shù)fnl()"<<endl;

}

voidDerivedClass::fn2()

(

cout<<"調(diào)用派生類的函數(shù)fn2()"<<endl;

(

}

voidniain()

(

DerivedClassaDerivedClass;

DerivedClass*pDerivedClass=&aDerivedClass;

BaseClass*pBaseClass=&aDerivedClass;

0;

0;

pBaseClass->fnl();

pBaseClass->fn2();

pDerivedClass->fnl();

pDerivedClass->fn2();

)

程序運(yùn)行輸出:

調(diào)用派生類的函數(shù)fnl()

調(diào)用派生類的函數(shù)fn2()

調(diào)用基類的函數(shù)fnl()

調(diào)用基類的函數(shù)fn2()

調(diào)用派生類的函數(shù)fnl()

調(diào)用派生類的函數(shù)fn2()

7-12為例9T的吹泡泡程序加一版權(quán)(About)對(duì)話框。

然后修改例9-1的程序,加入以下內(nèi)容:

程序:

1.在程序首部加上文件包含命令

%

#include

2.在框架窗口類之前加入從CDialog類派生的對(duì)話框類:

etValue(name,point,height,

color,escapement);

m_nCount++;

Invalidate0;

)

)

}

howSignal(&dc);

)

etValue(name,point,height,color,

escapement);

m_nCount++;

Invalidate();

)

>

)

howSignal(&dc);

)

etValue(name,point,m_colorSignal,

escapement,&m_fontSignal);

m_nCount++;

Invalidate();

}

)

howSignal(&dc);

eft,

pDoc->GetBubble(i).top,

pDoc->Get.Bubble(i).right,

pDoc->GetBubble(i).bottom);

-=nHeight;

pDC->TextOut,,str);

)

dy=m_pointList[i],y-y;

m_pointList[i].x=(int)(x+dx**;

m_pointList[i],y=(int)(y+dx*+dy*;

}

=DELTA;

pointList[0].y=DELTA;

pointList[l].x=DELTA+CHIP_WIDTH;

pointList[1].y=DELTA;

pointList[2].x=DELTA+CHIP_WIDTH/2;

pointList[2].y=DELTA+CHIP_WIDTH/2;

m_chipList[0].SetChip(1,pointList,3);

pointList[0],x=DELTA;

pointList[0].y=DELTA;

pointList[1].x=DELTA;

pointList[1].y=DELTA+CHIP_WIDTH;

pointList[2].x=DELTA+CHIP_WIDTH/2;

pointList[2].y=DELTA+CHIP_WIDTH/2;

m_chipList[1].SetChip(2,pointList,3);

pointList[0].x=DELTA+CHIP_WIDTH;

pointList[0].y=DELTA;

pointList[l].x=DELTA+CHIP_WIDTH;

pointList[l].y=DELTA+CHIP_WIDTH/2;

pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].y=DELTA+CHIP_WIDTH/4;

m_chipList[2].SetChip(3,pointList,3);

pointListM.x=DELTA+CHIP_WIDTH/2;

pointList[0].y=DELTA+CHIP_WIDTH/2;

pointList[l].x=DELTA+CHIPJVIDTH/4;

pointList[l].y=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;

m_chipList[3].SetChip(4,pointList,3);

pointList[0].x=DELTA+CHIP_WIDTH;

pointList[0].y=DELTA+CHIP_WIDTH/2;

pointList[l].x=DELTA+CHIP_WIDTH;

J

pointListEU.y=DELTA+CHIP_WIDTH;

pointList[2],x=DELTA+CHIP_WIDTH/2;

pointList[2].y=DELTA+CHIP_WIDTH;

m_chipList[4].SetChip(5,pointList,3);

pointList[0].x=DELTA+(CHIP_WIDTH*3)/4;

pointList[0].y=DELTA+CHIP_WIDTH/4;

pointList[l].x=DELTA+CHIP_WIDTH/2;

pointList[l].y=DELTA+CHIP_WIDTH/2;

pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;

pointList[3].x=DELTA+CHIP_WIDTH;

pointList[3].y=DELTA+CHIP_WIDTH/2;

m_chipList[5].SetChip(6,pointList,4);

pointList[0].x=DELTA;

pointList[0].y=DELTA+CHIP_WIDTH;

pointList[l].x=DELTA+CHIP_WIDTH/4;

[

pointList[l].y=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;

pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;

pointLis-t[3].x=DELTA+CHIPJVIDTH/2;pointList[3].y=DELTA+CHIP_WIDTH;

m_chipList[6].SetChip(7,pointList,4);erialize(ar);

)

rawChip(pDC);

}

tlnChip(point))

SetCapture();

m_bCaptured=TRUE;

m_pointMouse=point;

m_nCurrIndex=i;

break;

}

etRect());

CSizeoffset(point-m_pointMouse);

pDoc->m_chipList[m_nCurrIndex].MoveTo(offset);

InvalidateRect(pDoc->m_chipList[m_nCurrIndex].GetRect());

m_pointMouse=point;

pDoc->SetModifiedFlag();

)

}

tlnChip(point))

(

InvalidateRe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論