C++程序設(shè)計(jì)譚浩強(qiáng)版實(shí)驗(yàn)指導(dǎo)書_第1頁
C++程序設(shè)計(jì)譚浩強(qiáng)版實(shí)驗(yàn)指導(dǎo)書_第2頁
C++程序設(shè)計(jì)譚浩強(qiáng)版實(shí)驗(yàn)指導(dǎo)書_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、«C+程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)指導(dǎo)書課程編號:?撰寫人:朱世華審核人:刖曰程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,通過實(shí)驗(yàn)可以鞏固和加強(qiáng)課堂教學(xué)內(nèi)容,提高學(xué)生實(shí)際工作能力和動手能力,并為后續(xù)課程和從事實(shí)踐技術(shù)工作奠定重要的基礎(chǔ)。因此,學(xué)生在進(jìn)行理論知識學(xué)習(xí)的同時(shí),必須十分重視實(shí)踐環(huán)節(jié)-上機(jī)。上機(jī)實(shí)驗(yàn)時(shí)應(yīng)該一人一組,獨(dú)立上機(jī)。在上機(jī)過程中出現(xiàn)的問題,一般應(yīng)自己獨(dú)立處理,學(xué)生應(yīng)在實(shí)驗(yàn)前將教師指定的題目編好程序,然后上機(jī)輸入和調(diào)試。上機(jī)前應(yīng)事先作好準(zhǔn)備工作,以提高上機(jī)實(shí)驗(yàn)的效率,準(zhǔn)備工作至少應(yīng)包括:(1) 復(fù)習(xí)和掌握與本實(shí)驗(yàn)有關(guān)的教學(xué)內(nèi)容。(2) 準(zhǔn)備好上機(jī)所需的程序。對運(yùn)行中可能出現(xiàn)的問題應(yīng)事先做出估計(jì)

2、;對程序中有疑問的地方,應(yīng)做上記號,以便上機(jī)時(shí)給予注意。(3) 準(zhǔn)備好調(diào)試和運(yùn)行時(shí)所需的數(shù)據(jù)。實(shí)驗(yàn)設(shè)備與環(huán)境:1、硬件配置Pentiumn以上PC兼容機(jī)或品牌機(jī),配有彩色顯示器、鼠標(biāo)、鍵盤,內(nèi)存不小于32MB硬盤自由空間不少于60MB推薦配置為內(nèi)存256MB(或以上),硬盤自由空間1GB以上。2、軟件配置操作系統(tǒng):WindowsXP,Windows2000以上版本開發(fā)環(huán)境:MicrosoftVisualC+2010以上版本。實(shí)驗(yàn)一VisualC+2010的基本用法1實(shí)驗(yàn)二數(shù)據(jù)類型、運(yùn)算符和表達(dá)式4實(shí)驗(yàn)三三種基本結(jié)構(gòu)的實(shí)現(xiàn)1.7.實(shí)驗(yàn)四三種基本結(jié)構(gòu)的實(shí)現(xiàn)2.9.實(shí)驗(yàn)六指針13實(shí)驗(yàn)七函數(shù)14實(shí)驗(yàn)八

3、結(jié)構(gòu)和聯(lián)合17實(shí)驗(yàn)九類與對象20實(shí)驗(yàn)十綜合實(shí)驗(yàn)231. 實(shí)驗(yàn)一VisualC+2010的基本用法一、實(shí)驗(yàn)?zāi)康氖煜isualC+2010集成開發(fā)環(huán)境的基本命令和功能鍵。2. 學(xué)習(xí)完整的C+程序開發(fā)過程。3. 理解簡單的C+程序結(jié)構(gòu)。二、實(shí)驗(yàn)內(nèi)容與步驟本次實(shí)驗(yàn)將學(xué)習(xí)有關(guān)VisualC+開發(fā)環(huán)境的一些知識,并嘗試實(shí)現(xiàn)一個簡單的DOS呈序和Windows程序。通過本次實(shí)驗(yàn),可以了解用VisualC+開發(fā)應(yīng)用程序的全過程。1、熟悉VisualC+開發(fā)環(huán)境我們選擇VisualC+B一項(xiàng)就可以了。下圖是VS2010打開后的畫面,當(dāng)然可能你的界面跟我的不一樣,沒關(guān)系,那只是設(shè)置問題。菜單欄我們常用的是Fil

4、e,View和Debug菜單下的菜單項(xiàng)。工具欄各項(xiàng)其實(shí)在菜單欄都有與它們對應(yīng)的菜單項(xiàng),功能是一樣的。左側(cè)面板可以放多個視圖,我這里放了解決方案瀏覽器、類視圖和資源視圖,解決方案瀏覽器中我們可以看到所有頭文件和源文件構(gòu)成的樹,頭文件就是.h后綴的文件,源文件就是.cpp后綴的文件,類視圖中顯示了每個工程的每個類,也是樹狀結(jié)構(gòu),在解決方案瀏覽器或類視圖中雙擊每一項(xiàng),中間區(qū)域都會打開相應(yīng)的文件或者到類的位置。資源視圖中顯示了界面工程中使用的一些界面資源。中間區(qū)域默認(rèn)是打開startpage,打開一個工程后我們在左側(cè)面板上雙擊某項(xiàng)時(shí),中間區(qū)域會出現(xiàn)相應(yīng)的界面。右側(cè)面板上有個Toolbox,是在界面工程

5、中用來往界面資源模板上添加控件的,里面包含了各種控件,直接拖到模板上就行了。底側(cè)還有幾個標(biāo)簽,其中一個是output,這是輸出視圖,用來輸出程序運(yùn)行信息和我們程序中寫的一些調(diào)試信息,還有一個FindResult視圖,用來顯示我們搜索任何字母或單詞的結(jié)果。File->New->Project項(xiàng)可以創(chuàng)建一個工程,也可以在startpage中點(diǎn)擊NewProject.,然后出現(xiàn)的NewProject窗口中有多個工程類型可以選擇,Win32ConsoleApplication是Win32控制臺程序,MFCApplication是MFCS用程序,可以建立以開發(fā)界面程序,Win32Projec

6、t是Win32程序,EmptyProject是空程序,MFCDLL用來建立生成動態(tài)鏈接庫的工程,其它的不常用就不介紹了。我們要建立一個沒有應(yīng)用程序界面的只有Dos命令行界面的工程就選Win32ConsoleApplication項(xiàng),我們學(xué)習(xí)C+®礎(chǔ)知識用這個就可以了。它跟Win32Project的區(qū)別是,它的入口是main函數(shù),而Win32Project的入口是WinMain函數(shù)。File->Open->Project/Solution可以打開以前建立的工程或者解決方案,一個解決方案中可以包含多個工程,你可以把它理解為多個有關(guān)系或者沒關(guān)系的工程的集合,有時(shí)把多個工程放到一

7、個解決方案里調(diào)試起來很方便。在View下的菜單項(xiàng)我們就可以控制它。View->SolutionExplorer可以打開或關(guān)閉解決方案瀏覽器視圖,View->ClassView用來控制類視圖的顯示,View->ResourceView控制資源視圖的顯示,當(dāng)然只有界面工程的資源視圖中才會有內(nèi)容。View->Output和View->FindResults等項(xiàng)大家應(yīng)該也知道它們的含義了吧。Debug->StartDebugging(快捷鍵是F5)用來開始調(diào)試,Debug->ToggleBreadpoint(快捷鍵是F9)用來設(shè)置斷點(diǎn),設(shè)置斷點(diǎn)后然后開始調(diào)試,

8、程序運(yùn)行到斷點(diǎn)時(shí)會停下來,我們用鼠標(biāo)放到斷點(diǎn)處的各個變量上時(shí)可以看到當(dāng)時(shí)這些變量的值。Debug->StartWithoutDebugging表示不調(diào)試直接運(yùn)行,也就是到斷點(diǎn)處也不會停止運(yùn)行。Debug->StepInto(快捷鍵是F11)用來單步執(zhí)行,遇到子函數(shù)就進(jìn)入并且繼續(xù)單步執(zhí)行;Debug->StepOver(快捷鍵是F10)也是單步執(zhí)行,但在單步執(zhí)行時(shí),在函數(shù)內(nèi)遇到子函數(shù)時(shí)不會進(jìn)入子函數(shù)內(nèi)單步執(zhí)行,而是將子函數(shù)整個執(zhí)行完而跳到下一步,也就是把子函數(shù)整個作為一步。工具欄上有個下拉列表框,它包含有Debug、Release和ConfigurationManager,選擇

9、Debug時(shí)為調(diào)試模式,生成的可執(zhí)行程序中包含調(diào)試信息,我們可以調(diào)試并清楚的看到變量值,選擇Release時(shí)生成的可執(zhí)行程序中不含調(diào)試信息,在設(shè)置斷點(diǎn)后看到的變量值可能不準(zhǔn)確。msdn幫助可以點(diǎn)Help->ViewHelp(快捷鍵是F1),也可以點(diǎn)開始->MicrosoftVisualStudio2010->MicrosoftVisualStudio2010Documentation打開。2、控制臺應(yīng)用程序的建立用Appwizard建立一個控制臺應(yīng)用程序,在顯示器上輸出"Hello,World!"。(1)創(chuàng)建項(xiàng)目(project)首先創(chuàng)建一個項(xiàng)目,用來管理

10、用戶的應(yīng)用程序。創(chuàng)建項(xiàng)目的步驟為: 啟動visualStudio2010。 從主菜單中選擇菜單項(xiàng)“File”"NeW,打開“NeW對話框。 選擇aProjects"標(biāo)簽,從項(xiàng)目列表中單擊“Win32ConsoleApplication”選項(xiàng)。在"projectnam4編輯框中鍵入項(xiàng)目的名字,如"hello",系統(tǒng)將自動為用戶的項(xiàng)目分配一個默認(rèn)的目錄。也可以在“Location”編輯框中重新輸入項(xiàng)目存放路徑。單擊“OK'按鈕繼續(xù)。(2)編輯源程序在項(xiàng)目中添加一個文件: 從主菜單中選擇菜單項(xiàng)"File"NeW,打開“Ne

11、W對話框。在"NeW對話框中選擇"File"標(biāo)簽,單擊"C+SourceFile"選項(xiàng),建立源文件(擴(kuò)展名為.cpp)。選中"AddtoProject"復(fù)選框。在右邊的"Filenam4編輯框中為文件指定一個名字,如"Hello”,系統(tǒng)將自動加上后綴".cpp”。這時(shí)在編輯窗口將自動打開一個新的空白文件,在文件中輸入源程序。中例中輸入以下內(nèi)容:#include<>voidmain()cout<<"hello,world!"<<endl;仔細(xì)

12、檢查輸入的內(nèi)容,確保內(nèi)容正確。(3)保存源文件單擊工具欄中的“save”圖標(biāo),或選擇菜單項(xiàng)"File“Save”保存源文件。(4)編譯源文件選擇菜單項(xiàng)"BuildCompile”來編譯源文件,如果輸入的內(nèi)容沒有錯誤,那么,在屏幕下方的輸出窗口將會顯示:error(s),0warning(s)如果在編譯時(shí)得到錯誤或警告則表明源文件出現(xiàn)錯誤,檢查源文件,改正錯誤后再編譯,直至無誤。(4) 鏈接程序”鏈接程序,如果鏈接過程中沒有錯誤,則在輸出窗口會選擇菜單項(xiàng)"BuildBuild顯示:4)、(5),直至無誤。error(s),0warning(s)如果有錯誤,應(yīng)改正,然

13、后重復(fù)(5) 運(yùn)行程序選擇菜單項(xiàng)"BuildExecute”運(yùn)行程序,將顯示一個類似于DOS的窗口,在窗口中第一行輸出"hello,world!”,第二行輸出"Pressanykeytocontinue”,提示用戶按任意鍵回到開發(fā)環(huán)境。3、編寫一個簡單的C+程序要求:輸入圓的半徑,計(jì)算圓的周長和面積。按照上面的步驟創(chuàng)建一個項(xiàng)目,名字為“Circle”。在項(xiàng)目中增加一個文件,命名為。在文件中輸入源程序如下:步驟:(1)(2)(3)#include<>constdoubleP=;<<endl;else-cout<<number<

14、;<”不是素?cái)?shù).”<<endl;判斷素?cái)?shù)的算法,在以前學(xué)習(xí)循環(huán)的時(shí)候已經(jīng)學(xué)過了,在這里只是把這個算法用函數(shù)的形式表示出來。這里要注意函數(shù)的定義聲明的方法和格式。2、分析程序的運(yùn)行結(jié)果輸入下列程序,運(yùn)行它,分析得到的結(jié)果。#include<>intn=0;intfunc(intx=10);voidmain()(inta,b;a=5;b=func(a);cout<<"nlocala="<<a<<endl<<"localb="<<b<<endl<<

15、”globaln=”<<n<<endl;a+;b=func(a);cout<<"nlocala="<<a<<endl<<"localb="<<b<<endl<<”globaln=”<<n<<endl;func();intfunc(intx)(inta=1;staticintb=10;a+;b+;x+;n+;cout<<"nlocala="<<a<<endl<<

16、;"localb="<<b<<endl<<"parameterx="<<x<<endl;returna+b;運(yùn)行該程序,得到執(zhí)行結(jié)果。分析得到的結(jié)果,說明為什么得到這樣的結(jié)果。3、遞歸函數(shù)與非遞歸函數(shù)。編寫一個函數(shù),求從n個不同的數(shù)中取r個數(shù)的所有選擇的個數(shù)。其個數(shù)值為:n!Crn=r!*(n-r)!其中:n!=n*(n-1)*(n-2)*.*1。要求:(1) 分別用遞歸和非遞歸兩種方式完成程序設(shè)計(jì);主程序中設(shè)計(jì)一個循環(huán),不斷從輸入接收n和r的值,計(jì)算結(jié)果并輸出,當(dāng)用戶輸入00時(shí),程序結(jié)束;能檢

17、查輸入數(shù)據(jù)的合法性,要求n>=1并且n>=r;注意整數(shù)能存放的數(shù)據(jù)范圍有限,如何解決?提示:(1) 可以用double數(shù)據(jù)類型來存放函數(shù)的計(jì)算結(jié)果。(2) 遞歸結(jié)束條件:如果r=0,貝UC(n,r)=1;如果r=1,貝UC(n,r)=n。測試數(shù)據(jù):輸入:53輸出:10輸入:1020輸出:IputInvalid1輸入:503輸出:1.#IND輸入:00IputInvalid1程序結(jié)束思考問題:(1) 對各種數(shù)據(jù)類型的字長是否有了新的認(rèn)識?(2) 遞歸函數(shù)的書寫要點(diǎn)是什么?(3) 遞歸和非遞歸函數(shù)各有哪些好處?1、求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù),用一個函數(shù)求最大公約數(shù),用另一個函數(shù)

18、求最小公倍數(shù)。(提示:可以用下面的方法求:一、利用輾除法或其它方法求得最大公約數(shù);二、最小公倍數(shù)等于兩數(shù)之積除以最大公約數(shù)。)要求:兩個整數(shù)在主函數(shù)中輸入,并傳送給函數(shù)1,求出的最大公約數(shù)返回主函數(shù),然后再和兩個整數(shù)一起作為實(shí)參傳遞給函數(shù)2,以求出最小公倍數(shù),再返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。實(shí)驗(yàn)八結(jié)構(gòu)和聯(lián)合一、實(shí)驗(yàn)?zāi)康?、掌握結(jié)構(gòu)體類型變量的定義和使用。2、掌握結(jié)構(gòu)數(shù)組的概念和使用。3、掌握鏈表的概念,初步學(xué)會對鏈表進(jìn)行操作。4、掌握聯(lián)合體的概念與應(yīng)用。二、試驗(yàn)內(nèi)容與步驟1、輸入和運(yùn)行以下程序。#include<>uniondata(shortints2;floata;i

19、ntb;charc4;u;voidmain()(cin>>0>>1;cout<<"s0="<<0<<"s1="<<1<<endl<<"a="<<<<"b="<<<<endl<<"c0="<<0<<"c1="<<1<<endl<<"c2="<

20、;<2<<"c3="<<3<<endl;輸入兩個整數(shù)10000、20000給0和1,分析運(yùn)行結(jié)果。然后將cin語句改為:cin>>輸入60000給b,分析運(yùn)行結(jié)果。2、打印學(xué)生成績單,內(nèi)容包括學(xué)號、姓名、三門課(數(shù)學(xué)MT英語EN計(jì)算機(jī)COMPPU的成績。計(jì)算每個學(xué)生三門課程的總分SUM平均分AVER若三門課成績都在90分以上者,輸出“Y”;否則輸出“N”,并打印學(xué)生成績單,格式如下:NUMNAMEMTENCOMPSUMAVER>=909501Liufan9598Y9502Zhanghua9582N9503Limin

21、g688985242N輸入以下程序并調(diào)試運(yùn)行。#include<>structstudentintnum;charname15;floatscore3;floatsum;floataver;charch;voidmain()(studentstu3;inti,j;for(i=0;i<3;i+)(cin>>stui.num;cin>>;for(j=0;j<3;j+)cin>>stui.scorej;for(i=0;i<3;i+)(stui.sum=0;stui.ch='Y'for(j=0;j<

22、;3;j+)(stui.sum+=stui.scorej;if(stui.scorej<90)stui.ch='N'stui.aver=stui.sum/3;cout<<"NUMNAMEMTENCOMPSUMAVER>=90"<<endl;for(i=0;i<3;i+)(cout<<stui.num<<setw(8)<<<<setw(8)<<stui.score0<<setw(8)<<stui.score1<&

23、lt;setw(8)<<stui.score2<<setw(8)<<stui.sum<<setw(8)<<stui.aver<<setw(5)<<stui.ch<<endl;3、設(shè)計(jì)一個單向鏈表。從標(biāo)準(zhǔn)輸入讀取若干整數(shù),建立鏈表,每次讀入的數(shù)放入鏈表結(jié)尾。當(dāng)用戶輸入。時(shí),結(jié)束鏈表的建立工作。然后從前往后依次輸出鏈表結(jié)點(diǎn)中的內(nèi)容。提示:(1) 鏈表結(jié)點(diǎn)空間動態(tài)申請。(2) 因?yàn)槊看涡陆Y(jié)點(diǎn)插入在表尾,所以應(yīng)設(shè)一個指針總是指向當(dāng)前的表尾。(3) 處理申請不到空間的情況。測試數(shù)據(jù):程序輸出:請輸入若干整數(shù)建

24、立鏈表(輸入0結(jié)束):用戶輸入:12345670程序輸出:1234567思考問題:如果是雙向鏈表,程序要做哪些改動?4、有10個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課的成績,從鍵盤輸入10個學(xué)生數(shù)據(jù),要求打印出3門課的平均成績,以及最高分學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、3門課的成績、平均分?jǐn)?shù))。要求:用input函數(shù)輸入10個學(xué)生的數(shù)據(jù);用average函數(shù)求平均分;用max函數(shù)找出最高分的學(xué)生數(shù)據(jù);平均分和最高分學(xué)生的數(shù)據(jù)都在主函數(shù)中輸出。5、建立一個鏈表,每個結(jié)點(diǎn)包括:學(xué)號、姓名、性別、年齡、。輸入一個年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。實(shí)驗(yàn)九類與對象一、實(shí)驗(yàn)?zāi)康?、掌握類和對象的定義和使用。2、理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的作用。3、學(xué)習(xí)使用靜態(tài)成員和內(nèi)聯(lián)成員函數(shù)。4、掌握從現(xiàn)有類派生出新類的方式。5、了解基類成員在派生類中的訪問控制。6、了解虛函數(shù)對多態(tài)性的支持。二、實(shí)驗(yàn)內(nèi)容與步驟1、構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用。輸入和運(yùn)行以下程序。#include<>classA(int*a;public:A(intx)(a=newint(x);cout<<"Constructor:"<<*a<<endl;A()(cout&

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論