VC++課程實(shí)踐報(bào)告1440304222沈永陽_第1頁
VC++課程實(shí)踐報(bào)告1440304222沈永陽_第2頁
VC++課程實(shí)踐報(bào)告1440304222沈永陽_第3頁
VC++課程實(shí)踐報(bào)告1440304222沈永陽_第4頁
VC++課程實(shí)踐報(bào)告1440304222沈永陽_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、江蘇科技大學(xué)課程實(shí)踐報(bào)告   設(shè)計(jì)題目: 計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐(VC+) 設(shè)計(jì)時(shí)間: 2016 -02-22 至 2016-02-26 學(xué) 院: 電子信息學(xué)院 專業(yè)班級(jí): 電氣工程及其自動(dòng)化2班 學(xué)生姓名: 沈永陽 學(xué)號(hào) 1440304212 指導(dǎo)老師: 張曉如  2016年 2月一、 編程題 1試建立一個(gè)類PP,求出下列多項(xiàng)式的前n項(xiàng)的值。 具體要求如下:(1)私有數(shù)據(jù)成員l int n:前若干項(xiàng)的項(xiàng)數(shù)。l double x:存放x的值。l double *p:根據(jù)n的大小動(dòng)態(tài)申請(qǐng)存放Pn(x) 前n項(xiàng)的數(shù)組空間。(2)公有成員函數(shù)l PP(int nu

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

3、ms的成員n和x,調(diào)用items的成員函數(shù),求出并輸出多項(xiàng)式前num項(xiàng)的值。答:#include<iostream.h>class PPint n;double x;double *p;public:PP(int num,double x1)n=num;x=x1;p=new doublenum+1;PP()cout<<"調(diào)用了析構(gòu)函數(shù)n"deletep;double 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

4、)-(n1-1)*fun(n1-2,x)/n1;void process()for(int i=0;i<=n;i+)*(p+i)=fun(i,x);void show()cout<<"n="<<n<<'t'<<"x="<<x<<endl;for(int i=0,m=0;i<n;i+,m+)cout<<*(p+i)<<'t'if(m%4=0)cout<<'n'void main()int n

5、um;double x1;cout<<"請(qǐng)輸入num和x1"<<endl;cin>>num>>x1;PP items(num,x1);cess();items.show();截圖:4建立一個(gè)類MOVE,將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(1)私有數(shù)據(jù)成員l int *array:一維整型數(shù)組。l int n:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)l MOVE(int b,int m):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。l void exchange():輸出平均值,并將數(shù)組中的元素按要求重新放置。l

6、 void print():輸出一維數(shù)組。l MOVE():析構(gòu)函數(shù)。(3)在主程序中用數(shù)據(jù)21,65,43,87,12,84,44,97,32,55對(duì)該類進(jìn)行測試。答:#include<iostream.h>class MOVEint *array;int n;public:MOVE (int b,int m)n=m;array=new intn;for(int x=0;x<n;x+)arrayx=bx;void exchange()float a=0;int i,*x,*y;for(i=0;i<n;i+)a+=arrayi;a=a/n;cout<<&qu

7、ot;The average of the number is:"<<a<<endl;x=y=&array0;for(i=0;i<n;i+)if(arrayi<*x)x=&arrayi;if(arrayi>*y)y=&arrayi;i=*x;*x=*y;*y=i;MOVE()delete array;void print()int i,num=1;for(i=0;i<n;i+)cout<<arrayi<<'t'if(num%5=0)cout<<'n

8、9;num+;void main()int b=21,65,43,87,12,84,44,97,32,55,n=10;MOVE test(b,n);test.exchange();test.print();截圖:12建立一個(gè)STRING類,將一個(gè)字符串交叉插入到另一個(gè)字符串中(假定兩字符串不等長)。例如將字符串“abcde” 交叉插入字符串“ABCDEFG”的結(jié)果為“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。具體要求如下:(1)私有數(shù)據(jù)成員l char str160 :存放被插入的字符串。l char str240 :存放待插入的字符串。l char str3100 :存放插入

9、后的字符串。(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) 在主程序中定義STRING類的對(duì)象test對(duì)該類進(jìn)行測試。答:#include<iostream.h>#include<string.h>class STRINGchar str160;char str240;char str3100;public:STRING(char*s1,char

10、*s2)for(int i=0;i<60;i+)str1i=s1i;for(int j=0;j<40;j+)str2j=s2j;void process()int i=0,j=0,x;while(str1i&&str2i)str3j+=str2i;str3j+=str1i;i+;x=i;if(str2x)while(str2x)str3j+=str2x+;if(str1i)while(str1i)str3j+=str1i+;str3j+='0'void print()cout<<"合并后的字符串為:"cout<&

11、lt;str3<<endl;void main()char str160,str240;cout<<"輸入字符串1"<<endl;cin.getline(str1,59);cout<<"輸入字符串2"<<endl;cin.getline(str2,39);STRING test(str1,str2);cess();test.print();截圖:17定義一個(gè)類SIN,求 具體要求如下:(1)私有成員數(shù)據(jù)。l double x:輸入公式中x的值,求sin(x)。l int n:輸入

12、公式中n的值。(2)公有成員函數(shù)。l SIN(double x, int n ):構(gòu)造函數(shù),用于初始化x和n的值。l double power( int q):求q!的值。l double mi( int m,int n):求mn的值。l double fun( ):用于求SIN(X)的值。l void show( ):輸出求得的結(jié)果。(3)在主程序中定義對(duì)象test,對(duì)該類進(jìn)行測試。答:#include<iostream.h>class SINdouble x;int n;public:SIN(double x,int n)this->x=x;this->n=n;do

13、uble power(int q)for(int i=1;i<=q;i+)q*=i;return q;double mi(int m,int n)for(int i=1;i<n;i+)m*=m;return m;double fun()int s=0;for(int i=1;i<=n;i+)s+=mi(-1,i+1)*mi(x,2*i-1)/power(2*i-1);return s;void show()cout<<"sin("<<x<<")="<<fun()<<endl;v

14、oid main()double x;int n;cout<<"輸入x和n的值"<<endl;cin>>x>>n;SIN test(x,n);test.show();截圖:32建立一個(gè)類SUM,使用二維數(shù)組輸入“Follow me”,“BASIC”,“Great wall”,“Fortran”,“Pascal”,將它們按從小到大的順序排列后輸出。具體要求如下:(1)私有數(shù)據(jù)成員lint *p5:存放二維數(shù)組每行的字符串的地址。(2)公有成員函數(shù)lSUM(int d55):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。lvoid process1(

15、):對(duì)二維數(shù)組中存放的字符串進(jìn)行排序。lvoid print():輸出二維數(shù)組中排好序的字符串。(3) 在主程序中對(duì)該類進(jìn)行測試。答:#include<iostream.h>#include<string.h>class sumchar *p5;public:sum(char d515);void process1();void print();sum:sum(char d515)for(int i=0;i<5;i+)pi=&di0;void sum:process1()char *p1,*p2,m;int x,n;for(int i=0;i<5;i

16、+)p1=p2=pi;for(n=0;n<strlen(pi);n+)for(p2=p1,x=n;x<strlen(pi);x+,p2+)if(*p1>*p2)m=*p1;*p1=*p2;*p2=m;p1+;void sum:print()cout<<"修改后的字符串為:"<<endl;for(int i=0;i<5;i+)cout<<pi<<endl;void main()char d515="Follow me","BASIC","Great wal

17、l","Fortran","Pascal"sum test(d);cess1();test.print();截圖:二、改錯(cuò)題1. 以下程序中函數(shù)fun(int a, int N)的功能是刪除數(shù)組中a的前N個(gè)元素中重復(fù)的元素,并返回所刪除元素的總數(shù)。請(qǐng)改正其中的錯(cuò)誤。程序正確的運(yùn)行結(jié)果為:處理前的數(shù)組為:4133124344處理后的數(shù)組為:4132含有錯(cuò)誤的源程序如下:#include <iostream.h>void fun(int *a, int N)int c,n=0;for(int i=0;i<N-n;i

18、+)c=ai;for(int j=i+1;j<N-n-1;j+)if(aj=c)for(int k=j;k<N-n-1;k+)ak=ak+1;n+;j+; return n; void print(int a, int n) for(int i=0;i<n;i+)cout<<ai<<'t'cout<<endl; void main( ) int a10= 4,1,3,3,1,2,4,3,4,4,b6=1,2,1,3,2,1; int n=fun(a,10); cout<<"數(shù)組a處理后的數(shù)組為:&quo

19、t; print(a, n); n=fun(b,6); cout<<"數(shù)組b處理后的數(shù)組為:" print(b, n);答:將void fun(int *a,int N)改為int fun(int *a,int N)更改后的程序?yàn)椋?include <iostream.h>int fun(int *a, int N)int c,n=0;for(int i=0;i<N-n;i+)c=ai;for(int j=i+1;j<N-n-1;j+)if(aj=c)for(int k=j;k<N-n-1;k+)ak=ak+1;n+;j+;retu

20、rn n;void print(int a, int n)for(int i=0;i<n;i+)cout<<ai<<'t'cout<<endl;void main( )int a10= 4,1,3,3,1,2,4,3,4,4,b6=1,2,1,3,2,1; int n=fun(a,10); cout<<"數(shù)組a處理后的數(shù)組為:" print(a, n); n=fun(b,6); cout<<"數(shù)組b處理后的數(shù)組為:" print(b, n);運(yùn)行結(jié)果:22建立一個(gè)類Sadd

21、le_point,求一個(gè)數(shù)組中的所有鞍點(diǎn)。提示:鞍點(diǎn)是這樣的數(shù)組元素,其值在它所在行中為最大,在它所在列中為最小。具體要求如下:(1)私有數(shù)據(jù)成員lint a44:存放二維數(shù)組元素。lint b44:存放二維數(shù)組中的鞍點(diǎn)值。lint num:存放鞍點(diǎn)個(gè)數(shù)。(2)公有成員函數(shù)lSaddle_point(int data4):構(gòu)造函數(shù),用參數(shù)int data4初始化數(shù)組a,,同時(shí)初始化數(shù)組b與num 的值均為0。lvoid process( ):求數(shù)組a所有鞍點(diǎn)(如果有鞍點(diǎn)),把它們行、列、及值相應(yīng)存放在數(shù)組b中,并將求出的鞍點(diǎn)個(gè)數(shù)賦給num。 lvoid print( ):輸出數(shù)組a、鞍點(diǎn)個(gè)數(shù),

22、與鞍點(diǎn)坐標(biāo)及相應(yīng)值。(3) 在主程序中定義數(shù)組int b 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)及輸出工作。(4) #include<iostream.h>(5) class var(6) double a100;(7) int n;(8) public:(9) var(double x,int n1);(10) double average(double x,int n);(11) void variance(double x,int n);(12) void show();(13) ;(14) var:var(double x,int n1)(15) (16) for(int i=0;i<n1;i+)(17) ai=

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論