




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、c+程序設(shè)計(jì)習(xí)題解答第一篇:1-4.集成開(kāi)發(fā)環(huán)境中有哪2種類型的窗口?這2種類型的窗口相互之間如何進(jìn)行轉(zhuǎn)換?答: 集成開(kāi)發(fā)環(huán)境中的窗口有兩種:浮動(dòng)窗口和停靠窗口。當(dāng)拖動(dòng)一個(gè)固定窗口任何邊緣未使用部分至屏幕中間位置,該固定窗口就轉(zhuǎn)換成浮動(dòng)窗口。反之,當(dāng)拖動(dòng)一個(gè)浮動(dòng)窗口的標(biāo)題欄至開(kāi)發(fā)環(huán)境主窗口的任何邊緣上,該浮動(dòng)窗口就轉(zhuǎn)換成固定窗口。1-10 windows資源主要包括哪些?答: 菜單、工具欄、對(duì)話框、圖標(biāo)、光標(biāo)、位圖、快捷鍵、串表菜單編輯器、工具欄編輯器、 對(duì)話框編輯器、圖標(biāo)編輯器、光標(biāo)編輯器、位圖編輯器、快捷鍵編輯器、串表編輯器1-11工具欄編輯器和快捷鍵編輯器的打開(kāi)和使用方法?答: 工具欄編
2、輯器: 工具欄編輯器實(shí)際上也是一個(gè)圖象編輯器,主要用于創(chuàng)建新的工具欄按鈕。在項(xiàng)目工作區(qū)resourceview頁(yè)面打開(kāi)toolbar文件夾,雙擊其中的工具欄資源,出現(xiàn)工具欄編輯器和graphics工具欄、colors工具欄,單擊最后的空白項(xiàng)可添加一個(gè)新的按鈕。鼠標(biāo)按下并拖動(dòng)某個(gè)工具欄按鈕,可將該按鈕刪除。快捷鍵編輯器: 在項(xiàng)目工作區(qū)resourceview頁(yè)面打開(kāi)accelerator文件夾,雙擊其中的快捷鍵資源出現(xiàn)快捷鍵編輯器。雙擊快捷鍵列表項(xiàng),打開(kāi)accel properties快捷鍵屬性對(duì)話框編輯快捷鍵。也可單擊鼠標(biāo)右鍵,在快鍵菜單中選擇properties命令,進(jìn)入快捷鍵屬性對(duì)話框。要
3、添加快捷鍵,雙擊編輯器中快捷鍵列表底部的空白行,在隨后出現(xiàn)的快捷鍵屬性對(duì)話框中選擇需要添加快捷鍵的菜單項(xiàng)標(biāo)識(shí)id,然后設(shè)置快捷鍵和組合鍵。要?jiǎng)h除一個(gè)快捷鍵,單擊該快捷鍵,然后按delete鍵。1-13 visual c+6.0主要有哪幾個(gè)主菜單?分別完成哪類功能?答: file、edit、view、insert、project、build(debug)、tools、window和help等9個(gè)主菜單file主菜單包括一些與文件有關(guān)的操作命令,如新建、打開(kāi)、關(guān)閉、保存和顯示最近的項(xiàng)目、文件、工作區(qū)等。edit主菜單主要包括一些與文件編輯有關(guān)的操作命令,如復(fù)制、粘貼、剪切、查找、替換、設(shè)置、刪除和
4、查看斷點(diǎn)等。view主菜單中的菜單命令項(xiàng)主要用于改變窗口的顯示方式和激活指定的窗口,如激活classwizard類向?qū)Аorkspace工作區(qū)窗口、output輸出窗口和debug windows調(diào)試窗口。view主菜單中的菜單命令項(xiàng)主要用于改變窗口的顯示方式和激活指定的窗口,如激活classwizard類向?qū)Аorkspace工作區(qū)窗口、output輸出窗口和debug windows調(diào)試窗口。insert主菜單主要包括一些與添加有關(guān)的操作命令,如添加新類、資源和源代碼文件等。build主菜單主要包括一些與建立可執(zhí)行程序有關(guān)的操作命令,如編譯、鏈接和調(diào)試程序等。tools主菜單中的菜單命
5、令項(xiàng)主要用于啟動(dòng)visual studio實(shí)用工具、定制visual c+集成開(kāi)發(fā)環(huán)境界面,如利用customize菜單命令設(shè)置某個(gè)主菜單中的菜單項(xiàng)(該主菜單要與customize對(duì)話框同時(shí)打開(kāi))、顯示或關(guān)閉工具欄和修改命令的快捷鍵。window主菜單主要包括一些與窗口顯示有關(guān)的操作命令,如切換窗口、split分離窗口及設(shè)置停靠窗口。1-14 在默認(rèn)情況下, visual c+6.0一般顯示哪幾個(gè)工具欄?如何顯示或隱藏一個(gè)工具欄?答: standard工具欄 build minibar工具欄 wizardbar工具欄在菜單欄或工具欄的空白處單擊鼠標(biāo)右鍵,然后在一個(gè)彈出式菜單中選擇要顯示或隱藏的
6、工具欄。1-15 standard工具欄主要完成什么功能?答: standard工具欄中主要包括一些與文件和編輯有關(guān)的常用操作命令,每個(gè)按鈕的功能與file、edit和view等主菜單中某個(gè)菜單項(xiàng)對(duì)應(yīng)。2-2 c+語(yǔ)言一般采用什么方法進(jìn)行數(shù)據(jù)的輸入和輸出?請(qǐng)舉例說(shuō)明?答: c+程序可以包含標(biāo)準(zhǔn)輸入、輸出流的頭文件iostream.h,輸入、輸出可以通過(guò)使用標(biāo)準(zhǔn)輸入、輸出流對(duì)象來(lái)完成1. cout<<“輸出內(nèi)容”<<; / cout為標(biāo)準(zhǔn)輸出流對(duì)象(默認(rèn)輸出到顯示器)/輸出內(nèi)容為字符串,字符和表達(dá)式2. cin >> 表達(dá)式1 >>表達(dá)式2 . &
7、gt;> 表達(dá)式n;/ cin為標(biāo)準(zhǔn)輸入流對(duì)象(默認(rèn)從鍵盤輸入),輸入的賦給表達(dá)式.注意輸入的值/要與表達(dá)式類型一致./從鍵盤輸入以空格隔開(kāi).3. 輸入輸出函數(shù)聲明:#include <iostream.h>2-3 請(qǐng)簡(jiǎn)述利用visual c+集成開(kāi)發(fā)環(huán)境編制c+程序的幾個(gè)步驟?答: (1)啟動(dòng)visual c+,執(zhí)行“file|new”菜單命令,在new對(duì)話框的projects頁(yè)面左側(cè)項(xiàng)目類型列表中選擇win32 console application項(xiàng),在對(duì)話框右側(cè)的location和project name框中分別輸入路徑和項(xiàng)目名稱,單擊ok按鈕。(2)進(jìn)入win32
8、console application step-1 of 1對(duì)話框,選擇an empty project項(xiàng),單擊finish按鈕。最后在new project information對(duì)話框單擊ok按鈕完成項(xiàng)目的建立。(3)建立和編輯c+源程序文件。執(zhí)行“project|add to project|new”菜單命令,在new對(duì)話框的file頁(yè)面選擇c+ source file項(xiàng),在file框中填入c+源文件名,確認(rèn)選擇add to project,單擊ok按鈕將打開(kāi)文本編輯器。輸入并編輯c+源程序代碼。(4)建立可執(zhí)行程序。執(zhí)行“build|build”菜單命令(快捷鍵f7)即可建立可執(zhí)行程
9、序,若程序有語(yǔ)法錯(cuò)誤,則在屏幕下方的輸出窗口中顯示錯(cuò)誤信息。(5)執(zhí)行“build|execute”菜單命令即可在偽dos狀態(tài)下運(yùn)行程序,也可進(jìn)入dos狀態(tài)后運(yùn)行已建立的程序。 也可采用另一種簡(jiǎn)單的方法編寫c+程序,即執(zhí)行“file|new|files|c+ source file”菜單命令直接創(chuàng)建一個(gè)c+源文件,在執(zhí)行build命令時(shí)再建立項(xiàng)目工作區(qū)。第二篇:2-24 什么是生存期?說(shuō)明變量的生存期與作用域有何區(qū)別?答: 生存期是指變量的生命周期,變量的作用域與生存期是密切相關(guān)的。區(qū)別: 變量的作用域是指一個(gè)范圍,是指變量在源程序中的一段靜態(tài)區(qū)域,作用域是從代碼空間的角度考慮問(wèn)題。變量的生存
10、期是從時(shí)間的角度考慮問(wèn)題,是指在程序執(zhí)行的過(guò)程中一個(gè)變量從創(chuàng)建到被撤消的一段動(dòng)態(tài)時(shí)間。當(dāng)系統(tǒng)為變量分配內(nèi)存空間后,變量即開(kāi)始處于生存期,當(dāng)變量所占用的內(nèi)存空間被釋放,這個(gè)變量即結(jié)束了生存期。2-26 什么是存儲(chǔ)類型?請(qǐng)說(shuō)出各種存儲(chǔ)類型變量的特性?答: 存儲(chǔ)類型說(shuō)明了變量在內(nèi)存中存儲(chǔ)的方式,它決定了變量的作用域和生存期。 變量的存儲(chǔ)類型有以下四種:auto、register、extern和static。l auto和register用于聲明內(nèi)部變量,auto變量存儲(chǔ)在棧中,register變量存儲(chǔ)寄存器中。l extern用于聲明外部變量,static用于聲明內(nèi)部變量或外部變量,extern變量
11、和static變量是存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)中。l 當(dāng)聲明變量時(shí)未指定存儲(chǔ)類型,則內(nèi)部變量的存儲(chǔ)類型隱含為auto類型,外部變量的存儲(chǔ)類型隱含為extern類型。2-38 寫出下列程序運(yùn)行的后輸出結(jié)果?答: max1=3max2=22-39 寫出下列程序運(yùn)行的后輸出結(jié)果?答: 110120130140150160第三篇:2-41 分析下列程序中的錯(cuò)誤,并改正#include <iostream.h>#include <stdlib.h>void main()int a,*pn=&a;/設(shè)定指針變量,沒(méi)有賦初值,可改為: int a,*pn=&a;cin>&
12、gt;*pn;int *arr = new int*pn;for (int i = 0;i<*pn;i+) arri = i+1; for (i = 0;i<*pn;i+) cout<<arri<<endl; delete arr;/釋放動(dòng)態(tài)數(shù)組所占空間,就用 delete arr;2-44. 請(qǐng)寫出編譯預(yù)處理后所得到的源代碼.并給出程序運(yùn)行結(jié)果?#include <iostream.h>#define max 100void main()cout<<”this part is complied.”;結(jié)果: this part is
13、complied.3-2 什么是對(duì)象?什么是類?簡(jiǎn)述對(duì)象與類之間的關(guān)系?答: 在計(jì)算機(jī)科學(xué)中將這些現(xiàn)實(shí)世界中的事物稱之為對(duì)象。對(duì)象是包含現(xiàn)實(shí)世界中事物特征的抽象實(shí)體,它反映了系統(tǒng)為之保存信息和與之交互的方法。類是具有相同數(shù)據(jù)結(jié)構(gòu)(屬性)和相同操作功能(行為)的對(duì)象的集合,它規(guī)定了這些對(duì)象的公共屬性和行為方法。類 = 數(shù)據(jù)結(jié)構(gòu)+ 對(duì)這些數(shù)據(jù)進(jìn)行操作的函數(shù)類是對(duì)象的模板,對(duì)象是類的一個(gè)實(shí)例.3-6 在c+中如何定義類?如何實(shí)現(xiàn)定義的類?如何利用類聲明對(duì)象?答: class <類名>private:<私有數(shù)據(jù)成員和私有成員函數(shù)的聲明列表>public:<公有數(shù)據(jù)成員和公
14、有成員函數(shù)的聲明列表>protected:<保護(hù)數(shù)據(jù)成員和保護(hù)成員函數(shù)的聲明列表>類的實(shí)現(xiàn)實(shí)質(zhì)上是類的成員函數(shù)的實(shí)現(xiàn),即定義類的成員函數(shù)。 定義并實(shí)現(xiàn)了類,就可以利用定義好的類來(lái)聲明對(duì)象,即創(chuàng)建對(duì)象。對(duì)象是類的一個(gè)實(shí)例,聲明對(duì)象的形式與聲明普通變量類似,例如:time t1, today ;time *pt1=&t1;2-40 寫出下列程序運(yùn)行的后輸出結(jié)果?答:14:52:66第四篇:3-7 類的成員的訪問(wèn)控制權(quán)限有哪幾種?請(qǐng)說(shuō)明它們分別有什么作用?答: 3種:private、public和protected稱為訪問(wèn)權(quán)限控制符.區(qū)別:private屬性表示數(shù)據(jù)成員和成
15、員函數(shù)是類的私有成員,它們只允許被本類的成員函數(shù)訪問(wèn)或調(diào)用.public屬性表示數(shù)據(jù)成員和成員函數(shù)是類的公有成員,它們?cè)试S被本類或其它類的成員函數(shù)(通過(guò)對(duì)象)訪問(wèn)或調(diào)用,是類的外部接口3-8 何謂構(gòu)造函數(shù)?何謂析構(gòu)函數(shù)?請(qǐng)說(shuō)明其作用?答: 構(gòu)造函數(shù)是一種特殊的成員函數(shù),它是在創(chuàng)建對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用的成員函數(shù),其作用是進(jìn)行對(duì)象的初始化工作.析構(gòu)函數(shù)也是一種特殊的成員函數(shù),它是在對(duì)象生存期即將結(jié)束時(shí)系統(tǒng)自動(dòng)調(diào)用的成員函數(shù)。其作用是在對(duì)象被刪除前做一些清理或數(shù)據(jù)保存工作.3-11 什么是this指針?它有什么作用?答: this指針是一個(gè)特殊的隱藏在成員函數(shù)中的指針,用于指向調(diào)用成員函數(shù)的對(duì)象。3-
16、12 何謂友元函數(shù)?何謂友元類?簡(jiǎn)述友元函數(shù)的定義和使用方法?答: c+提供了一種函數(shù),它雖然不是一個(gè)類的成員函數(shù),但可以象成員函數(shù)一樣訪問(wèn)該類的所有成員,包括私有成員和保護(hù)成員。這種函數(shù)稱為友元(friend)函數(shù)。 一個(gè)類可以聲明另一個(gè)類為其友元類,這個(gè)友元類的所有成員函數(shù)都可以訪問(wèn)聲明其為友元的類的所有成員。一個(gè)函數(shù)要成為一個(gè)類的友員函數(shù),需要在類的定義中聲明該函數(shù),并在函數(shù)聲明的前面加上關(guān)鍵字friend。 友元函數(shù)本身的定義沒(méi)有什么特殊要求,可以是一般函數(shù),也可以是另一個(gè)類的成員函數(shù)。為了能夠在友元函數(shù)中訪問(wèn)并設(shè)置類的私有數(shù)據(jù)成員,一個(gè)類的友元函數(shù)一般將該類的對(duì)象或引用作為函數(shù)參數(shù)。
17、3-13 類的派生方式有哪3種?請(qǐng)述這3種方式的特點(diǎn)?答: 派生方式?jīng)Q定了基類的成員在派生類中的訪問(wèn)權(quán)限。派生方式共有三種:public、private和protected(缺省值為private)。 采用public派生,基類成員的訪問(wèn)權(quán)限在派生類中保持不變,即基類所有的公有或保護(hù)成員在派生類中仍為公有或保護(hù)成員。public派生最常用。(1) 可以在派生類的成員函數(shù)中訪問(wèn)基類的非私有成員;(2) 可通過(guò)派生類的對(duì)象直接訪問(wèn)基類的公有成員。采用private私有派生,基類所有的公有和保護(hù)成員在派生類中都成為私有成員,只允許在派生類的成員函數(shù)中訪問(wèn)基類的非私有成員。private派生很少使用。
18、采用protected保護(hù)派生,基類所有的公有和保護(hù)成員在派生類中都成為保護(hù)成員,只允許在派生類的成員函數(shù)和該派生類的派生類的成員函數(shù)中訪問(wèn)基類的非私有成員。 3-39 程序改錯(cuò).(1)答:去掉static,person:getid()改為person1.getid()(2)答:派生類構(gòu)造函數(shù)增加 :point(a,b)(3)答: 去掉const第五篇:3-16 派生類構(gòu)造函數(shù)和基類構(gòu)造函數(shù)之間有什么關(guān)系?派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)有哪2種方式?它們的調(diào)用順序是怎樣的?答: 基類的構(gòu)造函數(shù)不能被繼承,派生類中對(duì)基類原有數(shù)據(jù)成員的初始化,必須由基類構(gòu)造函數(shù)完成,而對(duì)派生類新增成員的初始化由派
19、生類的構(gòu)造函數(shù)進(jìn)行.當(dāng)派生類對(duì)象的生存期結(jié)束時(shí),首先調(diào)用派生類的析構(gòu)函數(shù),然后調(diào)用基類的析構(gòu)函數(shù)。 隱式調(diào)用和顯式調(diào)用兩種方式:先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)3-24 什么是虛函數(shù)?虛函數(shù)與成員函數(shù)的覆蓋有什么異同?答: 如果想通過(guò)基類指針調(diào)用派生類中覆蓋的成員函數(shù),只有使用虛函數(shù)。 要將一個(gè)成員函數(shù)聲明為虛函數(shù),只需在定義基類時(shí)在成員函數(shù)聲明的開(kāi)始位置加上關(guān)鍵字virtual. 虛函數(shù)采用動(dòng)態(tài)聯(lián)編,而成員函數(shù)覆蓋則靜態(tài)聯(lián)編3-27 什么是抽象基類?什么是純虛函數(shù)?在c+中如何定義它們?答: 抽象類是類的一些行為(成員函數(shù))沒(méi)有給出具體定義的類,即純粹的一種抽象。 在基類中不定義
20、具體實(shí)現(xiàn)的虛成員函數(shù)稱為純虛函數(shù)。純虛函數(shù)的聲明:virtual <數(shù)據(jù)類型> <成員函數(shù)名>(<形參表>)= 0 ;抽象類至少有一個(gè)純虛函數(shù).3-30 什么是模板?什么是模板的類型參數(shù)?使用模板有什么優(yōu)越性?答: 模板是一個(gè)將數(shù)據(jù)類型參數(shù)化的工具,它把“一般性的算法(代碼)”和其“對(duì)數(shù)據(jù)類型的實(shí)現(xiàn)”區(qū)分開(kāi)來(lái),即代碼不受具體數(shù)據(jù)類型的影響。關(guān)鍵字class (或typename)后面的標(biāo)識(shí)符t由用戶自定義,稱為類型參數(shù). 更大限度地實(shí)現(xiàn)了軟件代碼的重用.3-31 何謂函數(shù)模板?請(qǐng)簡(jiǎn)述函數(shù)模板的定義和使用方法?答: 函數(shù)模板是一種不指定某些參數(shù)的數(shù)據(jù)類型的函數(shù)
21、,在函數(shù)模板被調(diào)用時(shí)根據(jù)實(shí)際參數(shù)的類型決定這些函數(shù)模板參數(shù)的類型。定義了一個(gè)可對(duì)任何類型變量進(jìn)行操作(求絕對(duì)值)的函數(shù)模板:template < class(或typename) t >/函數(shù)模板t abs( t val )/模板函數(shù)return val<0 ? -val : val;函數(shù)模板被調(diào)用時(shí),根據(jù)實(shí)參的類型,決定類型參數(shù).3-32何謂類模板?請(qǐng)簡(jiǎn)述類模板的定義和使用方法?答: 為了起到模板的作用,與函數(shù)模板一樣,定義一個(gè)類模板時(shí)必須將某些數(shù)據(jù)類型作為類模板的類型參數(shù)。模板類的實(shí)現(xiàn)代碼與普通類沒(méi)有本質(zhì)上的區(qū)別,只是在定義其成員時(shí)要用到類模板的類型參數(shù)。 templat
22、e < class (或typename) t >class mytemclassprivate: t x; / 類型參數(shù)t用于聲明數(shù)據(jù)成員public: void setx( t a ) x=a; ; / 類型參數(shù)t用于聲明成員函數(shù)的參數(shù) t getx( ) return x; ; / 類型參數(shù)t用于聲明成員函數(shù)的返回值;通過(guò)在使用模板類聲明對(duì)象時(shí)所給出的實(shí)際數(shù)據(jù)類型確定類型參數(shù)。 以下使用類模板聲明了一個(gè)類型參數(shù)為int的模板類的對(duì)象: mytemclass < int > intobject;3-36 何謂匈牙利表示法則?m_xend代表一個(gè)什么類型的變量?答:
23、匈牙利表示法則。該法則要求每一個(gè)變量名都有一個(gè)前綴,用于表示變量的類型,后面是代表變量含義的一串字符。 類的成員變量,表示座標(biāo)x.第六篇4-1 visual c+ ide提供了哪些類型的程序向?qū)?最常用的向?qū)в心膸讉€(gè)?答(1)atl com appwizardclurster resource type wizardcustom appwizarddatebase project:創(chuàng)建數(shù)據(jù)庫(kù)項(xiàng)目mfc activex control wizard:創(chuàng)建基于mfc的activex控件mfc appwizarddll:創(chuàng)建基于mfc的動(dòng)態(tài)鏈接庫(kù)mfc appwizardexe:創(chuàng)建基于mfc的應(yīng)用
24、程序(最常用)new database wizard:在sql服務(wù)器上創(chuàng)建一個(gè)sql server數(shù)據(jù)庫(kù)win32 application:創(chuàng)建win32應(yīng)用程序,可不使用mfc,采用sdk方法編程win32 console application:創(chuàng)建dos下的win32控制臺(tái)應(yīng)用程序,采用c+或c語(yǔ)言進(jìn)行編程win32 dynamic-link library:創(chuàng)建win32動(dòng)態(tài)鏈接庫(kù),采用sdk方法win32 static library:創(chuàng)建win32靜態(tài)鏈接庫(kù),采用sdk方法(2) mfc appwizardexe:創(chuàng)建基于mfc的應(yīng)用程序(最常用)4-2 mfc appwizard
25、exe向?qū)Ы⒁粋€(gè)sdi應(yīng)用程序時(shí),如何進(jìn)一步設(shè)置程序界面窗口的邊框厚度和最小化,最大化,關(guān)閉按鈕?答:(1)編寫一個(gè)實(shí)現(xiàn)具體功能的mfc應(yīng)用程序的步驟1. 根據(jù)應(yīng)用程序特性在mfc appwizardexe應(yīng)用程序向?qū)Ц鞑襟E對(duì)話框中進(jìn)行選擇,創(chuàng)建一個(gè)應(yīng)用程序的框架。2. 利用資源編輯器為程序編輯或添加資源,如編輯菜單、添加對(duì)話框等。3. 利用classwizard類向?qū)Щ蚴止ぬ砑宇悺⒊蓡T變量和成員函數(shù)的聲明。4. 根據(jù)需要編寫具體的函數(shù)代碼。5. 編譯、鏈接程序。如果程序有語(yǔ)法錯(cuò)誤,需要修改源程序。直到?jīng)]有編譯、鏈接錯(cuò)誤,才能得到可執(zhí)行程序。6. 測(cè)試應(yīng)用程序各項(xiàng)功能,如果程序沒(méi)有實(shí)現(xiàn)程序設(shè)
26、計(jì)所要求的功能,啟動(dòng)debug調(diào)試器進(jìn)行調(diào)試,找出并修改程序設(shè)計(jì)中的邏輯錯(cuò)誤。(2)略.4-4 workspace窗口的classview頁(yè)面中類成員左邊的小圖標(biāo)具有什么含義?答:分別表示:公有,私有,保護(hù)成員變量及公有,私有,保護(hù)成員函數(shù)4-5 利用visual c+編寫windows應(yīng)用程序可以采取哪些方法?編寫一個(gè)mfc應(yīng)用程序一般有哪幾個(gè)步驟?簡(jiǎn)述向項(xiàng)目添加一個(gè)資源的方法.答(1)利用visual c+編寫windows應(yīng)用程序可以采取幾種不同的途徑: 利用 win32應(yīng)用程序接口api(application programming interface)提供的函數(shù),用c或c+語(yǔ)言編寫
27、程序。 由于mfc通過(guò)類對(duì)api的絕大部分功能進(jìn)行了封裝,可以利用mfc,用c+語(yǔ)言編寫程序。(2) 根據(jù)應(yīng)用程序特性在mfc appwizardexe應(yīng)用程序向?qū)Ц鞑襟E對(duì)話框中進(jìn)行選擇,創(chuàng)建一個(gè)應(yīng)用程序的框架。 利用資源編輯器為程序編輯或添加資源,如編輯菜單、添加對(duì)話框等。 利用classwizard類向?qū)Щ蚴止ぬ砑宇悺⒊蓡T變量和成員函數(shù)的聲明。 根據(jù)需要編寫具體的函數(shù)代碼。 編譯、鏈接程序。如果程序有語(yǔ)法錯(cuò)誤,需要修改源程序。直到?jīng)]有編譯、鏈接錯(cuò)誤,才能得到可執(zhí)行程序。 測(cè)試應(yīng)用程序各項(xiàng)功能,如果程序沒(méi)有實(shí)現(xiàn)程序設(shè)計(jì)所要求的功能,啟動(dòng)debug調(diào)試器進(jìn)行調(diào)試,找出并修改程序設(shè)計(jì)中的邏輯錯(cuò)誤
28、。 (3) 打開(kāi)insert菜單,選擇resource菜單項(xiàng),出現(xiàn)insert resource對(duì)話框,如下圖所示,在resource type框中選擇一個(gè)資源類型,單擊new按鈕即可向項(xiàng)目添加一個(gè)資源。4-8 mfc appwizardexe向?qū)閟di應(yīng)用程序創(chuàng)建了哪幾個(gè)類?它們的基類分別是哪個(gè)?這些類分別完成什么程序功能?答:cmainframe類是mfc的cframewnd類的派生類,它主要負(fù)責(zé)創(chuàng)建標(biāo)題欄、菜單欄、工具欄和狀態(tài)欄。cmysdidoc。cmysdidoc類是mfc的cdocument類的派生類,它主要負(fù)責(zé)應(yīng)用程序數(shù)據(jù)的保存和裝載,實(shí)現(xiàn)文檔的序列化功能cmysdiview類
29、是mfc的cview類的派生類,它主要負(fù)責(zé)客戶區(qū)文檔數(shù)據(jù)的顯示,以及如何進(jìn)行人機(jī)交互。 cmysdiapp類是mfc的cwinapp類的派生類,它主要負(fù)責(zé)完成應(yīng)用程序的初始化、程序的啟動(dòng)和程序運(yùn)行結(jié)束時(shí)的清理工作。 4-10 在sdi應(yīng)用程序中,如何進(jìn)行文檔對(duì)象成員變量的初始化工作?在視圖類成員函數(shù)中如何獲取當(dāng)前文檔對(duì)象的指針?如何訪問(wèn)文檔對(duì)象的數(shù)據(jù)?答:sdi應(yīng)用程序不要在構(gòu)造函數(shù)中進(jìn)行文檔對(duì)象成員變量的初始化,而應(yīng)在onnewdocument()函數(shù)中g(shù)etdocument():用于獲取當(dāng)前文檔對(duì)象的指針m_pdocument。第七篇5-1 什么是文檔?什么是視圖?請(qǐng)說(shuō)明文檔/視圖結(jié)構(gòu)應(yīng)用
30、程序的界面風(fēng)格?答: 文檔是是mfc應(yīng)用程序中所處理數(shù)據(jù)的集合,包括文本、圖形、圖象和表格數(shù)據(jù)視圖是文檔在屏幕上的一個(gè)映像.文檔/視圖結(jié)構(gòu)應(yīng)用程序是一個(gè)標(biāo)準(zhǔn)的windows程序,除了具有標(biāo)準(zhǔn)的窗口和界面元素外,還提供了一個(gè)專門的數(shù)據(jù)顯示區(qū)稱為客戶區(qū).5-3 文檔,視圖和應(yīng)用程序框架之間如何相互作用?通過(guò)哪幾個(gè)主要的成員函數(shù)完成文檔和視圖之間的相互交互?答: 文檔與視圖的交互是通過(guò)類的公有成員變量和成員函數(shù)實(shí)現(xiàn)的。視圖類的成員函數(shù)getdocument()cdocument類的成員函數(shù)updateallviews()視圖類的成員函數(shù)onupdate()cwnd的類成員onpaint()cview
31、的成員函數(shù)ondraw()5-10 菜單命令可以映射到哪些類?當(dāng)將一個(gè)菜單命令同時(shí)映射到不同類的成員函數(shù)時(shí),映射有效的順序是怎要的?答: 從類ccmdtarget派生出來(lái)的類都可以加入應(yīng)用程序的消息循環(huán).其優(yōu)先級(jí)為: 視圖類->文檔類->框架窗口類5-13 鼠標(biāo)消息分為哪2類?常用的鼠標(biāo)消息有哪幾個(gè)?鼠標(biāo)消息處理函數(shù)一般都有哪2個(gè)函數(shù)參數(shù)?在編程時(shí)這些參數(shù)有什么用?答: 客戶區(qū)鼠標(biāo)消息 非客戶區(qū)鼠標(biāo)消息: 主要鼠標(biāo)消息: wm_mousemove:移動(dòng) wm_lbuttondown:按下左鍵 wm_lbuttonup:釋放左鍵 wm_rbuttondown:按下右鍵 wm_rbut
32、tonup:釋放右鍵 wm_lbuttondblclk:雙擊左鍵 一般都有兩個(gè)參數(shù): nflags:類型為uint,表示鼠標(biāo)按鍵和鍵盤上控制鍵的狀態(tài)。 point:類型為cpoint,表示鼠標(biāo)當(dāng)前所在位置坐標(biāo)。 第八篇:5-8 菜單的屬性有哪些?如何建立菜單?簡(jiǎn)述添加菜單命令處理函數(shù)的方法?答: pop-up;seperator;checked;grayed;inactive;1利用mfc appwizardexe向?qū)?chuàng)建應(yīng)用程序。在項(xiàng)目工作區(qū)的resourceview頁(yè)面中選擇menu并展開(kāi)它,雙擊下面的idr_mainframe項(xiàng)彈出菜單資源編輯器,顯示應(yīng)用程序向?qū)鶆?chuàng)建的菜單資源。 2為
33、程序添加主菜單。雙擊菜單欄右邊虛空白框,彈出屬性對(duì)話框,在caption框輸入主菜單的標(biāo)題, 3在主菜單下方雙擊帶虛框的空白菜單項(xiàng),彈出屬性對(duì)話框。在id欄輸入id號(hào)。在caption框輸入菜單項(xiàng)的標(biāo)題。 利用classwizard類向?qū)砑硬藛蚊顆m_command消息處理函數(shù)后,向?qū)⒆詣?dòng)添加一個(gè)如下格式消息映射: on_command(menuitemid, memberfuntion) 其中參數(shù)menuitemid是菜單項(xiàng)的id標(biāo)識(shí),參數(shù)memberfuntion是處理該消息的成員函數(shù)名。一個(gè)菜單項(xiàng)的wm_command消息意味著選擇了該菜單項(xiàng),或選擇了對(duì)應(yīng)的工具欄按鈕、鍵盤快捷鍵.
34、同時(shí)向?qū)н€生成了消息處理函數(shù)的框架代碼,在其中添加處理消息的代碼.5-12 何謂彈出式菜單?它是由什么消息引發(fā)的?哪個(gè)一mfc類用來(lái)處理菜單?簡(jiǎn)述添加彈出式菜單的方法?答: 浮動(dòng)的彈出式菜單,也稱快捷菜單,上下文菜單,當(dāng)用戶單擊鼠標(biāo)右鍵,彈出式菜單出現(xiàn)在光標(biāo)所在位置。 由鼠標(biāo)消息引發(fā)的.彈出式菜單是通過(guò)利用cmenu類和其成員函數(shù),在程序運(yùn)行過(guò)程中動(dòng)態(tài)建立的。 利用classwizard為視圖類添加wm_contextmenu的消息處理函數(shù),添加如下代碼:void 類名:oncontextmenu(cwnd* pwnd, cpoint point) cmenu menupopup; / 聲明菜
35、單對(duì)象 if (menupopup.createpopupmenu() / 創(chuàng)建彈出式菜單1.向菜單menupopup中添加菜單項(xiàng),函數(shù)appendmenu()用于向菜單menupopup添加菜單項(xiàng),函數(shù)第1個(gè)參數(shù)指定加入菜單項(xiàng)的風(fēng)格,值mf_string表示菜單項(xiàng)是一個(gè)字符串;第2個(gè)參數(shù)指定要加入菜單項(xiàng)的id,如id_coin_add;第3個(gè)參數(shù)指定菜單項(xiàng)的顯示文本。2.顯示彈出式菜單,并跟蹤用戶的菜單項(xiàng)的選擇,函數(shù)trackpopupmenu()用于在指定位置顯示彈出式菜單,并響應(yīng)用戶的菜單項(xiàng)選擇。函數(shù)第1個(gè)參數(shù)是位置標(biāo)記,tpm_leftalign表示以x坐標(biāo)為標(biāo)準(zhǔn)左對(duì)齊顯示菜單;第2、
36、3個(gè)參數(shù)指定彈出式菜單的屏幕坐標(biāo);第4個(gè)參數(shù)指定擁有此彈出式菜單的窗口。 5-14 在程序中如何捕獲鼠標(biāo)?如何釋放鼠標(biāo)?答: 系統(tǒng)中任一時(shí)刻只有當(dāng)前窗口才能捕獲鼠標(biāo)。在程序中需要時(shí)通過(guò)調(diào)用函數(shù)cwnd:setcapture()捕獲鼠標(biāo),使用鼠標(biāo)畫圖結(jié)束后應(yīng)該調(diào)用函數(shù)releasecapture()釋放鼠標(biāo)。 5-16 什么是類模板? 使用mfc類模板必須包含哪個(gè)頭文件?答: 類模板實(shí)際上是函數(shù)模板的推廣,它是一種不確定類的某些數(shù)據(jù)成員的類型或成員函數(shù)的參數(shù)及返回值的類型的類。使用mfc類模板,需此頭文件: #include <afxtempl.h> 5-20 在mfc應(yīng)用程序框架中
37、,為了實(shí)現(xiàn)狀態(tài)欄的功能,在哪個(gè)類中,定義了一個(gè)什么樣的成員變量?請(qǐng)說(shuō)明靜態(tài)數(shù)組indicators的組成和功能?答: 利用mfc appwizard向?qū)?chuàng)建應(yīng)用程序時(shí),在cmainframe類中定義了一個(gè)成員變量m_wndstatusbar,它是狀態(tài)欄cstatusbar類的對(duì)象。 static uint indicators =id_separator, / 定義分隔符,作為提示信息行的面板標(biāo)識(shí)id_indicator_caps, / 大寫指示器面板標(biāo)識(shí)id_indicator_num, / 數(shù)字指示器面板標(biāo)識(shí)id_indicator_scrl, / 滾動(dòng)指示器面板標(biāo)識(shí); 該數(shù)組每個(gè)元素代表
38、了狀態(tài)欄上一個(gè)指示器面板的id值,這些id值在程序的串表資源string talbe有說(shuō)明.可通過(guò)增加新的id標(biāo)識(shí)來(lái)增加用于顯示狀態(tài)信息的指示器面板. 需要在狀態(tài)欄上顯示的各指示器面板的標(biāo)識(shí)及標(biāo)識(shí)的個(gè)數(shù)也由該數(shù)組決定.第九篇:7-8請(qǐng)解釋下列術(shù)術(shù)語(yǔ):(1)事件(2)消息(3) 消息隊(duì)列(4)答: 事件是對(duì)于windows或application的某種操作。消息就是用于描述某個(gè)事件發(fā)生的信息. windows為每一個(gè)應(yīng)用程序都維護(hù)一個(gè)或多個(gè)消息隊(duì)列,發(fā)送到每個(gè)程序窗口的消息都排成一個(gè)隊(duì)列。 事件驅(qū)動(dòng):即程序不是按照事先安排的好的順序執(zhí)行,而是按照是 “事件消息處理”非順序的機(jī)制運(yùn)行7-9 win
39、dows消息分為哪幾類?它們之間有何異同?請(qǐng)舉例說(shuō)明.答: 標(biāo)準(zhǔn)windows消息:以wm_前綴(但不包括wm_command)開(kāi)始的消息,包括鼠標(biāo)消息、鍵盤消息和窗口消息,如wm_move 、wm_paint等。命令(command)消息:由菜單項(xiàng)、工具欄按鈕、快捷鍵等用戶界面對(duì)象發(fā)出的wm_command消息。命令消息與其它消息不同,它可被更廣泛的的對(duì)象如文檔、文檔模板、應(yīng)用程序?qū)ο蟆⒋翱诤鸵晥D等處理。 控件通知(control notification)消息:對(duì)控件操作引起的消息,是控件和子窗口向其父窗口發(fā)出的通知消息。例如,當(dāng)用戶修改了編輯控件中的文本后,編輯控件向其父窗口發(fā)送wm_c
40、ommand通知消息。7-10 在windows中,消息用什么結(jié)構(gòu)來(lái)表示?請(qǐng)說(shuō)明該結(jié)構(gòu)中主要成員的含義?答: 消息用msg數(shù)據(jù)結(jié)構(gòu)表示: typedef struct tagmsg hwnd hwnd ; /接收消息的窗口句柄。 uint message; /*這是一個(gè)數(shù)值,用以標(biāo)識(shí)消息。*/*wparam和lparam,32位的message parameter(消息參數(shù)),*/wparam wparam ; lparam lparam;dword time ; /消息放入消息隊(duì)列中的時(shí)間。 point pt ; /*消息放入消息隊(duì)列時(shí)的鼠標(biāo)的屏幕坐標(biāo)。*/ msg7-11 什么是句柄?如何
41、獲取一個(gè)mfc類的對(duì)象的句柄?答: 句柄(handle)是一個(gè)(通常為32位的)整數(shù),它代表一個(gè)對(duì)象。獲取mfc類對(duì)象的句柄的兩種方法: 1.通過(guò)訪問(wèn)類的public屬性成員變量,如類cwnd的成員變量m_hwnd就是一個(gè)窗口對(duì)象的句柄。2.(1)先定義一個(gè)句柄; (2)調(diào)用mfc類的成員函數(shù)attach()將句柄與一個(gè)mfc類對(duì)象聯(lián)系在一起,此時(shí)的句柄就成為該mfc類對(duì)象的句柄。 (3)在退出對(duì)象作用域之前,調(diào)用成員函數(shù)detach()將句柄和對(duì)象進(jìn)行分離。7-13 何謂mfc應(yīng)用程序框架?它提供了哪些運(yùn)行時(shí)類的對(duì)象?請(qǐng)畫圖表示這些對(duì)象之間的相互關(guān)系?答: mfc應(yīng)用程序框架是生成一般應(yīng)用程
42、序所需要的基本骨架,是類的集成,它定制了應(yīng)用程序的結(jié)構(gòu)和.源代碼. 代表應(yīng)用程序的應(yīng)用程序?qū)ο髏heapp 代表數(shù)據(jù)的文檔對(duì)象、 與文檔相關(guān)聯(lián)的視圖對(duì)象 用于包含視圖的框架窗口對(duì)象。7-19 簡(jiǎn)述mfc的消息映射機(jī)制.mfc消息宏有哪幾種形式?請(qǐng)舉例說(shuō)明利用classwizard類向?qū)砑酉⑻幚砗瘮?shù)時(shí),它具體做了哪些工作?答: mfc消息映射機(jī)制通過(guò)一組消息映射宏來(lái)實(shí)現(xiàn)。一條消息映射宏把一個(gè)windows消息和其消息處理函數(shù)聯(lián)結(jié)起來(lái)。預(yù)定義消息映射宏和用戶自定義消息映射宏2種.例: 利用classwizard為框架類添加消息wm_close、wm_destroy及菜單項(xiàng)“edit|copy”
43、的消息處理函數(shù),分析classwizard完成了哪些工作。 (1)classwizard將在類的實(shí)現(xiàn)文件中添加三個(gè)消息映射宏和消息處理函數(shù)。消息映射宏如下:begin_message_map(cmainframe, cframewnd) /afx_msg_map(cmainframe) on_wm_create()/ 由mfc appwizard程序向?qū)ё詣?dòng)生成的消息映射 on_wm_close() / 由classwizard類向?qū)砑?on_wm_destroy() on_command(id_edit_copy, oneditcopy) /afx_msg_mapend_message_map() (2) classwizard在類的定義中聲明了消息處理函數(shù)及聲明使用消息映射宏:afx_msg void onclose(); / 由classwizard
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能制造共享技術(shù)與產(chǎn)業(yè)升級(jí)補(bǔ)充協(xié)議
- 童趣表情包IP授權(quán)與動(dòng)畫制作合同
- 藥品進(jìn)口代理與供應(yīng)鏈管理服務(wù)合同
- 普及型教育機(jī)構(gòu)招生專員派遣合同
- 建筑施工安全與質(zhì)量保證協(xié)議
- 離婚協(xié)議份數(shù)要求與生效程序規(guī)定的財(cái)產(chǎn)分配合同
- 網(wǎng)絡(luò)直播設(shè)備故障排查與快速修復(fù)服務(wù)合同
- 節(jié)日電商促銷活動(dòng)消費(fèi)者隱私保護(hù)與風(fēng)控合同
- 海外留學(xué)生家長(zhǎng)保險(xiǎn)代理服務(wù)協(xié)議
- 時(shí)尚服飾品牌市場(chǎng)推廣活動(dòng)保險(xiǎn)補(bǔ)充協(xié)議
- 數(shù)字修約考試題及答案
- 山東大學(xué)《軍事理論》考試試卷及答案解析
- 面向非結(jié)構(gòu)化文本的事件關(guān)系抽取關(guān)鍵技術(shù)剖析與實(shí)踐
- 《國(guó)別和區(qū)域研究專題》教學(xué)大綱
- 2025年日歷表含農(nóng)歷(2025年12個(gè)月日歷-每月一張A4可打印)
- 《ESC血壓升高和高血壓管理2024指南》解讀
- 學(xué)科競(jìng)賽在提升學(xué)生團(tuán)隊(duì)協(xié)作能力中的作用
- 《公共管理學(xué)基礎(chǔ)》題庫(kù)及答案
- 基本藥物工作計(jì)劃
- 2025年行政執(zhí)法人員執(zhí)法資格考試必考題庫(kù)及答案(共232題)
- 2025手術(shù)室年度工作計(jì)劃
評(píng)論
0/150
提交評(píng)論