版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程實踐報告設(shè)計題目: 程序設(shè)計(VC+)實踐設(shè)計時間: 至學(xué)院: 專業(yè)班級: 學(xué)生姓名: 學(xué)號指導(dǎo)老師: 1試建立一個類PP,求出下列多項式的前n項的值。 具體要求如下:(1)私有數(shù)據(jù)成員lint n:前若干項的項數(shù)。ldouble x:存放x的值。ldouble *p:根據(jù)n的大小動態(tài)申請存放Pn(x) 前n項的數(shù)組空間。(2)公有成員函數(shù)lPP(int num,double x1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員n和x,使p指向動態(tài)申請的數(shù)組空間。lPP():析構(gòu)函數(shù),釋放p指向的動態(tài)內(nèi)存空間。ldouble fun(int n1,double x):遞歸函數(shù),用于求多項式的第n1項。注意:將
2、遞歸公式中的n用作函數(shù)參數(shù)。本函數(shù)供process函數(shù)調(diào)用。lvoid process( ):完成求前n項的工作,并將它們存放到p指向的動態(tài)數(shù)組中。lvoid show( ):輸出n和x,并將前n項以每行4個數(shù)的形式輸出到屏幕上。(3) 在主函數(shù)中完成對該類的測試。先輸入num和x1,并定義一個PP類的對象items,用num和x1初始化items的成員n和x,調(diào)用items的成員函數(shù),求出并輸出多項式前num項的值。程序源代碼#include<iostream.h>class ppint n;double x;double *p;public:pp(int num,double
3、x1);pp();double fun(int n1,double x);void process();void show();pp:pp(int num,double x1)n=num;x=x1;p=new doublenum+1;pp:pp()delete p;double pp:fun(int n1,double x)if(n1=0)return 1;if(n1=1)return x;if(n1>1)return (2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1;void pp:process()int i;for(i=0;i<=n;i
4、+)*(p+i)=fun(i,x);void pp:show()cout<<"n="<<n<<'t'<<"x="<<x<<endl;for(int i=0,m=1;i<n;i+,m+)cout<<*(p+i)<<'t'if(m%4=0)cout<<'n'void main()int num;double x1;cout<<"put in num and x1"&l
5、t;<endl;cin>>num>>x1;pp items(num,x1);cess();items.show();運行結(jié)果2試建立一個類SP,求 ,另有輔助函數(shù)power(m,n)用于求 。具體要求如下:(1)私有成員數(shù)據(jù)。lint n,k:存放公式中n和k的值;(2)公有成員函數(shù)。lSP(int n1,int k1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)n和k。lint power(int m, int n):求mn。lint fun( ):求公式的累加和。lvoid show( ):輸出求得的結(jié)果。(3)在主程序中定義對象s,對該類進行測試。程序源代碼
6、#include<iostream.h>class SPint n,k;public:SP(int n1,int k1);int power(int m,int n);int fun();void show();SP:SP(int n1,int k1)n=n1;k=k1;int SP:power(int m,int n)int i;if(n=0)return 1;elsefor(i=1;i<n;i+)m*=m;return m;int SP:fun()int y=0,x;for(x=1;x<=n;x+)y+=power(x,k);return y;void SP:sho
7、w()cout<<"前n項的和為:"<<fun()<<endl;void main()int n1,k1;cout<<"輸入n1和k1的值"<<endl;cin>>n1>>k1;SP s(n1,k1);s.fun();s.show();運行結(jié)果:3建立一個類MOVE,不進行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。具體要求如下:(1)私有數(shù)據(jù)成員lfloat array20:一維整型數(shù)組。lint n:數(shù)組中元素的個數(shù)。(2)公有成員函
8、數(shù)lMOVE(float b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid average():輸出平均值,并將數(shù)組中的元素按要求重新放置。lvoid print():輸出一維數(shù)組。(3)在主程序中用數(shù)據(jù)1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3對該類進行測試。程序源代碼#include<iostream.h>class MOVEfloat array20;int n;public:MOVE(float b,int m);void average();void print();MOVE:MOVE(float b,int m)int i;n=m;for(
9、i=0;i<m;i+)arrayi=bi;void MOVE:average()int i,x;float a=0;for(i=0;i<n;i+)a+=arrayi;a/=n;cout<<"平均值為"<<a<<endl;float ff20;for(i=0,x=0;i<n;i+)if(arrayi<a)ffx=arrayi;x+;for(i=0;i<n;i+)if(arrayi>a)ffx=arrayi;x+;for(i=0;i<n;i+)arrayi=ffi;void MOVE:print()i
10、nt q,p=1;for(q=0;q<n;q+)cout<<arrayq<<'t'if(p%5=0)cout<<'n'p+;void main()float b=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3;int m=9;MOVE aa(b,m);aa.average();aa.print();運行結(jié)果4建立一個類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(1)私有數(shù)據(jù)成員lint *array:一維整型數(shù)組。lint n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)lMOVE(in
11、t b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。lvoid print():輸出一維數(shù)組。lMOVE():析構(gòu)函數(shù)。(3)在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對該類進行測試。程序源代碼#include<iostream.h>class MOVEint *array;int n;public:MOVE(int b,int m);void exchange();void print();MOVE();MOVE:MOVE(int b,int m)n=m;array=new
12、intn;for(int x=0;x<n;x+)arrayx=bx;void MOVE:exchange()float a=0;int i,*p1,*p2;for(i=0;i<n;i+)a+=arrayi;a/=n;cout<<"The average of the number is:"<<a<<endl;p1=p2=&array0;for(i=0;i<n;i+)if(arrayi<*p1)p1=&arrayi;if(arrayi>*p2)p2=&arrayi;i=*p1;*p1=*
13、p2;*p2=i;void MOVE:print()int i,num=1;for(i=0;i<n;i+)cout<<arrayi<<'t'if(num%5=0)cout<<'n'num+;MOVE:MOVE()delete array;void main()int b=21,65,43,87,12,84,44,97,32,55,n=10;MOVE ff(b,n);e();ff.print();運行結(jié)果5定義一個類Palindrome,實現(xiàn)絕對回文數(shù)。設(shè)計一個算法實現(xiàn)對任意整型數(shù)字判斷是否為絕對回文數(shù)。所謂絕對回文數(shù),是
14、指十進制數(shù)和二進制數(shù)均對稱的數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員 lint n:整型數(shù)字。lint y:標(biāo)記是否為回文數(shù)。(2)公有成員函數(shù)lPalindrome (int x) :構(gòu)造函數(shù),根據(jù)x參數(shù)初始化數(shù)據(jù)成員n,y初始化為0。lvoid huiwen () :判斷數(shù)n是否為絕對回文數(shù)。lvoid show( ) :若該數(shù)為回文數(shù),則在屏幕顯示。 (3)在主程序中定義int a,由鍵盤輸入數(shù)字。定義一個Palindrome類對象p,用a初始化p,完成對該類的測試。程序源代碼#include<iostream.h>class palindromeint n;int y;publ
15、ic:palindrome(int x);void huiwen();void show();palindrome:palindrome(int x)n=x;y=0;void palindrome:huiwen()int b20,c50,m,i,p=0,t1=1,t2=1;m=n;for(i=0;m>0;m/=10)p+;bi=m%10;i+;for(i=0;i<p;i+)if(bi!=bp-i-1)t1=0;break; for(i=0,m=n,p=0;m>0;m/=2)p+;ci=m%2;i+;for(i=0;i<p;i+)if(ci!=cp-i-1)t2=0;br
16、eak;if(t1&&t2)y=1;void palindrome:show()if(y=0)cout<<"該數(shù)不是回文數(shù)!"<<endl;else cout<<"該回文數(shù)是:"<<n<<endl;void main()int a;cout<<"輸入a的值"<<endl;cin>>a;palindrome p(a);p.huiwen();p.show();運行結(jié)果:6定義一個字符串類String,實現(xiàn)判斷該字符串是否為回文字
17、符串。所謂回文字符串,是指該字符串左右對稱。例如字符串“123321”是回文字符串。具體要求如下: (1)私有數(shù)據(jù)成員 lchar *str; lint y:標(biāo)記是否為回文字符串。 (2)公有成員函數(shù)lString (char *s) :構(gòu)造函數(shù),用給定的參數(shù)s初始化數(shù)據(jù)成員str。y初始化為0。lvoid huiwen () :判斷str所指向的字符串是否為回文字符串。lvoid show( ) :在屏幕上顯示字符串。(3)在主程序中定義字符串char s=”ababcedbaba”作為原始字符串。定義一個String類對象test,用s初始化test,完成對該類的測試。程序源代碼#incl
18、ude<iostream.h>#include<string.h>class stringchar *str;int y;public:string(char *s);void huiwen();void show();string:string(char *s)str=new charstrlen(s);strcpy(str,s);y=0;void string:huiwen()char *p1,*p2;p2=p1=str;for(int i=0;stri;i+,p2+);p2-;for(;p1!=p2;p1+,p2-)if(*p1!=*p2)y=0;break;el
19、sey=1;void string:show() cout<<”字符串為:”<<str<<endl;if(y=0)cout<<"字符串不是回文數(shù)!"<<endl;else cout<<y<<endl;void main()char s="ababcedbaba" string test(s); test.huiwen(); test.show();運行結(jié)果:7建立一個類PHALANX,生成并顯示一個折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角
20、,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。具體要求如下:(1)私有數(shù)據(jù)成員lint (*p)20:指向按照折疊規(guī)律存放方陣的二維整型數(shù)組。lint startnum:折疊方陣的起始數(shù)。lint n:存放方針的層數(shù)。(2)公有成員函數(shù)lPHALANX (int s, int m ):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid process():生成起始數(shù)為startnum的n行方陣。lvoid print():輸出折疊方陣。l PHALANX( ):析構(gòu)函數(shù)。(3)在主程序中對該類進行測試。程序源代碼#include<iostream.h>#include<iomanip.h>
21、;class phalanxint(*p)20;int starnum;int n;public:phalanx(int s,int m);void process();void print();phalanx();phalanx:phalanx(int s,int m)starnum=s;n=m;void phalanx:process()int num=starnum;int y=n,i,j,x;p=new int2020;for(x=0;x<y;x+)for(i=0,j=x;i<x;i+)pij=num;num+;for(;j>=0;j-)pij=num;num+;vo
22、id phalanx:print()int i,j,m=0;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(5)<<pij;cout<<'n'phalanx:phalanx()delete p;void main()int s,m;cout<<"輸入s和m的值"<<endl;cin>>s>>m;phalanx pp(s,m);cess();pp.print();運行結(jié)果8建立一個MATRIX,生成并顯示一個螺旋方陣。螺
23、旋方陣如下圖所示,起始數(shù)置于方陣的左上角,然后從起始數(shù)開始依次遞增,按順時針方向從外向里旋轉(zhuǎn)填數(shù)而成。具體要求如下:(1)私有數(shù)據(jù)成員lint a20 20:二維整型數(shù)組存放螺旋方陣。lint startnum:螺旋方陣的起始數(shù)。lint n:存放方針的層數(shù)。(2)公有成員函數(shù)lMATRIX (int s, int m ):構(gòu)造函數(shù),初始化成員數(shù)據(jù)startnum和n。lvoid process():生成起始數(shù)為startnum的n行螺旋方陣。lvoid print():輸出螺旋方陣。(3)在主程序中定義MATRIX類的對象t對該類進行測試。程序源代碼#include<iostream.
24、h>#include<iomanip.h>class matrixint a2020;int starnum;int n;public:matrix(int s,int m);void process();void print();matrix:matrix(int s,int m)starnum=s;n=m;void matrix:process()int st=starnum;int i,j,x=0,y=n;for(;x<=(y-1)/2;x+) for(i=x,j=x;j<(y-x-1);j+)aij=st;st+; for(;i<(y-x-1);i+
25、)aij=st;st+; for(;j>x;j-)aij=st;st+; for(;i>x;i-)aij=st;st+;if(x=(y-1)/2)aij=st;void matrix:print()int i,j;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(8)<<aij;cout<<'n'void main()int s,m;cout<<"輸入s和m的值"<<endl;cin>>s>>m;matrix pp(s,
26、m);cess();pp.print();運行結(jié)果9定義一個字符串類CString,并設(shè)計一個算法對該串中各個不同字符出現(xiàn)的頻率進行統(tǒng)計。具體要求如下: (1)私有數(shù)據(jù)成員 lchar *str:指向要統(tǒng)計的字符串。lchar (*p)2:動態(tài)分配二維空間,用以存放str所指字符串中出現(xiàn)的字符及其出現(xiàn)的次數(shù)(次數(shù)在存放時,用該數(shù)字對應(yīng)的ASCII值存放;在輸出次數(shù)時,輸出該ASCII字符對應(yīng)的ASCII值即可)。lint size:存放字符串中出現(xiàn)的所有不同的字符的個數(shù)。 (2)公有成員函數(shù)lCString (char *s) :根據(jù)s參數(shù)初始化數(shù)據(jù)成員str;p和size初始值為
27、0。lvoid Count():p根據(jù)s所指字符串長度分配空間。然后把str所指字符串中的每個字符放入p數(shù)組中,設(shè)置每個字符的出現(xiàn)次數(shù)為1。根據(jù)p數(shù)組統(tǒng)計不同字符出現(xiàn)的頻率,并求得size的實際大小。最后根據(jù)size的實際大小,重新分配p所指空間,并把不同字符及其出現(xiàn)次數(shù)重新放回p數(shù)組(提示:可以借助臨時數(shù)組或指針來實現(xiàn))。lvoid Show():屏幕顯示字符串、字符串的每個字符和與之對應(yīng)的次數(shù)。lCString():釋放動態(tài)分配的空間。(3)在主程序中定義字符串char s=”abdabcdesffffd”。定義一個CString類對象test,用s以初始化test,完成對該類的測試。程序
28、源代碼#include<iostream.h>#include<string.h>class cstringchar*str;char (*p)2;int size;public:cstring(char *s);void count();void show();cstring();cstring:cstring(char*s)p=0;size=0;str=s;void cstring:count()p=new charstrlen(str)2;char n;char *p1,*p2;for(int i=0;stri;i+)n='0'p1=&st
29、ri;for(int m=0;strm;m+)p2=&strm;if(*p1=*p2)n+;p2+;pi0=stri;pi1=n;void cstring:show()for(int i=0;i<strlen(str);i+)int m,x=1;for(m=0;m<i;m+)if(pm0=pi0)x=0;break;if(x=1)cout<<pi0<<'t'<<(int)pi1<<endl;cstring:cstring()delete p;void main()char s="abdabcdesff
30、ffd"cstring test(s);test.count();test.show();運行結(jié)果10定義一個字符串類CString,并設(shè)計一個算法實現(xiàn),給定關(guān)鍵字str1在字符串str中出現(xiàn)時用關(guān)鍵字str2進行替換的功能。具體要求如下: (1)私有數(shù)據(jù)成員 lchar *str; 原始字符串。lchar *str1; 目標(biāo)關(guān)鍵字。lchar *str2; 替換關(guān)鍵字。lint flag; 標(biāo)記替換是否完成替換。 (2)公有成員函數(shù)lCString (char *s,char s1 ,char *s2) :用給定的參數(shù)s、s1和s2相對應(yīng)的初始化數(shù)據(jù)成員str、str1和str2。
31、flag設(shè)置缺省0。lvoid Replace () :判斷str字符串中是否出現(xiàn)str1,若出現(xiàn)就用str2替換,否則什么都不做。若替換成功了標(biāo)記flag為1,若替換不成功則標(biāo)記flag為0。lvoid Show( ) :若替換成功,則在屏幕上顯示目標(biāo)關(guān)鍵字、替換關(guān)鍵字和替換后的原始字符串;若不成功則顯示原始字符串。l CString() :釋放動態(tài)分配的空間。(3) 在主程序中定義字符串char s=”I am student, you are student too, we are all student.”作為原始字符串,定義char s1=” student”作為目標(biāo)關(guān)鍵字,定義ch
32、ar s2=”teacher”作為替換關(guān)鍵字。定義一個CString類對象test,用s,s1和s2初始化test,完成對該類的測試。程序源代碼#include<iostream.h>#include<string.h>class cstringchar *str;char *str1;char *str2;int flag;public:cstring(char*s,char s1,char *s2);void replace();void show();cstring();cstring:cstring(char*s,char s1,char *s2)str=new
33、 charstrlen(s)+1;str1=new charstrlen(s1)+1;str2=new charstrlen(s2)+1;strcpy(str,s);strcpy(str1,s1);strcpy(str2,s2);flag=0;void cstring:replace()int i,n1,n2,y=1;for(i=0;stri;i+)if(stri=str10)for(n1=i,n2=0;str1n2;n1+,n2+)if(strn1!=str1n2)|(strn1='0')y=0;break;if(y=1)char pp100;for(int x=0,p=i;
34、x<(strlen(str1);p+,x+)strp=str2x;flag=1;void cstring:show()if(flag=1)cout<<"改后"<<str<<endl;else cout<<"未改"<<str<<endl;cstring:cstring()delete str;delete str1;delete str2;void main()char s="I am student,you are student too,we are all stu
35、dent."char s1="student"char s2="teacher"cstring test(s,s1,s2);test.replace();test.show();運行結(jié)果11建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字符串等長)。例如將字符串“abcde” 交叉插入字符串“ABCDE”的結(jié)果為“aAbBcCdDeE”或“AaBbCcDdEe”。具體要求如下:(1)私有數(shù)據(jù)成員lchar str180 :存放被插入的字符串。lchar str240 :存放待插入的字符串。(2)公有成員函數(shù)lSTRING (
36、char *s1, char *s2 ):構(gòu)造函數(shù),用s1和s2初始化str1和str2。lvoid process():將str2中的字符串插入到str1中。lvoid print():輸出插入后的字符串。(3)在主程序中定義STRING類的對象test對該類進行測試。程序源代碼#include<iostream.h>#include<string.h>class STRINGchar str180;char str240;public:STRING(char *s1,char *s2);void process();void print();STRING:STRIN
37、G(char *s1,char *s2)for(int i=0;i<80;i+)str1i=s1i;for(int j=0;j<40;j+)str2j=s2j;void STRING:process()char s40;strcpy(s,str1);int i=0,j=0;while(str2i)str1j+=str2i;str1j+=si;i+;str1j='0'void STRING:print()cout<<"交叉后的字符串為:"cout<<str1<<endl;void main()char str18
38、0,str240;cout<<"輸入字符串1"<<endl;cin.getline(str1,39);cout<<"輸入字符串2"<<endl;cin.getline(str2,39);STRING test(str1,str2);cess();test.print();運行結(jié)果12建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字符串不等長)。例如將字符串“abcde” 交叉插入字符串“ABCDEFG”的結(jié)果為“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。具
39、體要求如下:(1)私有數(shù)據(jù)成員lchar str160 :存放被插入的字符串。lchar str240 :存放待插入的字符串。lchar str3100 :存放插入后的字符串。(2)公有成員函數(shù)lSTRING (char *s1, char *s2 ):構(gòu)造函數(shù),用s1和s2初始化str1和str2。lvoid process():將str2中的字符串插入到str1中,存放到str3中。lvoid print():輸出插入后的字符串。(3)在主程序中定義STRING類的對象test對該類進行測試。程序源代碼#include<iostream.h>#include<string
40、.h>class STRINGchar str160;char str240;char str3100;public:STRING(char *s1,char *s2);void process();void print();STRING:STRING(char *s1,char *s2)for(int i=0;i<60;i+)str1i=s1i;for(int j=0;j<40;j+)str2j=s2j;void STRING:process() int i=0,j=0,x;while(str1i&&str2i)str3j+=str2i; str3j+=st
41、r1i;i+;x=i;if(str2x) while(str2x) str3j+=str2x+;if(str1i) while(str1i) str3j+=str1i+;str3j+='0'void STRING:print()cout<<"合并后的字符串為:"cout<<str3<<endl;void main()char str160,str240;cout<<"輸入字符串1"<<endl;cin.getline(str1,59);cout<<"輸入字符
42、串2"<<endl;cin.getline(str2,39);STRING test(str1,str2);cess();test.print();運行結(jié)果13建立一個類MOVE,對數(shù)組中元素進行循環(huán)換位,即每個元素后移三位,最后三個元素移到最前面。具體要求如下:(1)私有數(shù)據(jù)成員lint array20:一維整型數(shù)組。lint n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)lMOVE(int b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid change():進行循環(huán)換位。lvoid print():輸出一維數(shù)組。(3)在主程序中用數(shù)據(jù)21,65,43,
43、87,12,84,44,97,32,55對該類進行測試。程序源代碼#include<iostream.h>class MOVEint array20;int n;public:MOVE(int b,int m);void change();void print();MOVE:MOVE(int b,int m)n=m;for(int i=0;i<n;i+)arrayi=bi;void MOVE:change()int a20;for(int i=0;i<n-3;i+)ai+3=arrayi;a0=arrayi+;a1=arrayi+;a2=arrayi; for(i=0;
44、i<n;i+)arrayi=ai;void MOVE:print()for(int i=0;i<n;i+)cout<<arrayi<<'t'cout<<endl;void main()int b20=21,65,43,87,12,84,44,97,32,55;MOVE p(b,10);p.change();p.print();運行結(jié)果14建立一個類MOVE,實現(xiàn)將數(shù)組中大字字母元素放在小寫字母元素的左邊。具體要求如下:(1)私有數(shù)據(jù)成員lchar *array:一維字符數(shù)組。lint n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)lMO
45、VE(char b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid change():進行排序換位。lvoid print():輸出一維數(shù)組。lMOVE():析構(gòu)函數(shù)。(3)在主程序中用數(shù)據(jù)"fdsUFfsTjfsKFEkWC"對該類進行測試。程序源代碼#include<iostream.h>#include<string.h>class movechar*array;int n;public:move(char b,int m);void change();void print();move();move:move(char b,int m)a
46、rray=new charstrlen(b)+1;n=m;strcpy(array,b);void move:change()char *p;int m=0;p=new charstrlen(array);strcpy(p,array);for(int i=0;pi;i+)if(pi<='Z'&&pi>='A')arraym+=pi;for(i=0;pi;i+)if(pi<='z'&&pi>='a')arraym+=pi;void move:print()cout<&l
47、t;"改后字符串為:"<<array<<endl;move:move()delete array;void main()char b1000;int m;cout<<"輸入字符串和字符串個數(shù)"<<endl;cin>>b>>m;move pp(b,m);pp.change();pp.print();運行結(jié)果:15定義一個一維數(shù)組類Carray,并根據(jù)給定算法實現(xiàn)對原始一維數(shù)組進行線性變換。這里給定的線性變換算法為:T(bx) = bT(x) + i; 其中,b為變換常量,x為變量,i為
48、當(dāng)前類中成員數(shù)組的下標(biāo)值。根據(jù)該算法,原始數(shù)組在變化后,當(dāng)前數(shù)組元素的值是由常量b和i下標(biāo)來決定的。具體要求如下: (1)私有數(shù)據(jù)成員 lint *a:指針a指向一個動態(tài)分配的原始數(shù)組。lint n:n表示該數(shù)組的大小。lint b:線性變換的常量。 (2)公有成員函數(shù)lCarray (int a ,int n,int x) :用給定的參數(shù)a、n和x初始化數(shù)據(jù)成員a、n和b。缺省都設(shè)置為0。lvoid Transform () :根據(jù)上述變化算法,求解數(shù)組變換。lvoid Show( ) :在屏幕上顯示數(shù)組元素。l Carray () :釋放動態(tài)分配的空間。(3)在主程序中定義數(shù)組int ar
49、r =1,2,3,4,5,6,7,8,9,10作為原始數(shù)組,int b;由鍵盤輸入,作為線性變換的常量。定義一個Carray類對象test,用arr初始化test,完成對該類的測試。程序源代碼#include<iostream.h>class carrayint *a;int n;int b;public:carray(int a,int n,int x);void transform();void show();carray();carray:carray(int a,int n=0,int x=0)this->a=new intn;this->n=n;b=x;for
50、(int i=0;i<n;i+)this->ai=ai;void carray:transform()for(int i=0;i<n;i+)ai=b*ai+i;void carray:show()cout<<"變換后的數(shù)組為:"<<endl;for(int i=0;i<n;i+)cout<<ai<<'t'cout<<endl;carray:carray()delete a;void main()int arr=1,2,3,4,5,6,7,8,9,10;int m=10,b;c
51、out<<"輸入線性變換常量"<<endl;cin>>b;carray test(arr,m,b);test.transform();test.show();運行結(jié)果:16定義一個方陣類CMatrix,并根據(jù)給定算法實現(xiàn)方陣的線性變換。方陣的變換形式為:F=W*fTf為原始矩陣,fT為原始矩陣的轉(zhuǎn)置,w為變換矩陣,這里設(shè)定為1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 具體要求如下: (1)私有數(shù)據(jù)成員 lint (*a)4:a指向方陣數(shù)組。lint w44:w為變換矩陣。lint m:m表示方陣的行和列數(shù)。 (2)公有成員函數(shù)lCMatrix (int a4,int m) :用給定的參數(shù)a和m 初始化數(shù)據(jù)成員a和m;對變換矩陣w進行初始化,要求必須用循環(huán)實現(xiàn)。lvoid Transform () :根據(jù)上述變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi)。lvoid show( ) :在屏幕上顯示數(shù)組元素。l CMatrix () :釋放動態(tài)分配的空間。(3) 在主程序中定義數(shù)組int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作為原始數(shù)組。定義一個CMat
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度水利項目借款合同終止與防洪抗旱協(xié)議3篇
- 2025年水箱環(huán)保技術(shù)合作與購銷合同范本3篇
- 2025年旅游度假地產(chǎn)委托居間房產(chǎn)租賃合同范本3篇
- 年度基礎(chǔ)地質(zhì)勘查服務(wù)競爭策略分析報告
- 二零二五年度違約民事起訴狀合同起草技巧與法律適用3篇
- 2024-2025學(xué)年新教材高中數(shù)學(xué)第十章概率單元質(zhì)量評估含解析新人教A版必修第二冊
- 2025年度文化旅游項目招投標(biāo)與合同管理規(guī)范解讀3篇
- 2024金融行業(yè)拓展訓(xùn)練合同
- 2025年度新能源居間服務(wù)合同范本英文版3篇
- 二零二五年度留守兒童特殊教育需求與個性化支持服務(wù)合同4篇
- 《鐵路軌道維護》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 智能養(yǎng)老院視頻監(jiān)控技術(shù)方案
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
- 你比我猜題庫課件
- 豐順縣鄉(xiāng)鎮(zhèn)集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險評估報告
- 無人駕駛航空器安全操作理論復(fù)習(xí)測試附答案
- 2024年山東省青島市中考語文試卷(附答案)
- 職業(yè)技術(shù)學(xué)校《跨境電子商務(wù)物流與倉儲》課程標(biāo)準(zhǔn)
評論
0/150
提交評論