C++課程實(shí)踐報告試題及答案_第1頁
C++課程實(shí)踐報告試題及答案_第2頁
C++課程實(shí)踐報告試題及答案_第3頁
C++課程實(shí)踐報告試題及答案_第4頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、c+課程實(shí)踐報告試題及答案 任務(wù)一 一、實(shí)踐任務(wù) 1試建立一個類 pp,求出下列多項(xiàng)式的前 n 項(xiàng)的值。 - - -=-n x p n x xp nx x pnn/ ) ( ) 1 ( ) ( ) 1 2 (1) (2 n 1 110=nnn 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l int n:前若干項(xiàng)的項(xiàng)數(shù)。 l double x:存放 x 的值。 l double *p:根據(jù) n 的大小動態(tài)申請存放 p n (x) 前 n 項(xiàng)的數(shù)組空間。 (2)公有成員函數(shù) l pp(int num,double x1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員 n 和 x,使 p 指向動態(tài)申請的數(shù)組空

2、間。 l pp():析構(gòu)函數(shù),釋放 p 指向的動態(tài)內(nèi)存空間。 l double fun(int n1,double x):遞歸函數(shù),用于求多項(xiàng)式 ) (x p n 的第 n1 項(xiàng)。注意:將遞歸公式中的 n 用作函數(shù)參數(shù)。本函數(shù)供 process 函數(shù)調(diào)用。 l void process( ):完成求前 n 項(xiàng)的工作,并將它們存放到 p 指向的動態(tài)數(shù)組中。 l void show( ):輸出 n 和 x,并將前 n 項(xiàng)以每行 4 個數(shù)的形式輸出到屏幕上。 2、主要函數(shù)設(shè)計 在主函數(shù)中完成對該類的測試。先輸入 num 和 x1,并定義一個 pp 類的對象 items,用 num 和 x1 初始化

3、items 的成員 n 和 x,調(diào)用 items 的成員函數(shù),求出并輸出多項(xiàng)式前 num 項(xiàng)的值。 三、源程序清單 #includeiostream.h class pp private: int n; double x; double*p; public: pp(int num,double x1) n=num; x=x1; p=new doublen; pp() if(p) delete p; double fun(int n1,double x); void process(); void show(); ; double pp:fun(int n1,double x) if(n1=0)

4、 return 1; else if(n1=1) return x; else if(n11) return (2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1; void pp:process() for(int i=0;in;i+) pi=fun(i,x); void pp:show() coutn=nendlx=xendl; for(int i=0;in;i+) coutpitt; if(i+1)%4=0) coutendl; void main() int num; double x1; cout請輸入 num 和 x1:; cinnumx1; p

5、p items(num,x1); cess(); items.show(); 任務(wù)二 一、實(shí)踐任務(wù) 2試建立一個類 sp,求k k k kn k n f + + + + = . 3 2 1 ) , ( ,另有輔助函數(shù) power(m,n)用于求nm 。 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l int n,k:存放公式中 n 和 k 的值; (2)公有成員函數(shù) l sp(int n1,int k1):構(gòu)造函數(shù),初始化成員數(shù)據(jù) n 和 k。 l int power(int m, int n):求 m n 。 l int fun( ):求公式的累加和。 l voi

6、d show( ):輸出求得的結(jié)果。 2、主要函數(shù)設(shè)計 在主程序中定義對象 s,對該類進(jìn)行測試。 三、源程序清單 #includeiostream.h class sp private: int n,k; public: sp(int n1,int k1) n=n1; k=k1; int power(int m,int n); int fun(); void show(); ; int sp:power(int m,int n) int s=1; for(int i=0;in;i+) s*=m; return s; int sp:fun() int s=0; for(int i=1;i=n;i

7、+) s+=power(i,k); return s; void sp:show() coutf(n,k)=fun()endl; void main() int n1,k1; cout請輸入 n1,k1:; cinn1k1; sp s(n1,k1); s.fun(); s.show(); 任務(wù)三 一、實(shí)踐任務(wù) 3建立一個類 move,不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l float array20:一維整型數(shù)組。 l int n:數(shù)組中元素的個數(shù)。 (2)公有成員函數(shù) l move(flo

8、at b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。 l void average():輸出平均值,并將數(shù)組中的元素按要求重新放置。 l void print():輸出一維數(shù)組。 2、主要函數(shù)設(shè)計 在主程序中用數(shù)據(jù)1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3對該類進(jìn)行測試。 三、源程序清單 #includeiostream.h class move private: float array20; int n; public: move(float b,int m) for(int i=0;im;i+) arrayi=bi; n=m; void average(); void

9、 print(); move() ; ; void move:average() float ave=0; int i,j; for(i=0;in;i+) ave+=arrayi; ave/=n; coutaveendl; float turn20; j=0; for(i=0;in;i+) if(arrayi=ave) turnj=arrayi; j+; j=0; for(i=0;in;i+) if(arrayiave) turnn-1-j=arrayi; j+; for(i=0;in;i+) arrayi=turni; void move:print() for(int i=0;in;i+)

10、 coutarrayi ; void main() float b1=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3; int num; num=sizeof(b1)/sizeof(float); move s(b1,num); s.average(); s.print(); 任務(wù)四 一、實(shí)踐任務(wù) 4建立一個類 move,將數(shù)組中最大元素的值與最小元素的值互換。 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l int *array:一維整型數(shù)組。 l int n:數(shù)組中元素的個數(shù)。 (2)公有成員函數(shù) l move(int b,int m):構(gòu)造函數(shù),初始化成員數(shù)

11、據(jù)。 l void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。 l void print():輸出一維數(shù)組。 l move():析構(gòu)函數(shù)。 2、主要函數(shù)設(shè)計 在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進(jìn)行測試。 三、源程序清單 #includeiostream.h class move private: int *array; int n; public: move(int b,int m) array=new intm; n=m; for(int i=0;im;i+) arrayi=bi; void exchange(); voi

12、d print(); move() if(array) delete array; ; void move:exchange() float ave=0; for(int i=0;in;i+) ave+=arrayi; ave/=n; cout平均值為aveendl; int max,min; max=min=array0; int m; for(i=0,m=0;in;i+) if(arrayi=max) m=i,max=arrayi; int l; for(i=0,l=0;in;i+) if(arrayimax) l=i,max=arrayi; i=arraym,arraym=arrayl,

13、arrayl=i; void move:print() for(int i=0;in;i+) coutarrayi ; void main() int text=21,65,43,87,12,84,44,97,32,55; int num; num=sizeof(text)/sizeof(int); move s(text,num); s.print(); coutendl; s.exchange(); s.print(); 任務(wù)五 一、實(shí)踐任務(wù) 定義一個類 palindrome,實(shí)現(xiàn)絕對回文數(shù)。設(shè)計一個算法實(shí)現(xiàn)對任意整型數(shù)字判斷是否為絕對回文數(shù)。所謂絕對回文數(shù),是指十進(jìn)制數(shù)和二進(jìn)制數(shù)均對稱的

14、數(shù)。 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l int n:整型數(shù)字。 l int y: 標(biāo)記是否為回文數(shù)。 (2)公有成員函數(shù) l palindrome (int x) :構(gòu)造函數(shù),根據(jù) x 參數(shù)初始化數(shù)據(jù)成員 n,y 初始化為 0。 l void huiwen () :判斷數(shù) n 是否為絕對回文數(shù)。 l void show( ) :若該數(shù)為回文數(shù),則在屏幕顯示。 2、主要函數(shù)設(shè)計 在主程序中定義 int a,由鍵盤輸入數(shù)字。定義一個 palindrome 類對象 p,用 a 初始化 p,完成對該類的測試。 三、源程序清單 #includeiostream.h class p

15、alindrome private: int n; int y; public: palindrome(int x) n=x; y=0; void huiwen(); void show(); ; void palindrome:huiwen() int i=0,j=0; int m; m=n; while(m) m/=10; i+; m=n; while(m) m/=2; j+; int*s10=new inti; int*s2=new intj; m=n; for(int k=0;ki;k+) s10i-1-k=m%10; m/=10; m=n; for(k=0;kj;k+) s2j-1-

16、k=m%2; m/=2; int num10=0; for(k=0;ki/2;k+) if(s10i-1-k=s10k) num10+; else break; int num2=0; for(k=0;kj/2;k+) if(s2j-1-k=s2k) num2+; else break; if(num10=(i/2)num2=(j/2) y=1; void palindrome:show() int i=0,j=0; int m; m=n; while(m) m/=10; i+; m=n; while(m) m/=2; j+; int*s10=new inti+1; int*s2=new in

17、tj+1; m=n; for(int k=0;ki;k+) s10i-1-k=m%10; m/=10; m=n; for(k=0;kj;k+) s2j-1-k=m%2; m/=2; if(y) cout該數(shù)為絕對回文數(shù)!:endl; cout十進(jìn)制表示為:; for(k=0;ki;k+) couts10k; cout二進(jìn)制表示為:; for(k=0;kj;k+) couts2k; else cout該數(shù)不是絕對回文數(shù)?。篹ndl; cout十進(jìn)制表示為:; for(k=0;ki;k+) couts10k; cout二進(jìn)制表示為:; for(k=0;kj;k+) couts2k; coutend

18、l; void main() int a; cout請輸入一個數(shù)字:; cina; palindrome p(a); p.huiwen(); p.show(); 任務(wù)六 一、實(shí)踐任務(wù) 6定義一個字符串類 string,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是 指該字符串左右對稱。例如字符串123321是回文字符串。 二、 詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 l char *str; l int y:標(biāo)記是否為回文字符串。 (2)公有成員函數(shù) l string (char *s) :構(gòu)造函數(shù),用給定的參數(shù) s 初始化數(shù)據(jù)成員 str。y 初始化為 0。 l void h

19、uiwen () :判斷 str 所指向的字符串是否為回文字符串。 l void show( ) :在屏幕上顯示字符串。 2、主要函數(shù)設(shè)計 在主程序中定義字符串 char s=ababcedbaba作為原始字符串。定義一個 string 類對象 test,用 s 初始化 test,完成對該類的測試。 三、源程序清單 #includeiostream.h #includestring.h class string private: char*str; int y; public: string(char*s) int n=strlen(s); str=new charn+1; strcpy(st

20、r,s); y=0; void huiwen(); void show(); string() if(str) delete str; ; void string:huiwen() int n,judge=0; n=strlen(str); for(int i=0;i(n/2);i+) if(stri=strn-1-i) judge+; if(judge=i) y=1; void string:show()/輸出; if(y=1) couty=1,該字符串是回文數(shù)strendl; else couty=0,該字符串不是回文數(shù)strendl; void main()/測試; char s=ababcedbaba; string test(s); test.huiwen(); test.show(); 任務(wù)七 一、實(shí)踐任務(wù) 7建立一個類 phalanx,生成并顯示一個折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。 二、詳細(xì)設(shè)計 1、類的描述與定義 (1)私有數(shù)據(jù)成員 1 2 4 3 1 1

溫馨提示

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

評論

0/150

提交評論