版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
江蘇科技大學(xué)課程實(shí)踐報(bào)告設(shè)計(jì)題目:程序設(shè)計(jì)(VC++)實(shí)踐設(shè)計(jì)時(shí)間:至學(xué)院:專業(yè)班級(jí):學(xué)生姓名:學(xué)號(hào)指導(dǎo)老師:1.試建立一個(gè)類PR求出下列多項(xiàng)式的前n項(xiàng)的值。具體要求如下:(1)私有數(shù)據(jù)成員intn:前若干項(xiàng)的項(xiàng)數(shù)。doublex:存放x的值。double*p:根據(jù)n的大小動(dòng)態(tài)申請(qǐng)存放Pn(x)前n項(xiàng)的數(shù)組空間。(2)公有成員函數(shù)PP(intnum,doublex1):構(gòu)造函數(shù),初始化數(shù)據(jù)成員n和x,使p指向動(dòng)態(tài)申請(qǐng)的數(shù)組空間。?PP():析構(gòu)函數(shù),釋放p指向的動(dòng)態(tài)內(nèi)存空間。doublefun(intn1,doublex):遞歸函數(shù),用于求多項(xiàng)式的第n1項(xiàng)。注意:將遞歸公式中的n用作函數(shù)參數(shù)。本函數(shù)供process函數(shù)調(diào)用。voidprocess():完成求前n項(xiàng)的工作,并將它們存放到p指向的動(dòng)態(tài)數(shù)組中。voidshow():輸出n和x,并將前n項(xiàng)以每行4個(gè)數(shù)的形式輸出到屏幕上。(3)在主函數(shù)中完成對(duì)該類的測試。先輸入num和x1,并定義一個(gè)PP類的對(duì)象items,用num和x1初始化items的成員n和x,調(diào)用items的成員函數(shù),求出并輸出多項(xiàng)式前num項(xiàng)的值。程序源代碼#include<iostream.h>classpp{intn;doublex;double*p;public:pp(intnum,doublex1);~pp();doublefun(intn1,doublex);voidprocess。;voidshow();};pp::pp(intnum,doublex1){n=num;x=x1;p=newdouble[num+1];}pp::~pp(){delete[]p;}doublepp::fun(intn1,doublex){if(n1==0)return1;if(n1==1)returnx;if(n1>1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;)voidpp::process()(inti;for(i=0;i<=n;i++)(*(p+i)=fun(i,x);))voidpp::show()(cout<<"n="<<n<<'\t'<<"x="<<x<<endl;for(inti=0,m=1;i<n;i++,m++)(cout<<*(p+i)<<'\t';if(m%4==0)cout<<'\n';))voidmain()(intnum;doublex1;cout<<"putinnumandx1"<<endl;cin>>num>>x1;ppitems(num,x1);cess();items.show();)運(yùn)行結(jié)果ITC:\Users\pzq\Desktop\DebugkCppl.exe"¥〃七innuvnandxl5n=6x-515372E4123525Pressanykeytocontioue2.試建立一個(gè)類S巳求,另有輔助函數(shù)power(m,n)用于求具體要求如下:(1)私有成員數(shù)據(jù)。intn,k:存放公式中n和k的值;(2)公有成員函數(shù)。SP(intn1,intk1):構(gòu)造函數(shù),初始化成員數(shù)據(jù)n和power(intm,intn):求fun():求公式的累加和。voidshow():輸出求得的結(jié)果。(3)在主程序中定義對(duì)象s,對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>classSP{intn,k;public:SP(intn1,intk1);intpower(intm,intn);intfun();voidshow();};SP二SP(intn1,intk1){n=n1;k=k1;}intSP二power(intm,intn){inti;if(n==0)return1;elsefor(i=1;i<n;i++)m*=m;returnm;}intSP::fun(){inty=0,x;for(x=1;x<=n;x++)y+=power(x,k);returny;}voidSP二show(){cout<<”前n項(xiàng)的和為:"<<fun()<<endl;
}voidmain(){intn1,k1;cout<<"輸入n1和k1的值"<<endl;cin>>n1>>k1;SPs(n1,k1);s.fun();s.show();}1=1運(yùn)行結(jié)果:1=1"C:\Use-rs\pjq\Desktop\Debug\Cppl.exe"枷項(xiàng)的和為:?7?sanykeyto心□ntzLniLQ3.建立一個(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ù)據(jù)。voidaverage。:輸出平均值,并將數(shù)組中的元素按要求重新放置。voidprint():輸出一維數(shù)組。(3)在主程序中用數(shù)據(jù){13623,9.1,4.874,5.6,922.3}對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>classMOVE{floatarray[20];intn;public:MOVE(floatb[],intm);voidaverage。;voidprint();};MOVE::MOVE(floatb[],intm){inti;n=m;for(i=0;i<m;i++)array[i]=b[i];)voidMOVE::average()(inti,x;floata=0;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"平均值為"<<a<<endl;floatff[20];for(i=0,x=0;i<n;i++)if(array[i]<a)(ff[x]=array[i];x++;)for(i=0;i<n;i++)if(array[i]>a)(ff[x]=array[i];x++;)for(i=0;i<n;i++)array[i]=ff[i];)voidMOVE::print()(intq,p=1;for(q=0;q<n;q++)(cout<<array[q]<<'\t';if(p%5==0)cout<<'\n';p++;))voidmain()(floatb[]={1.3,6.239.1,4.874,5.6,9.2,2.3};intm=9;MOVEaa(b,m);aa.average();aa.print();}運(yùn)行結(jié)果*"5Users\pzq\Desktop\D?bngpplewe"隹均值為£.433331.334.82.36-2,?工7.4S.6"2Pressanykeytocontinue4.建立一個(gè)類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(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ù)。(3)在主程序中用數(shù)據(jù){21,65,43,87,12,84,44,97,32,55}對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>classMOVE{int*array;intn;public:MOVE(intb[],intm);voidexchange。;voidprint();~MOVE();};MOVE::MOVE(intb[],intm){n=m;array=newint[n];for(intx=0;x<n;x++)array[x]=b[x];}voidMOVE二exchange。{floata=0;inti,*p1,*p2;for(i=0;i<n;i++)a+=array[i];a/=n;cout<<"Theaverageofthenumberis:"<<a<<endl;p1=p2=&array[0];for(i=0;i<n;i++){if(array[i]<*p1)p1=&array[i];if(array[i]>*p2)p2=&array[i];}i=*p1;*p1=*p2;*p2=i;}voidMOVE::print(){inti,num=1;for(i=0;i<n;i++){cout<<array[i]<<'\t';if(num%5==0)cout<<'\n';num++;}}MOVE::~MOVE(){delete[]array;}voidmain(){intb□={21,65,43,87,12,84,44,97,32,55},n=10;MOVEff(b,n);ff.exchange();ff.print();}運(yùn)行結(jié)果-'C:\Jsers\pzq\DesktopkDebug\Cppl.exe"Theaverag'softhecumh日產(chǎn)is:542165138???H4412M55[Pressanykeytocontinue5.定義一個(gè)類Palindrome。實(shí)現(xiàn)絕對(duì)回文數(shù)。設(shè)計(jì)一個(gè)算法實(shí)現(xiàn)對(duì)任意整型數(shù)字判斷是否為絕對(duì)回文數(shù)。所謂絕對(duì)回文數(shù),是指十進(jìn)制數(shù)和二進(jìn)制數(shù)均對(duì)稱的數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員intn:整型數(shù)字。intv:標(biāo)記是否為回文數(shù)。(2)公有成員函數(shù)Palindrome(intx):構(gòu)造函數(shù),根據(jù)x參數(shù)初始化數(shù)據(jù)成員n,y初始化為0。voidhuiwen():判斷數(shù)n是否為絕對(duì)回文數(shù)。voidshow():若該數(shù)為回文數(shù),則在屏幕顯示。(3)在主程序中定義inta,由鍵盤輸入數(shù)字。定義一個(gè)Palindrome類對(duì)象p,用a初始化p,完成對(duì)該類的測試。程序源代碼#include<iostream.h>classpalindrome{intn;inty;public:palindrome(intx);voidhuiwen();voidshow();};palindrome二palindrome(intx){n=x;y=0;}voidpalindrome二huiwen(){intb[20],c[50],m,i,p=0,t1=1,t2=1;m=n;for(i=0;m>0;m/=10){p++;b[i]=m%10;i++;}for(i=0;i<p;i++)if(b[i]!=b[p-i-1]){t1=0;break;}for(i=0,m=n,p=0;m>0;m/=2)p++;c[i]=m%2;i++;}for(i=0;i<p;i++)if(c[i]!=c[p-i-1]){t2=0;break;}if(t1&&t2)y=1;}voidpalindrome二show(){if(y==0)cout<<”該數(shù)不是回文數(shù)!"<<endl;elsecout<<‘該回文數(shù)是:"<<n<<endl;}voidmain(){inta;cout<<"輸入a的值"<<endl;cin>>a;palindromep(a);p.huiwen();p.show();)運(yùn)行結(jié)果:6.定義一個(gè)字符串類String,實(shí)現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是指該字符串左右對(duì)稱。例如字符串“123321”是回文字符串。具體要求如下:(1)私有數(shù)據(jù)成員char*str;inty:標(biāo)記是否為回文字符串。(2)公有成員函數(shù)String(char*s):構(gòu)造函數(shù),用給定的參數(shù)s初始化數(shù)據(jù)成員str。y初始化為0。voidhuiwen():判斷str所指向的字符串是否為回文字符串。voidshow():在屏幕上顯示字符串。(3)在主程序中定義字符串chars[]="ababcedbabW'作為原始字符串。定義一個(gè)String類對(duì)象test,用s初始化test,完成對(duì)該類的測試。程序源代碼#include<iostream.h>#include<string.h>classstring{char*str;inty;public:string(char*s);voidhuiwen();voidshow();};string二string(char*s){str=newchar[strlen(s)];strcpy(str,s);y=0;}voidstring二huiwen(){char*p1,*p2;p2=p1=str;for(inti=0;str[i];i++,p2++);p2--;for(;p1!=p2;p1++,p2--){if(*p1!=*p2){y=0;break;}elsey=1;}}voidstring二show(){cout<<”字符串為:”<<str<<endl;if(y==0)cout<<"字符串不是回文數(shù)!"<<endl;elsecout<<y<<endl;}voidmain(){chars[]="ababcedbaba";stringtest(s);test.huiwen();test.show();}運(yùn)行結(jié)果:7.建立一個(gè)類PHALANX,生成并顯示一個(gè)折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。具體要求如下:(1)私有數(shù)據(jù)成員int(*p)[20]:指向按照折疊規(guī)律存放方陣的二維整型數(shù)組。intstartnum:折疊方陣的起始數(shù)。intn:存放方針的層數(shù)。(2)公有成員函數(shù)PHALANX(ints,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。voidprocess。:生成起始數(shù)為startnum的n行方陣。voidprint():輸出折疊方陣。~PHALANX():析構(gòu)函數(shù)。(3)在主程序中對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>#include<iomanip.h>classphalanx{int(*p)[20];intstarnum;intn;public:phalanx(ints,intm);voidprocess。;voidprint();~phalanx();};phalanx::phalanx(ints,intm){starnum=s;n=m;voidphalanx二process。{intnum=starnum;inty=n,i,j,x;p=newint[20][20];for(x=0;x<y;x++){for(i=0,j=x;i<x;i++){p[i][j]=num;num++;}for(;j>=0;j--){p[i][j]=num;num++;}}}voidphalanx二print(){inti,j,m=0;for(i=0;i<n;i++){for(j=0;j<n;j++){cout<<setw(5)<<p[i][j];}cout<<'\n';}}phalanx::~phalanx(){delete[]p;}voidmain(){ints,m;cout<<"輸入s和m的值"<<endl;cin>>s>>m;phalanxpp(s,m);cess();pp.print();8.建立一個(gè)MATRIX,生成并顯示一個(gè)螺旋方陣。螺旋方陣如下圖所示,起始數(shù)置于方陣的左上角,然后從起始數(shù)開始依次遞增,按順時(shí)針方向從外向里旋轉(zhuǎn)填數(shù)而成。具體要求如下:(1)私有數(shù)據(jù)成員inta[20][20]:二維整型數(shù)組存放螺旋方陣。intstartnum:螺旋方陣的起始數(shù)。intn:存放方針的層數(shù)。(2)公有成員函數(shù)MATRIX(ints,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)startnum和n。voidprocess。:生成起始數(shù)為startnum的n行螺旋方陣。voidprint():輸出螺旋方陣。(3)在主程序中定義MATRIX類的對(duì)象t對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>#include<iomanip.h>classmatrix{inta[20][20];intstarnum;intn;public:matrix(ints,intm);voidprocess。;voidprint();};matrix二matrix(ints,intm){starnum=s;n=m;voidmatrix::process()(intst=starnum;inti,j,x=0,y=n;for(;x<=(y-1)/2;x++)(for(i=x,j=x;j<(y-x-1);j++)(a[i][j]=st;st++;}for(;i<(y-x-1);i++)(a[i][j]=st;st++;}for(;j>x;j--)(a[i][j]=st;st++;}for(;i>x;i--)(a[i][j]=st;st++;}if(x==(y-1)/2)a[i][j]=st;}}voidmatrix::print()(inti,j;for(i=0;i<n;i++)(for(j=0;j<n;j++)cout<<setw(8)<<a[i][j];cout<<'\n';}}voidmain()(ints,m;cout<<"輸入s和m的值"<<endl;cin>>s>>m;matrixpp(s,m);cess();pp.print();}運(yùn)行結(jié)果.定義一個(gè)字符串類CString,并設(shè)計(jì)一個(gè)算法對(duì)該串中各個(gè)不同字符出現(xiàn)的頻率進(jìn)行統(tǒng)計(jì)。具體要求如下:(1)私有數(shù)據(jù)成員char*str:指向要統(tǒng)計(jì)的字符串。char(*p)[2]:動(dòng)態(tài)分配二維空間,用以存放str所指字符串中出現(xiàn)的字符及其出現(xiàn)的次數(shù)(次數(shù)在存放時(shí),用該數(shù)字對(duì)應(yīng)的ASCII值存放;在輸出次數(shù)時(shí),輸出該ASCII字符對(duì)應(yīng)的ASCII值即可)。intsize:存放字符串中出現(xiàn)的所有不同的字符的個(gè)數(shù)。(2)公有成員函數(shù)CString(char*s):根據(jù)s參數(shù)初始化數(shù)據(jù)成員str;p和size初始值為0。voidCount():p根據(jù)s所指字符串長度分配空間。然后把str所指字符串中的每個(gè)字符放入p數(shù)組中,設(shè)置每個(gè)字符的出現(xiàn)次數(shù)為1。根據(jù)p數(shù)組統(tǒng)計(jì)不同字符出現(xiàn)的頻率,并求得size的實(shí)際大小。最后根據(jù)size的實(shí)際大小,重新分配p所指空間,并把不同字符及其出現(xiàn)次數(shù)重新放回p數(shù)組(提示:可以借助臨時(shí)數(shù)組或指針來實(shí)現(xiàn))。voidShow():屏幕顯示字符串、字符串的每個(gè)字符和與之對(duì)應(yīng)的次數(shù)。~CString():釋放動(dòng)態(tài)分配的空間。(3)在主程序中定義字符串chars[]="abdabcdesffffd”。定義一個(gè)CString類對(duì)象test,用s以初始化test,完成對(duì)該類的測試。程序源代碼#include<iostream.h>#include<string.h>classcstring{char*str;char(*p)[2];intsize;public:cstring(char*s);voidcount();voidshow();~cstring();};cstring二cstring(char*s){p=0;size=0;str=s;}voidcstring二count(){p=newchar[strlen(str)][2];charn;char*p1,*p2;for(inti=0;str[i];i++){n='\0';p1=&str[i];for(intm=0;str[m];m++){p2=&str[m];if(*p1==*p2)n++;p2++;}p[i][0]=str[i];p[i][1]=n;}}voidcstring二show(){for(inti=0;i<strlen(str);i++){intm,x=1;for(m=0;m<i;m++){if(p[m][0]==p[i][0]){x=0;break;}}if(x==1)cout<<p[i][0]<<'\t'<<(int)p[i][1]<<endl;}cstring::~cstring(){delete[]p;}voidmain(){chars[]="abdabcdesffffd";cstringtest(s);test.count();test.show();運(yùn)行結(jié)果.定義一個(gè)字符串類CString,并設(shè)計(jì)一個(gè)算法實(shí)現(xiàn),給定關(guān)鍵字strl在字符串str中出現(xiàn)時(shí)用關(guān)鍵字str2進(jìn)行替換的功能。具體要求如下:(1)私有數(shù)據(jù)成員char*str;原始字符串。char*str1;目標(biāo)關(guān)鍵字。char*st⑵替換關(guān)鍵字。intflag;標(biāo)記替換是否完成替換。(2)公有成員函數(shù)CString(char*s,chars1[],char*s2):用給定的參數(shù)s、s1和s2相對(duì)應(yīng)的初始化數(shù)據(jù)成員str、str1和str2。flag設(shè)置缺省0。voidReplace():判斷str字符串中是否出現(xiàn)str1,若出現(xiàn)就用str2替換,否則什么都不做。若替換成功了標(biāo)記flag為1,若替換不成功則標(biāo)記flag為0。voidShow():若替換成功,則在屏幕上顯示目標(biāo)關(guān)鍵字、替換關(guān)鍵字和替換后的原始字符串;若不成功則顯示原始字符串。~CString():釋放動(dòng)態(tài)分配的空間。在主程序中定義字符串chars[]="Iamstudent,youarestudenttoo,weareallstudent."作為原始字符串,定義chars1[]="student”作為目標(biāo)關(guān)鍵字,定義chars2[尸"teacher'作為替換關(guān)鍵字。定義一個(gè)CString類對(duì)象test,用s,s1和s2初始化test,完成對(duì)該類的測試。程序源代碼#include<iostream.h>#include<string.h>classcstring{char*str;char*str1;char*str2;intflag;public:cstring(char*s,chars1口,char*s2);voidreplace。;voidshow();~cstring();};cstring二cstring(char*s,chars1口,char*s2){str=newchar[strlen(s)+1];str1=newchar[strlen(s1)+1];str2=newchar[strlen(s2)+1];strcpy(str,s);strcpy(str1,s1);strcpy(str2,s2);flag=0;}voidcstring二replace。{inti,n1,n2,y=1;for(i=0;str[i];i++){if(str[i]==str1[0]){for(n1=i,n2=0;str1[n2];n1++,n2++)if((str[n1]!=str1[n2])||(str[n1]==''0')){y=0;break;}if(y==1){charpp[100];for(intx=0,p=i;x<(strlen(str1));p++,x++){str[p]=str2[x];}flag=1;}}}voidcstring二show(){if(flag==1)cout<<"改后"<<str<<endl;elsecout<<"未改"<<str<<endl;}cstring::~cstring(){delete[]str;delete[]str1;delete[]str2;}voidmain(){chars[]="Iamstudent,youarestudenttoo,weareallstudent.";chars1[]="student";chars2[]="teacher";cstringtest(s,s1,s2);test.replace();test.show();}運(yùn)行結(jié)果r'CAUsersXpzq\Deslctop'vDebug\Cppi.ewe"女后I后糖teacherFyouareteachertoo,wearcalltcacliei4.fcressan單keytocontinue.建立一個(gè)STRING,將一個(gè)字符串交叉插入到另一個(gè)字符串中(假定兩字符串等長)。例如將字符串“abcde”交叉插入字符串“ABCDE”的結(jié)果為“aAbBcCdDeE”或“AaBbCcDdEe”。具體要求如下:(1)私有數(shù)據(jù)成員charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。(2)公有成員函數(shù)STRING(char*s1,char*s2):構(gòu)造函數(shù),用s1和s2初始化stn和str2。voidprocess。:將str2中的字符串插入到str1中。voidprint():輸出插入后的字符串。(3)在主程序中定義STRING類的對(duì)象test對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>#include<string.h>classSTRING{charstr1[80];charstr2[40];public:STRING(char*s1,char*s2);voidprocess。;voidprint();};STRING二STRING(char*s1,char*s2){for(inti=0;i<80;i++)str1[i]=s1[i];for(intj=0;j<40;j++)str2[j]=s2[j];}voidSTRING二process。{chars[40];strcpy(s,str1);inti=0,j=0;while(str2[i]){str1[j++]=str2[i];str1[j++]=s[i];i++;}str1[j]='\0';}voidSTRING::print(){cout<<”交叉后的字符串為:";cout<<str1<<endl;}voidmain(){charstr1[80],str2[40];cout<<"輸入字符串1"<<endl;cin.getline(str1,39);cout<<"輸入字符串2"<<endl;cin.getline(str2,39);STRINGtest(str1,str2);cess();test.print();}運(yùn)行結(jié)果.建立一個(gè)STRING,將一個(gè)字符串交叉插入到另一個(gè)字符串中(假定兩字符串不等長)c例如將字符串“abode"交叉插入字符串“ABCDEFG”的結(jié)果為“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。具體要求如下:(1)私有數(shù)據(jù)成員charstr1[60]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。charstr3[100]:存放插入后的字符串。(2)公有成員函數(shù)STRING(char*s1,char*s2):構(gòu)造函數(shù),用si和s2初始化strl和str2。voidprocess。:將str2中的字符串插入到strl中,存放到str3中。voidprint():輸出插入后的字符串。(3)在主程序中定義STRING類的對(duì)象test對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>#include<string.h>classSTRING{charstr1[60];charstr2[40];charstr3[100];public:STRING(char*s1,char*s2);voidprocess。;voidprint();};STRING二STRING(char*s1,char*s2){for(inti=0;i<60;i++)str1[i]=s1[i];for(intj=0;j<40;j++)str2[j]=s2[j];}voidSTRING二process。{inti=0,j=0,x;while(str1[i]&&str2[i]){str3[j++]=str2[i];str3[j++]=str1[i];i++;}x=i;if(str2[x])while(str2[x])str3[j++]=str2[x++];if(str1[i])while(str1[i])str3[j++]=str1[i++];str3[j++]='\0';}voidSTRING::print(){cout<<”合并后的字符串為:";cout<<str3<<endl;}voidmain(){charstr1[60],str2[40];cout<<"輸入字符串1"<<endl;cin.getline(str1,59);cout<<"輸入字符串2"<<endl;cin.getline(str2,39);STRINGtest(str1,str2);cess();test.print();}運(yùn)行結(jié)果.建立一個(gè)類MOVE,對(duì)數(shù)組中元素進(jìn)行循環(huán)換位,即每個(gè)元素后移三位,最后三個(gè)元素移到最前面。具體要求如下:(1)私有數(shù)據(jù)成員intarray[20]:一維整型數(shù)組。intn:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)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)行測試。程序源代碼#include<iostream.h>classMOVE{intarray[20];intn;public:MOVE(intb[],intm);voidchange();voidprint();};MOVE::MOVE(intb[],intm){n=m;for(inti=0;i<n;i++)array[i]=b[i];}voidMOVE二change(){inta[20];for(inti=0;i<n-3;i++)a[i+3]=array[i];a[0]=array[i++];a[1]=array[i++];a[2]=array[i];for(i=0;i<n;i++)array[i]=a[i];}voidMOVE::print(){for(inti=0;i<n;i++)cout<<array[i]<<'\t';cout<<endl;voidmain(){intb[20]={21,65,43,87,12,84,44,97,32,55};MOVEp(b,10);p.change();p.print();}運(yùn)行結(jié)果.建立一個(gè)類MOVE,實(shí)現(xiàn)將數(shù)組中大字字母元素放在小寫字母元素的左邊。具體要求如下:(1)私有數(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ù)。(3)在主程序中用數(shù)據(jù)"fdsUFfsTjfsKFEkWC"對(duì)該類進(jìn)行測試。程序源代碼#include<iostream.h>#include<string.h>classmove{char*array;intn;public:move(charb[],intm);voidchange();voidprint();~move();};move二move(charb[],intm){array=newchar[strlen(b)+1];n=m;strcpy(array,b);voidmove二change(){char*p;intm=0;p=newchar[strlen(array)];strcpy(p,array);for(inti=0;p[i];i++)if(p[i]<='Z'&&p[i]>='A')array[m++]=p[i];for(i=0;p[i];i++)if(p[i]<='z'&&p[i]>='a')array[m++]=p[i];}voidmove二print(){cout<<"改后字符串為:"<<array<<endl;}move::~move(){delete[]array;}voidmain(){charb[1000];intm;cout<<"輸入字符串和字符串個(gè)數(shù)"<<endl;cin>>b>>m;movepp(b,m);pp.change();pp.print();}運(yùn)行結(jié)果:15.定義一個(gè)一維數(shù)組類Carray,并根據(jù)給定算法實(shí)現(xiàn)對(duì)原始一維數(shù)組進(jìn)行線性變換。這里給定的線性變換算法為:T(bx)=bT(x)+i;其中,b為變換常量,x為變量,i為當(dāng)前類中成員數(shù)組的下標(biāo)值。根據(jù)該算法,原始數(shù)組在變化后,當(dāng)前數(shù)組元素的值是由常量b和i下標(biāo)來決定的。具體要求如下:(1)私有數(shù)據(jù)成員int*a:指針a指向一個(gè)動(dòng)態(tài)分配的原始數(shù)組。intn:n表示該數(shù)組的大小。intb:線性變換的常量。(2)公有成員函數(shù)Carray(inta[],intn,intx):用給定的參數(shù)a、n和x初始化數(shù)據(jù)成員a、n和b。缺省都設(shè)置為0。voidTransform():根據(jù)上述變化算法,求解數(shù)組變換。voidShow():在屏幕上顯示數(shù)組元素。~Carray():釋放動(dòng)態(tài)分配的空間。(3)在主程序中定義數(shù)組intarr[尸{1,2,3,4,5,678,9,10}作為原始數(shù)組,intb;由鍵盤輸入,作為線性變換的常量。定義一個(gè)Carray類對(duì)象test,用arr初始化test,完成對(duì)該類的測試。程序源代碼#include<iostream.h>classcarray{int*a;intn;intb;public:carray(inta[],intn,intx);voidtransform。;voidshow();~carray();};carray::carray(inta[],intn=0,intx=0){this->a=newint[n];this->n=n;b=x;for(inti=0;i<n;i++){this->a[i]=a[i];}}voidcarray::transform(){for(inti=0;i<n;i++)a[i]=b*a[i]+i;}voidcarray::show(){cout<<"變換后的數(shù)組為:"<<endl;for(inti=0;i<n;i++)
cout<<a[i]<<'\t';cout<<endl;}carray::~carray(){delete口a;}voidmain(){intarr[尸{1,2,3,4,5,6,7,8,9,10};intm=10,b;cout<<"輸入線性變換常量"<<endl;cin>>b;carraytest(arr,m,b);test.transform();test.show();}運(yùn)行結(jié)果:16.}運(yùn)行結(jié)果:16.定義一個(gè)方陣類CMatrix,并根據(jù)給定算法實(shí)現(xiàn)方陣的線性變換。方陣的變換形式為:F=W*fTf為原始矩陣,f為原始矩陣,fT為原始矩陣的轉(zhuǎn)置,w為變換矩陣,這里設(shè)定為TOC\o"1-5"\h\z1001011001101001具體要求如下:(1)私有數(shù)據(jù)成員int(*a)[4]:a指向方陣數(shù)組。intw[4][4]:w為變換矩陣。intm:m表示方陣的行和列數(shù)。(2)公有成員函數(shù)CMatrix(inta口[4],intm):用給定的參數(shù)a和m初始化數(shù)據(jù)成員a和m;對(duì)變換矩陣w進(jìn)行初始化,要求必須用循環(huán)實(shí)現(xiàn)。voidTransform():根據(jù)上述變換算法,求出變換后的數(shù)組形式,存放在原始數(shù)組內(nèi)。voidshow():在屏幕上顯示數(shù)組元素。~CMatrix():釋放動(dòng)態(tài)分配的空間。(3)在主程序中定義數(shù)組intarr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作為原始數(shù)組。定義一個(gè)CMatrix類對(duì)象test,用arr初始化test,完成對(duì)該類的測試。程序源代碼:#include<iostream.h>#include<iomanip.h>classcmatrix{int(*a)[4];intw[4][4];intm;public:cmatrix(inta[][4],intm);voidtransform。;voidshow();~cmatrix();};cmatrix::cmatrix(inta[][4],intm){this->a=newint[4][4];for(inti=0;i<4;i++)for(intj=0;j<4;j++)this->a[i][j]=a[i][j];this->m=m;for(intp=0;p<4;p++)for(intq=0;q<4;q++)if((p+q!=3)&&(p-q!=0))w[p][q]=0;elsew[p][q]=1;}voidcmatrix::transform(){intb[4][4],i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)b[i][j]=a[j][i];for(i=0;i<4;i++)for(j=0;j<4;j++)a[i][j]=w[i][0]*b[0][j]+w[i][1]*b[1][j]+w[i][2]*b[2][j]+w[i][3]*b[3][j];}voidcmatrix二show(){cout<<"變換后的數(shù)組是:"<<endl;for(inti=0;i<4;i++){for(intj=0;j<4;j++)cout<<setw(8)<<a[i][j];cout<<endl;}cmatrix::~cmatrix(){delete[]a;}voidmain(){intarr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};intm=4;cmatrixtest(arr,m);test.transform();test.show();}運(yùn)行結(jié)果:17.定義一個(gè)類SIN,求具體要求如下:(1)私有成員數(shù)據(jù)。intx:輸入公式中x的值,求sin(x)。intn:輸入公式中n的值。(2)公有成員函數(shù)。SIN(intx,intn):構(gòu)造函數(shù),用于初始化x和n的值。intpower(intq):求q!的值。intmi(intm,intn):求的值。intfun():用于求SIN(X)的值。voidshow():輸出求得的結(jié)果。(3)在主程序中定義對(duì)象test,對(duì)該類進(jìn)行測試。#include<iostream.h>classsin{intx;intn;public:sin(intx,intn);intpower(intq);intmi(intm,intn);intfun();voidshow();};sin二sin(intx,intn){this->x=x;this->n=n;}intsin二power(intq){for(inti=1;i<=q;i++)q*=i;returnq;}intsin二mi(intm,intn){for(inti=1;i<n;i++)m*=m;returnm;}intsin::fun(){floats=0;for(inti=1;i<=n;i++)s+=mi(-1,i+1)*mi(x,2*i-1)/power(2*i-1);returns;}voidsin二show(){cout<<"sin("<<x<<")="<<fun()<<endl;}voidmain(){intx,n;cout<<"輸入x和n的值"<<endl;cin>>x>>n;sintest(x,n);test.show();}18.試建立一個(gè)類VAR,用于求n()個(gè)數(shù)的均方差。均方差的計(jì)算公式為,其中平均值為。具體要求如下:(1)私有成員數(shù)據(jù)。doublea[100]:用于存放輸入的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[],intn):求均方差,數(shù)組x具有n個(gè)元素。voidshow():輸出求得的均方差。(3)在主程序中定義一個(gè)對(duì)象test,對(duì)該類進(jìn)行測試。#include<iostream.h>classvar{doublea[100];intn;public:var(doublex口,intn1);doubleaverage(doublex口,intn);voidvariance(doublex[],intn);voidshow();};var::var(doublex[],intn1){for(inti=0;i<n1;i++)a[i]=x[i];n=n1;}doublevar::average(doublex[],intn){doubleave=0;for(inti=0;i<n;i++)ave+=x[i];ave/=n;returnave;}voidvar::variance(doublex[],intn){doubleff=0;for(inti=0;i<n;i++)ff+=(x[i]-average(x,n))*(x[i卜average(x,n));ff/=n;cout<<"均方差為:"<<ff<<endl;}voidvar::show(){cout<<"平均值為:"<<average(a,n)<<endl;variance(a,n);}voidmain(){doublex[100]={23,56,77,568,34,54,9.5,31,78};intn1=9;vartest(x,n1);test.show();}19.定義一個(gè)方陣類Array,實(shí)現(xiàn)對(duì)方陣進(jìn)行順時(shí)針90度旋轉(zhuǎn)。如圖所示。具體要求如下:(1)私有數(shù)據(jù)成員inta[4][4]:用于存放方陣。(2)公有成員函數(shù)Array(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ì)該類的測試。#include<iostream.h>#include<iomanip.h>classarray{inta[4][4];public:array(inta1口[4],intn);voidxuanzhuan();voidshow();};array::array(inta1[][4],intn){for(inti=0;i<n;i++)for(intj=0;j<n;j++)a[i][j]=a1皿];
voidarray::xuanzhuan(){intb[4][4],i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)b[i][j]=a[i][j];for(i=0;i<4;i++)for(j=0;j<4;j++)a皿3-i]=b[i][j];}voidarray::show(){cout<<"旋轉(zhuǎn)后的矩陣為:"<<endl;for(inti=0;i<4;i++){for(intj=0;j<4;j++)cout<<setw(8)<<a[i][j];cout<<'\n';}}voidmain(){intb口[4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};intn=4;arraytest(b,n);test.xuanzhuan();test.show();}20.定義一個(gè)方陣類Array,20.定義一個(gè)方陣類Array,實(shí)現(xiàn)對(duì)方陣進(jìn)行逆時(shí)針 90度旋轉(zhuǎn)。如圖所示。44 812163 711152 610141 5 91312345678910111213141516具體要求如下:(1)私有數(shù)據(jù)成員inta[4][4]:用于存放方陣。(2)公有成員函數(shù)Array(intal口[4],intn):構(gòu)造函數(shù),用給定的參數(shù)al初始化數(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,678,9,10,11,12,13,14,15,16}作為原始數(shù)組。定義一個(gè)Array類對(duì)象test,用b初始化test,完成對(duì)該類的測試。#include<iostream.h>#include<iomanip.h>classarray{inta[4][4];public:array(inta1[][4],intn);voidxuanzhuan();voidshow();};array二array(inta1[][4],intn){for(inti=0;i<n;i++)for(intj=0;j<n;j++)a[i][j]=a1[i][j];}voidarray::xuanzhuan(){intb[4][4],i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)b[i][j]=a[i][j];for(i=0;i<4;i++)for(j=0;j<4;j++)a[3-j][i]=b[i][j];}voidarray二show(){cout<<"旋轉(zhuǎn)后的矩陣為:"<<endl;for(inti=0;i<4;i++){for(intj=0;j<4;j++)cout<<setw(8)<<a[i][j];cout<<'\n';}}voidmain(){intb[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};intn=4;arraytest(b,n);test.xuanzhuan();test.show();}0"C^Lfeers\p2:q;\Desktcp\D§bvg\Cppl.exeB衽轉(zhuǎn)后的阻陣為::TOC\o"1-5"\h\z13¥5工1410621511731€1284ff'MESanykc*tocrintinuft.建立一個(gè)類NUM,求指定數(shù)據(jù)范圍內(nèi)的所有合數(shù)(非質(zhì)數(shù))。提示:合數(shù)定義是“一個(gè)數(shù),除了1和它本身,還有其它約數(shù),這樣的數(shù)叫合數(shù)”。具體要求如下:(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中,并將求出的合數(shù)個(gè)數(shù)賦給num。voidprint():輸出求出的素?cái)?shù)個(gè)數(shù)及所有合數(shù),每行輸出8個(gè)合數(shù)。~NUM():釋放動(dòng)態(tài)分配的存儲(chǔ)空間。(3)在主函數(shù)中完成對(duì)該類的測試。定義一個(gè)NUM類對(duì)象test,指定查找范圍為100~200,即求100至200之間的所有合數(shù)。通過test調(diào)用成員函數(shù)完成求合數(shù)及輸出合數(shù)的工作。#include<iostream.h>classNum{int*data;intspan1,span2;intnum;public:Num(intn1,intn2);intiscomposite(intx);voidprocess。;voidprint();~Num();};Num二Num(intn1,intn2){span1=n1;span2=n2;num=0;data=newint[n2-n1];)intNum::iscomposite(intx)(for(inti=2;i<x;i++)if(x%i==0)return1;return0;)voidNum::process()(for(inti=span1;i<=span2;i++)if(iscomposite(i))data[num++]=i;)voidNum::print()(cout<<"在"<<span1<<"和"<<span2<<”之間的合數(shù)個(gè)數(shù)為:"<<num<<'\n'<<"這些合數(shù)為:"<<endl;for(inti=0;i<num;i++)(if(i%8==0)cout<<'\n';cout<<data[i]<<'\t';)cout<<endl;)Num::~Num()(delete[]data;)voidmain()(intn1,n2;cout<<"輸入下限和上限:"<<endl;cin>>n1>>n2;Numtest(n1,n2);cess();test.print();任I皿和非0之間的合數(shù)個(gè)數(shù)為:1G4怪些合數(shù)為;1肥10210410b1跚110ill112114115in11711811912012112212312412512612812713613213313413513613S1431411421431441451461471491S麻1521S21541551561581591E11G216416516616g167±7017117217417517617718E1B218318418518618?£8318919&1921941951961982812022032042052062072幽20921021221321421521621721821922022122222422522622823823123223423523623723824024224324424524624724824925g252⑻2542552S625825926126226426526&267268270272273£7427527627827928g28228428528628728B2892982912922y429529&2972982993皿Pressanykeytoccntinue,C:\Users.\fzq\Desktop\Debuq\Cppl^exe回.建立一個(gè)類Saddle_point,求一個(gè)數(shù)組中的所有鞍點(diǎn)。提示:鞍點(diǎn)是這樣的數(shù)組元素,其值在它所在行中為最大,在它所在列中為最小。具體要求如下:(1)私有數(shù)據(jù)成員inta[4][4]:存放二維數(shù)組元素。intb[4][4]:存放二維數(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中,并將求出的鞍點(diǎn)個(gè)數(shù)賦給num。voidprint():輸出數(shù)組a、鞍點(diǎn)個(gè)數(shù),與鞍點(diǎn)坐標(biāo)及相應(yīng)值。(3)在主程序中定義數(shù)組intb[][4]={2,6,3,4,5,6,5,5,5,7,6,7,1,9,2,7}作為原始數(shù)組。定義一個(gè)Saddle_point類對(duì)象fun。通過fun調(diào)用成員函數(shù)完成求鞍點(diǎn)及輸出工作。#include<iostream.h>⑸classvar{(6)doublea[100];⑺intn;public:var(doublex口,intn1);doubleaverage(doublex[],intn);voidvariance(doublex[],intn);voidshow();};var::var(doublex[],intn1)
for(inti=0;i<n1;i++)a[i]=x[i];n=n1;}doublevar二average(doublex[],intn){doubleave=0;for(inti=0;i<n;i++)ave+=x[i];ave/=n;returnave;}voidvar::variance(doublex口,intn){doubleff=0;for(inti=0;i<n;i++)ff+=(x[i卜average(x,n))*(x[i]-average(x,n));ff/=n;cout<<"均方差為:"<<ff<<endl;}voidvar::show(){cout<<"平均值為:"<<average(a,n)<<endl;variance(a,n);}voidmain(){doublex[100]={23,56,77,568,34,54,9.5,31,78};intn1=9;vartest(x,n1);}23.分?jǐn)?shù)相加,兩個(gè)分?jǐn)?shù)分別是 }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ù)的一種方法為:將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ù)相加的功能。具體要求如下:(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ù)分?jǐn)?shù)f與對(duì)象自身相加,返回約簡后的分?jǐn)?shù)對(duì)象。voidshow():按照num/den的形式在屏幕上顯示分?jǐn)?shù)。(3)在主程序中定義兩個(gè)分?jǐn)?shù)對(duì)象f1和f2,其初值分別是1/5和7/20,通過f1調(diào)用成員函數(shù)add完成f1和f2的相力口,將得到的分?jǐn)?shù)賦給對(duì)象f3,顯示分?jǐn)?shù)對(duì)象f3。#include<iostream.h>classfract{intnum,den;public:fract(inta=0,intb=1);intged(intm,intn);fractadd(fractf);voidshow();};fract::fract(inta,intb){num=a;den=b;}intfract::ged(intm,intn){for(inti=m;i>=1;i--)if(m%i==0&&n%i==0)returni;}fractfract::add(fractf){intn,d,p,q;p=ged(den,f.den);d=den*f.den/p;n=num*f.den/p+f.num*den/p;q=ged(n,d);Returnfract(n/q,d/q);voidfract::show(){cout<<”相力口后的值為:"<<num<<7'<<den<<endl;}voidmain(){fractf1(1,5),f2(7,20),f3;f3=f1.add(f2);f3.show();}24.建立一個(gè)類NUM,并統(tǒng)計(jì)特定序列中相同的數(shù)字的個(gè)數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員intdata[25]:隨機(jī)生成25個(gè)在0-9之間的數(shù)字。intnum[10]:儲(chǔ)存每個(gè)數(shù)字出現(xiàn)的個(gè)數(shù)。(2)公有數(shù)據(jù)成員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è)(3)在主程序中定義一個(gè)對(duì)象,對(duì)該類進(jìn)行測試。#include<iostream.h>#include<stdlib.h>#include<time.h>classNum{intdata[25];intnum[10];public:Num();voidprocess。;voidprint();};Num::Num(){srand(time(0));for(inti=0;i<25;i++)data[i]=rand()%9;}voidNum二process(){inti,x=0;for(i=0;i<10;i++){for(intm=0,n=0;m<25;m++)if(data[m]==i)n++;num[x++]=n;}}voidNum二print(){cout<<"隨機(jī)數(shù)為:"<<endl;for(intj=0;j<25;j++)cout<<data[j]<<'\t';cout<<endl<<"0~10數(shù)字出現(xiàn)的次數(shù)分別為:"<<endl;for(inti=0;i<10;i++){cout<<num[i]<<'\t';if((i+1)%5==0)cout<<endl;}}voidmain(){Numtest;cess();test.print();}25.建立一個(gè)類NUM,并統(tǒng)計(jì)特定序列中相同的字符的個(gè)數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員chardata[25]:隨機(jī)生成25個(gè)字符。intnum[128]:儲(chǔ)存每個(gè)字符出現(xiàn)的個(gè)數(shù)。(2)公有數(shù)據(jù)成員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)過的字符不顯示。(3)在主程序中定義一個(gè)對(duì)象,對(duì)該類進(jìn)行測試。
#include<iostream.h>#include<stdlib.h>#include<time.h>classNum{chardata[25];intnum[128];public:Num();voidprocess();voidprint();};Num::Num(){srand(time(0));for(inti=0;i<25;i++)data[i]=rand()%128;}voidNum二process。{inti,x=0;for(i=1;i<=128;i++){for(intm=0,n=0;m<25;m++)if(data[m]==i)n++;num[x++]=n;}}voidNum::print(){"<<endl;cout<<"輸出隨即字符串"<<endl;cout<<data<<endl<<”字符出現(xiàn)的次數(shù)分別為:intx=0;for(inti=0;i<128;i++){if(num[i]>0){cout<<num[i]<<'\t';x++;if(x%5==0)cout<<endl;}voidmain(){Numtest;cess();test.print();}26.建立一個(gè)類NUM,隨機(jī)生成25個(gè)字符序列,并為特定序列進(jìn)行排序。具體要求如下:(1)私有數(shù)據(jù)成員intdata[25]:隨機(jī)生成25個(gè)字符。(2)公有數(shù)據(jù)成員NUM(intdata):構(gòu)造函數(shù),初始化數(shù)組data。voidprocess():為數(shù)組data進(jìn)行排序,要求按照ASCII碼進(jìn)行升序排列。voidprint():輸出數(shù)組data,每行輸出5個(gè)字符。(3)在主程序中定義一個(gè)對(duì)象,對(duì)該類進(jìn)行測試。#include<iostream.h>#include<stdlib.h>#include<time.h>classnum{intdata[25];public:num();voidprocess。;voidprint();};num二num(){srand(time(0));for(inti=0;i<25;i++)data[i]=rand()%128;}voidnum二process。{intm;for(inti=0;i<25;i++)for(intj=i;j<25;j++)if(data[i]>data[j]){m=data[i];data[i]=data[j];data[j]=m;}}voidnum二print(){cout<<"排序后的數(shù)組為:"<<endl;for(inti=0;i<25;i++){cout<<data[i]<<'\t';if((i+1)%5==0)cout<<endl;}cout<<endl;}voidmain(){numtest;cess();test.print();}27.建立一個(gè)類NUM,求指定數(shù)據(jù)范圍內(nèi)的所有素?cái)?shù)(質(zhì)數(shù))。提示:素?cái)?shù)定義是“只能被1和它本身整除的整數(shù)”,即質(zhì)數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員intdata[10]:依次存放原始數(shù)據(jù)。intprime[10]:存放指定數(shù)據(jù)內(nèi)所求出的所有素?cái)?shù)。intnum:存放素?cái)?shù)個(gè)數(shù)。(2)公有數(shù)據(jù)成員NUM(intn[]):構(gòu)造函數(shù),用參數(shù)n初始化data,同時(shí)初始化num為0。intisprime(intx):判斷x是否為素?cái)?shù)。若是素?cái)?shù),返回1,否則,返回0。voidprocess():求指定data數(shù)組中的所有素?cái)?shù),把它們依次存放在數(shù)組prime中,并將求出的素?cái)?shù)個(gè)數(shù)賦給num。voidprint():輸出求出的素?cái)?shù)個(gè)數(shù)及所有素?cái)?shù),每行輸出4個(gè)素?cái)?shù)。
定義NUM類對(duì)象test:,通過定義NUM類對(duì)象test:,通過test調(diào)用成員函數(shù)完成求{4,5,9,11,36,29,31,101,56,199}。#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度四方擔(dān)保企業(yè)信用貸款合同范本
- 二零二五年度產(chǎn)業(yè)園區(qū)合伙人入駐管理合同3篇
- 二零二五年度綠色節(jié)能門窗改造工程合同4篇
- 2025年度模特時(shí)尚產(chǎn)品代言合同4篇
- 二零二五年度土地承包權(quán)轉(zhuǎn)讓與農(nóng)村產(chǎn)權(quán)交易服務(wù)合同范本
- 2025年度海上風(fēng)電場建設(shè)與運(yùn)維合同4篇
- 2025年度公共安全項(xiàng)目驗(yàn)收流程及合同法應(yīng)用要求3篇
- 二零二五年度企業(yè)年會(huì)主題服裝租賃合同協(xié)議書4篇
- 2025年度個(gè)人商標(biāo)使用權(quán)授權(quán)委托合同3篇
- 2025年零星勞務(wù)合同模板:全新升級(jí)2篇
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 詢價(jià)函模板(非常詳盡)
- 《AI營銷畫布:數(shù)字化營銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個(gè)28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫話教學(xué)評(píng)語方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號(hào)表示方法
評(píng)論
0/150
提交評(píng)論