




已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)1 C+概論(2學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康氖煜C+的集成開發(fā)環(huán)境,學(xué)習(xí)運(yùn)行一個(gè)C+程序的步驟。了解幾種運(yùn)算符的使用規(guī)則。掌握變量命名規(guī)則,學(xué)會(huì)變量的定義和使用。二、實(shí)驗(yàn)內(nèi)容通過一個(gè)最簡(jiǎn)單的程序熟悉用VC+來調(diào)試Dos程序的步驟:使用Visual C+6.0對(duì)一個(gè)C+程序進(jìn)行編輯、編譯、連接和運(yùn)行。#include void main()cout”I am a student”endl;上機(jī)要求步驟一:新建一個(gè)win32 Console Application的工程:打開VC+開發(fā)軟件,從文件菜單中點(diǎn)擊新建菜單項(xiàng),出現(xiàn)如圖1-1所示:在右上角的工程下輸入該工程的名稱,如 hello,并設(shè)置該工程所保存的路徑。最后點(diǎn)擊確定。圖1-1步驟二:當(dāng)確定后會(huì)出現(xiàn)要你選擇工程類型的對(duì)話框,如圖所示:請(qǐng)選擇一個(gè)空的工程,即第一個(gè)選項(xiàng)。步驟三:當(dāng)單擊確定后,工程建立完畢,接下來建立程序源文件,請(qǐng)?jiān)賳螕粑募藛蜗碌男陆ǎ霈F(xiàn)原先出現(xiàn)的對(duì)話框,請(qǐng)選擇 “文件”選項(xiàng)卡中的c+ source file選項(xiàng),并取名,如hello。步驟四: 當(dāng)確定后,就進(jìn)入了源代碼的編輯窗口,如圖所示:步驟五:編輯好開始設(shè)置的源代碼后,就進(jìn)入了編譯和調(diào)試階段,請(qǐng)按如圖所示的第二個(gè)按鈕,這個(gè)稱作為構(gòu)件,它的功能是先進(jìn)行編譯,同時(shí)如果編譯成功的話自動(dòng)建立EXE可執(zhí)行文件,同時(shí)將可執(zhí)行文件和編譯和連接過程中的中間代碼一起放置在debug文件夾中。步驟六:執(zhí)行可執(zhí)行文件,單擊編譯條上的第四個(gè)按鈕,即驚嘆號(hào),對(duì)編譯成功的程序進(jìn)行執(zhí)行。編寫程序完成變量x和變量y值的交換,調(diào)試程序并觀察運(yùn)行結(jié)果。分析要交換變量x和變量y的值,需使用臨時(shí)變量z才能在進(jìn)行。一個(gè)完整的參考程序如下:#includevoid main()int x,y,z;/Acoutxy;cout輸入的x=x y=y endl;z=x;x=y;y=z; cout輸出的x=x y=y endl;上機(jī)要求在鍵盤上分別按如下格式輸入兩組數(shù)據(jù):5,3(回車)5 3(回車)觀察程序運(yùn)行結(jié)果。將程序中的x,y,z命名為auto,break,case分析程序出錯(cuò)原因。只將程序A行x改為大寫X,運(yùn)行程序觀察程序運(yùn)行結(jié)果。修改程序用條件運(yùn)算符輸出兩個(gè)數(shù)中的較大數(shù)。編程序輸入x、y和z的值,計(jì)算的值。分析表達(dá)式的值不一定為整數(shù),故程序中變量的類型應(yīng)采用實(shí)型。一個(gè)完整的參考程序如下:#includevoid main() float x,y,z,e,f ,w;/Acoutx,y,z= xyz;e= (x+1)*(y-1);/Bf=x+y;/Cw=e/f;/Dcoutw=wendl;上機(jī)要求輸入x5.4,y3.1,z2.7,觀察程序運(yùn)行結(jié)果。將程序中A行改為“int x,y,z,e,f,w ;”,輸入x5.4,y3.1,z2.7,觀察程序運(yùn)行結(jié)果。將程序中A行改為“float x,y,z,w;”, B、C、D行改為“w=(x+1)*(y-1)/x+y;”,觀察程序運(yùn)行結(jié)果。編寫程序。從鍵盤輸入一個(gè)三位正整數(shù),輸出其逆轉(zhuǎn)數(shù)。例如:輸入861,輸出為168。分析輸入的三位數(shù)為整數(shù),變量類型按整型進(jìn)行處理??刹捎们笥鄶?shù)的方法計(jì)算各位上的數(shù),然后逆序輸出。一個(gè)完整的參考程序如下:#includevoid main()int n,i,j,k; coutn;i=n%10;/i存放個(gè)位數(shù)n=(n-i)/10;/去掉個(gè)位數(shù) j=n%10;/j存放十位數(shù)n=(n-j)/10;/去掉十位數(shù)k=n;/k存放百位數(shù)n=i*100+j*10+k;cout逆轉(zhuǎn)數(shù)為:nendl;上機(jī)要求修改程序使其先取百位數(shù),再取十位數(shù),最后取個(gè)位數(shù)。給出下列程序的運(yùn)行結(jié)果分析本例測(cè)試了不同數(shù)據(jù)類型之間的數(shù)據(jù)轉(zhuǎn)換。#includevoid main()int a=32,b;double c=2.7,d;char e=D,f;b=a+c; /Ad=a+c; f=a+e;coutb=bendl;coutd=dendl;coutf=fendl; /B coutb+d+fendl; /C上機(jī)要求修改程序A行,對(duì)b的輸出值四舍五入。修改程序B行,按整型值輸出f。分析C行數(shù)據(jù)的值的類型。注意:本例A行提示如下警告:“conversion from double to int, possible loss of data.”屬于正常。三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)2 C+簡(jiǎn)單程序設(shè)計(jì)(4學(xué)時(shí))實(shí)驗(yàn)2.1簡(jiǎn)單數(shù)據(jù)類型使用(1學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康氖煜ず屠斫釩語言中的類型簡(jiǎn)單數(shù)據(jù)(整型、實(shí)型、字符型)、運(yùn)算、表達(dá)式;掌握常見格式控制字符對(duì)輸出結(jié)果的控制作用;能利用學(xué)習(xí)的數(shù)據(jù)類型,編制簡(jiǎn)單的C程序;初步學(xué)習(xí)調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容1. 輸入并運(yùn)行下列程序#includevoid main() int x=6, y ;cout x= xendl ; y = +x ; coutx= x y =yendl ;x=6; y=x+; coutx= x y =yendl ; x=6;y = x-; coutx=x y = yendl ; x=6;y = -x; coutx=x y = yendl ;(2) #includevoid main() int a=20, b=6;a+=a; coutaendl;a=20; a-=a; coutaendl;a=20; a*=a; coutaendl;a=20; a/=b; coutaendl;a=20; a%=b; coutaendl;a=20; a=a-b; coutaendl;a=10; b=4; a+=a*=a-=a/b; coutaendl;(3) #includevoid main() int a=3,b=4,c=5,x,y;x=(a+bc&b=c);coutxendl;x=(a|b+c&b-c);coutxendl; 寫出一個(gè)程序測(cè)試整型、字符型數(shù)據(jù)表示,并輸出以驗(yàn)證是否正確。#includemain()int x=010,y=10,z=0x10; /* 整型數(shù)據(jù)表示 */char c1=M,c2=x4d,c3=115,c4=77,c; /* 字符型數(shù)據(jù)表示 */ /* 整型數(shù)據(jù)的輸出 */printf(x=%o,y=%d,z=%xn,x,y,z);/* 數(shù)據(jù)以原進(jìn)制輸出,注意是否有前導(dǎo)0或0x */printf(x=%d,y=%d,z=%dn,x,y,z); /* 數(shù)據(jù)以10進(jìn)制輸出,換算到10進(jìn)制,結(jié)果對(duì)嗎? */ /* 字符型數(shù)據(jù)的輸出 */printf(c1=%c,c2=%x,c3=%o,c4=%dn,c1,c2,c3,c4); /* 數(shù)據(jù)以原進(jìn)制輸出,注意是否有前導(dǎo)0或0x */printf(c1=%c,c2=%c,c3=%c,c4=%cn,c1,c2,c3,c4); /* 結(jié)果都是什么字符?,也就是說字符可以自由的表示成幾種形式? */printf(c1=%d,c2=%d,c3=%d,c4=%dn,c1,c2,c3,c4); /* 看看這些字符的10進(jìn)制ASCII碼,哦,ASCII碼一樣,同一種字符 */ /* 字符型數(shù)據(jù)參與算術(shù)運(yùn)算 */c=c1+32; /* 字符怎么參加了數(shù)學(xué)運(yùn)算,哦,是字符對(duì)應(yīng)的ASCII碼整數(shù)/* 參與數(shù)學(xué)運(yùn)算;結(jié)果還是一個(gè)整數(shù)另外一個(gè)字符的ASCII碼 */printf(c=%c,c=%dn,c,c); /* 看看這個(gè)字符是什么?哇,M+32=m了,看看ASCII碼表,原來如此! */常見預(yù)定義的轉(zhuǎn)義字符對(duì)輸出的控制作用。main() int a,b,c; a=5,b=6,c=7; printf(12345678123456781234567812345678n); /*打印一個(gè)標(biāo)尺以便檢查輸出結(jié)果 */ printf(%dnt%d %dn %d %dtb%dn,a,b,c,a,b,c); /* 打印1個(gè)字符串 */ printf(c:a.txt); /* 打印一個(gè)文件名 */ printf(n);三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)2.2 控制結(jié)構(gòu)(1學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?理解并掌握程序的順序結(jié)構(gòu)程序設(shè)計(jì)理解并掌握程序的分支結(jié)構(gòu)(if語句、switch語句)程序設(shè)計(jì)理解并掌握程序的循環(huán)結(jié)構(gòu)(for語句、while語句、do-while語句)程序設(shè)計(jì)掌握循環(huán)語句的嵌套形式學(xué)習(xí)過程化程序設(shè)計(jì)方法進(jìn)一步學(xué)習(xí)掌握查找與修改編譯錯(cuò)誤的方法二、實(shí)驗(yàn)內(nèi)容編寫程序任意輸入一個(gè)三位,將其反向輸出。如輸入123,輸出321。有一個(gè)函數(shù)如下: x (x5) y= x+6 (5=x=15)輸入x的值,計(jì)算出相應(yīng)的y值。編寫一個(gè)程序,輸入年、月,打印出該年份該月的天數(shù)。編程按分段統(tǒng)計(jì)學(xué)生成績(jī),輸入為負(fù)數(shù)時(shí)結(jié)束。要求按90100、8089、7079、6069、60以下五檔分別統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù)(用if語句和switch語句編寫程序)。用dowhile, while, for 三種循環(huán)語句求出1+3+5+.+101的和,輸出結(jié)果。編程輸出如下圖形:* * * * 7.輸入一行字符,分別統(tǒng)計(jì)其中的英文大寫字母,小寫字母、數(shù)字字符和其他字符。三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)2.3 數(shù)組(1學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?掌握一維數(shù)組和二維數(shù)組定義的規(guī)則;掌握數(shù)組的初始化方法及數(shù)組元素的引用;熟練掌握一維數(shù)組和二維數(shù)組的使用;掌握字符數(shù)組與字符串的關(guān)系以及字符串變量的表示。二、實(shí)驗(yàn)內(nèi)容編寫一個(gè)程序,將20以內(nèi)的偶數(shù)賦給數(shù)組a,然后輸出此數(shù)組各元素。先定義一個(gè)含有30個(gè)整型元素的數(shù)組,依次賦予從2開始的偶數(shù),然后按順序每五個(gè)數(shù)的平均值放在另一個(gè)數(shù)組中,并要求按每行6個(gè)數(shù)輸出結(jié)果。定義一個(gè)二維數(shù)組存儲(chǔ)五位學(xué)生五科考試的成績(jī),編寫程序分別取出二維數(shù)組里的元素值,經(jīng)過累加之后列出總成績(jī),計(jì)算并輸出每個(gè)同學(xué)的平均成績(jī),格式如下:第1個(gè)學(xué)生的總分為:* 平均分為:*第2個(gè)學(xué)生的總分為:* 平均分為:*第3個(gè)學(xué)生的總分為:* 平均分為:*第4個(gè)學(xué)生的總分為:* 平均分為:*第5個(gè)學(xué)生的總分為:* 平均分為:*輸入兩個(gè)字符串,比較這兩個(gè)字符串是否相同,并輸出比較的結(jié)果。編寫一個(gè)程序,由用戶輸入一個(gè)含有5個(gè)單詞的英文句子,按照用戶的要求輸出句中的第i個(gè)單詞。三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)2.4 結(jié)構(gòu)體與編譯預(yù)處理(1學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?掌握結(jié)構(gòu)的概念和結(jié)構(gòu)類型的定義;掌握結(jié)構(gòu)變量的定義和初始化;掌握結(jié)構(gòu)體類型的概念和應(yīng)用;掌握結(jié)構(gòu)成員的訪問、結(jié)構(gòu)賦值的含義。學(xué)會(huì)利用Visual C+自我發(fā)現(xiàn)預(yù)處理問題的方法;掌握宏定義、調(diào)用、展開。二、實(shí)驗(yàn)內(nèi)容有5個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、三門課成績(jī),從鍵盤輸入5個(gè)學(xué)生數(shù)據(jù),要求打印出三門課總平均成績(jī),以及最高分和學(xué)生的數(shù)據(jù)(包括學(xué)號(hào)、姓名、三門課成績(jī)、平均分)。將上題按照平均分由大到小排序并按大到小排序后輸出每位學(xué)生的學(xué)號(hào)、姓名、三門課成績(jī)和平均分。定義一個(gè)帶參數(shù)宏,實(shí)現(xiàn)兩個(gè)參數(shù)的值交換。要求寫出測(cè)試主函數(shù),主函數(shù)中使用此宏完成兩個(gè)數(shù)交換,輸出結(jié)果。定義一個(gè)帶參數(shù)宏,判斷一個(gè)字符是否為字母字符,若是,結(jié)果為1,否則結(jié)果為0。要求寫出測(cè)試主函數(shù)使用此宏,輸出結(jié)果。三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)3 函數(shù)與作用域(2學(xué)時(shí))一、實(shí)驗(yàn)?zāi)康?掌握函數(shù)聲明、定義和使用的方法;掌握形式參數(shù)與實(shí)在參數(shù)之間的對(duì)應(yīng)關(guān)系;掌握函數(shù)調(diào)用時(shí),形參、實(shí)參之間的“值傳遞”和“地址傳遞”的區(qū)別;掌握全局變量、局部變量、靜態(tài)變量的使用方法。二、實(shí)驗(yàn)內(nèi)容定義兩個(gè)函數(shù)swap1和swap2,目的是實(shí)現(xiàn)兩個(gè)整數(shù)的次序交換,其中swap1的參數(shù)是傳遞值參數(shù),swap2的參數(shù)是傳址參數(shù),在程序中分別調(diào)用這兩個(gè)函數(shù),其輸出結(jié)果如下所示: 初始值 :x=1,y=2 調(diào)用swap1后的結(jié)果:x=1 y=2 調(diào)用swap2后的結(jié)果:x=2 y=1編寫一個(gè)函數(shù),用來計(jì)算從鍵盤上輸入的整數(shù)的階乘。編寫函數(shù)判斷一個(gè)數(shù)是否是素?cái)?shù),在主程序中實(shí)現(xiàn)輸入、輸出。編寫一個(gè)程序,設(shè)計(jì)一個(gè)函數(shù)可以計(jì)算并返回輸入的4個(gè)數(shù)的平均值。給定某個(gè)年、月、日的值,例如,2006年7月11日,計(jì)算出這一天屬于該年的第幾天,要求寫出計(jì)算閏年的函數(shù)和計(jì)算日期的函數(shù)。三、實(shí)驗(yàn)要求1.結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2.整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3.完成實(shí)驗(yàn)報(bào)告和上交程序。實(shí)驗(yàn)4指針和引用(4學(xué)時(shí))一、 實(shí)驗(yàn)?zāi)康?熟練掌握指針、地址、指針類型、void指針、空指針、引用等概念;2 熟練掌握指針變量的定義和初始化、指針的間接訪問、指針的加減運(yùn)算和指針表達(dá)式;3學(xué)會(huì)使用數(shù)組的指針和指向數(shù)組的指針變量;4學(xué)會(huì)使用字符串的指針和指向字符串的指針變量;5學(xué)習(xí)用指針和引用給函數(shù)傳遞參數(shù)的方法。二、 實(shí)驗(yàn)內(nèi)容1用戶輸入任意一個(gè)字符串和字符c,尋找輸入串中第一個(gè)c字符出現(xiàn)的位置(若有的話),并輸出從c字符開始的子串以及c字符在輸入串中的下標(biāo)號(hào);若輸入串中不出現(xiàn)c字符的話,輸出“no match found”。2按一定的規(guī)則可以將一個(gè)字符串經(jīng)加密轉(zhuǎn)換為一個(gè)新的串,例如加密的簡(jiǎn)單方法是當(dāng)為ay的小寫字母時(shí)用后一個(gè)字母代替前一個(gè)字母,其中z變換為a,其他字符時(shí)不變。例如:原串為 This is a secret code!加密后的串為 Tijt jt b tfdsfu dpef!編寫一個(gè)程序?qū)斎氪用?,輸出加密前和加密后的串,再將加密后的字符串解密輸出?輸入10個(gè)整數(shù),將其中最小數(shù)與第一個(gè)數(shù)交換,把最大數(shù)與最后一個(gè)交換。寫三個(gè)函數(shù)分別完成:(1)輸入10個(gè)整數(shù);(2)進(jìn)行處理;(3)輸出10個(gè)數(shù),用指針法處理。4用指針變量設(shè)計(jì)一通用函數(shù),該函數(shù)查找實(shí)型數(shù)組中最大和最小元素并輸出相應(yīng)元素和下標(biāo)。5編寫一個(gè)函數(shù),其原型為:void Index(int a, int n,int & sub),其功能是,在大小為n的數(shù)組a中,查找某個(gè)數(shù)sub,若找到,將對(duì)應(yīng)數(shù)組元素的下標(biāo)賦給sub,若沒找到,將-1賦給sub,在主調(diào)函數(shù)中通過判斷sub的值來判斷數(shù)組中是否有該數(shù)。在這里,sub是引用類型的參數(shù),但起返回值的作用。三、 實(shí)驗(yàn)步驟1編程實(shí)現(xiàn):定義一個(gè)返回值為指針的函數(shù)char *search(char ch,char *str),返回串str中第一個(gè)字符ch出現(xiàn)的位置,在主函數(shù)中從鍵盤得到字符串,并調(diào)用search()函數(shù)實(shí)現(xiàn)字符的查找。參考程序名:C41.cpp2編程實(shí)現(xiàn):構(gòu)造函數(shù)secret(char* s),對(duì)給定字符串s根據(jù)加密規(guī)則進(jìn)行加密,直到碰到字符串結(jié)束標(biāo)志;構(gòu)造函數(shù)desecret(char* s),對(duì)已加密的字符串s解密,解密規(guī)則和加密規(guī)則相反,遇字符結(jié)束標(biāo)志結(jié)束解密,在主函數(shù)中調(diào)用這二個(gè)函數(shù),運(yùn)行,進(jìn)行實(shí)例驗(yàn)證。參考程序名:C42.cpp3編程實(shí)現(xiàn):構(gòu)造輸入函數(shù)void input(int *a,int n)獲得10個(gè)數(shù),然后構(gòu)造函數(shù)void invert(int *a,int n),用循環(huán)查找最大,最小元素所在存儲(chǔ)單元,注意指針變量和指針?biāo)赶騼?nèi)容的區(qū)別,構(gòu)造輸出函數(shù)void output(int *a,int n),輸出10個(gè)數(shù) 在主函數(shù)中調(diào)用各函數(shù),完成實(shí)驗(yàn)。參考程序名:C43.cpp。4編程實(shí)現(xiàn):定義數(shù)組長(zhǎng)度,用循環(huán)遍歷數(shù)組找出數(shù)組元素最大值和最小值,同時(shí)用變量記錄其下標(biāo),用Debug調(diào)試程序,查看運(yùn)行過程。參考程序名:C44.cpp5編程實(shí)現(xiàn):構(gòu)造子函數(shù)Index(b,n,sub),b為輸入的數(shù)組,n為數(shù)組長(zhǎng)度,sub是要查找的數(shù),注意sub是引用類參數(shù),在Index函數(shù)中用將sub賦值給一個(gè)局部變量k,同時(shí)將-1賦值給sub, 用循環(huán)遍歷長(zhǎng)度為n的數(shù)組,將每個(gè)數(shù)組元素和k比較,如果找到則將對(duì)應(yīng)數(shù)組下標(biāo)賦值給sub,否則返回-1。在主函數(shù)中定義數(shù)組,調(diào)用Index(b,n,sub)函數(shù),最后根據(jù)sub的值輸出相應(yīng)的的結(jié)果。參考程序名:C45.cpp四、 實(shí)驗(yàn)要求1 結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn)報(bào)告和上交源程序。/C41.cpp#include#includechar *search(char ch,char *str);void main(void) char s8,*p,c; coutInput a string :endl; gets(s); coutc; p=search(c,s);/調(diào)用search,返回串s中第一個(gè)字符c出現(xiàn)的位置,即指向字符的指針) if (p) /s中含有字符c時(shí),返回原結(jié)果指針p值為非0 coutpendl; coutp-sendl; else /s中不含有c coutno match foundendl;char *search(char ch,char *str)/尋找str串中第一個(gè)字符ch出現(xiàn)的位置(地址值,即指向字符的指針)并返回int i=0;while (ch!=stri&stri!=0)i+;if (ch=stri)return (&stri);else return(NULL);/C42.cpp#includeusing namespace std;void secret(char* s)while(*s!=0)if(*s96&*s97&*s123) *s=*s-1;else if(*s=97) *s=z;/注意else不可少,否則當(dāng)字符為b時(shí),先變?yōu)閍,再變?yōu)閦s+;int main()char st=This is a secret code!;coutstendl;secret(st);coutstendl;desecret(st);coutstendl;return 0;/C43.cpp#includevoid input(int *a,int n) int *p; for(p=a; p*p;void output(int *a,int n) int *p; for(p=a; pa+n; p+) cout*p; coutn;void invert(int *a,int n) int *p1,*p2,*p; int temp; p1=p2=a; /* p1指向最大元素所在存儲(chǔ)單元,p2指向最小元素所在存儲(chǔ)單元 */ for(p=a+1; p*p1)p1=p; else if(*p*p2)p2=p; if(p2!=a) /* *a*p2交換第一個(gè)元素和最小元素 */ temp=*p2; *p2=*a; *a=temp; if(p!=a+n-1) /* *(a+n-1)*p1交換最后一個(gè)元素和最大元素 */ temp=*p1; *p1=*(a+n-1); *(a+n-1)=temp;void main() int x10; int n=10; input(x,n); output(x,n); invert(x,n); output(x,n);/C44.cpp#include#define N 5/數(shù)組長(zhǎng)度void Search()float aN,*p,max,min;int MaxPosition,MinPosition,i;for(i=0;iai;min=max=a0;for(p=a;pmax) max=*p;MaxPosition=p-a;for(p=a;pa+N;p+)/從前往后依次查找數(shù)組最小值并記錄最小值的元素下標(biāo)if (*pmin) min=*p;MinPosition=p-a;cout the max elemetn is max the suffix is MaxPositionn;/輸出最大值元素和其下標(biāo)cout the min elemetn is min the suffix is MinPositionn;/輸出最小值元素和其下標(biāo)/C45.cpp#includeconst int m=5;void Index(int a, int n,int & sub);int main()int b25=2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97;int n=25,k,sub;for(k=0;km;k+)if(k=0) cout輸入小于100的正整數(shù):endl;else cout再輸入小于100的正整數(shù):sub;Index(b,n,sub);if(sub!=-1)cout對(duì)應(yīng)元素下標(biāo)為:subendl;else cout未找到。endl;return 0;void Index(int a, int n,int & sub)int i,k=sub;sub=-1;for(i=0;in;i+)if(ai=k)sub=i;break;實(shí)驗(yàn)5 類和對(duì)象(4學(xué)時(shí))一、 實(shí)驗(yàn)?zāi)康? 掌握類的概念、類的定義格式、類與結(jié)構(gòu)的關(guān)系、類的成員屬性和類的封裝性;2 掌握類對(duì)象的定義;3 理解類的成員的訪問控制的含義,公有、私有和保護(hù)成員的區(qū)別;4 掌握構(gòu)造函數(shù)和析構(gòu)函數(shù)的含義與作用、定義方式和執(zhí)行過程,能夠根據(jù)要求正確定義和重載構(gòu)造函數(shù);5 掌握友元函數(shù)的含義,友元函數(shù)和成員函數(shù)的區(qū)別; 6. 學(xué)習(xí)靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的使用。二、 實(shí)驗(yàn)內(nèi)容1 編程:建立一個(gè)分?jǐn)?shù)類。分?jǐn)?shù)類的數(shù)據(jù)成員包括分子和分母,操作包括約分、通分、比較、加、減、乘、除、求倒數(shù)、顯示和輸入。分?jǐn)?shù)類定義如下:class fractionint above; /分子int below; /分母void reduction(); /約分void makeCommond(fraction); /通分public:fraction(int=0,int=1); /構(gòu)造函數(shù)fraction add(fraction); /兩分?jǐn)?shù)相加fraction sub(fraction); /本分?jǐn)?shù)減去實(shí)參分?jǐn)?shù)fraction mul(fraction); /兩分?jǐn)?shù)相乘fraction div(fraction); /本分?jǐn)?shù)除以實(shí)參分?jǐn)?shù)fraction reciprocal(); /求倒數(shù)bool epual(fraction); /等于運(yùn)算bool greaterThan(fraction); /大于運(yùn)算bool lessThan(fraction); /小于運(yùn)算void display(); /顯示分?jǐn)?shù)void input(); /輸入分?jǐn)?shù);要求完成所有成員函數(shù)并進(jìn)行檢驗(yàn)。2. 定義一個(gè)長(zhǎng)方形類,并且在程序中創(chuàng)建一個(gè)該類的對(duì)象,體現(xiàn)出構(gòu)造函數(shù)、析構(gòu)函數(shù)的調(diào)用、執(zhí)行過程和重載構(gòu)造函數(shù)的使用。3.設(shè)計(jì)一個(gè)矩陣類matrix(矩陣用二維數(shù)組實(shí)現(xiàn)),有分配空間和對(duì)矩陣附值的功能。要求:(1)類外定義一個(gè)函數(shù)mul(),實(shí)現(xiàn)兩矩陣的相乘, 要求分別用傳值調(diào)用、引用調(diào)用和傳址調(diào)用三種方式實(shí)現(xiàn)。(2)在matrix類中定義一個(gè)靜態(tài)數(shù)據(jù)成員,記錄當(dāng)前的所有matrix對(duì)象的數(shù)量。(3)定義一個(gè)友元函數(shù)實(shí)現(xiàn)矩陣轉(zhuǎn)置功能。三、 實(shí)驗(yàn)步驟1編程實(shí)現(xiàn)各成員函數(shù):約分、通分、比較、加、減、乘、除、求倒數(shù)、顯示和輸入,并在主函數(shù)中定義具體的分?jǐn)?shù)對(duì)象并調(diào)用各成員函數(shù)。參考程序名:C51.cpp2編程實(shí)現(xiàn):新建類Rcet,向Rect類中添加數(shù)據(jù)成員和成員函數(shù),并完善成員函數(shù)的功能。如設(shè)計(jì)一個(gè)Area_int()函數(shù),計(jì)算邊長(zhǎng)為整型的長(zhǎng)方形的面積;設(shè)計(jì)一個(gè)Area_double()函數(shù),計(jì)算邊長(zhǎng)為double的長(zhǎng)方形的面積,重載構(gòu)造函數(shù)。一種構(gòu)造函數(shù)用整型變量記錄長(zhǎng)方形的長(zhǎng)和寬,另一種構(gòu)造函數(shù)用double型記錄。體現(xiàn)對(duì)象的構(gòu)造和析構(gòu)過程。例如,在構(gòu)造函數(shù)中用cout“I am the constructor!”endl;在析構(gòu)函數(shù)中輸出cout”I am the destructor”endl。在main()函數(shù)中定義兩個(gè)Rect類的對(duì)象,一個(gè)對(duì)象用實(shí)例實(shí)現(xiàn)(就象定義普通的變量一樣),(另一個(gè)對(duì)象用指針實(shí)現(xiàn)。并用不同的參數(shù),以調(diào)用不同的構(gòu)造函數(shù)體現(xiàn)構(gòu)造函數(shù)的重載。參考程序名:C52.cpp3. 編程實(shí)現(xiàn):聲明一個(gè)矩陣matrix類,在構(gòu)造函數(shù)中根據(jù)參數(shù)創(chuàng)建數(shù)據(jù)成員:一個(gè)二維數(shù)組。提示:用構(gòu)造函數(shù)記錄二維數(shù)組的大?。╱nsigned int x,unsigned int y)。類中實(shí)際定義的二維數(shù)組的數(shù)據(jù)成員是一個(gè)指針(二級(jí)指針),int *pmatrix。在構(gòu)造函數(shù)中根據(jù)傳送的參數(shù)為這個(gè)二維數(shù)組分配空間:pmatrix=new intxy。設(shè)計(jì)成員函數(shù)setvalue(unsigned int x,unsigned int y, int value),完成對(duì)數(shù)組的附值功能。設(shè)計(jì)成員函數(shù)input(),從輸入流(鍵盤)讀入數(shù)據(jù),給矩陣元素附值(通過調(diào)用setvalue()函數(shù)實(shí)現(xiàn))設(shè)計(jì)成員函數(shù)print(),完成對(duì)數(shù)組的輸出。以三種方式實(shí)現(xiàn)向mul()函數(shù)傳遞參數(shù),并返回矩陣相乘的結(jié)果。要求相乘前要測(cè)試兩個(gè)矩陣是否可以相乘。類中定義靜態(tài)數(shù)據(jù)成員objectaliveNO,記錄當(dāng)前共有幾個(gè)matrix類的對(duì)象。在類中定義友元函數(shù)rotate()實(shí)現(xiàn)矩陣的轉(zhuǎn)置功能。參考程序名:C53.cpp。四、 實(shí)驗(yàn)要求1. 結(jié)合上課內(nèi)容,寫出程序,并調(diào)試程序,要給出測(cè)試數(shù)據(jù)和實(shí)驗(yàn)結(jié)果。2. 整理上機(jī)步驟,總結(jié)經(jīng)驗(yàn)和體會(huì)。3. 完成實(shí)驗(yàn)報(bào)告和上交源程序。/C51.cpp/編程:建立一個(gè)分?jǐn)?shù)類。分?jǐn)?shù)類的數(shù)據(jù)成員包括分子和分母,操作包括顯示、輸入、約分、通分、比較、加、減、乘、除、求相反數(shù)。#include#include#includeclass fractionint above; /分子int below; /分母void reduction(); /約分void makeCommond(fraction&); /通分public:fraction(int a=0,int b=1) /構(gòu)造函數(shù)above=a;below=b;fraction add(fraction); /兩分?jǐn)?shù)相加fraction sub(fraction); /本分?jǐn)?shù)減去實(shí)參分?jǐn)?shù)fraction mul(fraction); /兩分?jǐn)?shù)相乘fraction div(fraction); /本分?jǐn)?shù)除以實(shí)參分?jǐn)?shù)fraction reciprocal(); /求倒數(shù)bool equal(fraction); /等于運(yùn)算bool greaterThan(fraction); /大于運(yùn)算bool lessThan(fraction); /小于運(yùn)算void display(); /顯示分?jǐn)?shù)void input(); /輸入分?jǐn)?shù);void fraction:reduction() /約分先求最大公約數(shù)int a,b,temp;if(below0)above=-above;below=-below;a=abs(above);b=abs(below);while(a%b) /歐幾里德法求最大公約數(shù)temp=a;a=b;b=temp%b;above/=b;below/=b;void fraction:makeCommond(fraction& b)int temp;reduction();b.reduction();above*=b.below;b.above*=below;temp=below*b.below;below=b.below=temp;fraction fraction:add(fraction b)fraction temp;makeCommond(b); /通分temp.above=above+b.above;temp.below=below;temp.reduction(); /約分return temp;fraction fraction:sub(fraction b)fraction temp;makeCommond(b); /通分temp.above=above-b.above;temp.below=below;temp.reduction(); /約分return temp;fraction fraction:mul(fraction b)fraction temp;temp.above=above*b.above;temp.below=below*b.below;temp.reduction(); /約分return temp;fraction fraction:div(fraction b)fraction temp;if(b.above=0)cout零不能作除數(shù)!b.above);bool fraction:lessThan(fraction b)makeCommond(b); /通分return(aboveb.above);void fraction:display()reduction(); /約分cout為:above/belowendl;void fraction:input()while(1)cout請(qǐng)順序輸入分子和分母(整數(shù)):abovebelow;if(below=0) cout分母不可為零!endl;elsereduction();return;int main()fraction f1(-3,-5),f2(-3,5),f3(3,-7),f4,f5(8);coutf1; f1.display();coutf2; f2.display();coutf3; f3.display();coutf4; f4.display();coutf5; f5.display();if(f1.greaterThan(f2) coutf2endl;if(f2.lessThan(f3) coutf2f3endl;if(f1.equal(f1) coutf1=f1endl;f4=f1.add(f3);coutf4=f1+f3; f4.display();f4=f1.sub(f2);coutf4=f1-f2; f4.display();f4=f1.mul(f3);coutf4=f1*f3; f4.display();f4=f2.div(f3);coutf4=f1/f3; f4.display();f4=f2.reciprocal();coutf4=1/f2; f4.display();f4.input(); coutf4; f4.display();return 0;/C52.cpp#includeclass Rect public:int Area_int()int c;c=nlength*nwidth;return c;double Area_double()double c;c=dlength*dwidth;return c;Rect(double l,double w)dlen
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市公用事業(yè)投資及管理合同
- 農(nóng)村環(huán)境改造及綠化合作協(xié)議
- 建筑工程項(xiàng)目經(jīng)驗(yàn)證明書(6篇)
- 菊花種苗購(gòu)銷協(xié)議
- 股東合作框架下的出資證明書(8篇)
- 2025年北京市海淀區(qū)高考地理一模試卷
- 無人駕駛汽車路測(cè)與數(shù)據(jù)分析協(xié)議
- 施工過程中的文檔管理技巧試題及答案
- 行政管理學(xué)的全球視野與本土實(shí)踐的結(jié)合及試題及答案
- 農(nóng)業(yè)技術(shù)推廣資金互助合同
- 煤炭產(chǎn)品質(zhì)量保障措施
- 2025福建中考:數(shù)學(xué)必背知識(shí)點(diǎn)
- 自愿離婚協(xié)議書電子版
- 2025年廣東省汕頭市澄海區(qū)中考一模數(shù)學(xué)試題(含答案)
- 高考英語必背688個(gè)高頻詞匯清單
- 浙江開放大學(xué)2025年《社會(huì)保障學(xué)》形考任務(wù)1答案
- 基于深度學(xué)習(xí)的西北地區(qū)沙塵天氣級(jí)聯(lián)預(yù)測(cè)模型研究
- 《危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化規(guī)范》專業(yè)深度解讀與應(yīng)用培訓(xùn)指導(dǎo)材料之2:5管理要求-5.1 安全領(lǐng)導(dǎo)力(雷澤佳編制-2025A0)
- 《醫(yī)療素養(yǎng)提升》課件
- 2025年人教版(2024)小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期中考試測(cè)試卷附參考答案
- 2025年遼寧省本溪市中考一模英語試題(原卷版+解析版)
評(píng)論
0/150
提交評(píng)論