版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、江蘇科技大學(xué)課程實踐報告設(shè)計題目: 程序設(shè)計(VC+)實踐 設(shè)計時間 20011-2-21 至 2011-2-25 學(xué)院(系): 船舶與海洋工程 專業(yè)班級: 船海2班 學(xué)生姓名: 彭鵬 學(xué)號 0941901220 指導(dǎo)老師: 鄒曉華 2011年02月 任務(wù)一一、實踐任務(wù)1試建立一個類PP,求出下列多項式的前n項的值。 二、詳細設(shè)計1、類的描述與定義(1)私有數(shù)據(jù)成員l int n:前若干項的項數(shù)。l double x:存放x的值。l double *p:根據(jù)n的大小動態(tài)申請存放Pn(x) 前n項的數(shù)組空間。(2)公有成員函數(shù)l PP(int num,double x1):構(gòu)造函數(shù),初始化數(shù)據(jù)成
2、員n和x,使p指向動態(tài)申請的數(shù)組空間。l PP():析構(gòu)函數(shù),釋放p指向的動態(tài)內(nèi)存空間。l double fun(int n1,double x):遞歸函數(shù),用于求多項式的第n1項。注意:將遞歸公式中的n用作函數(shù)參數(shù)。本函數(shù)供process函數(shù)調(diào)用。l void process( ):完成求前n項的工作,并將它們存放到p指向的動態(tài)數(shù)組中。l void show( ):輸出n和x,并將前n項以每行4個數(shù)的形式輸出到屏幕上。2、主要函數(shù)設(shè)計在主函數(shù)中完成對該類的測試。先輸入num和x1,并定義一個PP類的對象items,用num和x1初始化items的成員n和x,調(diào)用items的成員函數(shù),求出并輸
3、出多項式前num項的值。三、源程序清單#includeclass PPprivate: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) return 1;else if(n1=1) return x; else if(n11) return (2*n1-1)*x*fun
4、(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;coutnumx1;PP items(num,x1);cess();items.show();四、實踐小結(jié)應(yīng)熟練掌握遞歸函數(shù)的應(yīng)用,寫遞歸函數(shù)時應(yīng)先進行遞歸結(jié)束條件的判定。五、運行結(jié)果任務(wù)二一、實踐任務(wù)2
5、試建立一個類SP,求,另有輔助函數(shù)power(m,n)用于求。二、詳細設(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):求mn。l int fun( ):求公式的累加和。l void show( ):輸出求得的結(jié)果。2、主要函數(shù)設(shè)計在主程序中定義對象s,對該類進行測試。三、源程序清單#includeclass SPprivate:int n,k;public:SP(int n1,int k1)n=n1;k=k1;int p
6、ower(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+)s+=power(i,k);return s;void SP:show()coutf(n,k)=fun()endl;void main()int n1,k1;coutn1k1;SP s(n1,k1);s.fun();s.show();四、實踐小結(jié)掌握用循環(huán)語句求mn,和m!,熟練掌握函數(shù)的調(diào)用。五、運行結(jié)果
7、任務(wù)三一、實踐任務(wù)3建立一個類MOVE,不進行排序,將數(shù)組中小于平均值的元素放到數(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)造函數(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對該類進行測試。三、源程序清單#incl
8、udeclass MOVEprivate:float array20;int n;public:MOVE(float b,int m)for(int i=0;im;i+)arrayi=bi;n=m;void average();void 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;iave)turn
9、n-1-j=arrayi;j+;for(i=0;in;i+)arrayi=turni;void MOVE:print()for(int i=0;in;i+)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();四、實踐小結(jié)應(yīng)熟練掌握數(shù)組與指針的應(yīng)用。五、運行結(jié)果任務(wù)四一、實踐任務(wù)4建立一個類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。二、詳細設(shè)計1、類的描述與定義(
10、1)私有數(shù)據(jù)成員l int *array:一維整型數(shù)組。l int n:數(shù)組中元素的個數(shù)。(2)公有成員函數(shù)l MOVE(int b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(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對該類進行測試。三、源程序清單#includeclass MOVEprivate:int *array;int n;public:MOVE(int b,int m)array=new
11、intm;n=m;for(int i=0;im;i+)arrayi=bi;void exchange();void 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;i=max) m=i,max=arrayi;int l;for(i=0,l=0;in;i+) if(arrayimax) l=i,max=arra
12、yi;i=arraym,arraym=arrayl,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();四、實踐小結(jié)學(xué)會求數(shù)組中最大元素與最小元素方法,并實現(xiàn)交換。五、運行結(jié)果任務(wù)五一、實踐任務(wù)5定義一個類Palindrome,實現(xiàn)絕對回文數(shù)
13、。設(shè)計一個算法實現(xiàn)對任意整型數(shù)字判斷是否為絕對回文數(shù)。所謂絕對回文數(shù),是指十進制數(shù)和二進制數(shù)均對稱的數(shù)。二、詳細設(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,完成對該類的測試。三、源程序清單#in
14、cludeclass Palindromeprivate: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-k=m%2;m/=2;i
15、nt 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 intj+1; m=n; for(int k=0;ki;k+
16、)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十進制表示為:;for(k=0;ki;k+)couts10k;cout二進制表示為:;for(k=0;kj;k+)couts2k;elsecout該數(shù)不是絕對回文數(shù)?。篹ndl;cout十進制表示為:;for(k=0;ki;k+)couts10k;cout二進制表示為:;for(k=0;kj;k+)couts2k;coutendl;void main()int a;couta;Palindrome p(a);p.huiwen
17、();p.show();四、實踐小結(jié)將整型轉(zhuǎn)換會整型數(shù)組類型,再進行回文數(shù)判斷,從而實現(xiàn)回文數(shù)用數(shù)組判斷的通用性。五、運行結(jié)果任務(wù)六一、實踐任務(wù)6定義一個字符串類String,實現(xiàn)判斷該字符串是否為回文字符串。所謂回文字符串,是指該字符串左右對稱。例如字符串“123321”是回文字符串。二、詳細設(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 huiwen () :判斷str所指向的字符串是否為回文字符串。l
18、void show( ) :在屏幕上顯示字符串。2、主要函數(shù)設(shè)計在主程序中定義字符串char s=”ababcedbaba”作為原始字符串。定義一個String類對象test,用s初始化test,完成對該類的測試。三、源程序清單#include#includeclass Stringprivate:char*str;int y;public:String(char*s)int n=strlen(s);str=new charn+1;strcpy(str,s);y=0;void huiwen();void show();String()if(str) delete str;void String
19、:huiwen()/判斷str所指向的字符串是否為回文字符串;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();四、實踐小結(jié)掌握判斷回文字符串的一般形
20、式。五、運行結(jié)果任務(wù)七一、實踐任務(wù)7建立一個類PHALANX,生成并顯示一個折疊方陣。折疊方陣如下圖所示。折疊方陣的生成過程為:起始數(shù)置于方陣的左上角,然后從起始數(shù)開始遞增,依次折疊構(gòu)成方陣。1 2 5 104 3 6 119 8 7 1216 15 14 131 2 4 3 1二、詳細設(shè)計1、類的描述與定義(1)私有數(shù)據(jù)成員l int (*p)20:指向按照折疊規(guī)律存放方陣的二維整型數(shù)組。l int startnum:折疊方陣的起始數(shù)。l int n:存放方針的層數(shù)。(2)公有成員函數(shù)l PHALANX (int s, int m ):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。l void process(
21、):生成起始數(shù)為startnum的n行方陣。l void print():輸出折疊方陣。l PHALANX( ):析構(gòu)函數(shù)。2、主要函數(shù)設(shè)計在主程序中對該類進行測試。三、源程序清單#includeclass PHALANXprivate:int(*p)20;int startnum;int n;public:PHALANX(int s,int m)startnum=s;n=m;p=new intm20;void process();void print();PHALANX()if(p) deletep;void PHALANX:process()/生成起始數(shù)為stratnum的n行螺旋方陣;i
22、nt turn;turn=p00=startnum;int i,j;for(int k=n-2;k=0;k-)/按照折疊方陣的生成過程進行賦值;for(i=0,j=n-k-1;i=0;j-)pij=+turn;void PHALANX:print()for(int i=0;in;i+)for(int j=0;jn;j+)coutpijt;coutendl;void main()int s1,m1;couts1m1;PHALANX test(s1,m1);cess();test.print();四、實踐小結(jié)根據(jù)折疊方陣的產(chǎn)生方式進行相應(yīng)的邏輯循環(huán)實現(xiàn)。五、運行結(jié)果任務(wù)八一、實踐任
23、務(wù)8建立一個MATRIX,生成并顯示一個螺旋方陣。螺旋方陣如下圖所示,起始數(shù)置于方陣的左上角,然后從起始數(shù)開始依次遞增,按順時針方向從外向里旋轉(zhuǎn)填數(shù)而成。1 2 3 4 5 16 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9二、詳細設(shè)計1、類的描述與定義(1)私有數(shù)據(jù)成員l int a20 20:二維整型數(shù)組存放螺旋方陣。l int startnum:螺旋方陣的起始數(shù)。l int n:存放方針的層數(shù)。(2)公有成員函數(shù)l MATRIX (int s, int m ):構(gòu)造函數(shù),初始化成員數(shù)據(jù)startnum和n。l void process
24、():生成起始數(shù)為startnum的n行螺旋方陣。l void print():輸出螺旋方陣。2、主要函數(shù)設(shè)計在主程序中定義MATRIX類的對象t對該類進行測試。三、源程序清單#includeclass MATRIXprivate:int a2020;int startnum;int n;public:MATRIX(int s,int m)startnum=s;n=m;void process();void print();void MATRIX:process()/生成起始數(shù)為startnum的n行螺旋方陣;int i,j;int k;int turn=startnum;for(k=1;k=
25、n/2;k+)/邏輯性:按照螺旋方陣的生成過程(按順時針方向從外向里旋轉(zhuǎn)填數(shù)),進行賦值;for(i=k-1,j=k-1;jn-(k-1);j+)aij=turn+;j-;turn-;for(;i=k-1;j-)aij=turn+;j+;turn-;for(;i=k;i-)aij=turn+;an/2(n-1)/2=n*n-1+startnum;void MATRIX:print()/輸出螺旋方陣;int i,j;for(i=0;in;i+)for(j=0;jn;j+)coutaijt;coutendlendl;void main()/測試;int s,m;coutsm;MATRIX t(s,
26、m);cess();t.print();四、實踐小結(jié)發(fā)現(xiàn)本質(zhì)的邏輯關(guān)系,利用循環(huán)語句實現(xiàn)。五、運行結(jié)果任務(wù)九一、實踐任務(wù)9定義一個字符串類CString,并設(shè)計一個算法對該串中各個不同字符出現(xiàn)的頻率進行統(tǒng)計。二、詳細設(shè)計1、類的描述與定義(1)私有數(shù)據(jù)成員l char *str:指向要統(tǒng)計的字符串。l char (*p)2:動態(tài)分配二維空間,用以存放str所指字符串中出現(xiàn)的字符及其出現(xiàn)的次數(shù)(次數(shù)在存放時,用該數(shù)字對應(yīng)的ASCII值存放;在輸出次數(shù)時,輸出該ASCII字符對應(yīng)的ASCII值即可)。l int size:存放字符串中出現(xiàn)的所有不同的字符的個數(shù)。(2)公有成員函數(shù)l CS
27、tring (char *s) :根據(jù)s參數(shù)初始化數(shù)據(jù)成員str;p和size初始值為0。l void 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))。l void Show():屏幕顯示字符串、字符串的每個字符和與之對應(yīng)的次數(shù)。l CString():釋放動態(tài)分配的空間。2、主要函數(shù)設(shè)計在主程序中定義字符串char s=”abdabc
28、desffffd”。定義一個CString類對象test,用s以初始化test,完成對該類的測試。三、源程序清單#include#includeclass CStringprivate:char*str;char (*p)2;int size;public:CString(char*s)str=new charstrlen(s)+1;strcpy(str,s);size=0;p=0;void Count();void Show();CString()if(str) delete str;void CString:Count()p=new charstrlen(str)2;int i,j,k;f
29、or(i=0,j=0;istrlen(str);i+)/每行第0列依次給予字符串中的一個字符,第1列設(shè)置每個字符出現(xiàn)的次數(shù)為初始值1;pij=stri;pij+1=1;char*part1=new charstrlen(str)+1;/定義臨時的字符數(shù)組,用于依次存放不同的字符int*part2=new intstrlen(str)+1;for(i=0;istrlen(str);i+)part1i=0;for(i=0;istrlen(str);i+)part2i=0;for(i=0;istrlen(str);i+)/abdabcdesffffd /abcfor(j=i;jstrlen(str)
30、;j+)int count;for(k=0,count=0;ksize;k+)if(part1k=pi0)count+;/如果臨時數(shù)組中的字符與原數(shù)組中相同,則count自增為1;if(count=1) break;/代表原字符串中的字符已與臨時數(shù)組中的字符相重復(fù),則跳出j控制的內(nèi)循環(huán);else /否則,將未重復(fù)的字符存入臨時數(shù)組1part1size=pi0;size+;for(k=0;ksize;k+)for(i=0;istrlen(str);i+)if(part1k=pi0)/實現(xiàn)對不同字符個數(shù)的計數(shù),將記的數(shù)存放在臨時數(shù)組2中。part2k+;delete p;p=new charsiz
31、e2;/根據(jù)size的實際大小,重新分配p所指空間,并借組臨時數(shù)組把不同字符及其出現(xiàn)次數(shù)重新放回p數(shù)組。for(i=0;isize;i+)pi0=part1i;pi1=part2i;delete part1;delete part2;void CString:Show()cout原字符串為:strendl;cout不同的字符數(shù):sizeendl;cout字符串中的每個字符為:endl;for(int i=0;isize;i+)coutpi0 次數(shù)(int)pi1endl;void main()char s=abdabcdesffffd;CString test(s);test.Count();
32、test.Show();四、實踐小結(jié)可建立臨時數(shù)組,幫助判斷。五、運行結(jié)果任務(wù)十一、實踐任務(wù)10定義一個字符串類CString,并設(shè)計一個算法實現(xiàn),給定關(guān)鍵字str1在字符串str中出現(xiàn)時用關(guān)鍵字str2進行替換的功能。二、詳細設(shè)計1、類的描述與定義(1)私有數(shù)據(jù)成員l char *str; 原始字符串。l char *str1; 目標(biāo)關(guān)鍵字。l char *str2; 替換關(guān)鍵字。l int flag; 標(biāo)記替換是否完成替換。 (2)公有成員函數(shù)l CString (char *s,char s1 ,char *s2) :用給定的參數(shù)s、s1和s2相對應(yīng)的初始化數(shù)據(jù)成員str、str1和st
33、r2。flag設(shè)置缺省0。l void Replace () :判斷str字符串中是否出現(xiàn)str1,若出現(xiàn)就用str2替換,否則什么都不做。若替換成功了標(biāo)記flag為1,若替換不成功則標(biāo)記flag為0。l void Show( ) :若替換成功,則在屏幕上顯示目標(biāo)關(guān)鍵字、替換關(guān)鍵字和替換后的原始字符串;若不成功則顯示原始字符串。l CString() :釋放動態(tài)分配的空間。2、主要函數(shù)設(shè)計在主程序中定義字符串char s=”I am student, you are student too, we are all student.”作為原始字符串,定義char s1=” student”作為目
34、標(biāo)關(guān)鍵字,定義char s2=”teacher”作為替換關(guān)鍵字。定義一個CString類對象test,用s,s1和s2初始化test,完成對該類的測試。三、源程序清單#include#includeclass CStringprivate:char*str;/原始字符串char*str1;/目標(biāo)字符串char*str2;/替換關(guān)鍵字int flag;public:CString(char*s,char s1,char*s2)str=new charstrlen(s)+strlen(s2)+strlen(s1)+1;str1=new charstrlen(s1)+1;str2=new chars
35、trlen(s2)+1;strcpy(str,s);strcpy(str1,s1);strcpy(str2,s2);flag=0;void Replace();void Show();CString()if(str) delete str;if(str1) delete str1;if(str2) delete str2;void CString:Replace()int i=0;/i記錄原始字符串str中第i位開始出現(xiàn)與目標(biāo)關(guān)鍵字重合;int k=0,count=0;while(stri)while(stri!=str10&stri) i+;if(istrlen(str)/當(dāng)?shù)趇位沒有超出原
36、始字符串str的范圍時,判斷目標(biāo)字符串是否出/現(xiàn)于原始字符串;if(strncmp(str+i,str1,strlen(str1)=0)k=1;/利用strncmp(,)函數(shù)判斷目標(biāo)字符串是否出現(xiàn)于原始字符串,出現(xiàn)則k=1;if(k)/若目標(biāo)字符串出現(xiàn),則進行替換;char*turn=new charstrlen(str)+strlen(str1)+strlen(str2)+1;/臨時數(shù)組指針,用于存放替換的字符串;strncpy(turn,str,i);turni=0;strcat(turn,str2);strcat(turn,str+i+strlen(str1);strcpy(str,tu
37、rn);delete turn;i=i+strlen(str2);k=0;count+;if(count) flag=1;void CString:Show()if(flag) cout目標(biāo)關(guān)鍵字:str1n替換關(guān)鍵字:str2n替換后的原始字符串:strendl;else cout原始字符串:strendl;void main()char s=I am student,you are student too,we are all student.;char s1=student;char s2=teacher;CString test(s,s1,s2);test.Replace();test
38、.Show();四、實踐小結(jié)利用臨時字符數(shù)組,進行字符替代。五、運行結(jié)果任務(wù)十一一、實踐任務(wù)11建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字符串等長)。例如將字符串“abcde” 交叉插入字符串“ABCDE”的結(jié)果為“aAbBcCdDeE”或“AaBbCcDdEe”。二、詳細設(shè)計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()
39、:將str2中的字符串插入到str1中。l void print():輸出插入后的字符串。2、主要函數(shù)設(shè)計在主程序中定義STRING類的對象test對該類進行測試。三、源程序清單#include#includeclass 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=strl
40、en(str1);if(strlen(str2)strlen(str1)/當(dāng)待插入的字符串ABCDEFG比被插入的字符串a(chǎn)bcde長或相等時,邏輯算法:abcde-a b c d e-空格處依次插入ABCDEFG-aAbBcCdDeEFG;for(i=n-1;i0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動i位;for(i=1,j=0;i2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插入字符串;i-;for(;jA B C D E FG-空格處插入abcde-AaBbCcDdEeFG;for(i=n;istrlen(str2)-1;i-)
41、str1i+strlen(str2)=str1i;/比待插入的字符串長的部分均向后移strlen(str2)位;for(i=strlen(str2)-1;i0;i-)str1i+i=str1i;/之前的部分均向后移i位;for(i=1,j=0;i2*strlen(str2);i+=2,j+)str1i=str2j;/將待插入的字符串插入空格處,完成插入;void STRING:print()/輸出插入后的字符串cout插入后的字符串為:str1endl;void main()/測試STRING test(ABCDE,abcde);cess();test.print();四、實踐
42、小結(jié)發(fā)現(xiàn)字符插入的規(guī)律,再依次放入相應(yīng)字符位置。五、運行結(jié)果任務(wù)十二一、實踐任務(wù)12建立一個STRING,將一個字符串交叉插入到另一個字符串中(假定兩字符串不等長)。例如將字符串“abcde” 交叉插入字符串“ABCDEFG”的結(jié)果為“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。二、詳細設(shè)計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初始
43、化str1和str2。l void process():將str2中的字符串插入到str1中,存放到str3中。l void print():輸出插入后的字符串。2、主要函數(shù)設(shè)計在主程序中定義STRING類的對象test對該類進行測試。三、源程序清單#include#includeclass 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)/當(dāng)待插入的字符串ABCDEFG比被插入的字符串a(chǎn)bcde長或相等時,邏輯算法:abcde-a b c d e-空格處依次插入ABCDEFG-aAbBcCdDeEFG;for(i=n-1;i0;i-)str1i+i=str1i;/被插入的字符串由最后一位開始各位向后移動i位;for(i=1,j=0;i2*n;i+=2,j+)str1i=str2j;/在空出的位置處依次插
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Windows Server 2022活動目錄管理實踐( 第2版 微課版)-課件項目3 構(gòu)建林中的第一臺域控制器
- 2023-2024學(xué)年遼寧省鞍山實驗教育集團九年級(上)第六周周檢數(shù)學(xué)試卷(10月份)
- 魯教版八年級數(shù)學(xué)上冊第五章平行四邊形1第一課時平行四邊形邊角的性質(zhì)課件
- 蘇教版八年級生物上冊第6單元第二節(jié)動物行為的生理基礎(chǔ)課件
- 【核心素養(yǎng)】部編版小學(xué)語文一年級上冊漢語拼音2 i u ü-教案(含教學(xué)反思)
- 內(nèi)蒙古包頭市九原區(qū)達標(biāo)名校2024屆中考聯(lián)考數(shù)學(xué)試題含解析
- 湘教版科學(xué)五年級下冊全冊教案
- 期末考試(試題)統(tǒng)編版道德與法治三年級上冊
- 英語七下8單元教學(xué)課件教學(xué)課件教學(xué)
- 卡羅納 課件教學(xué)課件
- AxureRP9網(wǎng)站與App原型設(shè)計(全彩慕課版)-教學(xué)教案
- 民族團結(jié)一家親演講稿100字(大全8篇)
- 完整辯論賽ppt-含計時器
- 肺炎-內(nèi)科學(xué)課件
- 中心靜脈導(dǎo)管(CVC)維護
- 《財務(wù)共享實務(wù)》課程期末考試題庫及答案
- 醫(yī)療安全典型案例警示教育
- 婦科常用??朴盟?/a>
- 健康課大班《良好的坐姿》教案7
- 中醫(yī)醫(yī)院醫(yī)療質(zhì)量考核標(biāo)準實施細則
- 建筑結(jié)構(gòu)試驗課件第七章結(jié)構(gòu)動力特性試驗
評論
0/150
提交評論