考試程序設(shè)計實驗報告_第1頁
考試程序設(shè)計實驗報告_第2頁
考試程序設(shè)計實驗報告_第3頁
考試程序設(shè)計實驗報告_第4頁
考試程序設(shè)計實驗報告_第5頁
免費預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

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

文檔簡介

1、程序設(shè)計實驗學(xué)院:應(yīng)用數(shù)學(xué)學(xué)院班級:金融數(shù)學(xué):學(xué)號:201320030129實驗一類與對象【問題描述】定義一個基類和多個派生類,像基本類型那樣應(yīng)用這些類。【基本要求】(1)至少定義一個基類理數(shù)類 rational 或點形狀類型 sh。(2)至少定義 2 個派生類。如圓形類、三角形類型或四邊形類型等。(3)類定義中包含構(gòu)造函數(shù)、析構(gòu)函數(shù)、重載函數(shù)、重載運算符、虛函數(shù)等。(4)類定義為頭文件。成員函數(shù)由源程序文件實現(xiàn)。(5)項基本類型那樣應(yīng)用這些類編寫應(yīng)用程序?!緦嶒瀮?nèi)容】圓形面積的派生類。程序中通過基類的指針來調(diào)用派生類中的虛函數(shù)計算出不同形狀的面積?!緦嶒?zāi)康摹?.掌握面象的基本概念,類的定義

2、方法。2.掌握類成員的權(quán)限及類成員的方法。3.掌握內(nèi)聯(lián)函數(shù)和缺省函數(shù)。4.掌握構(gòu)造函數(shù)與析構(gòu)函數(shù)的意義及使用方法。#include #include #defin3.14class sh程序如下:定義一個抽象類 Sh用以計算面積,從中派生出計算長方形、梯形、public:virtual float area()=0;class circle:public shprivate:float r; public: circle(float r1)r=r1; float area()return (float)pi*r*r;class rectangle:public shprivate:float

3、width,height; public:rectangle(float w1,float h1)width=w1;height=h1;float area()return width*height;float total(sh*s,n)float sum=0.0;for(i=0;iarea(); return sum;void main()sh* s2; s0=new circle(1);coutarea()endl;s1=new rectangle(2,4);coutarea()endl; couttotal(s,2)endl實驗二弦截法求解方程的根1、用弦截法求解一元三次方程 f(x)=

4、x3-5x2+16x-80=0 的根?!締栴}分析】弦截法求解方程的根的方法如下: (1)取兩個不同的初始點 x1、x2,使得 f(x1)*f(x2)0,這時,區(qū)間(x1,x2)有一個根。注意:x1、x2 的值不要相差太大,以保證區(qū)間(x1,x2)內(nèi)只有一個根。 連接(x1,f(x1))與(x2,f(x2)兩點,此直線(即弦)與 x 軸輸出結(jié)果如下:的交點為 x*,x*的值可由如下公式求出:x*=(x1*y2-x2*y1)/(y2-y1) 若 f(x*)f(x2)0,則區(qū)間(x*,x2)有一根,令 x1=x*。若f(x1)*f(x*)0,則區(qū)間(x1,x*)有一根,令 x2=x*。 重復(fù)步驟(2

5、)和步驟(3),直到 f(x*)的值足夠接近于 0。一步迭代法求解方程的根:程序如下:#include #include float f(float x)float y;y=(x-5)*x+16)*x-80; return y;float xpo(float x1,float y1,float x2,float y2)float x;x=(x1*y2-x2*y1)/(y2-y1); return x;float root(float x1,float y1,float x2,float y2)float x,y; y1=f(x1); dox=xpo(x1,y1,x2,y2); y=f(x);x

6、1=x;y1=y;while (fabs(y)=0.0001); return x;void main()float x,x1,x2,y1,y2;prf(請輸入兩個不同的初始值 x1,x2=); scanf(%f%f,&x1,&x2);y1=f(x1);y2=f(x2);x=root(x1,y1,x2,y2);prf(一元三次方程的一個根:%8.3fn,x);輸出結(jié)果如下:多步迭代法求解方程的根:程序如下:#include #includefloatfloatf(floatx)y;y=(x-5)*x+16)*x-80;returny;floatfloatxpo(floatx1,floaty1,

7、floatx2,floaty2)x;x=(x1*y2-x2*y1)/(y2-y1);returnx;floatfloatroot(floatx1,floaty1,floatx2,floaty2)x,y;y1=f(x1); dox=xpo(x1,y1,x2,y2); y=f(x);x1=x2;y1=y2; x2=x;y2=y;while returnvoid(fabs(y)=0.0001);x;main()floatx,x1,x2,y1,y2;prf(請輸入兩個不同的初始值 x1,x2=);scanf(%f y1=f(x1);y2=f(x2);%f,&x1,&x2);x=root(x1,y1,x

8、2,y2);prf(一元三次方程的一個根:%8.3fn,x);輸出結(jié)果如下:實驗三求解一元 N 次方程的根:程序如下:#include #include#definen5floatf(float x,floatfloat y; k;y=am;for(k=m-1;k=0; k-)y=y*x+ak;a,m)returnfloatfloaty;xpo x;(floatx1,floaty1,floatx2,floaty2)x=(x1*y2-x2*y1)/(y2-y1); return x;floatroot(floatx1,floaty1,floatx2,floaty2,floata)float x,y; dox=xpo(x1,y1,x2,y2);y=f(x,a,n); x1=x2;y1=y2; x2=x;y2=y;while(fabs(y)=0.0001&x1!=x2); returnx;voidmain() floatx,x1,x2,y1,y2;k;floatpn+1;prf(請輸入一元%d 次方程的系數(shù)(p0、p1、p2、.、pn)=n,n);for(k=0;k=n;k+)scanf(%f,&pk);pr prf(n);f(請輸入求解方程(迭代方法)的兩個初始值 x1,x2=);scanf(%f%f,&x1,&x2);y1=f(x1,p,n);y2=f(x2,p,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論