版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程實(shí)踐報(bào)告設(shè)計(jì)題目: 計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐(VC++)設(shè)計(jì)時(shí)間:2012.9.16至2013.9.17學(xué) 院:電子信息學(xué)院專業(yè)班級(jí):學(xué)生姓名:學(xué)號(hào)指導(dǎo)老師: 2012年9月18日、實(shí)踐任務(wù)任務(wù)一:試建立一個(gè)類SP,求f(n,k)=1k+2k+3k+???+nk,另有輔助函數(shù)power(m,n)用于求mn。具體要求如下:(1) 私有成員數(shù)據(jù):intn,k:存放公式中n和k的值;(2) 公有成員函數(shù):SP(intn1,intk1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)n和k。intpower(intm,intn):求mn。intfun():求公式的累加和。voidshow():輸出求得的結(jié)果。(3) 在主程序中定義對(duì)象s,對(duì)該類進(jìn)行測(cè)試。任務(wù)二:建立一個(gè)類MOVE,不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。具體要求如下:(1) 私有數(shù)據(jù)成員:floatarray[20]:一維整型數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2) 公有成員函數(shù):MOVE(floatb[],intm):構(gòu)造函數(shù),初始化成員函數(shù)。voidaverage():輸出平均值,并將數(shù)組中的元素按要求重新放置。voidprint():輸出一維數(shù)組。(3) 在主程序中用數(shù)據(jù){1.3,6.2,3, 9. 1,4.8,7. 4,5. 6,9. 2,2.3}對(duì)該類進(jìn)行測(cè)試。任務(wù)三:建立一個(gè)類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(1) 私有數(shù)據(jù)成員:int*array:一維整型數(shù)組。intn:數(shù)組中的元素的個(gè)數(shù)。(2) 公有數(shù)據(jù)成員:MOVE(intb[],intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidexchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。voidprint():輸出一維數(shù)組。~MOVE():析構(gòu)函數(shù)。(3) 在主程序中用數(shù)據(jù){21,65,43,87,12,84,44,97,32,55}對(duì)該類進(jìn)行測(cè)試。任務(wù)四:建立一個(gè)類MOVE,對(duì)數(shù)組中元素進(jìn)行循環(huán)換位,即每個(gè)元素后移三位,最后三個(gè)元素移到最前面。具體要求如下:(1) 私有成員數(shù)據(jù):intarray[20]:一維數(shù)組整型。intn:數(shù)組中元素的個(gè)數(shù)。(2) 公有成員數(shù)據(jù):MOVE(intb[],intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidchange():進(jìn)行循環(huán)換位。voidprint():輸出一維數(shù)組。(3) 在主程序中用數(shù)據(jù){21,65,43,87,12,84,44,97,32,55}對(duì)該類進(jìn)行測(cè)試。任務(wù)五:定義一個(gè)類SIN,求sin(x)=x/1-x3/3!+x5/5!-x7/7!+???+(-1)n+ix(2n-i)/(2n-1)具體要求如下:(1) 私有成員數(shù)據(jù):int乂:輸入公式中x的值,求sin(x)。int山輸入公式中n的值。(2) 公有成員數(shù)據(jù):SIN(intx,intn):構(gòu)造函數(shù),用于初始化x和n的值。intpower(intq):求q!的值。intmi(intm,intn):求mn的值。intfun():用于求SIN(X)的值。voidshow():輸出求得結(jié)果。(3) 在主程序中定義對(duì)象test,對(duì)該類進(jìn)行測(cè)試。任務(wù)六:定義一個(gè)方陣?yán)跘rray,實(shí)現(xiàn)對(duì)方陣進(jìn)行順時(shí)針90度旋轉(zhuǎn),如圖所示。123 4139515678141062910111215117313141516161284具體要求如下:(1) 私有成員數(shù)據(jù):inta[4][4]:用于存放方陣。(2) 公有成員數(shù)據(jù):Arrat(inta1[][4],intn):構(gòu)造函數(shù),用給定的參數(shù)a1初始化數(shù)據(jù)成員a。voidxuanzhuan():實(shí)現(xiàn)對(duì)方陣a進(jìn)行順時(shí)針90度的旋轉(zhuǎn)。voidshow():在屏幕上顯示數(shù)組元素。(3) 在主程序中定義數(shù)組intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作為原始數(shù)組,定義一個(gè)Array類對(duì)象test,用b初始化test,完成對(duì)該類的測(cè)試。二、系統(tǒng)設(shè)計(jì)任務(wù)一任務(wù)(系統(tǒng))分析通過(guò)求出數(shù)據(jù)輔助函數(shù)power()求出mn的值,在成員函數(shù)fun()中計(jì)算出所求值類的定義如下:classSP(intn,k;public:SP(intn1,intk1);intpower(intm,intn);intfun();voidshow();};算法設(shè)計(jì)求mn利用循環(huán)語(yǔ)句,定義整數(shù)mul=1,i=0當(dāng)i<n時(shí),mul*=mul;然后返回mul。求累加和利用循環(huán)語(yǔ)句,定義整數(shù)sum=0,j=1,i<=n時(shí),sum+=power(j,k),然后j自增,然后返回sum。3.系統(tǒng)測(cè)試在主函數(shù)中初始化SP的對(duì)象,并調(diào)用其成員函數(shù)show()輸出測(cè)試結(jié)果(整數(shù)n和k)。主函數(shù)定義如下:voidmain(){intn,k;cin>>n>>k;SPtest(n,k);test.fun();test.show();}用以測(cè)試的數(shù)為:n:2,k:2預(yù)期的輸出結(jié)果為:結(jié)果為:5任務(wù)二任務(wù)(系統(tǒng))分析通過(guò)與數(shù)組值平均值比較大小來(lái)重新放置各元素,類定義如下:classMOVE{floatarray[20];intn;public:MOVE(floatb[],intm);voidaverage();voidprint();};算法設(shè)計(jì)一維數(shù)組的賦值:MOVE::MOVE(floatb[],intm){n=m;for(inti=0;i<n;i++)array[i]=b[i];}數(shù)組的重新排序:先求出平均值,在將數(shù)組元素與該平均值進(jìn)行比較,進(jìn)而移位voidMOVE::average()floatsum=0,c[20],q;statici=n,p=0;for(intj=0;j<n;j++){sum+=array[j];q=sum/n;}cout<<"平均數(shù)為"<<q<<endl;for(intk=0;k<n;k++){c[k]=array[k];if(c[k]<q)array[p++]=c[k];if(c[k]>q)array[i--]=c[k];}}3.系統(tǒng)測(cè)試在主函數(shù)中定義MOVE的對(duì)象test,定義一維數(shù)組{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}。用以測(cè)試的整數(shù)為:{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}預(yù)期的輸出結(jié)果為:平均數(shù)為:5.433331.334.82.34.89.25.67.49.16.2任務(wù)三任務(wù)(系統(tǒng))分析通過(guò)成員函數(shù)exchange()定義整數(shù)average,通過(guò)循環(huán)語(yǔ)句,求出平均值average,定義整數(shù)i=0,定義最大值x1=array[0],最小值x2=array[0],隨著i的遞增,一次求出array[i],并將array[i]分別與x1,x2比較,從而實(shí)現(xiàn)重新排序。類的定義如下:classMOVE{int*array;intn;public:MOVE(intb[],intm);voidexchange();voidprint();?MOVE();};算法設(shè)計(jì)通過(guò)成員函數(shù)exchange()定義的進(jìn)度實(shí)數(shù)sum,通過(guò)循環(huán)語(yǔ)句,求出平均值average,定義整數(shù)i=0,定義最大值x1=array[0],最小值x2=array[0],隨著i的遞增,一次求出array[i],并將array[i]分別與x1,x2比較,從而實(shí)現(xiàn)互換。通過(guò)print()函數(shù)輸出剛剛求出的array[i];3.系統(tǒng)測(cè)試在主函數(shù)中初始化MOVE的對(duì)象,并調(diào)用其成員函數(shù)print()輸出測(cè)試結(jié)果。主函數(shù)定義如下:voidmain(){intb[10]={21,65,43,87,12,84,44,97,32,55};MOVEtest(b,10);test.exchange();test.print();}用以測(cè)試的數(shù)為:21,65,43,87,12,84,44,97,32,55預(yù)期的輸出結(jié)果為:21,65,43,87,97,84,44,12,32,55任務(wù)四:任務(wù)(系統(tǒng))分析通過(guò)類MOVE的構(gòu)造函數(shù)初始化一維數(shù)組array[20],通過(guò)調(diào)用change()實(shí)現(xiàn)元素的換位移動(dòng),通過(guò)print()函數(shù)實(shí)現(xiàn)移動(dòng)后數(shù)組的輸出。類的定義如下:classMOVE{intarray[20];intn;public:MOVE(intb[],intm);voidchange();voidprint();};算法設(shè)計(jì)Q將前三項(xiàng)數(shù)據(jù)保存在變量中定義三個(gè)變量a,b,c;將數(shù)組的前三項(xiàng)一一賦值給k1,k2,k3,Q將數(shù)組中的第最后前三項(xiàng)分別換位到一二三項(xiàng)中用循環(huán)for語(yǔ)句,將最后三項(xiàng)一次賦值到一二三項(xiàng)中Q將數(shù)組中的第三項(xiàng)以后,最后三項(xiàng)以前的所有數(shù)據(jù)向后移三個(gè)位置,通過(guò)循環(huán)for語(yǔ)句實(shí)現(xiàn)。Q將k1,k2,k3中的數(shù)據(jù)分別保存到數(shù)組的四五六項(xiàng)中,這樣完整的數(shù)組就變換完成了。系統(tǒng)測(cè)試在主函數(shù)中定義一個(gè)數(shù)組,3[]={21,65,43,87,12,84,44,97,32,55},定義一個(gè)類MOVE的對(duì)象t,并用數(shù)組a[10]初始化該對(duì)象。通過(guò)該對(duì)象調(diào)用循環(huán)換位函數(shù)change(),實(shí)現(xiàn)數(shù)組中數(shù)據(jù)的循環(huán)換位。再通過(guò)該對(duì)象調(diào)用輸出函數(shù)print()將換位后的函數(shù)輸出。主函數(shù)的定義如下:voidmain(){inta[]={21,65,43,87,12,84,44,97,32,55};MOVEtest(a,10);test.change();test.print();}預(yù)期的輸出結(jié)果為:97325521654387128444任務(wù)五任務(wù)(系統(tǒng))分析通過(guò)類SIN的構(gòu)造函數(shù)初始化x和n的值,在數(shù)據(jù)輔助函數(shù)power()中求出q!的值,在函數(shù)mi()中求出mn的值,通過(guò)成員函數(shù)fun()計(jì)算出所求值,通過(guò)show()輸出所求值。類的定義如下:#include<iostream.h>classSIN(intx;intn;public:SIN(intx1,intn1);intpower(intq);intmi(intm,intn);intfun();voidshow();};算法設(shè)計(jì)Q求q!定義一個(gè)整型變量t,用遞歸函數(shù)求出q!的值,令t=q*power(q-1)。Q求mn利用循環(huán)語(yǔ)句,定義整數(shù)a,b,定義雙精度實(shí)數(shù)c,b=a*a,c=a,i=0當(dāng)i<(2*n-1)時(shí),c*=b;c*=-1;Q求SIN(X)定義雙精度實(shí)型變量sum=0,d,e,f,定義整型變量n,x,利用遞歸語(yǔ)句,d=power((2n)-1);e=mi(m,n);f=d/e;sum=sum+f;最后返回sum的值。系統(tǒng)測(cè)試在主函數(shù)中以整數(shù)初始化test的對(duì)象,通過(guò)該對(duì)象調(diào)用成員函數(shù)fun()得到所求的值,并調(diào)用其成員函數(shù)show()輸出測(cè)試結(jié)果。主函數(shù)的定義如下:voidmain()(intn,x;SINtest(x,n);test.fun();test.show();}用以測(cè)試的數(shù)為:22預(yù)期的輸出結(jié)果為:sin(x)=0.6666667任務(wù)六1.任務(wù)(系統(tǒng))分析利用循環(huán)語(yǔ)句依次改變每個(gè)對(duì)象的行下標(biāo)和列下標(biāo),從而實(shí)現(xiàn)整個(gè)方陣的旋轉(zhuǎn)。類的定義如下:classArray{inta[4][4];public:Array(inta1[][4],intn);voidxuanzhuan();voidshow();};算法設(shè)計(jì)在xuanzhuan()函數(shù)中,定義inta2[4][4];inti=0,intj=0;intk=0利用循環(huán)語(yǔ)句使a[j][3-k]=a2[k][j],從而實(shí)現(xiàn)方陣的順時(shí)針旋轉(zhuǎn)。通過(guò)show()函數(shù)輸出結(jié)果。系統(tǒng)測(cè)試在主函數(shù)中初始化Array的對(duì)象,并調(diào)用其成員函數(shù)show()輸出測(cè)試結(jié)果。主函數(shù)定義如下:voidmain(){intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};Arraytest(b,16);test.xuanzhuan();test.show();}用以測(cè)試的數(shù)為:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16預(yù)期的輸出結(jié)果為:1234139515678141062910111215117313141516161284三、 實(shí)踐小結(jié)(說(shuō)明:主要寫(xiě)實(shí)踐心得、實(shí)踐中遇到的問(wèn)題,是如何解決的。)通過(guò)上機(jī)實(shí)踐熟練掌握了一維數(shù)組和二維數(shù)組的運(yùn)用,特別是構(gòu)造函數(shù)方面,以及有關(guān)函數(shù)多態(tài)性,明白了它的流程,但是從中也遇到了一些疑問(wèn)。析構(gòu)函數(shù)的使用不是很清楚,我主要通過(guò)向他人請(qǐng)教,以及翻閱教材中有關(guān)章節(jié),還有去圖書(shū)館查閱相關(guān)資料在多做一些類似的題目(主要是解析實(shí)訓(xùn)上的大量習(xí)題)去鍛煉自己,看自己是否能熟練操作。構(gòu)造函數(shù)對(duì)成員數(shù)據(jù)初始化有時(shí)也不能很精準(zhǔn)的掌握,多看看以前做過(guò)的題目,從題目中總結(jié)經(jīng)驗(yàn),得出一些它們的規(guī)律,找出相似之處。對(duì)于鏈表等等這些章節(jié),多是以回歸課本,看看書(shū),來(lái)了解它的意思。四、 參考文獻(xiàn)齊治昌.軟件工程[M].北京:高等教育出版社出版,2004,35-60錢(qián)雪忠.數(shù)據(jù)庫(kù)與SQLServer2005教程[M].北京:清華大學(xué)出版社,2007,194-365張榮梅,梁曉林等.VisualC++實(shí)用教程[M].北京:中國(guó)鐵道出版社,2008,31-48五、源程序清單任務(wù)一:#include<iostream.h>classSP{intn,k;public:SP(intn1,intk1){n=n1;k=k1;}intpower(intm,intn){intmul=1;for(inti=0;i<n;i++)mul*=m;returnmul;}intfun(){intsum=0;for(intj=1;j<=n;j++){sum+=power(j,k);}returnsum;}voidshow(){cout<<n<<,\t'<<k<<*\n'<<fun()<<endl;}};voidmain(){intn;intk;cin>>n>>k;SPtest(n,k);test.show();}任務(wù)二:#include<iostream.h>classMOVE{floatarray[20];intn;public:MOVE(floatb[],intm);voidaverage();voidprint();};MOVE::MOVE(floatb[],intm){n=m;for(inti=0;i<n;i++)array[i]=b[i];}voidMOVE::average(){floatsum=0,c[20],q;statici=n,p=0;for(intj=0;j<n;j++){sum+=array[j];q=sum/n;}cout<<”平均數(shù)為"<<q<<endl;for(intk=0;k<n;k++){c[k]=array[k];if(c[k]<q)array[p++]=c[k];if(c[k]>q)array[i--]=c[k];}}voidMOVE::print(){for(inti=0;i<n;i++)cout<<array[i]<<*\t,;}voidmain(){floatarray[20]={1?3,6?2,3,9?1,4?8,7?4,5?6,9?22?3};MOVEtest(array,9);test.average();test.print();}任務(wù)三:#include<iostream.h>classMOVE{int*array;intn;public:MOVE(intb[],intm){array=newint[n];for(inti=0;i<=n;i++){array[i]=b[i];}n=m;}voidexchange(){floatsum=0;for(inti=0;i<n;i++){sum+=array[i];sum/=n;}intx1=array[0],x2=array[0],s1,s2,s3;for(intj=0;j<n;j++){if(x1>array[j]){x1=array[j];s2=j;}if(x2<array[j]){x2=array[j];s3=j;}}s1=array[s2];array[s2]=array[s3];array[s3]=s1;}voidprint(){for(inti=0;i<n;i++)cout<<array[i]?'\t‘;}~MOVE(){if(array)delete[]array;}};voidmain(){intb[10]={21,65,43,87,12,84,44,97,32,55};MOVEtest(b,10);test.exchange();test.print();}任務(wù)四:#include<iostream.h>#include<string.h>classMOVE{intarray[20];intn;public:MOVE(intb[],intm){for(inti=0;i<20;i++){array[i]=b[i];}n=m;}voidchange(){intk1,k2,k3;k1=array[n-1];k2=array[n-2];k3=array[n-3];for(inti=n-4;i>=0;i--){array[i+3]=array[i];}array[0]=k3;array[1]=k2;array[2]=k1;}voidprint(){for(intm=0;m<n;m++){cout<<array[m]<<*\t,;}}};voidmain(){inta[]={21,65,43,87,12,84,44,97,32,55};MOVEtest(a,10);test.change();test.print();}任務(wù)五:#include<iostream.h>classSIN{intx;intn;public:SIN(intx,intn);intpower(intq);intmi(intm,intn);intfUn();voidshow();};SIN::SIN(intx,intn){}intSIN::power(intq){intt;if(q==1)t=1;elset=q*power(q-1);r
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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年臺(tái)州學(xué)院編制外合同工招聘?jìng)淇碱}庫(kù)附答案詳解
- 2025年昆明市盤(pán)龍區(qū)匯承中學(xué)招聘教師備考題庫(kù)及答案詳解一套
- 廣東機(jī)場(chǎng)安檢審計(jì)考試題及答案
- 嵌入式系統(tǒng)工程師面試題及答案
- 產(chǎn)品經(jīng)理崗位面試題詳解與答案參考
- 2025年中共中山市委黨校公開(kāi)招聘事業(yè)單位人員備考題庫(kù)及一套答案詳解
- 心理咨詢師面試題目與心理測(cè)評(píng)方法解析
- 2025年合肥產(chǎn)投資本創(chuàng)業(yè)投資管理有限公司社會(huì)招聘?jìng)淇碱}庫(kù)及一套參考答案詳解
- 2025年央企金融單位招聘銷售及團(tuán)隊(duì)管理人員備考題庫(kù)及答案詳解1套
- 2025年畢節(jié)市“優(yōu)師備考題庫(kù)”畢業(yè)生專項(xiàng)招聘306人備考題庫(kù)及一套參考答案詳解
- 2025年沈陽(yáng)華晨專用車(chē)有限公司公開(kāi)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2026(蘇教版)數(shù)學(xué)五上期末復(fù)習(xí)大全(知識(shí)梳理+易錯(cuò)題+壓軸題+模擬卷)
- 2024廣東廣州市海珠區(qū)琶洲街道招聘雇員(協(xié)管員)5人 備考題庫(kù)帶答案解析
- 蓄電池安全管理課件
- 建筑業(yè)項(xiàng)目經(jīng)理目標(biāo)達(dá)成度考核表
- 2025廣東肇慶四會(huì)市建筑安裝工程有限公司招聘工作人員考試參考題庫(kù)帶答案解析
- 第五單元國(guó)樂(lè)飄香(一)《二泉映月》課件人音版(簡(jiǎn)譜)初中音樂(lè)八年級(jí)上冊(cè)
- 簡(jiǎn)約物業(yè)交接班管理制度
- 收購(gòu)摩托駕校協(xié)議書(shū)
- 2025年浙江省中考數(shù)學(xué)試卷(含答案)
- GB/T 16294-2025醫(yī)藥工業(yè)潔凈室(區(qū))沉降菌的測(cè)試方法
評(píng)論
0/150
提交評(píng)論