已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C程序設(shè)計實驗指導(dǎo)書董曉梅張?zhí)斐删帉憱|北大學(xué)信息科學(xué)與工程學(xué)院計算機(jī)軟件與理論研究所2006年3月前言本書是本科生課程C語言程序設(shè)計的配套實驗指導(dǎo)書。C語言程序設(shè)計是一門實踐性很強(qiáng)的課程,學(xué)習(xí)C語言程序設(shè)計最重要的環(huán)節(jié)就是實踐,而不可能僅僅通過閱讀教科書或聽課來掌握。書中內(nèi)容包括13個精心設(shè)計的實驗,與C語言程序設(shè)計課程的各章內(nèi)容配合,每一個實驗都包括“實驗?zāi)康摹薄ⅰ皩嶒炓蟆?、“實驗?nèi)容及實驗步驟”和“思考題”幾部分,使學(xué)生在實踐中達(dá)到對教科書和課堂內(nèi)容的深入理解和熟練掌握。本書中的實驗內(nèi)容不僅可以指導(dǎo)學(xué)生上機(jī)練習(xí),也可以由教師作為例題在課堂上演示,以豐富教學(xué)內(nèi)容。目錄前言1MICROSOFTVISUALC60開發(fā)環(huán)境簡介1EXERCISE1熟悉語言及程序開發(fā)環(huán)境3EXERCISE2C簡單程序設(shè)計10EXERCISE3函數(shù)的應(yīng)用15EXERCISE4類與對象18EXERCISE5作用域與多文件程序21EXERCISE6數(shù)組、指針與字符串24EXERCISE7繼承與派生27EXERCISE8多態(tài)性29EXERCISE9工資管理程序設(shè)計30EXERCISE10模板31EXERCISE11流類庫與輸入輸出32EXERCISE12異常處理35EXERCISE13WINDOWS編程基礎(chǔ)361MICROSOFTVISUALC60開發(fā)環(huán)境簡介DEVELOPERSTUDIO是VISUALC60的核心部分,是MICROSOFTWINDOWS環(huán)境下的一個集成開發(fā)環(huán)境,集成了開發(fā)C或C應(yīng)用程序所需要的所有工具和C編譯器。1主窗口包括標(biāo)題欄、菜單欄、工具欄、項目工作區(qū)窗口、文檔窗口、輸出窗口和狀態(tài)欄,如圖1所示。圖1VISUALC60集成開發(fā)平臺的主窗口2菜單欄包括以下菜單項FILE,EDIT,VIEW,INSERT,PROJECT,BUILD,TOOLS,WINDOWS和HELP。3工具欄默認(rèn)時顯示三個工具欄STANDARD,BUILD和WIZARDBAR。4采用項目開發(fā)應(yīng)用程序采用項目開發(fā)一個應(yīng)用程序的一般步驟如下(1)創(chuàng)建一個項目,系統(tǒng)自動創(chuàng)建了應(yīng)用程序所需的基本文件。(2)采用工作區(qū)窗口建立項目中的類、文件和資源。2(3)將文件添加到項目中,或從項目中刪除文件。(4)編輯項目中的源代碼和資源。(5)連編項目。執(zhí)行應(yīng)用程序。3EXERCISE1熟悉語言及程序開發(fā)環(huán)境1實驗?zāi)康氖煜ICROSOFTVISUALC60集成開發(fā)環(huán)境,學(xué)習(xí)創(chuàng)建控制臺應(yīng)用程序項目、編輯源程序、編譯和調(diào)試程序。2實驗要求(1)熟悉程序開發(fā)環(huán)境(2)編輯源程序(3)編譯并調(diào)試程序3實驗內(nèi)容及實驗步驟31熟悉MICROSOFTVISUALSTUDIO60的開發(fā)環(huán)境(1)啟動VISUALC60;(2)用鼠標(biāo)左鍵分別單擊各主菜單項,觀察各下拉菜單的項目內(nèi)容;(3)單擊“文件新建”,觀察彈出的對話框;(4)分別單擊“新建”對話框的各選項卡,查看其中的內(nèi)容;(5)單擊“結(jié)束”按鈕,關(guān)閉對話框;(6)單擊“幫助幫助目錄”,熟悉幫助的內(nèi)容和使用方法。32編輯并調(diào)試下面的程序321在VISUALC環(huán)境中編輯并調(diào)試下面的程序(1)啟動VISUALC60;(2)向APPWIZARD提供關(guān)于新項目的有關(guān)信息(A)單擊“文件新建”,(B)在“新建”對話框中單擊“工程”選項卡;在列表中選中“WIN32CONSOLEAPPLICATION”;在名為“工程”的文本框中輸入項目名“TIME”在“位置”文本框中設(shè)置項目的位置;選擇“創(chuàng)建新工作區(qū)”選項;確認(rèn)在“平臺”列表框中選中了“WIN32”;單擊“確定”按鈕。以上過程如圖11所示。4(3)選擇項目類型ANEMPTYPROJECT。(4)單擊“完成”按鈕。(5)在開發(fā)環(huán)境的主窗口中單擊“插入新建類”,類型為“GENERICCLASS”,名字為“TIMETYPE”,單擊“確定”。見圖12。圖11向APPWIZARD提供關(guān)于新項目的有關(guān)信息圖12新建類5(6)在左側(cè)的“CLASSVIEW”中選擇類“TIMETYPE”,單擊右鍵,選擇“添加成員變量”,在彈出的對話框中填入變量HRS的類型和名稱,見圖13和圖14;重復(fù)此過程,加入成員變量MINS和SECS。圖13選擇類“TIMETYPE”,單擊右鍵圖14添加成員變量(7)選擇類“TIMETYPE”,單擊右鍵,選擇“添加成員函數(shù)”,在彈出的對話框中填入函數(shù)SET的原型說明,并在代碼編輯窗口中填入函數(shù)體的代碼,見圖15和圖16;重復(fù)此過程,加入所有的成員函數(shù)。6圖15添加成員函數(shù)圖16添加代碼(8)保存文件。(9)單擊“文件新建”,在“新建”對話框的“文件”選項卡中選擇“C源文件”,名字為“DIARY”。(10)在代碼編輯窗口中寫入代碼,保存文件。(11)編譯和執(zhí)行程序單擊“編譯構(gòu)件TIMEEXE”,或者按F7鍵,生成可執(zhí)行文件TIMEEXE;單擊“編譯執(zhí)行TIMEEXE”,或者同時按下“CTRL”和“F5”鍵,執(zhí)行程序,查看運行結(jié)果。322源程序(1)文件TIMETYPEH7/“TIMETYPEH”CLASSTIMETYPEPUBLICVOIDSETINTHOURS,INTMINUTES,INTSECONDSVOIDINCREMENTVOIDWRITECONSTBOOLEQUALTIMETYPEOTHERTIMECONSTBOOLLESSTHANTIMETYPEOTHERTIMECONSTPRIVATEINTHRSINTMINSINTSECS(2)文件TIMETYPECPP/“TIMETYPECPP”INCLUDE“TIMETYPEH”INCLUDEVOIDTIMETYPESETINTHOURS,INTMINUTES,INTSECONDSHRSHOURSMINSMINUTESSECSSECONDSVOIDTIMETYPEINCREMENTSECSIFSECS59SECS0MINSIFMINS59MINS0HRSIFHRS23HRS0VOIDTIMETYPEWRITECONSTIFHRSINCLUDE“TIMETYPEH“INTMAINTIMETYPETIMEINTHOURSINTMINUTESINTSECONDSCOUTHOURSMINUTESSECONDSWHILEHOURS0TIMESETHOURS,MINUTES,SECONDSTIMEINCREMENTCOUTHOURSMINUTESSECONDSRETURN094思考題1如何啟動MICROSOFTVISUALSTUDIO602如何用APPWIZARD新建一個控制臺項目3如何新建一個類,并添加類的成員4如何編譯和連接一個程序5如何執(zhí)行一個程序6如何使用幫助10EXERCISE2C簡單程序設(shè)計1實驗?zāi)康模?)學(xué)會編寫簡單的C程序。(2)復(fù)習(xí)基本數(shù)據(jù)類型變量和常量的應(yīng)用。(3)復(fù)習(xí)運算符與表達(dá)式的應(yīng)用。(4)復(fù)習(xí)結(jié)構(gòu)化程序設(shè)計基本控制結(jié)構(gòu)的運用。(5)復(fù)習(xí)自定義數(shù)據(jù)類型的應(yīng)用。(6)練習(xí)使用簡單的輸入輸出。(7)觀察頭文件的作用。(8)學(xué)會使用VISUALC60開發(fā)環(huán)境中的DEBUG調(diào)試功能單步執(zhí)行、設(shè)置斷點、觀察變量值。2實驗要求(1)輸入并運行教材C語言程序設(shè)計中的例題27,即用DOWHILE語句編程,求自然數(shù)110之和。程序正確運行之后,去掉源程序中INCLUDE語句,重新編譯,觀察會有什么問題。(2)將DOWHILE語句用FOR語句代替,完成相同的功能。(3)編程計算圖形的面積。程序可計算圓形、長方形、正方形的面積,運行時先提示用戶選擇圖形的類型,然后,對圓形要求用戶輸入半徑值,對長方形要求用戶輸入長和寬的值,對正方形要求用戶輸入邊長的值,計算出面積的值后將其顯示出來。(4)使用DEBUG調(diào)試功能觀察任務(wù)3程序運行中變量值的變化情況。(5)定義一個表示時間的結(jié)構(gòu)體,可以精確表示年、月、日、小時、分、秒;提示用戶輸入年、月、日、小時、分、秒的值,然后完整地顯示出來。3實驗內(nèi)容及實驗步驟(1)建立一個控制臺應(yīng)用程序項目LAB2_1,向其中添加一個C源文件LAB2_1CPP方法見實驗1,輸入教材C語言程序設(shè)計中例27的代碼,檢查一下確認(rèn)沒有輸入錯誤,選擇菜單命令BUILD|BUILD1AB2_1EXE編譯源程序,再選擇BUILD|EXECUTE運行程序,觀察輸出是否與教材中的答案一致。(2)程序正確運行之后,在源程序第一行“INCLUDE”前面加注釋標(biāo)記“/”使之成為注釋行,重新編譯,查看此時編譯器會輸出什么樣的提示。現(xiàn)在,刪除注釋標(biāo)記,將程序恢復(fù)正確。11(3)另建立一個項目LAB2_2,包含一個C源程序1AB2_2CPP,將DOWHILE語句用FOR語句代替,完成與實驗任務(wù)1相同的功能。(4)建立項目LAB2_3,計算圖形的面積。圓形的面積計算公式為SPIRR,長方形的面積計算公式為SAB,正方形的面積計算公式為SAA。程序中定義一個整型變量ITYPE表示圖形的類型,用COUT語句輸出提示信息讓用戶選擇圖形的類型,用CIN讀入ITYPE的值,然后,使用SWITCH語句判斷圖形的類型,分別提示用戶輸入需要的參數(shù)值,計算出面積的值后用COUT語句顯示出來。最后,編譯運行程序。(5)學(xué)習(xí)簡單的DEBUG調(diào)試功能,參考程序如下LAB2_3CPPINCLUDECONSTFLOATPI31416VOIDMAININTITYPEFLOATRADIUS,A,B,AREACOUTITYPESWITCHITYPECASE1COUTRADIUSAREAPIRADIUSRADIUSCOUTACOUTBAREAABCOUTAAREAAA12COUT2;FIB(1)FIB(2)1。使用IF語句判斷函數(shù)的出口,在程序中用COUT語句輸出提示信息。程序名LAB3_5CPP(5)使用DEBUG中的STEPINTO追蹤到函數(shù)內(nèi)部,觀察函數(shù)的調(diào)用過程,參考程序如下/LAB3_516INCLUDEINTFIBINTNINTMAININTN,ANSWERCOUTNCOUTENUMCPU_RANKP11,P2,P3,P4,P5,P6,P7CLASSCPUPRIVATECPU_RANKRANKINTFREQUENCYFLOATVOLTAGEPUBLICCPUCPU_RANKR,INTF,F(xiàn)LOATVRANKRFREQUENCYFVOLTAGEVCOUTINTFUNCINTVOIDMAINCOUT22VOIDMAININTA1,B2,C3COUTINTA1,B2INTF1INTXINTI,B3IAB/XCOUTCLASSSTRINGPRIVATECHARCONTENTSPUBLICSTRINGCONTENTS0INTGET_LENGTHCHARGET_CONTENTSRETURNCONTENTSVOIDSET_CONTENTSINTIN_LENGTH,CHARIN_CONTENTSVOIDSET_CONTENTSCHARIN_CONTENTSINTSTRINGGET_LENGTHINTI0CHARPCONTENTSWHILEP0IRETURNIVOIDSTRINGSET_CONTENTSINTIN_LENGTH,CHARIN_CONTENTSIN_CONTENTSIN_LENGTH0CONTENTSIN_CONTENTS26VOIDSTRINGSET_CONTENTSCHARIN_CONTENTSCONTENTSIN_CONTENTSVOIDMAINSTRINGX,YXSET_CONTENTS“HELLO,WORLD“YSET_CONTENTS34,“THISISANOBJECT_ORIENTEDPROGRAM“CHARPXGET_CONTENTSCHARQYGET_CONTENTSCOUT和頭文件有何區(qū)別3有幾種方法來表示和處理數(shù)組元素27EXERCISE7繼承與派生1實驗?zāi)康模?)學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類。(2)熟悉不同繼承方式下對基類成員的訪問控制。(3)學(xué)習(xí)利用虛基類解決二義性問題。2實驗要求(1)定義一個基類ANIMAL,有私有整型成員變量AGE,構(gòu)造其派生類DOG,在其成員函數(shù)SETAGE(INTN)中直接給AGE賦值,看看會有什么問題,把AGE改為公有成員變量,還回有問題嗎編程試之。(2)定義一個基類BASECLASS,有整型變量NUMBER,構(gòu)造其派生類DERIVEDCLASS,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。(3)定義一個車(VEHICLE)基類,具有MAXSPEED、WEIGHT等成員,RUN、STOP等成員函數(shù),由此派生出自行車(BICYCLE)類、汽車(MOTORCAR)類。自行車(BICYCLE)類有高度(HEIGHT)等屬性,汽車(MOTORCAR)類有座位數(shù)(SEATNUN)等屬性。從BICYCLE和MOTORCAR派生出摩托車(MOTORBICYCLE)類,在繼承過程中,注意把VEHICLE設(shè)置為虛基類。如果不把VEHICLE設(shè)置為虛基類,會有什么問題編程試之。3實驗內(nèi)容及實驗步驟(1)編寫程序定義基類ANIMAL,成員變量AGE定義為私有的。構(gòu)造派生類DOG,在其成員函數(shù)SETAGE(INTN)中直接對AGE賦值時,會出現(xiàn)類似以下的錯誤提示ERRORC2248AGECANNOTACCESSPRIVATEMEMBERDECLAREDINCLASSANIMALERRORC2248AGECANNOTACCESSPRIVATEMEMBERDECLAREDINCLASSANIMAL把AGE改為公有成員變量后重新編譯就可以了。程序名LAB7_1CPP。(2)編寫程序定義一個基類BASECLASS,構(gòu)造其派生類DERIVEDCLASS,在構(gòu)造函數(shù)和析構(gòu)函數(shù)中用COUT輸出提示信息,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。程序名LAB7_2CPP。(3)用DEBUG功能跟蹤程序LAB7_2的執(zhí)行過程,觀察基類和派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行情況。(4)編寫程序定義一個車(VEHICLE)基類,由此派生出自行車(BICYCLE)類、汽車(MOTORCAR)類,注意把VEHICLE派生為虛基類。再從BICYCLE和MOTORCAR派生出摩托車(MOTORCYCLE)類,在MAIN函數(shù)中測試這個類。程序名LAB7_3CPP編譯成功后,把VEHICLE設(shè)置為非虛基類,再編譯一次,此時系統(tǒng)報錯,無法編譯成功。這是因為若不把VEHICLE設(shè)置為虛基類,會出現(xiàn)二義性錯誤,程序不能成功編譯。284思考題1如何在已有的類的基礎(chǔ)上設(shè)計新的類2基類和派生類對象的構(gòu)造順序是怎樣的3如何利用虛基類解決二義性問題29EXERCISE8多態(tài)性1實驗?zāi)康模?)掌握運算符重載的方法。(2)學(xué)習(xí)使用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性。2實驗要求(1)定義POINT類,有坐標(biāo)_X,_Y兩個成員變量;對POINT類重載“”自增、“”自減運算符,實現(xiàn)對坐標(biāo)值的改變。(2)定義一個車VEHIELE基類,有RUN、STOP等成員函數(shù),由此派生出自行車BICYCLE類、汽車MOTORCAR類,從BICYCLE和MOTORCAR派生出摩托車MOTORCYCLE類,它們都有RUN、STOP等成員函數(shù)。觀察虛函數(shù)的作用。3選做對實驗4中的PEOPLE類重載“”運算符和“”運算符,“”運算符判斷兩個PEOPLE類對象的ID屬性是否相等;“”運算符實現(xiàn)PEOPLE類對象的賦值操作。3實驗內(nèi)容及實驗步驟1編寫程序定義POINT類,在類中定義整型的私有成員變量_X_Y,定義成員函數(shù)POINTDEFINEDATINCLUDEINCLUDE/求一元二次方程的根,函數(shù)返回根的個數(shù)INTGETROOTFLOATA,FLOATB,FLOATC,DOUBLEROOTDOUBLEDELTA,DELTASQRTDELTABB40ACIFDELTA00RETURN0/無根DELTASQRTSQRTDELTAIFA00ROOT0BDELTASQRT/20AROOT1BDELTASQRT/20AELSE37IFB00ROOT0ROOT1C/BELSERETURN0IFROOT0ROOT1RETURN1ELSERETURN2CHARSTR80LRESULTCALLBACKWNDPROCHWND,UINT,WPARAM,LPARAM/窗口過程INTWINAPIWINMAINHINSTANCEHINSTANCE,HINSTANCEHPREVINSTANCE,LPSTRLPCMDLINE,INTNCMDSHOWHWNDHWND/窗口句柄MSGMSG/消息WNDCLASSWNDCLASS/窗口類WNDCLASSSTYLECS_HREDRAW|CS_VREDRAWWNDCLASSLPFNWNDPROCWNDPROCWNDCLASSCBCLSEXTRA0WNDCLASSCBWNDEXTRA0WNDCLASSHINSTANCEHINSTANCEWNDCLASSHICONLOADICONNULL,IDI_APPLICATIONWNDCLASSHCURSORLOADCURSORNULL,IDC_ARROWWNDCLASSHBRBACKGROUNDHBRUSHGETSTOCKOBJECTWHITE_BRUSHWNDCLASSLPSZMENUNAMENULLWNDCLASSLPSZCLASSNAME“SDKWIN“/窗口類名IFREGISTERCLASS/創(chuàng)建窗口HWNDCREATEWINDOW“SDKWIN“,/窗口類名“實驗1WINDOWS編程基礎(chǔ)“,/窗口標(biāo)題WS_OVERLAPPEDWINDOW,/窗口樣式CW_USEDEFAULT,/窗口最初的X位置CW_USEDEFAULT,/窗口最初的Y位置CW_USEDEFAULT,/窗口最初的X大小CW_USEDEFAULT,/窗口最初的Y大小NULL,/父窗口句柄NULL,/窗口菜單句柄HINSTANCE,/應(yīng)用程序?qū)嵗浔鶱ULL/創(chuàng)建窗口的參數(shù)SHOWWINDOWHWND,NCMDSHOW/顯示窗口UPDATEWINDOWHWND/更新窗口,包括窗口的客戶區(qū)WHILEGETMESSAGE/轉(zhuǎn)換某些鍵盤消息DISPATCHMESSAGE/將消息發(fā)送給窗口過程,這里是WNDPROCRETURNMSGWPARAMLRESULTCALLBACKWNDPROCHWNDHWND,UINTMESSAGE,WPARAMWPARAM,LPARAMLPARAMHDCHDCPAINTSTRUCTPSSTATICHWNDHWNDBUTTON,HWNDEDITCHARSTREDIT80
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 身形矯正培訓(xùn)課件
- 紀(jì)念性建筑教育課件專題培訓(xùn)課件
- 環(huán)保未來計劃承諾書7篇
- 綠色工程品質(zhì)承諾書9篇
- 企業(yè)培訓(xùn)體系搭建及執(zhí)行模板
- 服務(wù)型行業(yè)合規(guī)性承諾書6篇
- 《音樂基礎(chǔ)知識學(xué)習(xí):小學(xué)音樂教學(xué)教案》
- 貨車車隊行車安全培訓(xùn)
- 用戶手冊軟件應(yīng)用指南
- 我的小狗忠誠的朋友寫人14篇
- TSG ZF001-2006《安全閥安全技術(shù)監(jiān)察規(guī)程》
- GB/T 4706.19-2024家用和類似用途電器的安全第19部分:液體加熱器的特殊要求
- 氣體滅火拆除施工方案及流程
- DL-T+5220-2021-10kV及以下架空配電線路設(shè)計規(guī)范
- 視覺傳播概論(第2版)課件全套 任悅 第1-12章 視覺傳播概述- 視覺傳播中的倫理道德與法規(guī)
- DB4403T399-2023居家適老化改造與管理規(guī)范
- 解分式方程50題八年級數(shù)學(xué)上冊
- GB/T 27866-2023鋼制管道和設(shè)備防止焊縫硫化物應(yīng)力開裂的硬度控制技術(shù)規(guī)范
- 部編版小學(xué)語文四年級下冊第一單元教材解讀課件
- 骨科常見病、多發(fā)病清單、疑難病種清單、核心手術(shù)操作技術(shù)清單
- 保單整理分享課件
評論
0/150
提交評論