版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、浙尸丿:穿城市學(xué)院ZHEJIANG UNIVERSITY CITY COLLEGEC+程序設(shè)計(jì)報(bào)告課程名稱ZU1C+程序設(shè)計(jì)黃麗平31202417專業(yè)班級(jí)電子科學(xué)與技術(shù) 12012013-2014- 1指導(dǎo)教師(職稱)劉泓(副教授)次號(hào)實(shí)驗(yàn)內(nèi)容概要實(shí)驗(yàn)1:熟悉上機(jī)環(huán)境及C+基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)2:C +文件組織與C+運(yùn)算符的應(yīng)用實(shí)驗(yàn)3:C +循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)4:C +分支程序設(shè)計(jì)實(shí)驗(yàn)5:函數(shù)設(shè)計(jì)與應(yīng)用(1)實(shí)驗(yàn)6:函數(shù)設(shè)計(jì)與應(yīng)用(2)實(shí)驗(yàn)7:數(shù)組的應(yīng)用(1)實(shí)驗(yàn)8:數(shù)組的應(yīng)用(2)實(shí)驗(yàn)9:指針在數(shù)組中的應(yīng)用10實(shí)驗(yàn)10:指針與函數(shù)11實(shí)驗(yàn)11:類與對(duì)象(1)12實(shí)驗(yàn)12:類與對(duì)象(2)13實(shí)驗(yàn)13:運(yùn)
2、算符重載14實(shí)驗(yàn)14:類繼承與多態(tài)性15實(shí)驗(yàn)15:模板和異常處理16實(shí)驗(yàn)16: I/O與文件操作17實(shí)驗(yàn)17:可視化程序設(shè)計(jì)初步說明:以下為各個(gè)實(shí)驗(yàn)分實(shí)驗(yàn)?zāi)康暮鸵?、?shí)驗(yàn)內(nèi)容、操作方法與實(shí)驗(yàn)步驟、程序運(yùn)行結(jié)果與分析、討論、心得。實(shí)驗(yàn)1熟悉上機(jī)環(huán)境及C+基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康暮鸵?. 熟悉上機(jī)環(huán)境,了解 Visual C+6.0集成開發(fā)環(huán)境、掌握源程序編輯、程序調(diào)試、查看變量、程序運(yùn)行;2. 熟悉C+的程序結(jié)構(gòu),掌握main函數(shù)、保留字、變量及變量定義、輸入與輸出流等概念;3. 熟悉類與類對(duì)象的定義、類成員的調(diào)用。實(shí)驗(yàn)內(nèi)容任務(wù)1:程序調(diào)試1、熟悉Visual C+開發(fā)環(huán)境(1) 從 Windows
3、的“開始”菜單,選擇“程序” “ Microsoft Visual Studio” 7“Microsoft Visual C+ 6.0”,用鼠標(biāo)左鍵點(diǎn)擊“ Microsoft Visual C+ 6.0”。 進(jìn)入Developer Studio的應(yīng)用程序集成開發(fā)環(huán)境。(2) 用鼠標(biāo)左鍵點(diǎn)擊“ File”-“新建”命令,得到“新建”對(duì)話框,在“新建” 對(duì)話框中點(diǎn)擊“文件”標(biāo)簽,選擇標(biāo)簽“ C+ Source File”,并且在右邊“文 件”文本框中輸入文件名filel ,點(diǎn)擊命令按鈕“確定”。(3) 在編輯區(qū)光標(biāo)處開始輸入源程序,輸入源程序。/*程序功能:輸入輸出練習(xí)*/ #includevio
4、stream.h>int main()coutvv" 您好!浙江大學(xué)歡迎您,愿您喜歡cout<<2008;/C+的輸入輸出。"/表示輸出一個(gè)字符串打印一個(gè)整數(shù)cout<<"n"/換行cout<<20.1;/cout<<endl;/打印一個(gè)實(shí)數(shù)換行coutvv"I am "vv20vv " years old studentchar name30;int age ;/."/ 連續(xù)打印變量的聲明位置與 C有什么區(qū)別嗎?cout< v"pl ease
5、give your name :"cin>>name ;/表示鍵盤輸入字符串到變量 name中coutv v"pl ease tell me how old are you cin>>age ;/coutvv"Your name is "vvnamevvendl;?"J表示鍵盤輸入整型數(shù)到變量age中coutvv"you are "<<age<<"years old(4)點(diǎn)擊菜單欄的菜單“編譯”-“編譯 file1.cpp”,建立一個(gè)默認(rèn)的工作區(qū)。 編譯成功,產(chǎn)生一個(gè)
6、目標(biāo)文件:file1.obj。如果程序有錯(cuò)誤,在輸出窗口中 會(huì)指出每一項(xiàng)的錯(cuò)誤及產(chǎn)生錯(cuò)誤的原因、所在行。請(qǐng)操作(a)在程序中任號(hào),何一行少一個(gè)“;”符號(hào),有什么提示? (b)刪除int age;這一行,編譯后有什 么錯(cuò)誤提示。(6)點(diǎn)擊菜單“編譯” T “執(zhí)行file1.exe Ctr1+F5”,點(diǎn)擊命令按鈕“是(丫)”, 將產(chǎn)生一個(gè)可執(zhí)行文件 file1.exe。(7)編輯第二個(gè)C+源程序。點(diǎn)擊“文件”-“新建”,在“新建”對(duì)話框中 選擇“ C+ Source File”,在文件框中輸入文件名file2。(8)點(diǎn)擊菜單的“文件”-“關(guān)閉工作區(qū)”,關(guān)閉前一題的工作空間,重新編 譯即可。文件”(
7、9)打開已存在的文件, Developer Studio 中一次只能打開一個(gè)工作空間。工 作空間的打開過程為:“文件”-“打開工作區(qū)”,在對(duì)話框中選擇要打開的 工程(.dsw)文件。問題:1.C+中的注解有哪些?2. 應(yīng)用輸入輸出流應(yīng)包含什么庫(kù) ?3. 定義變量有什么含義 ?4. 常用變量有哪些基本類型 ?2、C+程序的調(diào)試編輯程序后存在一些錯(cuò)誤是不可避免的, 這些錯(cuò)誤的發(fā)生有可能是: 編譯錯(cuò)誤, 如語(yǔ)法、 輸入錯(cuò)誤等;鏈接錯(cuò)誤,如函數(shù)名寫錯(cuò)或所調(diào)用的函數(shù)沒有定義;運(yùn)行錯(cuò)誤等。與位置有關(guān)的斷點(diǎn)設(shè)置。(1)最簡(jiǎn)單的是設(shè)置一般位置斷點(diǎn),只要把光標(biāo)移到要設(shè)斷點(diǎn)的位置,當(dāng) 然這一行必須包含一條有效語(yǔ)句
8、的;然后按F9鍵(F9鍵為開關(guān)鍵),會(huì)看到在這一行的左邊出現(xiàn)一個(gè)紅色的圓點(diǎn)。(2)表達(dá)式在滿足一定條件的情況:要設(shè)置這種斷點(diǎn)需可單擊“編輯”-“斷點(diǎn).命令,這時(shí)Break point對(duì)話框?qū)?huì)出現(xiàn)(或組合鍵 Alt+F9鍵)。選中 Breakpoint 對(duì)話框中的 Location 標(biāo)簽,使 Location 頁(yè)面彈出,輸入行號(hào)或單擊 con dition按鈕,彈出“斷點(diǎn)條件”對(duì)話框,在Ex pression編輯框中寫出邏輯表達(dá) 式,如age=18或age>20,最后按0K返回。3、控制程序的運(yùn)行(1)單擊“編譯”-“開始調(diào)試”-“去”命令,程序開始運(yùn)行在Debug狀態(tài)下(此時(shí)菜單“編譯
9、”改變?yōu)椤?Debug”),程序會(huì)由于斷點(diǎn)而停頓下來(lái),這 時(shí)會(huì)看到有一個(gè)小箭頭,它指向即將執(zhí)行的代碼。( 2)四條命令: Step over, step Into, Step 0ut, Run to Cursor。則用 Step IntoStep ove:功能是運(yùn)行當(dāng)前箭頭指向的代碼(只運(yùn)行一條代碼)。 Step Into:功能是如果當(dāng)前箭頭所指的代碼是一個(gè)函數(shù)的調(diào)用, 進(jìn)入該函數(shù)進(jìn)行單步執(zhí)行。Step Out :功能是如當(dāng)前箭頭所指向的代碼是在某一函數(shù)內(nèi),用它使程序運(yùn) 行至函數(shù)返回處。Run to Cursor:功能是使程序運(yùn)行至光標(biāo)所指的代碼處。任務(wù) 2:程序調(diào)試在實(shí)驗(yàn) 1 的源程序基礎(chǔ)上
10、,作以下程序的調(diào)試,并回答相關(guān)問題。1)4)用單行注釋符 ”/注”解預(yù)處理命令,編譯程序有什么提示?如果程序中使 用函數(shù)fabs,應(yīng)該增加什么樣的預(yù)處理?把int main()寫成int Main(),編譯程序有什么提示?請(qǐng)回答在C+程序設(shè)計(jì)對(duì)大小寫有什么要求?如果把語(yǔ)句 cout<<2008; 如改寫為: cout<<2008 編譯程序有什么提示? 請(qǐng)回答在C+程序設(shè)計(jì)對(duì)語(yǔ)句結(jié)束有什么要求?程序中的變量定義: int age ; 如改寫為: int age_1 ; 編譯程序有什么提示?如改寫為: int 1_age ; 編譯程序有什么提示?如改寫為: int for
11、;編譯程序有什么提示?關(guān)于變量的取名你能總結(jié)出什么經(jīng)驗(yàn)?任務(wù) 3:程序設(shè)計(jì)仿照任務(wù) 1,應(yīng)用 cin、cout 進(jìn)行輸入、輸出的程序設(shè)計(jì)。給出提示“請(qǐng)輸入您的學(xué)院名”,然后您輸入您所在的學(xué)院,接著輸出提示“請(qǐng)輸入您的姓名” 然后輸入您的姓名,然后輸出提示“請(qǐng)輸入您的年齡” ,輸入您的年齡后,最后 輸出“歡迎來(lái)自?學(xué)院的?同學(xué),您的年齡是?歲” ,其中?為 輸入的值。任務(wù) 4:程序調(diào)試進(jìn)入Visual C+集成環(huán)境,編輯下列源程序:#include<iostream.h>class sprivate:int x,y;public:void s(int a,int b)x=a;y=b;
12、int area( )return x*y; void show( )cout<<" 面積 :"<<area( )<<endl;int main() int a,b;cin>>a>>b;s x(a,b);x.show();編譯運(yùn)行程序后寫出程序的運(yùn)行結(jié)果并回答下列問題:a)省略預(yù)處理行#includeviostream.h>,會(huì)出現(xiàn)什么樣的錯(cuò)誤提示?程序中出現(xiàn)了哪些關(guān)鍵字?c)函數(shù)init、area show功能分別是什么?d)(e)在類中,如果 private、 public 不寫,會(huì)出現(xiàn)什么樣的錯(cuò)誤提示?
13、為什么?重寫程序,把成員函數(shù)定義在類的外部,提示:請(qǐng)參照下列類定義。class sprivate:int x,y;public:void init(int a,int b);int area( );void show( );void s:init(int a,int b)x=a;y=b;int s: area( )return x*y;void s: show( )cout<<" 面積 :"<<area( )<<endl; 任務(wù) 5:程序設(shè)計(jì)模仿任務(wù)4,設(shè)計(jì)一個(gè)立方體類,它有三個(gè)int型私有成員a b、c,求出這個(gè)立方體的體積,然后輸出。
14、提示:類定義為:class cubpublic:cub(int x,int y,int z)a=x;b=y;c=z;int Volume ( )int z;z=a*b*c;return z;void show( )cout<< ” 長(zhǎng)方體體積為: ”<< Volume ( )<<endl; private:int a,b,c;參照任務(wù) 4 的 main 函數(shù)的編寫。任務(wù) 6:程序設(shè)計(jì)首先在屏幕上輸出以下菜單:1求函數(shù)值2計(jì)算方程的根3畫簡(jiǎn)單圖形其中前0退出請(qǐng)輸入您的選擇: 2您的選擇是: 21 個(gè) 2 是鍵盤輸入的,第 2 個(gè) 2 是把輸入的變量值輸出。操作
15、方法與實(shí)驗(yàn)步驟四、程序運(yùn)行結(jié)果與分析五、討論、心得實(shí)驗(yàn)2 C +文件組織與C+運(yùn)算符的應(yīng)用、實(shí)驗(yàn)?zāi)康暮鸵?. 熟悉C+的多文件組織(1個(gè)C+程序,由多個(gè)文件構(gòu)成);2. 掌握C+的常量與變量,掌握(1)讀入不同進(jìn)位制常量,用 dec oct、hex等控制輸出;(2)各種算術(shù)、關(guān)系運(yùn)算符的應(yīng)用,可含數(shù)學(xué)函數(shù);3.熟悉類與類對(duì)象的定義、類成員的調(diào)用。二、實(shí)驗(yàn)內(nèi)容 任務(wù)1: C+多文件程序調(diào)試C +多文件組織、類對(duì)象與類成員的使用。理解一個(gè)C+程序可以由一個(gè)或多個(gè)文件構(gòu)成,一個(gè)文件可以由一個(gè)或多個(gè)函數(shù)構(gòu)成。 下列程序是完成簡(jiǎn)單的函數(shù)調(diào)用,完成一些基本運(yùn)算,程序的主要思想是掌握多文件系統(tǒng)的編譯, 此
16、C +程序由五個(gè)文件構(gòu)成。(1) 開始程序Microsoft Visual StudioMicrosoft Visual C+ 6.0 新建 T文件-C+Source File -在文件對(duì)話框中輸入文件名2-1-1,編輯2-1-1.CPP 內(nèi)容:int add(i nt x,i nt y)retur n x+y;保存并關(guān)閉此文件。(2)文件-新建-文件-C/C+Header File -在文件對(duì)話框中輸入文件名2-1,編輯2-1.h內(nèi)容: #in clude<iostream.h>#in clude "2-1-1.cp p"保存并關(guān)閉此文件。(3)文件新建文件C
17、+Source File在文件對(duì)話框中輸入文件名 2-1, 編輯2-1.CPP內(nèi)容:int main()int a,b;cin> >a>>b;int c=add(a,b);coutvvavv'+'vvbvv'='vvcvve ndl;(4) 編譯程序,有什么提示?請(qǐng)思考什么原因?(5) 在文件 2-1.CPP的第一行加入預(yù)處理命令:#i nclude "2-1.h"(6) 再次編譯,思考一下程序?yàn)槭裁闯晒α耍?注意:編譯時(shí)當(dāng)前文件應(yīng)是2-1.C PP任務(wù)2:多文件程序設(shè)計(jì)(1)仿照任務(wù)1,其中主調(diào)函數(shù)的文件名為2-2.
18、CP P,內(nèi)容為:# in clude "2-2.h"int main()int a,b;cin> >a>>b;in t c1=f1(a,b); coutvvavv'+'vvbvv'='vvc1vve ndl;in t c2=f2(a,b); coutvvavv'-'vvbvv'='vvc2vve ndl;in t c3=f3(a,b); coutvvavv'*'vvbvv'='vvc3vve ndl; int c4=f4(a,b);coutvvavv7&
19、#39;vvbvv'='vvc4vve ndl; (2) 分別在文件 2-2-1.CPP、2-2-2.CPP、2-2-3.cpp、2-2-4.Cpp 中編寫函數(shù) f1、f2、f3、 f4分別完成算術(shù)運(yùn)算+、-、*、/的功能。(3) 編輯頭文件2-2.h#in clude <iostream.h>#i nclude "2-2-1.cp p" #i nclude "2-2-2.cp p" #i nclude "2-2-3.cp p" #i nclude "2-2-4.cp p"(4) 編譯并
20、運(yùn)行程序。注意:編譯時(shí)當(dāng)前窗口文件是 2-2.C PP 任務(wù)3:輸入、輸出操縱符控制程序設(shè)計(jì)(1)編輯并調(diào)試下列程序,程序的文件名為2-3.C PP #i ncludeviostream.h> #i ncludevioma nip .h> int main()int x,y;cin> >x>>y;cout<<"x="<<x<<" "vv"y="vvyvve ndl;cout<<"x="<<oct<<x<
21、<""vv"y="vvhexvvyvve ndl;coutvv"x="vvsetw(5)vvxvv""vv"y="vvyvve ndl;常用進(jìn)位制操縱算子有 dec、oct、hex,它們?cè)诔绦蛑蟹謩e起什么作用?在上述oct的位置分別用dec、hex去代替,輸出結(jié)果分別是什么?(3)setw(5)起什么作用?請(qǐng)多次改變其中的數(shù)據(jù),觀察程序的運(yùn)行結(jié)果有什么變化?(4)設(shè)計(jì)一個(gè)程序,輸入20給X,輸出結(jié)果為:x=20 x= 14 x= 20 x=24注意:程序設(shè)計(jì)中不能對(duì)X作運(yùn)算,只能使用dec
22、、oct、hex、setw進(jìn)行控制。任務(wù)4:運(yùn)算符程序設(shè)計(jì)閱讀程序,寫出下列程序的運(yùn)行結(jié)果,設(shè)程序的文件名為2-4.C PP#includeviostream.h> class dataprivate:int x,y;public:void data(int a,int b)x=a;y=b;void gt()coutvvxvv'>'vvyvv'='vv(x>y)vve ndl;void p rint()gt();int main()int a,b;cin>>a>>b; data A(a,b);A.print(); ret
23、urn 0; <、 >=、請(qǐng)改寫函數(shù)print,分別調(diào)用成員函數(shù)函數(shù):lt( )、ge( )、eq( )、and( )、or()分 別用于關(guān)系運(yùn)算( <、 >=、 =)、邏輯運(yùn)算(&& 、 |)的操作,請(qǐng)?jiān)陬愔性黾映蓡T函 數(shù) lt、 ge、 eq、 and、 or 的定義,并在 print 函數(shù)中調(diào)用。任務(wù)5:程序設(shè)計(jì)重新設(shè)計(jì)任務(wù)4,把類及成員函數(shù)的實(shí)現(xiàn)存放在文件 test4.h中,把main函 數(shù)存放在test4.cpp中,編輯程序并編譯運(yùn)行。提示在文件 test4.cpp中要有預(yù)處 理命令 #include ” test4.h ” 任務(wù) 6:程序設(shè)計(jì)
24、新建三個(gè)文件,其文件名分別為ex2-2.h、ex2-2-1.cpp、ex2-2-2.cpp,其中ex2-2-1.cpp文件定義一個(gè)main函數(shù),定義一個(gè)類對(duì)象,從鍵盤輸入數(shù)據(jù),作為 對(duì)象的參數(shù)。在ex2-2.h中定義類,在ex2-2-1.cpp中定義類中所有的成員函數(shù)。程序功能:(1) 定義三角形類,可計(jì)算三角形周長(zhǎng)與面積。(2) 定義一個(gè)棱形類,輸入棱形的兩條對(duì)角線,類中可求得棱形的周長(zhǎng)與 面積。操作方法與實(shí)驗(yàn)步驟四、程序運(yùn)行結(jié)果與分析五、討論與心得實(shí)驗(yàn)3 C +循環(huán)程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康暮鸵?了解各種循環(huán)語(yǔ)句的基本形式;2理解并掌握循環(huán)語(yǔ)句的構(gòu)成方法;3理解 for 循環(huán)的三個(gè)表達(dá)式的含義
25、及執(zhí)行過程;4了解 for 語(yǔ)句的表達(dá)式缺省情況;5. 理解并掌握while、dowhile、for的應(yīng)用;6. 理解break與contin ue語(yǔ)句的差異。二、實(shí)驗(yàn)內(nèi)容 任務(wù) 1:程序調(diào)試定義一個(gè)類,此類的功能是求n至m間的自然數(shù)的和。程序設(shè)計(jì)代碼如下:#include<iostream.h> class Addn_m private:int n,m;public:Addn_m(int n1,int m2)n=n1;m=m2;int Add();void print()cout<<Add()<<endl;int Addn_m:Add()int sum=0
26、,i;i=n;while(i<=m)sum=sum+i;i+;return sum;void main()int a,b;cin>>a>>b;Addn_m A(a,b);A.print();1)程序運(yùn)行時(shí),從鍵盤輸入 1 100,請(qǐng)思考程序運(yùn)行的結(jié)果;2)在程序段中:while(i<=m)sum=sum+i;i+;去掉大括號(hào),編譯程序,思考程序的運(yùn)行結(jié)果;如果沒有 i+ 語(yǔ)句,程序會(huì)出現(xiàn) 什么情況?3)請(qǐng)思考當(dāng)程序運(yùn)行時(shí),如輸入 10 2,程序結(jié)果如何?應(yīng)如何修改程序才能得出正確結(jié)果;4)請(qǐng)思考成員函數(shù) Add 能否用訪問控制符 private 來(lái)限定。任務(wù)
27、 2:程序調(diào)試 #include<iostream.h> class Factorialprivate:int n;public:Factorial(int a)n=a;int mult();void print()cout<<n<<"!="<<mult()<<endl;int Factorial:mult()for(int i=1,s=1;i<=n;i+)s=s*i;return s;int main()int a;cin>>a;Factorial A(a);A.print();任務(wù) 3:程序設(shè)
28、計(jì)仿照任務(wù)2,定義一個(gè)求階乘和的類,從鍵盤輸入一個(gè)不大于10的整數(shù)n,求表 達(dá)式的值 sum=1!+2!+3!+n!。任務(wù)4:編寫計(jì)算近擬公式:e=1-1/1!+1/2!-1/3!+1/4!-1/5!+.的程序,并使其 誤差小于 0.00001.任務(wù) 5:程序設(shè)計(jì)已知 main 函數(shù)定義:int main() int a,b;char ch;cin>>a>>b>>cn;graphics A(a,b,ch);A.print();如果程序在執(zhí)行時(shí)輸入: 3 4程序執(zhí)行的結(jié)果為:請(qǐng)?jiān)O(shè)計(jì)程序并調(diào)試。任務(wù) 6:程序設(shè)計(jì)設(shè)計(jì)程序,在屏幕上輸出如下圖形。三、操作方法與實(shí)驗(yàn)
29、步驟四、程序運(yùn)行結(jié)果與分析五、討論與心得實(shí)驗(yàn)4 C +分支程序設(shè)計(jì)、實(shí)驗(yàn)?zāi)康暮鸵?.掌握分支結(jié)構(gòu)的各種表達(dá)形式;2理解并掌握分支結(jié)構(gòu)中條件的表示方法;3理解并掌握多分支選擇結(jié)構(gòu)的實(shí)現(xiàn)方法;4能應(yīng)用選擇結(jié)構(gòu)解決實(shí)際問題。、實(shí)驗(yàn)內(nèi)容 任務(wù)1 :程序設(shè)計(jì)輸入a、b,循環(huán)實(shí)現(xiàn)計(jì)算下列算式,當(dāng)a b中有一個(gè)為0時(shí),退出循環(huán)。a>0,b>0,計(jì)算 Ja +ylba>O,bvO,計(jì)算 a2+b2值 av0,b>0,計(jì)算a*eb的值 avO,bvO,計(jì)算 ab值編寫程序?qū)崿F(xiàn)以上功能。任務(wù)2:程序調(diào)試從鍵盤輸入一數(shù),如果該數(shù)大于0,求該數(shù)的平方根,否則輸出“該數(shù)少于0”。#includ
30、e viostream.h#includevmath.h>int main()double x,y;coutvv"請(qǐng)輸入一數(shù):"vvendlcin>>x;while(fabs(x)v1e-6)if(x>0)y=sqrt(x);coutvvxvv”平方根是 ” vvyvvendl;else該數(shù)少于O"vvendl;coutvv"cin>>x;return 0;如果省略下列程序段中的大括號(hào),程序能運(yùn)行嗎?為什么?if(x>0)y=sqrt(x);c out<<x<< ” 平方根是 ” <
31、<y<<endl;任務(wù)3:程序設(shè)計(jì)輸入一行字符, 分別統(tǒng)計(jì)出這行字符中英文字母、 空格、數(shù)字和其它字符的個(gè)數(shù)。提示:while(ch=getchar()!='n') if(ch>='A'&&ch<='Z'|ch>='a'&&ch<='z') Letters+;else if(ch>='0'&&ch<='9') Digital+;else if(ch=' ')Space
32、+;elseOther+;思 考 : 如 果 while 中 的 表 達(dá) 式 寫 成 while(ch=getchar()!='n') 或while(ch=getchar()!='O'),程序是否能達(dá)到預(yù)期效果?為什么?任務(wù)4:程序設(shè)計(jì)從鍵盤輸入三個(gè)數(shù), 判斷由這三個(gè)數(shù)能否夠成一個(gè)三角形, 如能并判定是等邊三 角形還是等腰三角形、 直角三角形, 還是其它三角形, 當(dāng)輸入的三個(gè)數(shù)中有一個(gè) 小于等于 0時(shí),程序結(jié)束。任務(wù) 5:定義一個(gè)三角形的類,從鍵盤輸入三個(gè)數(shù),判斷由這三個(gè)數(shù)能否夠成一 個(gè)三角形, 如能并判定是等邊三角形還是等腰三角形、 直角三角形, 還是其它三
33、角形,當(dāng)輸入的三個(gè)數(shù)中有一個(gè)等于 0時(shí),程序結(jié)束。任務(wù)6:輸入一個(gè)百分制成績(jī),要求輸出成績(jī)相應(yīng)的等級(jí)(A:90分以上,B: 80-89 ,C:7O-79,D:6O-69,E:6O 分以下),要求用 switch 語(yǔ)句實(shí)現(xiàn)。任務(wù)6:已有一個(gè)數(shù)學(xué)類math的定義與main函數(shù)、show函數(shù)的定義,程序的功能 是完成小學(xué)數(shù)學(xué)中 +、-、*、/ 的運(yùn)算,請(qǐng)完成程序。#include<iostream.h>class mathprivate:double x,y;char ch;public:math(double a,char ch,double b);double calculate(
34、);void show();請(qǐng)?jiān)诔蓡T函數(shù) calculate 中用 switch 語(yǔ)句完成程序的功能。任務(wù)7:要求從鍵盤輸入三個(gè)數(shù),把三個(gè)數(shù)從大到小輸出,直到輸入的三個(gè)數(shù)都 為0,程序結(jié)束。定義一個(gè)類,類的功能是輸出 n 至 m 之間的素?cái)?shù)。程序運(yùn)行時(shí)在 main 函數(shù)中輸 入 100 1000,輸出 100到 1000 之間的素?cái)?shù)。提示:求 k 是否為素?cái)?shù)的程序段可以設(shè)計(jì)為:j=(int)sqrt(k);i=2;while(i<=j)if(k%i=0)break;i+;if(i>=k)cout<<k<<'四、操作方法與實(shí)驗(yàn)步驟五、程序運(yùn)行結(jié)果與分析
35、六、討論與心得實(shí)驗(yàn)5函數(shù)設(shè)計(jì)與應(yīng)用(1)、 實(shí)驗(yàn)?zāi)康暮鸵?掌握系統(tǒng)函數(shù)的調(diào)用方法;2掌握函數(shù)的定義方法;3理解不同的存儲(chǔ)類型在函數(shù)中的不同作用;、實(shí)驗(yàn)內(nèi)容任務(wù) 1:程序調(diào)試 (1) 下列程序有問題嗎?請(qǐng)調(diào)試。#include<iostream.h>void main()cout<< f(2,3);int f(int x,int y)return x+y;(2) 下列程序有問題嗎?請(qǐng)調(diào)試。#include<iostream.h>void main()int f(x,y);cout<< f(2,3);int f(int x,int y)return
36、 x+y;(3) 下列程序有問題嗎?請(qǐng)調(diào)試。#include<iostream.h>void main() int f(int , int );cout<< f(2,3);int f(int x,int y)return x+y;(4) 下列程序有問題嗎?請(qǐng)調(diào)試。#include<iostream.h>int f(int x,int y) return x+y;void main()cout<< f(2,3); 下列程序應(yīng)用系統(tǒng)函數(shù)進(jìn)行計(jì)算,其功能是如果a為2, b為3,則輸出為8,如果a為-2,b為3,則輸出為0.125,程序有多處錯(cuò)誤,請(qǐng)改正
37、(文件包含、 參數(shù)類型,分號(hào)等)。#include<iostream.h> double f(int x,int y);double z;if(x>0)z=pow(x,y);elsez=pow(x,-y);return z;int main()double a,b,c;cin>>a>>b;c=f(a,b);cout<<c<<endl;return 0;任務(wù) 2:程序設(shè)計(jì)設(shè)計(jì)一個(gè)程序,調(diào)用有關(guān)字符串的系統(tǒng)函數(shù)strlenstrcatstrcpystrcmp對(duì)字符串進(jìn)行長(zhǎng)度測(cè)試、連接、拷貝、比較操作。任務(wù) 3:程序設(shè)計(jì)循環(huán)計(jì)算算術(shù)運(yùn)
38、算a*sin(x)+b*x y,每次運(yùn)算前都詢問用戶”是否繼續(xù)計(jì)算(y/n)?,根據(jù)回答確定是否繼續(xù)計(jì)算?任務(wù) 4:程序調(diào)試#include<iostream.h>#include<string.h>class strprivate:char x80,y80;char ch;public:str(char a,char b,char c)strcpy(x,a);strcpy(y,b);ch=c;void opre( )switch(ch)case '+':strcat(x,y);cout<<x<<endl;break;case &
39、#39;l':cout<<"x length="<<strlen(x)<<endl;cout<<"y length="<<strlen(y)<<endl;break;int main()str A("abcd","12345",'+');A. opre();str B("abcd","12345",'l');B. opre();調(diào)試程序,寫出程序的運(yùn)行結(jié)果。任務(wù) 5
40、:程序設(shè)計(jì)仿照任務(wù) 5,補(bǔ)充下列功能, 重寫程序。設(shè)定:用字符 '+表'示兩個(gè)字符串的連接, 用字符m表示兩個(gè)字符串的比較,用字符'(表示字符串的拷貝,用字符'表示 測(cè)試字符串的長(zhǎng)度。調(diào)試程序并運(yùn)行結(jié)果。任務(wù) 6:實(shí)現(xiàn)任務(wù) 4 同樣的功能,完成類的定義,在構(gòu)造函數(shù)中只有兩個(gè)字符串 的參數(shù),函數(shù)opre有一個(gè)字符參數(shù)(+、I、C、m)并且含有switch語(yǔ)句,用main 函數(shù)進(jìn)行測(cè)試。三、操作方法與實(shí)驗(yàn)步驟四、程序運(yùn)行結(jié)果與分析五、討論與心得實(shí)驗(yàn) 6 函數(shù)設(shè)計(jì)與應(yīng)用( 2)、實(shí)驗(yàn)?zāi)康暮鸵?理解重載函數(shù);2掌握缺省參數(shù)的函數(shù);3成員函數(shù)的定義;4掌握函數(shù)的應(yīng)用。、
41、實(shí)驗(yàn)內(nèi)容任務(wù) 1:程序設(shè)計(jì)設(shè)計(jì)一個(gè)程序,調(diào)用一個(gè)函數(shù) add,可以完成整型數(shù)、雙精度型及它們混合型數(shù)的加法,如果是字符串即表示兩個(gè)字符串的連接,函數(shù)的原型如下:int add(int,int);double add(int,double);double add(double,double);double add(int,double,double) char add(char *,char *);完成所有函數(shù)的定義,并用 main 函數(shù)進(jìn)行測(cè)試。任務(wù) 2:程序設(shè)計(jì)定義一個(gè)類 dateclass date private: int year; int month; int day; public
42、:請(qǐng)補(bǔ)充完整類中成員函數(shù)的定義,其中 main 函數(shù)為:int main()date A;A.print(); date B(2011);B.print(); date C(2010,9);C. print();date D(2010,10,1);D. print();return 0;要求輸出為:今天是 2010年 2 月14日今天是 2011年 2 月14日今天是 2010年 9 月14日今天是 2010年 10 月 1 日Press any key to continue任務(wù) 3:程序設(shè)計(jì)編程:main函數(shù)中讀入一個(gè)整型數(shù)組,編寫二個(gè)同名的函數(shù)inv ,其中之一是反序所有的元素并輸出,另
43、一個(gè)反序前 n 個(gè)元素,請(qǐng)把類補(bǔ)充完整,并調(diào)試程序。#include<iostream.h>class Reverse private:int a10;public:Reverse (int x);void inv( );void inv(int n);void print( );Reverse:Reverse(int x) for(int i=0;i<10;i+)ai=xi;void Reverse:print( )for(int i=0;i<10;i+)cout<<ai<<" "cout<<endl;int m
44、ain()int x10;for(int i=0;i<10;i+)cin>>xi;Reverse A(x);A.p rint();A.inv();A.p rint();int n;cin>>n;A.inv(n);A.p rint();return 0;任務(wù)4:程序設(shè)計(jì) 設(shè)計(jì)一個(gè)程序,在main ()中輸入一個(gè)字符串,然后再輸入一個(gè)字符,調(diào)用一 個(gè)函數(shù)void del_char(char *p,char x),刪除在字符串中的這個(gè)字符。任務(wù)5: 程序設(shè)計(jì) 調(diào)試下列程序,觀察程序輸出結(jié)果,總結(jié)程序的功能。#i ncludeviostream.h> class d
45、ata p rivate:int x,y;char ch;p ublic:void in it(i nt a,i nt b,char c)x=a;y=b;ch=c;void op re()switch(ch) case '+':cout<<x<<' '<<ch<<' '<<y<<'='<<x+y<<e ndl;break;case '-':cout<<x<<' '<<c
46、h<<' '<<y<<'='<<x-y<<e ndl;break;int main()class data x;x.i ni t(23,45,'+');x.o pre();按以下要求改寫程序,能運(yùn)算+、-、*、人能對(duì)除數(shù)為0的情況進(jìn)行判斷。 任務(wù)6:程序設(shè)計(jì)仿照例5,實(shí)現(xiàn)同樣的功能,完成類的定義,并用main函數(shù)進(jìn)行測(cè)試。class datap rivate:int x,y;char ch;public:void init(int a,int b,char c)x=a;y=b;ch=c;
47、int opre();void p rint()coutvvxvv' 'vvchvv' 'vvyvv'='vvoprevve ndl;三、操作方法與實(shí)驗(yàn)步驟四、程序運(yùn)行結(jié)果與分析五、討論、心得實(shí)驗(yàn) 7 數(shù)組的應(yīng)用( 1)、實(shí)驗(yàn)?zāi)康暮鸵?了解數(shù)組與數(shù)學(xué)矩陣的關(guān)系;2掌握數(shù)組的定義、引用與初始化;3理解二維數(shù)組數(shù)據(jù)存儲(chǔ)順序;4理解并掌握冒泡、選擇排序算法;5掌握字符數(shù)組的定義、字符串的表示方法與應(yīng)用。二、實(shí)驗(yàn)內(nèi)容 任務(wù) 1:程序調(diào)試下列程序定義了一個(gè)數(shù)組類 Array ,類中定義了兩個(gè)數(shù)組與一個(gè)運(yùn)算符, 成員 函數(shù)中有構(gòu)造函數(shù)、運(yùn)算函數(shù)與輸出函數(shù),
48、請(qǐng)調(diào)試程序。#include<iostream.h>class Array private:int a10,b10;char ch;public:Array(int x,int y,char ch);void Computing( );void print( );Array:Array(int x,int y,char ch1) for(int i=0;i<10;i+)ai=xi;bi=yi;ch=ch1;void Array:Computing( )int i;switch(ch)case '+':for(i=0;i<10;i+)ai=ai+bi;br
49、eak;case '-':for(i=0;i<10;i+)ai=ai-bi;break;case1*1.for(i=0;i<10;i+)ai=ai*bi;break;void Array:print( )for(int i=0;i<10;i+)cout<<ai<<"cout<<endl;int main()int x10,y10;char ch;cout<<" 請(qǐng)輸入數(shù)組 1的 10 個(gè)元素 :"for(int i=0;i<10;i+) cin>>xi;cout&l
50、t;<" 請(qǐng)輸入數(shù)組 2的 10 個(gè)元素 :"for(i=0;i<10;i+)cin>>yi;cout<<" 請(qǐng)輸入運(yùn)算類型 +、- 、*:"cin>>ch;Array A(x,y,ch);A.print();A.Computing();A.print();任務(wù) 2:程序設(shè)計(jì)請(qǐng)仿照任務(wù) 1,在已定義的數(shù)組類 Array ,可以完成兩個(gè)數(shù)組的 +、 -、 * 、>運(yùn) 算,它們的運(yùn)算與任務(wù) 1中相同,都是相對(duì)應(yīng)元素間的運(yùn)算,請(qǐng)?jiān)O(shè)計(jì)程序并 調(diào)試。任務(wù) 3:程序設(shè)計(jì)、* 、運(yùn)算,請(qǐng)仿照任務(wù)2,在已定義的數(shù)組類
51、Array,它是對(duì)二維數(shù)組的+、 假設(shè)二維數(shù)組是 6*6,請(qǐng)?jiān)O(shè)計(jì)程序并調(diào)試。任務(wù) 4:程序調(diào)試及設(shè)計(jì)調(diào)試下列程序,程序的功能是將類中成員數(shù)組int a10中的元素逆順排序,請(qǐng)仿照此程序編寫一程序,完成對(duì)字符數(shù)組進(jìn)行逆序排列。#include<iostream.h>#include<iomanip.h>class invprivate:int a10;public:inv (int x);void inve( );void print( );inv:init(int x)for(int i=0;i<10;i+)ai=xi;void inv:inve( )int te
52、mp;for(int i=0;i<5;i+)temp=ai;ai=a9-i;a9-i=temp;void inv:print( )for(int i=0;i<10;i+)cout<<endl;int main()int x10;for(int i=0;i<10;i+)cin>>xi;class A(x);A.print( );A.inve( );A.print( );return 0;任務(wù) 5:程序設(shè)計(jì)編寫一程序判斷數(shù)組int a10中比相鄰元素大的元素個(gè)數(shù)。任務(wù) 6:程序設(shè)計(jì)編寫一程序判斷數(shù)組int a66是否是一個(gè)上三角。三、操作方法與實(shí)驗(yàn)步驟四、
53、程序運(yùn)行結(jié)果與分析五、討論與心得、實(shí)驗(yàn)?zāi)康暮鸵髮?shí)驗(yàn) 8 數(shù)組的應(yīng)用( 2)1了解字符串處理函數(shù)的用法;2理解并掌握冒泡、選擇排序算法;3掌握字符數(shù)組與字符串的定義、引用;二、實(shí)驗(yàn)內(nèi)容任務(wù) 1:程序調(diào)試#include<iostream.h>void main()int a10,i=0,temp;cout<<" 輸入 10 個(gè)整數(shù),輸入 0 時(shí)結(jié)束: "<<endl; while(i<10)cin>>ai;if(ai=0)break;i+;cout<<" 排序前: "<<end
54、l;for(int j=0;j<i;j+)cout<<aj<<" "cout<<endl;for(int k=0;k<i;k+)for(j=k-1;j>=0;j-)if(aj>aj+1)temp=aj+1;aj+1=aj;aj=temp;cout<<"排序后: "<<endl;for(k=0;k<i;k+)cout<<ak<<" "cout<<endl;調(diào)試程序,分析下列程序的執(zhí)行情況:輸入 10 個(gè)整數(shù),輸入
55、 0時(shí)結(jié)束:12 98 040 40 0x40 100 0 2398排序前:12 98 32 40 64 100排序后:12 32 40 64 98 100Press any key to continue任務(wù) 2:程序設(shè)計(jì)參照任務(wù) 1,定義一個(gè)類, 類的主要功能是對(duì)類中的整型數(shù)組從小到大進(jìn)行排序。任務(wù) 3:程序設(shè)計(jì)定義一個(gè)類,類中有一個(gè)整型數(shù) x與整型數(shù)組aN,類的功能是判斷x在數(shù)組a中出現(xiàn)的次數(shù),完成類的定義,同時(shí)編寫 main 函數(shù)進(jìn)行測(cè)試。任務(wù) 4:程序設(shè)計(jì)定義一個(gè)類,類中的私有數(shù)據(jù)為 int a66 ,另有構(gòu)造函數(shù)、用于判斷是否構(gòu)成 一個(gè)上三角的判斷函數(shù)。任務(wù) 5:程序設(shè)計(jì)不用字符串
56、處理函數(shù),將兩個(gè)字符連接,即將字符串 b 連到串 a 后面,變成字 符串 c。任務(wù) 6:程序設(shè)計(jì)str定義一個(gè)字符串的連接類str,成員函數(shù)strcat連接兩個(gè)字符串,而成員函數(shù)print 用于輸出連接后的字符串,當(dāng)定義一個(gè)字符串的連接類的對(duì)象時(shí),如:A.strcat( ); 輸出形式為:A("abcd","12345"); 連接兩個(gè)字符串的函數(shù)調(diào)用為:A.print( );任務(wù) 7:編寫函數(shù),刪除字符串中,從指定位置 m 開始的 n 個(gè)字符。刪除成功, 函數(shù)返回1;否則返回0。三、操作方法與實(shí)驗(yàn)步驟四、程序運(yùn)行結(jié)果與分析五、討論與心得實(shí)驗(yàn) 9 指針在數(shù)
57、組中的應(yīng)用1234、實(shí)驗(yàn)?zāi)康暮鸵?理解指針與地址的關(guān)系;掌握指針變量的定義、初始化和引用的方法;理解并掌握指針變量和它所指向的對(duì)象的關(guān)系;理解數(shù)組的首地址和元素地址的概念;5區(qū)分指針與引用作為函數(shù)參數(shù)的應(yīng)用6.掌握new與delete的應(yīng)用;7理解并掌握 main 函數(shù)的形式參數(shù)的使用用法。二、實(shí)驗(yàn)內(nèi)容任務(wù) 1:程序設(shè)計(jì)(1)設(shè)計(jì)一個(gè)函數(shù)swaP,函數(shù)的參數(shù)為指針,函數(shù)的功能是交換main函數(shù)中的 a, b 值。#include<iostream.h> void swap(int *p1,int *p2) void main() int a,b; cin>>a>
58、>b; swap(&a,&b);cout<<a<<" "<<b <<endl;思考:如果上述 swap 函數(shù)設(shè)計(jì)為:void swap(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p1;程序運(yùn)行會(huì)有什么樣的結(jié)果?為什么?如果上述 swap 函數(shù)設(shè)計(jì)為:void swap(int *p1,int *p2)int *p;*p=*p1;*p1=*p2;*p2=*p1;程序運(yùn)行會(huì)有什么樣的結(jié)果?為什么?2)用引用的方法交換 main 函數(shù)中 a、 b 的值,請(qǐng)重新設(shè)計(jì)程序。#include<iostream.h> void swap( void main()int a,b;cin>>a>>b;swap(a,b);cout<<a<<" "&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北師大版必修1物理上冊(cè)階段測(cè)試試卷含答案
- 2025年滬教新版選修1地理上冊(cè)階段測(cè)試試卷含答案
- 2025至2031年中國(guó)沖模刃磨機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年教科新版九年級(jí)歷史上冊(cè)階段測(cè)試試卷含答案
- 2025年新世紀(jì)版選擇性必修2物理下冊(cè)階段測(cè)試試卷含答案
- 2025年外研版七年級(jí)英語(yǔ)上冊(cè)月考試卷含答案
- 2025年人教版PEP必修1生物上冊(cè)階段測(cè)試試卷含答案
- 2025年冀教新版七年級(jí)英語(yǔ)下冊(cè)月考試卷含答案
- 2025年人教新課標(biāo)高一物理上冊(cè)月考試卷含答案
- 2025年新科版三年級(jí)語(yǔ)文上冊(cè)月考試卷含答案
- 上海市12校2025屆高三第一次模擬考試英語(yǔ)試卷含解析
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案集錦
- 鋪大棚膜合同模板
- 長(zhǎng)亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡(jiǎn)版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲(chǔ)系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及解析
- 你比我猜題庫(kù)課件
- 豐順縣鄉(xiāng)鎮(zhèn)集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險(xiǎn)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論