江蘇科技大學(xué)C課程實(shí)踐報(bào)告答案_第1頁
江蘇科技大學(xué)C課程實(shí)踐報(bào)告答案_第2頁
江蘇科技大學(xué)C課程實(shí)踐報(bào)告答案_第3頁
江蘇科技大學(xué)C課程實(shí)踐報(bào)告答案_第4頁
江蘇科技大學(xué)C課程實(shí)踐報(bào)告答案_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江蘇科技大學(xué)課程實(shí)踐報(bào)告設(shè)計(jì)題目:程序設(shè)計(jì)(VC+)實(shí)踐設(shè)計(jì)時(shí)間至學(xué)院(系):專業(yè)班級:學(xué)生姓名:學(xué)號指導(dǎo)老師:2013年12月任務(wù)、實(shí)踐任務(wù)2,試建立一個(gè)類sp,求通-1+2+3+,另有輔助函數(shù)power(m,n)用于求網(wǎng)。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(D私有數(shù)據(jù)成員intn,k:存放公式中n和k的值;(2)公有成員函數(shù)n和k。SP(intn1,intk1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)intpower(intm,intn):求fun():求公式的累加和。voidshow():輸出求得的結(jié)果。2、主要函數(shù)設(shè)計(jì)在主程序中定義對象s,對該類進(jìn)行測試。三、源程序清單#includecla

2、ssSPintn,k;public:SP(intn1,intk1)n=n1;k=k1;intpower(intm,intn)intp=1;for(inti=1;in+1;i+)p*=m;returnp;intfun()ints=0;for(inti=1;in+1;i+)s+=power(i,k);returns;voidA()coutn=n,k=k,f(n,k尸fun()endl;;voidmain()SPa(3,3);a.power(3,3);a.fun();a.A();四、實(shí)踐小結(jié)掌握用循環(huán)語句求mAn,和m!,熟練掌握函數(shù)的調(diào)用五、運(yùn)行結(jié)果任務(wù)三一、實(shí)踐任務(wù).建立一個(gè)類MOVE,不進(jìn)行排

3、序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員floatarray20:一維整型數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(floatb,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidaverage。:輸出平均值,并將數(shù)組中的元素按要求重新放置。voidprint():輸出一維數(shù)組。2、主要函數(shù)設(shè)計(jì)在主程序中用數(shù)據(jù)1.3,6.239.1,4.874,5.6,9.2,2.3對該類進(jìn)行測試。三、源程序清單四、實(shí)踐小結(jié)應(yīng)熟練掌握數(shù)組與指針的應(yīng)用。五、運(yùn)行結(jié)果京甘K+實(shí)稀業(yè)旭0虱魂_的5.43333U34.03

4、.9,16.2Pjressanykeytacontinue任務(wù)四一、實(shí)踐任務(wù).建立一個(gè)類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員int*array:一維整型數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(intb,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidexchange。:輸出平均值,并將數(shù)組中的元素按要求重新放置。voidprint():輸出一維數(shù)組。MOVE():析構(gòu)函數(shù)。2、主要函數(shù)設(shè)計(jì)在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進(jìn)行測試。三、源程序清單四

5、、實(shí)踐小結(jié)學(xué)會求數(shù)組中最大元素與最小元素方法,并實(shí)現(xiàn)交換五、運(yùn)行結(jié)果一、實(shí)踐任務(wù)6.定義一個(gè)字符串類String,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是指該字符串左右對稱。例如字符串“123321是回文字符串。二、詳細(xì)設(shè)計(jì)任務(wù)六1、類的描述與定義 (1)私有數(shù)據(jù)成員char *str;int y:標(biāo)記是否為回文字符串。(2)公有成員函數(shù)String (char *s):構(gòu)造函數(shù),用給定的參數(shù)s初始化數(shù)據(jù)成員str。y初始化為0。void huiwen ():判斷str所指向的字符串是否為回文字符串。void show():在屏幕上顯示字符串。2、主要函數(shù)設(shè)計(jì)前HK+實(shí)髓作業(yè):口制

6、g愧4題翻日*砧 43 87 12 84 44 97 32 55序均值為54121 6s 43 8? 97 84 44 12 32 55 Press any key to continue在主程序中定義字符串chars=ababcedbalfM為原始字符串。定義一個(gè)String類對象test,用s初始化test,完成對該類的測試。三、源程序清單四、實(shí)踐小結(jié)掌握判斷回文字符串的一般形式。五、運(yùn)行結(jié)果於7+IQ+亦4作業(yè)180用1鵬6強(qiáng)id步印.法字符串不是巨文數(shù):nlwibc.dh.JHidoykeyptoconiinue任務(wù)十一一、實(shí)踐任務(wù).建立一個(gè)STRING,將一個(gè)字符串交叉插入到另一個(gè)字

7、符串中(假定兩字符串等長)。例如將字符串“abcde”交叉插入字符串“ABCDE的結(jié)果為“aAbBcCdDeE或“AaBbCcDdEe”。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員charstr180:存放被插入的字符串。charstr240:存放待插入的字符串。(2)公有成員函數(shù)STRING(char*s1,char*s2):構(gòu)造函數(shù),用s1和s2初始化str1和str2。voidprocess。:將str2中的字符串插入到str1中。voidprint():輸出插入后的字符串。2、主要函數(shù)設(shè)計(jì)在主程序中定義STRING類的對象test對該類進(jìn)行測試。三、源程序清單#include#i

8、ncludeclassSTRINGprivate:charstr180;/存放被插入的字符串;charstr240;/存放待插入的字符串;public:STRING(char*s1,char*s2)strcpy(str1,s1);strcpy(str2,s2);voidprocess。;voidprint();voidSTRING:process()inti,j;intn=strlen(str1);if(strlen(str2)strlen(str1)/當(dāng)待插入的字符串ABCDEFG比被插入的字符串a(chǎn)bcde長或相等時(shí),邏輯算法:abcde-abcde-空格處依次插入ABCDEFG-aAbBc

9、CdDeEFG;for(i=n-1;i0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動(dòng)i位;for(i=1,j=0;i2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插入字符串;i-;for(;jABCDEFG-空格處插入abcde-AaBbCcDdEeFG;for(i=n;istrlen(str2)-1;i-)str1i+strlen(str2)=str1i;/比待插入的字符串長的部分均向后移strlen(str2)位;for(i=strlen(str2)-1;i0;i-)str1i+i=str1i;/之前的部分均向后移i位;for(i=1

10、,j=0;i2*strlen(str2);i+=2,j+)str1i=str2j;/將待插入的字符串插入空格處,完成插入;voidSTRING:print()輸出插入后的字符串cout插入后的字符串為:stnendl;voidmain()測試STRINGtest(ABCDE,abcde);cess();test.print();四、實(shí)踐小結(jié)發(fā)現(xiàn)字符插入的規(guī)律,再依次放入相應(yīng)字符位置。五、運(yùn)行結(jié)果*G實(shí)注在IhDebug商口星一備入后的字符串為:由MhCcMEttres*keytocontinue.任務(wù)十二一、實(shí)踐任務(wù).建立一個(gè)STRING,將一個(gè)字符串交叉插入到另一個(gè)字符串中(

11、假定兩字符串不等長)。例如將字符串“abcde”交叉插入字符串“ABCDEFG的結(jié)果為“aAbBcCdDeEFG或“AaBbCcDdEeFG。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員charstr160:存放被插入的字符串。charstr240:存放待插入的字符串。charstr3100:存放插入后的字符串。(2)公有成員函數(shù)STRING(char*s1,char*s2):構(gòu)造函數(shù),用si和s2初始化strl和str2。voidprocess。:將str2中的字符串插入到strl中,存放到str3中。voidprint():輸出插入后的字符串。2、主要函數(shù)設(shè)計(jì)在主程序中定義STRING

12、類的對象test對該類進(jìn)行測試。三、源程序清單#include#includeclassSTRINGprivate:charstr160;charstr240;charstr3100;public:STRING(char*s1,char*s2)strcpy(str1,s1);strcpy(str2,s2);voidprocess。;voidprint();voidSTRING:process()inti,j;intn=strlen(str1);if(strlen(str2)strlen(str1)/當(dāng)待插入的字符串ABCDEFG比被插入的字符串a(chǎn)bcde長或相等時(shí),邏輯算法:abcde-abc

13、de-空格處依次插入ABCDEFG-aAbBcCdDeEFG;for(i=n-1;i0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動(dòng)i位;for(i=1,j=0;i2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插入字符串;i-;for(;jABCDEFG-空格處插入abcde-AaBbCcDdEeFG;for(i=n;istrlen(str2)-1;i-)str1i+strlen(str2)=str1i;/比待插入的字符串長的部分均向后移strlen(str2)位;for(i=strlen(str2)-1;i0;i-)str1i+i=str

14、1i;/之前的部分均向后移i位;for(i=1,j=0;i2*strlen(str2);i+=2,j+)str1i=str2j;/將待插入的字符串插入空格處,完成插入;strcpy(str3,st;將str2中的字符串插入到strl中,存放到str3中;voidSTRING:print()輸出插入后的字符串cout插入后的字符串為:str3endl;voidmain()STRINGtest(abcde,ABCDEFG);cess();test.print();四、實(shí)踐小結(jié)發(fā)現(xiàn)字符插入的規(guī)律,再依次放入相應(yīng)字符位置。五、運(yùn)行結(jié)果任務(wù)十三一、實(shí)踐任務(wù).建立一個(gè)類MOVE,對數(shù)組中元

15、素進(jìn)行循環(huán)換位,即每個(gè)元素后移三位,最后三個(gè)元素移到最前面。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員intarray20:一維整型數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(intb,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidchange():進(jìn)行循環(huán)換位。voidprint():輸出一維數(shù)組。2、主要函數(shù)設(shè)計(jì)在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進(jìn)行測試。三、源程序清單#includeclassMOVEprivate:intarray20;一維整型數(shù)組;intn;/數(shù)組中的元素個(gè)數(shù);public:MOVE(intb,in

16、tm)for(inti=0;im;i+)arrayi=bi;n=m;voidchange();voidprint();voidMOVE:change()/進(jìn)行循環(huán)換位,即每個(gè)元素后移3位,最后3個(gè)元素移到最前面;inttem3;/建立臨時(shí)數(shù)組,用于存放最后3個(gè)元素;inti=0;while(i3)tem2-i=arrayn-1-i;將最后3個(gè)元素依次放入臨時(shí)數(shù)組中;i+;for(i=0;in-3;i+)將原數(shù)組的最后一個(gè)至第4個(gè)元素依次后移3位;arrayn-1-i=arrayn-1-3-i;for(i=0;i3;i+)/將臨時(shí)數(shù)組中存放的最后3個(gè)元素依次放入后移后的原數(shù)組中,完成循環(huán)換位;a

17、rrayi=temi;voidMOVE:print()/輸出一維數(shù)組;for(inti=0;in;i+)coutarrayit;coutendl;voidmain()ints尸21,65,43,87,12,84,44,97,32,55;intn=sizeof(s)/sizeof(int);MOVEtest(s,n);test.print();test.change();test.print();四、實(shí)踐小結(jié)利用臨時(shí)數(shù)組先保存后3位,再依次把數(shù)放入對應(yīng)位。五、運(yùn)行結(jié)果任務(wù)十四一、實(shí)踐任務(wù).建立一個(gè)類MOVE,實(shí)現(xiàn)將數(shù)組中大字字母元素放在小寫字母元素的左邊。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有

18、數(shù)據(jù)成員char*array:一維字符數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(charb口,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidchange。:進(jìn)行排序換位。voidprint():輸出一維數(shù)組。MOVE():析構(gòu)函數(shù)。2、主要函數(shù)設(shè)計(jì)在主程序中用數(shù)據(jù)fdsUFfsTjfsKFEkWC對該類進(jìn)行測試。三、源程序清單#include#includeclassMOVEchar*array;intn;public:MOVE(charb,intm)n=m;array=newcharn+1;strcpy(array,b);voidchange()char*p1=newch

19、arstrlen(array)+1;/用于存大寫;char*p2=newcharstrlen(array)+1;存小寫;inti,j=0,k=0;for(i=0;i=A&arrayi=Z)p1j=arrayi;j+;elsep2k=arrayi;k+;p1j=p2k=0;strcat(p1,p2);/存放大寫組與小寫組拼接;strcpy(array,p1);拷貝至array;delete口p1;delete口p2;voidprint()coutarrayendl;MOVE()if(array)delete口array;;voidmain()charb=fdsUFfsTjfsKFEkWC;int

20、n;n=(sizeof(b)-1)/sizeof(char);MOVEtest(b,n);test.change();test.print();四、實(shí)踐小結(jié)利用臨時(shí)數(shù)組,分別保存大寫與小寫字母,再實(shí)現(xiàn)功能。五、運(yùn)行結(jié)果I*-“6:。+*實(shí)前例0吐明81曙.W”.一UFTKFEWCfdafsjfskPressanykeytocontinue任務(wù)十五一、實(shí)踐任務(wù)16.定義一個(gè)方陣類CMatrix,并根據(jù)給定算法實(shí)現(xiàn)方陣的線性變換。方陣的變換形式為:F=W*fTf為原始矩陣,fT為原始矩陣的轉(zhuǎn)置,w為變換矩陣,這里設(shè)定為1001101001oioiio二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員

21、int(*a)4:a指向方陣數(shù)組。intw44:w為變換矩陣。intm:m表示方陣的行和列數(shù)。(2)公有成員函數(shù)CMatrix(inta口4,intm):用給定的參數(shù)a和m初始化數(shù)據(jù)成員a和m;對變換矩陣w進(jìn)行初始化,要求必須用循環(huán)實(shí)現(xiàn)。voidTransform():根據(jù)上述變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi)。voidshow():在屏幕上顯示數(shù)組元素。CMatrix():釋放動(dòng)態(tài)分配的空間。2、主要函數(shù)設(shè)計(jì)在主程序中定義數(shù)組intarr口4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個(gè)CMatrix類對象test,用arr

22、初始化test,完成對該類的測試。三、源程序清單#includeclassCMatrixprivate:int(*a)4;intw44;/變換矩陣intm;/表示方陣的行和列數(shù);public:CMatrix(inta口4,intm)inti,j;this-a=newintm4;this-m=m;for(i=0;i4;i+)for(j=0;j4;j+)if(i=j|i+j=4-1)w皿=1;elsew皿=0;for(i=0;im;i+)for(j=0;jaij=aij;voidTransform。;voidshow();CMatrix()if(a)delete口a;voidCMatrix:Tra

23、nsform()/根據(jù)變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi);inti,j,k;for(i=0;im;i+)求原始矩陣的轉(zhuǎn)置,并存放在原始數(shù)組中;for(j=i;j4;j+)k=aij,aij=aji,aji=k;intsum;/用來存放矩陣乘法中,行列中元素依次相乘的累加和;intturn44;/臨時(shí)數(shù)組,用來存放矩陣乘法所求得的值;for(i=0;i4;i+)實(shí)現(xiàn)矩陣的乘法;for(j=0;j4;j+)sum=0;for(k=0;k4;k+)sum+=wik*akj;turnij=sum;for(i=0;i4;i+)將臨時(shí)數(shù)組的值存放入原始數(shù)組中;for(j=0;j4;j+)ai

24、j=turnij;voidCMatrix:show()/在屏幕上顯示數(shù)組元素;for(inti=0;im;i+)for(intj=0;j4;j+)coutaijt;coutendl;voidmain()intarr4=1,2,345,678,9,10,11,12,13,14,15,16;CMatrixtest(arr,4);cout原矩B車為:endl;test.show();test.Transform();cout經(jīng)線性變換后的矩陣為:endl;test.show();四、實(shí)踐小結(jié)應(yīng)熟練掌握矩陣的乘法方式。五、運(yùn)行結(jié)果任務(wù)十六、實(shí)踐任務(wù)17定義個(gè)類SIN,求皿務(wù)4-內(nèi)珈3%門加_+,嗎尸心

25、川、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員floatx:輸入公式中x的值,求sin(x)。intn:輸入公式中n的值。(2)公有成員函數(shù)SIN(floatx,intn):構(gòu)造函數(shù),用于初始化x和n的值。intpower(intq):求q!的值。floatmi(floatm,intn):求用的值。floatfun():用于求SIN(X)的值。voidshow():輸出求得的結(jié)果。2、主要函數(shù)設(shè)計(jì)在主程序中定義對象test,對該類進(jìn)行測試(x是弧度,弧度不可能大于1)。三、源程序清單#include#includeclassSINprivate:doublex;intn;public:SIN

26、(doublex,intn)this-x=x;this-n=n;doublepower(intq);doublemi(doublem,intn);doublefun();voidshow();doubleSIN:power(intq)/求q的階乘;doubles=1;while(q!=1)s*=q;q-;returns;doubleSIN:mi(doublem,intn)求mM的值;while(n!=1)m*=m;n-;returnm;doubleSIN:fun()/用于求sin(x)的值;注:當(dāng)n較大時(shí),階乘和哥的運(yùn)算可能超出變量的類型的字節(jié)大小!改用double類型可提高運(yùn)算的范圍!dou

27、bles=0;/記錄每項(xiàng)相加的和for(inti=1;i=n;i+)s+=mi(x,2*i-1)*mi(-1,i+1)/power(2*i-1);通項(xiàng)為(-1F(i+1)*xA(2*i-1)/(2*i-1)!,其中n為由1開始的奇數(shù);returns;voidSIN:show()/輸出求得結(jié)果;coutsin(x)=fun()endl;voidmain()intdegree,doublehudu;coutdegreen;hudu=degree%360*(3.1415926)/180.0;度數(shù)轉(zhuǎn)換為弧度;SINtest(hudu,n);test.show();四、實(shí)踐小結(jié)找到公式中的相關(guān)關(guān)系,再進(jìn)

28、行相應(yīng)函數(shù)的組合。五、運(yùn)行結(jié)果噎軸).度古雨,的醫(yī)箱泉in0.523599)=0.536126iessnyKeytocontinue任務(wù)十七一、實(shí)踐任務(wù)18.試建立一個(gè)類VAR,用于求n(JI4100)個(gè)數(shù)的均方差。均方差的計(jì)算公式為wn,其中平均值為冗。、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員doublea100:用于存放輸入的n個(gè)數(shù)。intn:實(shí)際輸入數(shù)的個(gè)數(shù)n。(2)公有成員函數(shù)VAR(doublex口,intn1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)a和個(gè)數(shù)n。doubleaverage(doublex口,intn):求平均值,數(shù)組x具有n個(gè)元素。voidvariance(doublex,

29、intn):求均方差,數(shù)組x具有n個(gè)元素。voidshow():輸出求得的均方差。2、主要函數(shù)設(shè)計(jì)在主程序中定義一個(gè)對象test,對該類進(jìn)行測試。三、源程序清單#includeclassVARprivate:doublea100;/用于存放輸入的n個(gè)數(shù);intn;實(shí)際輸入數(shù)的個(gè)數(shù)n;public:VAR(doublex口,intn1)for(inti=0;in1;i+)ai=xi;n=n1;doubleaverage(doublex,intn);doublevariance(doublex,intn);voidshow();doubleVAR:average(doublex口,intn)求平均

30、值,數(shù)組x具有n個(gè)元素;doubleave=0;for(inti=0;in;i+)ave+=xi;returnave/n;doubleVAR:variance(doublex,intn)求均方差,數(shù)組x具有n個(gè)元素;doubled=0;for(inti=0;in;i+)d+=(xi-average(x,n)*(xi卜average(x,n);d/=n;returnd;voidVAR:show()輸出求得的均方差;cout均方差為:variance(a,n)endl;voidmain()測試;doubles尸1,2,3,4,5,6,7,8,9,10;intn=sizeof(s)/sizeof(d

31、ouble);VARtest(s,n);couttest.average(s,n)endl;test.show();四、實(shí)踐小結(jié)理解算數(shù)公式,根據(jù)題目線索,完成五、運(yùn)行結(jié)果IGrVC*Debug;黃1g螯,何色妨差為:入25Presskeytocontinue.任務(wù)十八、實(shí)踐任務(wù)、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員inta44:用于存放方陣。(2)公有成員函數(shù)Array(intal口4,intn):構(gòu)造函數(shù),用給定的參數(shù)al初始化數(shù)據(jù)成員a。voidxuanzhuan():實(shí)現(xiàn)對方陣a進(jìn)行順時(shí)針90度的旋轉(zhuǎn)。voidshow():在屏幕上顯示數(shù)組元素。2、主要函數(shù)設(shè)計(jì)在主程序中定義數(shù)

32、組intb4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個(gè)Array類對象test,用b初始化test,完成對該類的測試。三、源程序清單#includeclassArrayprivate:inta44;public:Array(inta1口4,intn)for(inti=0;in;i+)for(intj=0;j4;j+)aij=a1ij;voidxuanzhuan();voidshow();voidArray:xuanzhuan()實(shí)現(xiàn)對方陣a進(jìn)行順時(shí)針90度的旋轉(zhuǎn);intt44;/定義臨時(shí)數(shù)組,用于保存旋轉(zhuǎn)后,對應(yīng)下標(biāo)上的數(shù)值;inti,

33、j;for(i=0;i4;i+)for(j=0;j4;j+)tji=a3-ij;對方陣a進(jìn)行順時(shí)針90度旋轉(zhuǎn)對應(yīng)位所得值,賦予該對應(yīng)臨時(shí)位上;for(i=0;i4;i+)for(j=0;j4;j+)aij=tij;/將臨時(shí)數(shù)組中的對應(yīng)值保存到原數(shù)組中;voidArray:show()/輸出數(shù)組元素;for(inti=0;i4;i+)for(intj=0;j4;j+)coutaijt;coutendl;voidmain()測試;intb4=123,4,5,6,7,8,9,10,11,12,13,14,15,16;Arraytest(b,4);cout原始方B$為:endl;test.show()

34、;test.xuanzhuan();cout順時(shí)針90度旋轉(zhuǎn)后的方陣為:endl;test.show();四、實(shí)踐小結(jié)理解方陣旋轉(zhuǎn)的本質(zhì),利用臨時(shí)數(shù)組,存放對應(yīng)位上的數(shù)。五、運(yùn)行結(jié)果任務(wù)十九一、實(shí)踐任務(wù)20.定義一個(gè)方陣類 Array ,實(shí)現(xiàn)對方陣進(jìn)行逆時(shí)針 90度旋轉(zhuǎn)。如圖所示。481216371115261014159135678910111213141516二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員inta44:用于存放方陣。(2)公有成員函數(shù)Array(intal口4,intn):構(gòu)造函數(shù),用給定的參數(shù)al初始化數(shù)據(jù)成員a。voidxuanzhuan():實(shí)現(xiàn)對方陣a進(jìn)行逆時(shí)針9

35、0度的旋轉(zhuǎn)。voidshow():在屏幕上顯示數(shù)組元素。2、主要函數(shù)設(shè)計(jì)在主程序中定義數(shù)組intb4=123,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個(gè)Array類對象test,用b初始化test,完成對該類的測試。三、源程序清單#includeclassArrayprivate:inta44;public:Array(inta1口4,intn)for(inti=0;in;i+)for(intj=0;j4;j+)aij=a1ij;voidxuanzhuan();voidshow();voidArray:xuanzhuan()實(shí)現(xiàn)對方陣a進(jìn)行逆時(shí)針90

36、度的旋轉(zhuǎn);inti,j;intt44;/定義臨時(shí)數(shù)組,用于保存原始方陣經(jīng)逆時(shí)針90度旋轉(zhuǎn)后對應(yīng)下標(biāo)上的值;for(i=0;i4;i+)for(j=0;j4;j+)t3-ji=aij;/將旋轉(zhuǎn)后對應(yīng)下標(biāo)上的值賦給臨時(shí)數(shù)組上的對應(yīng)位置;for(i=0;i4;i+)for(j=0;j4;j+)aij=tij;/將保存在臨時(shí)數(shù)組的值,賦給原始數(shù)組,從而原始數(shù)組完成旋轉(zhuǎn);voidArray:show()/輸出;for(inti=0;i4;i+)for(intj=0;j4;j+)coutaijt;coutendl;voidmain()測試;intb口4=123,4,5,6,7,8,9,10,11,12,1

37、3,14,15,16;Arraytest(b,4);cout原始方陣為:endl;test.show();test.xuanzhuan();cout進(jìn)行逆時(shí)針90度旋轉(zhuǎn)后的方陣為:endl;test.show();四、實(shí)踐小結(jié)理解方陣旋轉(zhuǎn)的本質(zhì),利用臨時(shí)數(shù)組,存放對應(yīng)位上的數(shù)。五、運(yùn)行結(jié)果1GAJ-實(shí)W包Debug;鬲20羞康拈方陣為: TOC o 1-5 h z 123456?891611121314IS16進(jìn)行逆時(shí)針“度旋轉(zhuǎn)后的方陣為:48121637111526i81415913Pressanykeytocontinue任務(wù)二十一、實(shí)踐任務(wù)21.建立一個(gè)類NUM,求指定數(shù)據(jù)范圍內(nèi)的所有合

38、數(shù)(非質(zhì)數(shù))。提示:合數(shù)定義是一個(gè)數(shù),除了1和它本身,還有其它約數(shù),這樣的數(shù)叫合數(shù)”。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員int*data:動(dòng)態(tài)存放在指定范圍內(nèi)求出的所有合數(shù)。intspan1,span2:存放指定范圍的下限和上限。intnum:存放span1與span2之間的合數(shù)個(gè)數(shù)。(2)公有成員函數(shù)NUM(intn1,intn2):構(gòu)造函數(shù),用參數(shù)n1和n2初始化span1和span2,同時(shí)初始化isComposite(intx):判斷x是否為合數(shù)。若是合數(shù),返回1,否則,返回0。voidprocess():求指定范圍內(nèi)的所有合數(shù),把它們依次存放在數(shù)組data中

39、,并將求出的合數(shù)個(gè)數(shù)賦給num。voidprint():輸出求出的素?cái)?shù)個(gè)數(shù)及所有合數(shù),每行輸出8個(gè)合數(shù)。NUM():釋放動(dòng)態(tài)分配的存儲空間。2、主要函數(shù)設(shè)計(jì)在主函數(shù)中完成對該類的測試。定義一個(gè)NUM類對象test,指定查找范圍為100200,即求100至200之間的所有合數(shù)。通過test調(diào)用成員函數(shù)完成求合數(shù)及輸出合數(shù)的工作。三、源程序清單#include#includeclassNUMprivate:int*data;動(dòng)態(tài)存放在指定范圍內(nèi)求出的所有合數(shù);intspan1,span2;/存放指定范圍的下限和上限;intnum;/存放span1與span2之間的合數(shù)個(gè)數(shù);public:NUM(i

40、ntn1,intn2)data=newintn2-n1+1;span1=n1;span2=n2;num=0;intisComposite(intx);voidprocess。;voidprint();NUM()if(data)deletedata;intNUM:isComposite(intx)判斷x是否為合數(shù)。若是合數(shù),返回1,否則,返回0;if(x1)/比1大,但不是素?cái)?shù)的數(shù),稱為合數(shù);if(x=2|x=3)return0;for(inti=2;isqrt(x)return0;elsereturn0;voidNUM:process()/求指定范圍內(nèi)的所有合數(shù),把它們依次存放在數(shù)組data中

41、,并將求出的合數(shù)個(gè)數(shù)賦給num;for(inti=span1,j=0;i=span2;i+)if(isComposite(i)dataj=i;j+;num+;voidNUM:print()輸出;cout素?cái)?shù)個(gè)數(shù):numendl;cout所有合數(shù):endl;for(inti=0;inum;i+)coutdatait;if(i+1)%8=0)coutendl;每行輸出8個(gè)合數(shù);cou14215314415Si15b1S815916R1611621641E51EG1G8IS170171172174ITS17&17717816Z1H31841SS186187189190192

42、1941951962施收nykeyrocont任務(wù)二十一一、實(shí)踐任務(wù)22.建立一個(gè)類Saddle_point,求一個(gè)數(shù)組中的所有鞍點(diǎn)。提示:鞍點(diǎn)是這樣的數(shù)組元素,其值在它所在行中為最大,在它所在列中為最小。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員inta44:存放二維數(shù)組元素。intb44:存放二維數(shù)組中的鞍點(diǎn)值。intnum:存放鞍點(diǎn)個(gè)數(shù)。(2)公有成員函數(shù)Saddle_point(intdata口4):構(gòu)造函數(shù),用參數(shù)intdata口4初始化數(shù)組a,同時(shí)初始化數(shù)組b與num的值均為0。voidprocess():求數(shù)組a所有鞍點(diǎn)(如果有鞍點(diǎn)),把它們行、歹U、及值相應(yīng)存放在數(shù)組b中

43、,并將求出的鞍點(diǎn)個(gè)數(shù)賦給num。voidprint():輸出數(shù)組a、鞍點(diǎn)個(gè)數(shù),與鞍點(diǎn)坐標(biāo)及相應(yīng)值。2、主要函數(shù)設(shè)計(jì)在主程序中定義數(shù)組intb4=2,6,3,4,5,6,5,5,576,7,1,927作為原始數(shù)組。定義一個(gè)Saddle_point類對象fun。通過fun調(diào)用成員函數(shù)完成求鞍點(diǎn)及輸出工作。三、源程序清單#includeclassSaddle_pointprivate:inta44;intb44;存放二維數(shù)組中的鞍點(diǎn)值;intnum;/存放鞍點(diǎn)個(gè)數(shù);public:Saddle_point(intdata口4)for(inti=0;i4;i+)for(intj=0;j4;j+)aij=

44、dataij;bi朋=0;num=0;voidprocess。;voidprint();voidSaddle_point:process()/求數(shù)組a所有鞍點(diǎn),把它們行,歹U,及值相應(yīng)存放在數(shù)組b中,并將求出的鞍點(diǎn)個(gè)數(shù)賦給num;inti,j,k;intm=0,n=0;/作為是否為鞍點(diǎn)的判斷條件;for(i=0;i4;i+)算法:依次判斷數(shù)組中的每個(gè)元素是否為所在該行為最大,所在該列為最小;for(j=0;j4;j+)m=n=0;for(k=0;k=aik)m+;判斷該元素是否為所在行最大;elsebreak;if(aij=akj)n+;判斷該元素是否為所在列最大;elsebreak;if(m

45、=4&n=4)/滿足條件即為鞍點(diǎn);num+;bij=aij;voidSaddle_point:print()/輸出數(shù)組a,鞍點(diǎn)個(gè)數(shù),與鞍點(diǎn)坐標(biāo)及相應(yīng)值;inti,j;cout數(shù)組a為:endl;for(i=0;i4;i+)輸出數(shù)組a;for(j=0;j4;j+)coutaijt;coutendl;cout”鞍點(diǎn)個(gè)數(shù):numendl;if(num)for(i=0;i4;i+)for(j=0;j4;j+)if(bij)當(dāng)bij不為0時(shí),即其中此時(shí)對應(yīng)下標(biāo)保存有原數(shù)組a中對應(yīng)下標(biāo)的鞍點(diǎn)值;cout”鞍點(diǎn)坐標(biāo):ij相應(yīng)值:bijendl;elsecout無鞍點(diǎn)endl;voidmain()intb4=

46、2,634,5,6,5,5,5,7,671,927;Saddle_pointfun(b);cess();fun.print();四、實(shí)踐小結(jié)應(yīng)理解鞍點(diǎn)的含義,再利用循環(huán)判斷語句依次遍歷尋找鞍點(diǎn)五、運(yùn)行結(jié)果I 應(yīng)通a 目應(yīng)據(jù)述C41I1 t illllLR任務(wù)二十二一、實(shí)踐任務(wù)23.分?jǐn)?shù)相加,兩個(gè)分?jǐn)?shù)分別是1/5和7/20,它們相加后得11/20。方法是先求出兩個(gè)分?jǐn)?shù)分母的最小公倍數(shù),通分后,再求兩個(gè)分子的和,最后約簡結(jié)果分?jǐn)?shù)的分子和分母(如果兩個(gè)分?jǐn)?shù)相加的結(jié)果是4/8,則必須將其約簡成最簡分?jǐn)?shù)的形式1/2),即用分子分母的最大公約數(shù)分別除分子和分母。求m、n最大公約數(shù)的一種方法為

47、:將m、n較小的一個(gè)數(shù)賦給變量k,然后分別用k,k-1,k-2,,1中的數(shù)(遞減)去除m和n,第一個(gè)能把m和n同時(shí)除盡的數(shù)就是m和n的最大公約數(shù)。假定m、n的最大公約數(shù)是v,則它們的最小公倍數(shù)就是m*n/v。試建立一個(gè)分?jǐn)?shù)類Fract,完成兩個(gè)分?jǐn)?shù)相加的功能。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員intnum,den:num為分子,den為分母。(2)公有成員函數(shù)Fract(inta=0,intb=1):構(gòu)造函數(shù),用a和b分別初始化分子num、分母ged(intm,intn):求m、n的最大公約數(shù)。此函數(shù)供成員add()函數(shù)調(diào)用。Fractadd(Fractf):將參數(shù)

48、分?jǐn)?shù)f與對象自身相加,返回約簡后的分?jǐn)?shù)對象。voidshow():按照num/den的形式在屏幕上顯示分?jǐn)?shù)。2、主要函數(shù)設(shè)計(jì)在主程序中定義兩個(gè)分?jǐn)?shù)對象fl和f2,其初值分別是1/5和7/20,通過fl調(diào)用成員函數(shù)add完成fl和f2的相加,將得到的分?jǐn)?shù)賦給對象f3,顯示分?jǐn)?shù)對象f3。三、源程序清單#includeclassFractprivate:intnum,den;public:Fract(inta=0,intb=1)num=a;den=b;intged(intm,intn)求m,n的最大公約數(shù);intk;k=mden*f.den/ged(this-den,f.den);s.num=(th

49、is-num*f.den+this-den*f.num)/ged(this-den,f.den);s.den=s.den/ged(s.den,s.num);s.num=s.num/ged(s.den,s.num);returns;voidFract:show()coutnum/denendl;voidmain()Fractf1(1,5),f2(7,20),f3;f3=f1.add(f2);f3.show();四、實(shí)踐小結(jié)理解函數(shù)中分?jǐn)?shù)運(yùn)算的實(shí)現(xiàn)方式,再依次完成。五、運(yùn)行結(jié)果*&*一超昭kUbug管與喜京百*11/26Pressanytocontinue任務(wù)二十三、實(shí)踐任務(wù).建立一個(gè)類NUM,并

50、統(tǒng)計(jì)特定序列中相同的數(shù)字的個(gè)數(shù)。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員intdata25:隨機(jī)生成25個(gè)在0-9之間的數(shù)字。intnum10:儲存每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù)。(2)公有成員函數(shù)NUM(intdata):構(gòu)造函數(shù),初始化數(shù)組data。voidprocess():統(tǒng)計(jì)數(shù)組data中每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),并保存到數(shù)組num中。voidprint():輸出每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),每行輸出5個(gè)2、主要函數(shù)設(shè)計(jì)在主程序中定義一個(gè)對象,對該類進(jìn)行測試。三、源程序清單#include#includeclassNUMprivate:intdata25;intnum10;public:NUM(intd

51、ata)for(inti=0;idatai=rand()%data;/隨機(jī)生成25個(gè)在0-9之間的數(shù)字;voidprocess。;voidprint();voidNUM:process()for(inti=0;i10;i+)intk=0;for(intj=0;j25;j+)if(i=dataj)k+;記錄值為i的數(shù)字出現(xiàn)的次數(shù);numi=k;/儲存每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù);voidNUM:print()/輸出每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù),每行輸出5個(gè);for(inti=0;i10;i+)couti出現(xiàn)次數(shù)numit;if(i+1)%5=0)coutendl;voidmain()測試;NUMtest(10);t

52、cess();test.print();四、實(shí)踐小結(jié)掌握數(shù)組,利用循環(huán)判斷實(shí)現(xiàn)計(jì)數(shù)五、運(yùn)行結(jié)果任務(wù)二十四一、實(shí)踐任務(wù).建立一個(gè)類NUM,并統(tǒng)計(jì)特定序列中相同的字符的個(gè)數(shù)。、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員chardata25:隨機(jī)生成25個(gè)字符。intnum128:儲存每個(gè)字符出現(xiàn)的個(gè)數(shù)。(2)公有成員函數(shù)NUM(intdata):構(gòu)造函數(shù),同時(shí)初始化數(shù)組data。voidprocess():統(tǒng)計(jì)數(shù)組data中每個(gè)字符出現(xiàn)的個(gè)數(shù),并保存到數(shù)組num中。voidprint():輸出每個(gè)出現(xiàn)過的字符及其出現(xiàn)的個(gè)數(shù),每行輸出5個(gè),沒有出現(xiàn)過的字符不顯示。2、主要函數(shù)設(shè)計(jì)在主

53、程序中定義一個(gè)對象,對該類進(jìn)行測試。三、源程序清單#include#includeclassNUMprivate:chardata25;intnum128;public:NUM(intdata)for(inti=0;idatai=rand()%data;/隨機(jī)生成25個(gè)字符;voidprocess。;voidprint();voidNUM:process()/統(tǒng)計(jì)data中每個(gè)字符出現(xiàn)的個(gè)數(shù),并保存到數(shù)組num中;for(inti=0;i128;i+)intk=0;for(intj=0;j25;j+)if(dataj=i)k+;numi=k;/存儲每個(gè)字符出現(xiàn)的個(gè)數(shù);voidNUM:print

54、()/輸出每個(gè)出現(xiàn)過的字符及其出現(xiàn)的個(gè)數(shù),每行輸出5個(gè),沒有出現(xiàn)過的字符不顯示;for(inti=0;i128;i+)intk=0;if(numi)coutchar(i)出現(xiàn)個(gè)數(shù)numit;k+;if(k+1)%5=0)coutendl;cout a- 力。-實(shí)踐歸業(yè)0血4黃25代武任務(wù)二十五、實(shí)踐任務(wù).建立一個(gè)類NUM,隨機(jī)生成25個(gè)字符序列,并為特定序列進(jìn)行排序。二、詳細(xì)設(shè)計(jì)1、類的描述與定義(1)私有數(shù)據(jù)成員intdata25:隨機(jī)生成25個(gè)字符。(2)公有成員函數(shù)NUM(intdata):構(gòu)造函數(shù),初始化數(shù)組data。voidprocess():為數(shù)組data進(jìn)行排序,要求按照ASCII碼進(jìn)行升序排列。voidprint():輸出數(shù)組data,每行輸出5個(gè)字符。2、主要函數(shù)設(shè)計(jì)在主程序中定義一個(gè)對象,對該類進(jìn)行測試。三、源程序清單#include#includeclassNUMprivate:intdata25;public:NUM(intdata)for(inti=0;idata

溫馨提示

  • 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

提交評論