




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、江蘇科技大學 課程實踐報告 設計題目: 程序設計(VC+)實踐 設計時間 至 學院(系): 專業(yè)班級: 學生姓名: 學號 指導老師: 2013年12月 任務一一、實踐任務2試建立一個類SP,求,另有輔助函數(shù)power(m,n)用于求。二、詳細設計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):求mn。l int fun( ):求公式的累加和。l void show( ):輸出求得的結(jié)果。2、主要函數(shù)設計在主程序中定義對象s,
2、對該類進行測試。三、源程序清單#include <iostream.h>class SPint n,k;public:SP(int n1,int k1)n=n1;k=k1;int power(int m,int n)int p=1;for (int i=1;i<n+1;i+)p*=m;return p;int fun()int s=0;for (int i=1;i<n+1;i+)s+=power(i,k);return s;void A()cout<<"n="<<n<<",k="<<
3、k<<",f(n,k)="<<fun()<<endl;void main()SP a(3,3);a.power(3,3);a.fun();a.A();四、實踐小結(jié)掌握用循環(huán)語句求mn,和m!,熟練掌握函數(shù)的調(diào)用。五、運行結(jié)果任務三一、實踐任務3建立一個類MOVE,不進行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l float array20:一維整型數(shù)組。l int n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)l MOVE(float b,int m):構(gòu)造函
4、數(shù),初始化成員數(shù)據(jù)。l void average():輸出平均值,并將數(shù)組中的元素按要求重新放置。l void print():輸出一維數(shù)組。2、主要函數(shù)設計在主程序中用數(shù)據(jù)1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3對該類進行測試。三、源程序清單四、實踐小結(jié)應熟練掌握數(shù)組與指針的應用。五、運行結(jié)果任務四一、實踐任務4建立一個類MOVE,將數(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ù),初始化成
5、員數(shù)據(jù)。l void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。l void print():輸出一維數(shù)組。l MOVE():析構(gòu)函數(shù)。2、主要函數(shù)設計在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進行測試。三、源程序清單四、實踐小結(jié)學會求數(shù)組中最大元素與最小元素方法,并實現(xiàn)交換。五、運行結(jié)果任務六一、實踐任務6定義一個字符串類String,實現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是指該字符串左右對稱。例如字符串“123321”是回文字符串。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l char *str; l int
6、y:標記是否為回文字符串。(2)公有成員函數(shù)l String (char *s) :構(gòu)造函數(shù),用給定的參數(shù)s初始化數(shù)據(jù)成員str。y初始化為0。l void huiwen () :判斷str所指向的字符串是否為回文字符串。l void show( ) :在屏幕上顯示字符串。2、主要函數(shù)設計在主程序中定義字符串char s=”ababcedbaba”作為原始字符串。定義一個String類對象test,用s初始化test,完成對該類的測試。三、源程序清單四、實踐小結(jié)掌握判斷回文字符串的一般形式。五、運行結(jié)果任務十一一、實踐任務11建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字
7、符串等長)。例如將字符串“abcde” 交叉插入字符串“ABCDE”的結(jié)果為“aAbBcCdDeE”或“AaBbCcDdEe”。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l char str180 :存放被插入的字符串。l char str240 :存放待插入的字符串。(2)公有成員函數(shù)l STRING (char *s1, char *s2 ):構(gòu)造函數(shù),用s1和s2初始化str1和str2。l void process():將str2中的字符串插入到str1中。l void print():輸出插入后的字符串。2、主要函數(shù)設計在主程序中定義STRING類的對象test對該類進行測試。
8、三、源程序清單#include<iostream.h>#include<string.h>class STRINGprivate:char str180;/存放被插入的字符串;char str240;/存放待插入的字符串;public:STRING(char*s1,char*s2)strcpy(str1,s1);strcpy(str2,s2);void process();void print();void STRING:process()int i,j;int n=strlen(str1);if(strlen(str2)>strlen(str1)/當待插入的字符
9、串ABCDEFG比被插入的字符串a(chǎn)bcde長或相等時,邏輯算法:abcde->a b c d e->空格處依次插入ABCDEFG->aAbBcCdDeEFG;for(i=n-1;i>0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動i位;for(i=1,j=0;i<2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插入字符串;i-;for(;j<=strlen(str2);j+,i+)str1i=str2j;/將過長額字符串放入被插入的字符串尾部,完成插入;else/當待插入的字符串a(chǎn)bcde比被插入的字符串A
10、BCDEFG短時,邏輯算法:ABCDEFG->A B C D E FG->空格處插入abcde->AaBbCcDdEeFG;for(i=n;i>strlen(str2)-1;i-)str1i+strlen(str2)=str1i;/比待插入的字符串長的部分均向后移strlen(str2)位;for(i=strlen(str2)-1;i>0;i-)str1i+i=str1i;/之前的部分均向后移i位;for(i=1,j=0;i<2*strlen(str2);i+=2,j+)str1i=str2j;/將待插入的字符串插入空格處,完成插入;void STRING:
11、print()/輸出插入后的字符串cout<<"插入后的字符串為:"<<str1<<endl;void main()/測試STRING test("ABCDE","abcde");cess();test.print();四、實踐小結(jié)發(fā)現(xiàn)字符插入的規(guī)律,再依次放入相應字符位置。五、運行結(jié)果任務十二一、實踐任務12建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字符串不等長)。例如將字符串“abcde” 交叉插入字符串“ABCDEFG”的結(jié)果為“aAbBcCdDeEFG
12、”或“AaBbCcDdEeFG”。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l char str160 :存放被插入的字符串。l char str240 :存放待插入的字符串。l char str3100 :存放插入后的字符串。(2)公有成員函數(shù)l STRING (char *s1, char *s2 ):構(gòu)造函數(shù),用s1和s2初始化str1和str2。l void process():將str2中的字符串插入到str1中,存放到str3中。l void print():輸出插入后的字符串。2、主要函數(shù)設計在主程序中定義STRING類的對象test對該類進行測試。三、源程序清單#incl
13、ude<iostream.h>#include<string.h>class STRINGprivate:char str160;char str240;char str3100;public:STRING(char*s1,char*s2)strcpy(str1,s1);strcpy(str2,s2);void process();void print();void STRING:process()int i,j;int n=strlen(str1);if(strlen(str2)>strlen(str1)/當待插入的字符串ABCDEFG比被插入的字符串a(chǎn)bcde
14、長或相等時,邏輯算法:abcde->a b c d e->空格處依次插入ABCDEFG->aAbBcCdDeEFG;for(i=n-1;i>0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動i位;for(i=1,j=0;i<2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插入字符串;i-;for(;j<=strlen(str2);j+,i+)str1i=str2j;/將過長額字符串放入被插入的字符串尾部,完成插入;else/當待插入的字符串a(chǎn)bcde比被插入的字符串ABCDEFG短時,邏輯算法:ABCDEFG
15、->A B C D E FG->空格處插入abcde->AaBbCcDdEeFG;for(i=n;i>strlen(str2)-1;i-)str1i+strlen(str2)=str1i;/比待插入的字符串長的部分均向后移strlen(str2)位;for(i=strlen(str2)-1;i>0;i-)str1i+i=str1i;/之前的部分均向后移i位;for(i=1,j=0;i<2*strlen(str2);i+=2,j+)str1i=str2j;/將待插入的字符串插入空格處,完成插入;strcpy(str3,str1);/將str2中的字符串插入到s
16、tr1中,存放到str3中;void STRING:print()/輸出插入后的字符串cout<<"插入后的字符串為:"<<str3<<endl;void main()STRING test("abcde","ABCDEFG");cess();test.print();四、實踐小結(jié)發(fā)現(xiàn)字符插入的規(guī)律,再依次放入相應字符位置。五、運行結(jié)果任務十三一、實踐任務13建立一個類MOVE,對數(shù)組中元素進行循環(huán)換位,即每個元素后移三位,最后三個元素移到最前面。二、詳細設計1、類的描述與定義(1)
17、私有數(shù)據(jù)成員l int array20:一維整型數(shù)組。l int n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)l MOVE(int b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。l void change():進行循環(huán)換位。l void print():輸出一維數(shù)組。2、主要函數(shù)設計在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進行測試。三、源程序清單#include<iostream.h>class MOVEprivate:int array20;/一維整型數(shù)組;int n; /數(shù)組中的元素個數(shù);public:MOVE(int b,int m)for(
18、int i=0;i<m;i+)arrayi=bi;n=m;void change();void print();void MOVE:change()/進行循環(huán)換位,即每個元素后移3位,最后3個元素移到最前面;int tem3;/建立臨時數(shù)組,用于存放最后3個元素;int i=0;while(i<3)tem2-i=arrayn-1-i;/將最后3個元素依次放入臨時數(shù)組中;i+;for(i=0;i<n-3;i+)/將原數(shù)組的最后一個至第4個元素依次后移3位;arrayn-1-i=arrayn-1-3-i;for(i=0;i<3;i+)/將臨時數(shù)組中存放的最后3個元素依次放入
19、后移后的原數(shù)組中,完成循環(huán)換位;arrayi=temi;void MOVE:print()/輸出一維數(shù)組;for(int i=0;i<n;i+)cout<<arrayi<<'t'cout<<endl;void main()int s=21,65,43,87,12,84,44,97,32,55;int n=sizeof(s)/sizeof(int);MOVE test(s,n);test.print();test.change();test.print();四、實踐小結(jié)利用臨時數(shù)組先保存后3位,再依次把數(shù)放入對應位。五、運行結(jié)果任務十四一
20、、實踐任務14建立一個類MOVE,實現(xiàn)將數(shù)組中大字字母元素放在小寫字母元素的左邊。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l char *array:一維字符數(shù)組。l int n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)l MOVE(char b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。l void change():進行排序換位。l void print():輸出一維數(shù)組。l MOVE():析構(gòu)函數(shù)。2、主要函數(shù)設計在主程序中用數(shù)據(jù)"fdsUFfsTjfsKFEkWC"對該類進行測試。三、源程序清單#include <iostream.h>#include
21、<string.h>class MOVE char *array; int n; public: MOVE(char b,int m) n=m; array=new charn+1;strcpy(array,b); void change() char*p1=new charstrlen(array)+1;/用于存大寫; char*p2=new charstrlen(array)+1;/存小寫; int i,j=0,k=0; for(i=0;i<strlen(array);i+)/大寫與小寫分別存放; if(arrayi>='A'&&ar
22、rayi<='Z') p1j=arrayi; j+; else p2k=arrayi;k+; p1j=p2k='0' strcat(p1,p2);/存放大寫組與小寫組拼接; strcpy(array,p1);/拷貝至array; delete p1; delete p2; void print() cout<<array<<endl; MOVE() if (array) delete array; ; void main() char b="fdsUFfsTjfsKFEkWC" int n; n=(sizeof(
23、b)-1)/sizeof(char); MOVE test(b,n); test.change(); test.print(); 四、實踐小結(jié)利用臨時數(shù)組,分別保存大寫與小寫字母,再實現(xiàn)功能。五、運行結(jié)果任務十五一、實踐任務16定義一個方陣類CMatrix,并根據(jù)給定算法實現(xiàn)方陣的線性變換。方陣的變換形式為:F=W*fTf為原始矩陣,fT為原始矩陣的轉(zhuǎn)置,w為變換矩陣,這里設定為1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l int (*a)4:a指向方陣數(shù)組。l int w44:w為變換矩陣。l int m:m表示方陣的行和
24、列數(shù)。(2)公有成員函數(shù)l CMatrix (int a4,int m) :用給定的參數(shù)a和m 初始化數(shù)據(jù)成員a和m;對變換矩陣w進行初始化,要求必須用循環(huán)實現(xiàn)。l void Transform () :根據(jù)上述變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi)。l void show( ) :在屏幕上顯示數(shù)組元素。l CMatrix () :釋放動態(tài)分配的空間。2、主要函數(shù)設計在主程序中定義數(shù)組int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個CMatrix類對象test,用arr初始化test,完成對該類的測試。三、源程序清單
25、#include<iostream.h>class CMatrixprivate:int(*a)4;int w44;/變換矩陣int m;/表示方陣的行和列數(shù);public:CMatrix(int a4,int m)int i,j;this->a=new intm4;this->m=m;for(i=0;i<4;i+)for(j=0;j<4;j+)if(i=j|i+j=4-1)wij=1;elsewij=0;for(i=0;i<m;i+)for(j=0;j<4;j+)this->aij=aij;void Transform();void sh
26、ow();CMatrix()if(a) delete a;void CMatrix:Transform()/根據(jù)變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi);int i,j,k;for(i=0;i<m;i+)/求原始矩陣的轉(zhuǎn)置,并存放在原始數(shù)組中;for(j=i;j<4;j+)k=aij,aij=aji,aji=k;int sum;/用來存放矩陣乘法中,行列中元素依次相乘的累加和;int turn44;/臨時數(shù)組,用來存放矩陣乘法所求得的值;for(i=0;i<4;i+)/實現(xiàn)矩陣的乘法;for(j=0;j<4;j+)sum=0;for(k=0;k<4;k+)
27、sum+=wik*akj;turnij=sum;for(i=0;i<4;i+)/將臨時數(shù)組的值存放入原始數(shù)組中;for(j=0;j<4;j+)aij=turnij;void CMatrix:show()/在屏幕上顯示數(shù)組元素;for(int i=0;i<m;i+)for(int j=0;j<4;j+)cout<<aij<<'t'cout<<endl;void main()int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;CMatrix test(arr,4);cout<
28、;<"原矩陣為:"<<endl;test.show();test.Transform();cout<<"經(jīng)線性變換后的矩陣為:"<<endl;test.show();四、實踐小結(jié)應熟練掌握矩陣的乘法方式。五、運行結(jié)果任務十六一、實踐任務17定義一個類SIN,求二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l float x:輸入公式中x的值,求sin(x)。l int n:輸入公式中n的值。(2)公有成員函數(shù)l SIN(float x, int n ):構(gòu)造函數(shù),用于初始化x和n的值。l int power(
29、int q):求q!的值。l float mi(float m,int n):求的值。l float fun( ):用于求SIN(X)的值。l void show( ):輸出求得的結(jié)果。2、主要函數(shù)設計在主程序中定義對象test,對該類進行測試(x是弧度,弧度不可能大于1)。三、源程序清單#include<iostream.h>#include<math.h>class SINprivate:double x;int n;public:SIN(double x,int n)this->x=x;this->n=n;double power(int q);dou
30、ble mi(double m,int n);double fun();void show();double SIN:power(int q)/求q的階乘;double s=1;while(q!=1)s*=q;q-;return s;double SIN:mi(double m,int n)/求mn的值;while(n!=1)m*=m;n-;return m;double SIN:fun()/用于求sin(x)的值;/注:當n較大時,階乘和冪的運算可能超出變量的類型的字節(jié)大??!改用double類型可提高運算的范圍!double s=0;/記錄每項相加的和for(int i=1;i<=n;
31、i+)s+=mi(x,2*i-1)*mi(-1,i+1)/power(2*i-1);/通項為(-1)(i+1)*x(2*i-1)/(2*i-1)!,其中n為由1開始的奇數(shù);return s;void SIN:show()/輸出求得結(jié)果;cout<<"sin("<<x<<")="<<fun()<<endl;void main()int degree,n;double hudu;cout<<"請輸入度數(shù)和公式中的n值:"cin>>degree>>
32、;n;hudu=degree%360*(3.1415926)/180.0;/度數(shù)轉(zhuǎn)換為弧度;SIN test(hudu,n);test.show();四、實踐小結(jié)找到公式中的相關關系,再進行相應函數(shù)的組合。五、運行結(jié)果任務十七一、實踐任務18試建立一個類VAR,用于求n()個數(shù)的均方差。均方差的計算公式為,其中平均值為。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l double a100:用于存放輸入的n個數(shù)。l int n:實際輸入數(shù)的個數(shù)n。(2)公有成員函數(shù)l VAR(double x, int n1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)a和個數(shù)n。l double average(doub
33、le x, int n):求平均值,數(shù)組x具有n個元素。l void variance(double x,int n):求均方差,數(shù)組x具有n個元素。l void show():輸出求得的均方差。2、主要函數(shù)設計在主程序中定義一個對象test,對該類進行測試。三、源程序清單#include<iostream.h>class VARprivate:double a100;/用于存放輸入的n個數(shù);int n;/實際輸入數(shù)的個數(shù)n;public:VAR(double x,int n1)for(int i=0;i<n1;i+)ai=xi;n=n1;double average(dou
34、ble x,int n);double variance(double x,int n);void show();double VAR:average(double x,int n)/求平均值,數(shù)組x具有n個元素;double ave=0;for(int i=0;i<n;i+)ave+=xi;return ave/n;double VAR:variance(double x,int n)/求均方差,數(shù)組x具有n個元素;double d=0;for(int i=0;i<n;i+)d+=(xi-average(x,n)*(xi-average(x,n);d/=n;return d;vo
35、id VAR:show()/輸出求得的均方差;cout<<"均方差為:"<<variance(a,n)<<endl;void main()/測試;double s=1,2,3,4,5,6,7,8,9,10;int n=sizeof(s)/sizeof(double);VAR test(s,n);cout<<test.average(s,n)<<endl;test.show();四、實踐小結(jié)理解算數(shù)公式,根據(jù)題目線索,完成。五、運行結(jié)果任務十八一、實踐任務19定義一個方陣類Array,實現(xiàn)對方陣進行順時針90度旋轉(zhuǎn)。
36、如圖所示。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l int a44:用于存放方陣。(2)公有成員函數(shù)l Array (int a14,int n) :構(gòu)造函數(shù),用給定的參數(shù)a1初始化數(shù)據(jù)成員a。l void xuanzhuan () :實現(xiàn)對方陣a進行順時針90度的旋轉(zhuǎn)。l void show( ) :在屏幕上顯示數(shù)組元素。2、主要函數(shù)設計在主程序中定義數(shù)組int b 4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個Array類對象test,用b初始化test,完成對該類的測試。三、源程序清單#include<iostrea
37、m.h>class Arrayprivate:int a44;public:Array(int a14,int n)for(int i=0;i<n;i+)for(int j=0;j<4;j+)aij=a1ij;void xuanzhuan();void show();void Array:xuanzhuan()/實現(xiàn)對方陣a進行順時針90度的旋轉(zhuǎn);int t44;/定義臨時數(shù)組,用于保存旋轉(zhuǎn)后,對應下標上的數(shù)值;int i,j;for(i=0;i<4;i+)for(j=0;j<4;j+)tji=a3-ij;/對方陣a進行順時針90度旋轉(zhuǎn)對應位所得值,賦予該對應臨時
38、位上;for(i=0;i<4;i+)for(j=0;j<4;j+)aij=tij;/將臨時數(shù)組中的對應值保存到原數(shù)組中;void Array:show()/輸出數(shù)組元素;for(int i=0;i<4;i+)for(int j=0;j<4;j+)cout<<aij<<'t'cout<<endl;void main()/測試;int b4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;Array test(b,4);cout<<"原始方陣為:"<<
39、;endl;test.show();test.xuanzhuan();cout<<"順時針90度旋轉(zhuǎn)后的方陣為:"<<endl;test.show();四、實踐小結(jié)理解方陣旋轉(zhuǎn)的本質(zhì),利用臨時數(shù)組,存放對應位上的數(shù)。五、運行結(jié)果任務十九一、實踐任務20定義一個方陣類Array,實現(xiàn)對方陣進行逆時針90度旋轉(zhuǎn)。如圖所示。 1 2 3 4 4 8 12 16 5 6 7 8 3 7 11 15 9 10 11 12 2 6 10 14 13 14 15 16 1 5 9 13二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l int a44:用于存放方陣
40、。(2)公有成員函數(shù)l Array (int a14,int n) :構(gòu)造函數(shù),用給定的參數(shù)a1初始化數(shù)據(jù)成員a。l void xuanzhuan () :實現(xiàn)對方陣a進行逆時針90度的旋轉(zhuǎn)。l void show( ) :在屏幕上顯示數(shù)組元素。2、主要函數(shù)設計在主程序中定義數(shù)組int b 4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個Array類對象test,用b初始化test,完成對該類的測試。三、源程序清單#include<iostream.h>class Arrayprivate:int a44;public:Arra
41、y(int a14,int n)for(int i=0;i<n;i+)for(int j=0;j<4;j+)aij=a1ij;void xuanzhuan();void show();void Array:xuanzhuan()/實現(xiàn)對方陣a進行逆時針90度的旋轉(zhuǎn);int i,j;int t44;/定義臨時數(shù)組,用于保存原始方陣經(jīng)逆時針90度旋轉(zhuǎn)后對應下標上的值;for(i=0;i<4;i+)for(j=0;j<4;j+)t3-ji=aij;/將旋轉(zhuǎn)后對應下標上的值賦給臨時數(shù)組上的對應位置;for(i=0;i<4;i+)for(j=0;j<4;j+)aij=
42、tij;/將保存在臨時數(shù)組的值,賦給原始數(shù)組,從而原始數(shù)組完成旋轉(zhuǎn);void Array:show()/輸出;for(int i=0;i<4;i+)for(int j=0;j<4;j+)cout<<aij<<'t'cout<<endl;void main()/測試;int b4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;Array test(b,4);cout<<"原始方陣為:"<<endl;test.show();test.xuanzhuan();c
43、out<<"進行逆時針90度旋轉(zhuǎn)后的方陣為:"<<endl;test.show();四、實踐小結(jié)理解方陣旋轉(zhuǎn)的本質(zhì),利用臨時數(shù)組,存放對應位上的數(shù)。五、運行結(jié)果任務二十一、實踐任務21建立一個類NUM,求指定數(shù)據(jù)范圍內(nèi)的所有合數(shù)(非質(zhì)數(shù))。提示:合數(shù)定義是“一個數(shù),除了1和它本身,還有其它約數(shù),這樣的數(shù)叫合數(shù)”。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l int *data:動態(tài)存放在指定范圍內(nèi)求出的所有合數(shù)。l int span1,span2:存放指定范圍的下限和上限。l int num:存放span1與span2之間的合數(shù)個數(shù)。(2)公有
44、成員函數(shù)l NUM(int n1, int n2) :構(gòu)造函數(shù),用參數(shù)n1和n2初始化span1和span2,同時初始化num。l int isComposite (int x ):判斷x是否為合數(shù)。若是合數(shù),返回1,否則,返回0。l void process( ) :求指定范圍內(nèi)的所有合數(shù),把它們依次存放在數(shù)組data中,并將求出的合數(shù)個數(shù)賦給num。 l void print( ):輸出求出的素數(shù)個數(shù)及所有合數(shù),每行輸出8個合數(shù)。l NUM( ):釋放動態(tài)分配的存儲空間。2、主要函數(shù)設計在主函數(shù)中完成對該類的測試。定義一個NUM類對象test,指定查找范圍為100200,即求100至200
45、之間的所有合數(shù)。通過test調(diào)用成員函數(shù)完成求合數(shù)及輸出合數(shù)的工作。三、源程序清單#include<iostream.h>#include<math.h>class NUMprivate:int*data;/動態(tài)存放在指定范圍內(nèi)求出的所有合數(shù);int span1,span2;/存放指定范圍的下限和上限;int num;/存放span1與span2之間的合數(shù)個數(shù);public:NUM(int n1,int n2)data=new intn2-n1+1;span1=n1;span2=n2;num=0;int isComposite(int x);void process()
46、;void print();NUM()if(data)delete data;int NUM:isComposite(int x)/判斷x是否為合數(shù)。若是合數(shù),返回1,否則,返回0;if(x>1)/比1大,但不是素數(shù)的數(shù),稱為合數(shù);if(x=2|x=3) return 0;for(int i=2;i<=sqrt(x);i+)if(x%i=0)return 1;if(i>sqrt(x) return 0;else return 0;void NUM:process()/求指定范圍內(nèi)的所有合數(shù),把它們依次存放在數(shù)組data中,并將求出的合數(shù)個數(shù)賦給num;for(int i=sp
47、an1,j=0;i<=span2;i+)if(isComposite(i)dataj=i;j+;num+;void NUM:print()/輸出;cout<<"素數(shù)個數(shù):"<<num<<endl;cout<<"所有合數(shù):"<<endl;for(int i=0;i<num;i+)cout<<datai<<'t'if(i+1)%8=0) cout<<endl;/每行輸出8個合數(shù);cout<<endl;void main()/
48、測試;NUM test(100,200);cess();test.print();四、實踐小結(jié)理解素數(shù)的含義,熟練掌握判斷素數(shù)的方法。五、運行結(jié)果任務二十一一、實踐任務22建立一個類Saddle_point,求一個數(shù)組中的所有鞍點。提示:鞍點是這樣的數(shù)組元素,其值在它所在行中為最大,在它所在列中為最小。二、詳細設計1、類的描述與定義(1)私有數(shù)據(jù)成員l int a44:存放二維數(shù)組元素。l int b44:存放二維數(shù)組中的鞍點值。l int num:存放鞍點個數(shù)。(2)公有成員函數(shù)l Saddle_point(int data4):構(gòu)造函數(shù),用參數(shù)int data4初始化數(shù)組a
49、,,同時初始化數(shù)組b與num 的值均為0。l void process( ):求數(shù)組a所有鞍點(如果有鞍點),把它們行、列、及值相應存放在數(shù)組b中,并將求出的鞍點個數(shù)賦給num。 l void print( ):輸出數(shù)組a、鞍點個數(shù),與鞍點坐標及相應值。2、主要函數(shù)設計在主程序中定義數(shù)組int b 4=2,6,3,4,5,6,5,5,5,7,6,7,1,9,2,7作為原始數(shù)組。定義一個Saddle_point類對象fun。通過fun調(diào)用成員函數(shù)完成求鞍點及輸出工作。三、源程序清單#include<iostream.h>class Saddle_pointprivate:int a4
50、4;int b44;/存放二維數(shù)組中的鞍點值;int num;/存放鞍點個數(shù);public:Saddle_point(int data4)for(int i=0;i<4;i+)for(int j=0;j<4;j+)aij=dataij;bij=0;num=0;void process();void print();void Saddle_point:process()/求數(shù)組a所有鞍點,把它們行,列,及值相應存放在數(shù)組b中,并將求出的鞍點個數(shù)賦給num;int i,j,k;int m=0,n=0;/作為是否為鞍點的判斷條件;for(i=0;i<4;i+)/算法:依次判斷數(shù)組中的每個元素是否為所在該行為最大,所在該列為最小;for(j=0;j<4;j+)m=n=0;for(k=0;k<4;k+)if(aij>=aik) m+;/判斷該元素是否
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 作價償還合同標準文本
- 不銹鋼雨棚合同標準文本
- 修剪樹枝清算合同范例
- 保養(yǎng)機器合同標準文本
- 海洋生態(tài)保護與海洋環(huán)境保護與海洋環(huán)境保護法規(guī)宣傳教育服務考核試卷
- 兄弟兩個合伙開店合同標準文本
- 關于廠建合同標準文本
- 勞務免稅合同范例
- 人才合同和勞動合同范例
- 個體戶合作合同標準文本
- 納布啡在胃腸鏡麻醉中的臨床觀察-課件
- 常用手術器械手工清洗
- 三次函數(shù)的圖像和性質(zhì)用
- 紙板線設備基礎知識培訓53
- 2022年四川省成都市郫都區(qū)嘉祥外國語學校八年級下學期期末語文試卷
- 卓越領導力訓練
- 數(shù)電課程設計報告--- 音樂彩燈控制器
- 注塑成型試題-及答案
- 眾智smartgenHAT600系列雙電源自動切換控制器說明書
- 湖南省惡性腫瘤門診放化療定點醫(yī)療機構(gòu)申請表
- 個體診所藥品清單
評論
0/150
提交評論