版權(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í)驗(yàn)(C+)設(shè)計(jì)時(shí)間:2016年10月3日至設(shè)16年10月4日學(xué) 院:計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè)班級(jí): 通信工程 1522107041學(xué)生姓名:周禎楠學(xué)號(hào):0指導(dǎo)老師:於躍成一、第三題(一)題目:3.建立一個(gè)類MOVE不進(jìn)行排序,將數(shù)組中小于平均值的元素放到數(shù)組的左邊,大于平均值的元素放到數(shù)組的右邊。具體要求如下:(1)私有數(shù)據(jù)成員。floatarray20: 一維整型數(shù)組。int n:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(float b,intm):構(gòu)造函數(shù),初始化成員數(shù)據(jù)。void average。:輸出平均值,并將數(shù)組中的元素按要求重
2、新放置。©voidprint():輸出一維數(shù)組。(3)在主程序中用數(shù)據(jù)136.2,3,9.1,4.874,5.6,9.2,2.3對(duì)該類進(jìn)行測試。(二)源程序:#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(i=0;i<m;i+)arrayi=bi;void MOVE:average()int i,x;float a = 0;for
3、(i=0;i<n;i+)a+=arrayi;a/=n;cout<<"平均值為:"<<a<<endl; /®float f20;for(i=0,x=0;i<n;i+) if(arrayi<a)fx = arrayi;x+;for(i=0;i<n;i+)if(arrayi>a)fx = arrayi;x+;/ 0for(i=0;i<n;i+)arrayi = fi;/ ®void MOVE:print()int i;for(i=0;i<n;i+)cout<<arrayi
4、<<'t'if(i+1)%5=0) cout<<endl; / cout<<endl;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 ff(b,m);ff.average();ff.print();(三)運(yùn)行結(jié)果:(四)基本分析:1 .就結(jié)構(gòu)而言,定義類以及成員函數(shù)按照題目要求寫即可,注意類作用域符: 不可缺失。2 .就算法而言:求數(shù)組中的數(shù)的平均值,就是先求和,再除總個(gè)數(shù)。“小于平均值的放左邊,大于平均值的放右邊?!毕刃陆ㄒ粋€(gè)數(shù)組f20用于存放排列后的數(shù)
5、組,通過if條件判斷語句進(jìn)行排序,這里大于平均值和小于 平均值是有先后順序的,因?yàn)槭且来畏湃雈20中,所以要等小于平均值的放完, 再放大于平均值的。 再把f20賦值給array20,這樣array20就是排序后的符合題目要求的 新數(shù)組。每行5個(gè)輸出,i的初始值是0,所以if條件判斷中應(yīng)該是if(i+1)%5 = 0), 直接用i ,無需定義其他變量。二、第四題(一)題目:4.建立一個(gè)類MOVE將數(shù)組中最大元素的值與最小元素的值互換。具體要求如下:(1)私有數(shù)據(jù)成員int *array : 一維整型數(shù)組。®int n:數(shù)組中元素的個(gè)數(shù)。(2)公有成員函數(shù)MOVE(int b,intm)
6、:構(gòu)造函數(shù),初始化成員數(shù)據(jù)。©void exchange。:輸出平均值,并將數(shù)組中的元素按要求重新放置。©void print():輸出一維數(shù)組。®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);void exchange();void print();MOVE();MOVE:MOVE(int b,int m) n = m;arr
7、ay = new intn;/ ®for(int i=0;i<n;i+) arrayi = bi;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;pl = p2 = array; /for(i=0;i<n;i+)if(arrayi < *p1) p1 = &arrayi;if(arrayi > *
8、p2) p2 = &arrayi;/ ®i = *p1;*p1 = *p2;*p2 = i;/ void MOVE:print() for(int i=0;i<n;i+)cout<<arrayi<<'t'if(i+1)%5=0) cout<<'n'MOVE:MOVE()delete array; /void main()int b = 21,65,43,87,12,84,44,97,32,55,n = 10;MOVE f(b,n);f.exchange();f.print();(三)運(yùn)行結(jié)果(四)基本分
9、析1. 要注意的函數(shù):構(gòu)造函數(shù)中:當(dāng)要用到指針來操作數(shù)組時(shí),要通過new運(yùn)算符動(dòng)態(tài)申請(qǐng)空間c格式:指針變量= new 數(shù)據(jù)類型 數(shù)組大小 ,指針變量保存該空間的首地址(2析構(gòu)函數(shù):釋放new分配的而動(dòng)態(tài)內(nèi)存,格式:delete 口 指針變量2. 相關(guān)算法:定義指針變量pl、p2指向數(shù)組的首地址,這句話等價(jià)于 pl = p2 =&array0;遍歷數(shù)組,pl指向最小值,p2指向最大值(5交換*pl、*p2的值三、第 17 題(一)題目:定義 一個(gè)類 SIN。 求 sin(x)=x/1-xA3/3!+xA5/5!-xA7/7!+(-1)A(n+1)xA(2n+1)/(2n+1)!具體要求如
10、下:( 1)私有成員數(shù)據(jù)。double x :輸入公式中x 的值,求sin(x) 。int n :輸入公式中n 的值。( 2)公有成員函數(shù)。SIN(int x,int n) :構(gòu)造函數(shù),用于初始化x和n的值。double power(int q) :求 q! 的值。int mi(int m,int n) : 求 mAn的值。fun():用于求sin(x)的值。©void show():輸出求得的結(jié)果。3. 3) 在主程序中定義對(duì)象test ,對(duì)該類進(jìn)行測試。(二)源程序:#include<iostream.h>class SINdouble x;int n;public:
11、SIN(double x,int n);double power(int q);double mi(int m,int n);double fun();void show();SIN:SIN(double x,int n)this->x = x;this->n = n;/ 0double SIN:power(int q)for(int m = 1;m < q;m+) q *= m;/ return q;double SIN:mi(int m,int n)for(int i = 1;i < n;i+) m *= m; /return m;double SIN:fun()d
12、ouble sinx = 0;for(int i = 1;i <= n;i+)sinx += mi(-1,i+1)*mi(x,2*i-1)/power(2*i-1); /Greturn sinx;void SIN:show()cout<<" 請(qǐng)輸入 x:"<<endl;cout<<"sin("<<x<<")="<<fun()<<endl;void main()double x,n;cout<<" 請(qǐng)輸入 x 和 n 的值 :
13、"<<endl;cin>>x>>n;SIN test(x,n);test.show();(三)運(yùn)行結(jié)果:(四)基本分析:1. 需要注意:©this指針指向本身對(duì)象的數(shù)據(jù)成員,避免因數(shù)據(jù)名相同而造成的混亂。按題目要求,這一題只能用this 指針加以區(qū)分。2. 相關(guān)算法:求階乘(3求mAnb i < n即可,因?yàn)閕 = 1時(shí),m=m*m依此類推,i=n-1時(shí),算的就是 mAn這個(gè)公式看起來比較繁瑣,對(duì)應(yīng)著公式調(diào)用相關(guān)函數(shù)寫,不要弄錯(cuò)四、第 18 題(一) 題目:18.試建立一個(gè)類VAR用于求n (n<=100)個(gè)數(shù)的均方差。均方差
14、的計(jì)算公式a _ |苞 一 AI產(chǎn) + (巧 -A4產(chǎn)+ (趣-M)2 +F“一M產(chǎn)為柞,其中平均值為具體要求如下:(1)私有成員數(shù)據(jù)。©double a100:用于存放輸入的n個(gè)數(shù)。int n:實(shí)際輸入數(shù)的個(gè)數(shù)n。(2)公有成員函數(shù)。VAR(double x口,int n1):構(gòu)造函數(shù),初始化成員數(shù)據(jù) a和個(gè)數(shù)n。double average(doublex口,int n):求平均值,數(shù)組 x具有 n個(gè)元©void variance(double x口,int n):求均方差,數(shù)組 x 具有 n 個(gè)元©voidshow():輸出求得的均方差。(3)在主程序中定義
15、一個(gè)對(duì)象test ,對(duì)該類進(jìn)行測試。(二)源程序:#include<iostream.h>class VARdouble a100;int n;public:VAR(double x口,int n1);double average(double x口,int n);void variance(double x口,int n);void show();VAR:VAR(double x口,int n1)for(int i = 0;i < n1;i+) ai = xi;n = n1;double VAR:average(double x,int n)double a = 0;for
16、(int i = 0;i < n;i+)a += xi;a /=n;return a;void VAR:variance(double x,int n)double d = 0;for(int i = 0;i < n;i+)d = (xi - average(x,n)*(xi - average(x,n); d /= n;cout<<" 方差為 :"<<d<<'n'void VAR:show()cout<<" 平均值為:"<<average(a,n)<<&
17、#39;n'<<endl;variance(a,n);void main()double x100 = 16,18,25,23,56,14;int n1 = 6;VAR test(x,n1);test.show();(三)運(yùn)行結(jié)果:(四)基本分析:1 .需要注意:方差d最好定義成double型2 .此題不難,按照題目要求“堆”程序即可,沒有復(fù)雜的算法,也沒有特殊的結(jié) 構(gòu)。五、第二十題(一)題目:20.定義一個(gè)方陣類Array ,實(shí)現(xiàn)對(duì)方陣進(jìn)行逆時(shí)針90度旋轉(zhuǎn)。如圖所示。1234567I'910111213141516具體要求如下:(1)私有數(shù)據(jù)成員®int
18、a44:用于存放方陣。(2)公有成員函數(shù)4812163 171115 126101415913©Array 成員a。 ©void void(int a14,intn):構(gòu)造函數(shù),用給定的參數(shù)al初始化數(shù)據(jù)xuanzhuan ():實(shí)現(xiàn)對(duì)方陣a進(jìn)行逆時(shí)針90度的旋轉(zhuǎn)。 show( ): /屏幕上顯示數(shù)組元素。(3)在主程序中定義數(shù)組作為原始數(shù)組。定int b 4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16義一個(gè)Array類對(duì)象test ,用b初始化test ,完成對(duì)該類的測試。(二)源程序:#include<iostream.h>
19、class Arrayint a44;public:Array(int a14,int n);void xuanzhuan();void show();Array:Array(int a14,int n)for(int i=0;i<n;i+)for(int j=0;j<n;j+)aij = a1ij;void Array:xuanzhuan()int i;int a244;for(i=0;i<4;i+)for(int j=0;j<4;j+)a2皿=aj3-i;/ ®for(i=0;i<4;i+)for(int j=0;j<4;j+)aij = a2
20、皿;/ void Array:show()cout<<" 輸出的數(shù)組為:"<<endl;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;int n = 4;Array test(b,n);test.xuanzhuan();test.show();(三)運(yùn)行結(jié)果:(四)基本分析:新建一個(gè)數(shù)組a24
21、4,用來存放旋轉(zhuǎn)后的a144,逆時(shí)針旋轉(zhuǎn)90度,其 實(shí)就是列變成行,行變成列的同時(shí)左移三個(gè)。把a(bǔ)244賦值給a144,這樣a144就是旋轉(zhuǎn)后的矩陣。六、第三十題(一)題目:30.建立一個(gè)矩陣類Array,對(duì)二維數(shù)組中左下三角的全部元素(包括對(duì)角線 上的元素)作如下變換。(1)若該數(shù)不是素?cái)?shù)則保持不變;(2)若該數(shù)是素?cái)?shù), 則用大于它的最小素?cái)?shù)替換該數(shù)。并統(tǒng)計(jì)二維數(shù)組中左下三角的全部元素(包括 對(duì)角線上的元素)中的素?cái)?shù)個(gè)數(shù)。具體要求如下:(1)私有數(shù)據(jù)成員int x44:存儲(chǔ)需要處理的二維數(shù)組的各元素值。®int count :存儲(chǔ)左下三角元素中素?cái)?shù)的個(gè)數(shù)。(2)公有成員函數(shù)構(gòu)造函數(shù):
22、進(jìn)行初始化x數(shù)組和count的值。(Dint fun(int) ;判斷一個(gè)數(shù)是否為素?cái)?shù)的函數(shù)。©void encode():對(duì)x數(shù)組中左下三角的全部元素(包括對(duì)角線上的元素) 逐一進(jìn)行判斷,若該數(shù)不是素?cái)?shù)則保持不變,若該數(shù)是素?cái)?shù),則用大于它的最小 素?cái)?shù)替換該數(shù)。©void print():按行輸出矩陣的值。(3)編寫一個(gè)程序測試該類,說明(聲明)Array對(duì)象A,將一個(gè)矩陣存入對(duì)象 A中,并輸出矩陣的值,使用以下測試數(shù)據(jù)。364178591012197204142123(二)源程序:#include<iostream.h>class arrayint x44;int count;public:array(int a44);int fun(int);void encode();void print();array二array(int a44)for(int i=0;i<4;i+)for(int j=0;j<4;j+) xij = a皿;count = 0;int array:fun(int num)int flag;for(int i=2
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度貨運(yùn)司機(jī)勞動(dòng)合同模板(含績效考核)
- 二零二五年度學(xué)校教師學(xué)生國際交流與合作聘用合同3篇
- 二零二五年度信息技術(shù)產(chǎn)品軟件售后服務(wù)合同書模板2篇
- 2025年度個(gè)人法律咨詢委托書范本4篇
- 二零二五年度廚房電氣設(shè)備安裝與維護(hù)承包協(xié)議4篇
- 2025版實(shí)習(xí)合同模板:實(shí)習(xí)期間解約與補(bǔ)償3篇
- 二零二五版舊機(jī)動(dòng)車交易車輛售后配件供應(yīng)合同3篇
- 2025版實(shí)習(xí)期員工勞動(dòng)合同-實(shí)習(xí)期間合同解除與續(xù)簽3篇
- 珠??萍紝W(xué)院《賈平凹文學(xué)創(chuàng)作研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年度商業(yè)寫字樓租賃合同樣本
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制課件第十一章運(yùn)動(dòng)技能的練習(xí)
- 蟲洞書簡全套8本
- 射頻在疼痛治療中的應(yīng)用
- 四年級(jí)數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 職業(yè)安全健康工作總結(jié)(2篇)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會(huì)
- 彈簧分離問題經(jīng)典題目
評(píng)論
0/150
提交評(píng)論