FORTRAN課程設計2014級_第1頁
FORTRAN課程設計2014級_第2頁
FORTRAN課程設計2014級_第3頁
FORTRAN課程設計2014級_第4頁
FORTRAN課程設計2014級_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、程序設計基礎Fortran95課程設計任務書一、 課程設計教學目的及基本要求1 了解并掌握程序設計基礎的設計方法,具備初步的獨立分析和設計能力;2 初步掌握程序設計過程的問題分析、算法設計、程序編碼、調(diào)試等基本方法和技能;3 提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;4 訓練用系統(tǒng)的觀點和程序設計一般規(guī)范進行程序設計開發(fā),培養(yǎng)所應具備的科學的工作方法和作風;5 獨立完成或分組完成;6 僅限用Fortran語言編寫程序;7 7月11日前完成;8 允許分小組完成,每組最多5人組成,每組提交一份的課程設計報告;9 每個小組需要完成程序設計題目中的兩個,其中題1、2、3、4中必選1個;

2、10 每個同學的課程設計報告命名為“學號姓名.doc”,7月11日前“按班級”打成一個壓縮包發(fā)送任課教師信箱并將紙質(zhì)課程報告交到辦公室。(由班長負責匯總收集提交)二、 課程設計步驟 1 問題分析和任務定義:根據(jù)設計題目的要求,充分地分析和理解問題,明確問題要求做什么?(而不是怎么做?)限制條件是什么?2 邏輯設計:對問題描述中涉及的操作對象定義相應的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設計的結(jié)果應寫出每個抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個基本操作的功能說明),各個主要模塊的算法,并畫出模塊之間的調(diào)用關系圖;3 詳細設計:定義相

3、應的存儲結(jié)構(gòu)并寫出各子程序的算法。在這個過程中,要綜合考慮程序設計功能,使得程序結(jié)構(gòu)清晰、合理、簡單和易于調(diào)試,抽象數(shù)據(jù)類型的實現(xiàn)盡可能做到數(shù)據(jù)封裝,基本操作的規(guī)格說明盡可能明確具體。詳細設計的結(jié)果是對數(shù)據(jù)結(jié)構(gòu)和基本操作作出進一步的求精,寫出數(shù)據(jù)存儲結(jié)構(gòu)的類型定義,寫出子程序形式的算法框架;4 程序編碼:把詳細設計的結(jié)果進一步求精為程序設計語言程序。同時加入一些注解,使程序中邏輯概念清楚;5 程序調(diào)試與測試:采用自底向上,分模塊進行,能夠熟練掌握調(diào)試工具的功能。調(diào)試正確后,認真整理源程序及其注釋,形成格式和風格良好的源程序清單和結(jié)果;6 結(jié)果分析:程序運行結(jié)果包括正確的輸入及其輸出結(jié)果和含有錯

4、誤的輸入及其輸出結(jié)果。算法的時間、空間復雜性分析;可去掉?7 編寫課程設計報告,提交一份完整的電子文檔和打印文檔,文檔應包含以下主要內(nèi)容: 課程設計報告書封面,應給出標題、專業(yè)、班級、姓名、學號(包括本組所有同學的姓名及學號)、指導教師和完成日期等信息,封面排版可自行設計; 自動生成目錄(要求包括兩級目錄)參考樣式:要求:目錄題頭用三號黑體字居中書寫,隔行書寫目錄內(nèi)容。目錄中各級題序及題標用小四號黑體字 說明問題及解題的思路說明文本 用FORTRAN語言編寫的源程序(必要的變量說明和注釋語句); 符合作業(yè)要求的輸入、輸出數(shù)據(jù)。 盡量使用文件實現(xiàn)輸入和輸出,并將記事本文件抓圖后插入課程設計文本。

5、三、 參考題目1.【設計題目】求一元方程的根問題描述和基本要求:設計選擇菜單完成求解一元方程的根。l 要求采用函數(shù)子程序定義一元方程,且每位同學選擇的一元方程不能相同;l 程序選擇以下三種方法(菜單選擇)求該方程的根;METHOD = 1 牛頓迭代法METHOD = 2 二分法METHOD = 3 弦截法l 對于不同的近似算法分別編寫子程序,精度要求10-6。2.【設計題目】求某函數(shù)在某指定區(qū)域內(nèi)的求定積分 問題描述和基本要求:設計選擇菜單完成定積分計算l 采用函數(shù)子程序定義函數(shù)f(X),且每位同學選擇的f(x)不能相同;l 程序選擇以下三種方法求定積分:METHOD = 1 矩形法METHO

6、D = 2 梯形法METHOD = 3 辛普生法l 對于不同的算法分別編寫子程序,選擇調(diào)用,比較不同方法求解的精度。 根據(jù)以上功能要求,設計程序完成,每種方法的輸出數(shù)據(jù)結(jié)果都要求顯示。3. 【設計題目】求解線性方程組問題描述和基本要求:用高斯消元法求解線性方程組AX=B的解l 其中A為n*n系數(shù)矩陣,x為解向量,B為方程組右端等值矩陣。要求程序可以輸入求解任意多個未知數(shù)的方程組,并附算例及求解結(jié)果;l 每位同學的線性方程組不能相同;4.【設計題目】矩陣的操作問題描述和基本要求:設有兩個矩陣A=(aij)m×n,B=(bij)p×q1)編寫矩陣輸入子程序input_mat,通

7、過該子程序完成矩陣的輸入并返回保存矩陣的數(shù)組和對應矩陣的行數(shù)、列數(shù)。2)編寫矩陣輸出子程序output_mat,通過該子程序完成矩陣的輸出。3)求矩陣的轉(zhuǎn)置,矩陣的轉(zhuǎn)置A=(aji)n×m,轉(zhuǎn)置前輸出原矩陣,轉(zhuǎn)置后輸出轉(zhuǎn)置矩陣。4)求矩陣A、B的和。矩陣A和B能夠相加的條件是:m=p,n=q;矩陣A和B如果不能相加,請給出提示信息;若能夠相加,則求和矩陣C并輸出C。C=A+B=(cij)m×n,其中cij=aij+bij5)求矩陣A、B的差。矩陣A和B能夠相減的條件是:m=p,n=q;矩陣A和B如果不能相減,請給出提示信息;若能夠相減,則求差矩陣C并輸出C。C=A-B=(c

8、ij)m×n,其中cij=aij-bij6)求矩陣A、B的積。矩陣A和B能夠相乘的條件是:p=n;矩陣A和B如果不能相乘,請給出提示信息;若能夠相乘,則求積矩陣D并輸出D。D=A×B=(dij)m×q,其中dij=aik×bkj,k=1,2,n7)設計一個菜單,具有求矩陣的轉(zhuǎn)置、求矩陣的和、差,求矩陣的積、退出等基本的功能。在求矩陣的和或求矩陣的積時要求能夠先提示輸入兩個矩陣,然后再進行相應的操作。5.【設計題目】紙牌游戲問題描述和基本要求:編號為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一次,直到最后一張牌;然后,從第3張開始,

9、以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一張牌;然后從第4張開始,以4為基數(shù),是4的倍數(shù)的牌翻一次, 直到最后一張牌;.再依次5的倍數(shù)的牌翻一次,6的,7的 直到 以52為基數(shù)的翻過,輸出:這時正面向上的牌有哪些?6.【設計題目】排序綜合問題描述和基本要求:利用隨機函數(shù)產(chǎn)生N個隨機整數(shù)(2000以上),對這些數(shù)進行多種方法進行排序。1)至少采用兩種方法實現(xiàn)上述問題求解(提示,可采用的方法有插入排序、冒泡排序、選擇排序、交換排序等)。并把排序后的結(jié)果保存在不同的文件中。2)統(tǒng)計每一種排序方法的性能(以上機運行程序所花費的時間為準進行對比),找出其中兩種較快的方法。

10、3)如果采用4種或4種以上的方法者,可適當加分。7.【設計題目】班級成績考評程序問題描述和基本要求:編寫班級學生成績管理程序1)采用數(shù)據(jù)文件輸入某班級30名同學的學號及各五門課程的成績;2)求出每名同學的總分、統(tǒng)計各門課程的平均分;3)統(tǒng)計各門課程中高于和低于平均分的人數(shù);4)按總分高低排序,在輸出文件中輸出名次、學號及總分(按學號順序輸出)。5)分數(shù)查詢,輸入某一同學的學號,輸出該生的名次、各門課程的成績及總分。 6)要求使用結(jié)構(gòu)體,鏈表或數(shù)組等實現(xiàn)上述要求7)采用多種方法且算法正確者,可適當加分8. 【設計題目】數(shù)據(jù)庫簡單應用問題描述:某旅游公司有職工15人,現(xiàn)在需要通過計算機管理該公司的

11、人員信息,所開發(fā)的程序應當包括:1建立人員基本信息(姓名、性別、出生年月、工齡、基本工資,獎金,總收入等)檔案;2能夠按照當?shù)貍€人所得稅繳納辦法計算職工應繳納的個人所得稅并記錄到員工信息中;3 能夠判斷某人是否是該公司的員工;4能夠按照員工的最終實際收入對員工進行排序,以便對前三名進行表彰。要求采用子程序編程方式編寫各個功能模塊9. 【設計題目】 計算任意多邊形的面積 問題描述和基本要求:假定有一N多邊形,N通過輸入數(shù)據(jù)指定(N)=3),以多邊形各個頂點的坐標值為輸入數(shù)據(jù),編寫程序?qū)崿F(xiàn)該多邊形面積的計算。1 假定該多邊形位于XOY平面2 多邊形頂點坐標采用復型數(shù)據(jù)處理,提示:兩個復數(shù)的差是兩點

12、間的距離;3 利用計算三角形的面積的子程序10. 【設計題目】 打印圖形問題描述和基本要求:打印由*組成的各種圖案,至少打印5種以上。1 直角三角形形狀2 等腰三角形形狀3 菱形4 平行四邊形5 其他各種形狀 11、打印如下形式的N x N 的螺旋方陣 1 16 15 14 13 2 17 24 23 12 3 18 25 22 11 4 19 20 21 10 5 6 7 8 912.設計一程序完成水準測量中的數(shù)據(jù)處理和平差計算。要求如下: 1.可以處理任意個測量點,可以處理根據(jù)菜單選擇測量方法(閉合水準路線、附合水準路線、支水準路線) 2.測量數(shù)據(jù)以文件形式輸入,輸入數(shù)據(jù)格式自己設計; 3

13、.根據(jù)輸入的測量數(shù)據(jù),按照工程測量基本原理,計算高差閉合差、分配高差閉合差及最終高程計算結(jié)果 4.將計算結(jié)果以文件形式輸出四、 課程設計考核方法及成績評定課程設計結(jié)束時,要求學生寫出課程設計報告(附可運行的源程序),由指導教師根據(jù)現(xiàn)場考查(考查任務完成情況)、批閱課程設計報告按百分制給定最終成績(必要時可進行答辯,以檢查學生的實際完成情況)。按照百分制評定成績:平時表現(xiàn)(20%)、課程設計報告和程序質(zhì)量可行性(60%),相對應運行結(jié)果數(shù)據(jù)及文件(20%)。第二題 利用梯形法計算f(x)=1/(1+x)的定積分即面積real a,b,h,x,s,s1,f0,f1integer n,iread*,

14、a,b,nh=(b-a)/nx=as=0f0=1.0/(1+x)do i=1,n x=x+h f1=1.0/(1+x) s1=(f0+f1)*h/2 s=s+s1 f0=f1enddoprint*,"定積分為:",send第三題 利用蒙特拉法求(圓周率),主要是隨機分配integer(4) ISEEDread*,nm=0do i=1,n x=RAN(ISEED) y=ran(ISEED) IF(X*X+Y*Y<=1) m=m+1enddoprint*,"圓周率為",1.0*m一.排序1.簡單交換排序法Parameter(n=10)Integer a

15、(n),tPrint*,輸入需要排序的n個數(shù)據(jù)Read*,ado i=1,n-1 do j=i+1,n if(a(i)>a(j) thent=a(i)a(i)=a(j)a(j)=tendifenddoenddoprint*,原始數(shù)據(jù)從小到大的順序排列如下:print 10,a10 format(10i5)end2.選擇交換排序法Parameter(n=10)Integer a(n),tPrint*,輸入需要排序的n個數(shù)據(jù)Read*,ado i=1,n-1 p=i do j=i+1,n if(a(j)<a(p) p=jenddot=a(i)a(i)=a(p)a(p)=tenddopr

16、int*,原始數(shù)據(jù)從小到大的順序排列如下:print 10,a10 format(10i5)end3.冒泡排序法Parameter(n=10)Integer a(n),tPrint*,輸入需要排序的n個數(shù)據(jù)Read*,ado i=1,n-1 do j=1,n-i if(a(j)>a(j+1) thent=a(j)a(j)=a(j+1)a(j+1)=tendifenddoenddoprint*,原始數(shù)據(jù)從小到大的順序排列如下:print 10,a10 format(10i5)end二.派生類型 typeParameter(n=10)Type student_record Integer n

17、um,s Real a(3),aveend typeType(student_racord) class(n)Print 100,請輸入n個學生的學號和成績:do i=1,n Read*,class(i)%num,class(i)%a Class(i)%ave=(class(i)%a(1)+ class(i)%a(2)+ class(i)%a(3)/3.0end dodo i=1,nk=0do j=1,n If(class(j)%ave>class(i)%ave) k=k+1 enddo class(i)%s=k+1enddoprint*, print*,按照平均分排名如下:print*

18、,-print*,名次 學號 語文 數(shù)學 英語 平均分數(shù)do i=1,n do j=1,n if(class(j)%s=i) print 200,class(j)%s,class(j)%num, class(j)%a, class(j)%ave enddoenddo100 format(a,i3,a)200 format(i5,i10,4f8.1)end三、一元方程的解(以f(x)=x ³-2x ²+7x+4=0為例)1.二分法Program exam12-1Real,x1,x2,xReal bisect,funcDo Print*,輸入x1,x2的值: Read*,x1,

19、x2 If(func(x1)*func(x2)<0.0) exitEnddox=bisect(x1,x2)print 10,x=,x10 format(a,f15.7)EndReal function bisect(x1,x2)Real x1,x2,x,f1,f2,fxx=(x1+x2)/2.0fx=func(x)do while(abs(fx)>1e-6)f1=func(x1)if(f1*fx<0) then x2=xelse x1=xendifx=(x1+x2)/2.0fx=func(x)enddobisect=xendfunction func(x)real xfunc

20、=x*3-2*x*2+7*x+4end2.弦截法求一元方程的根Program exam12-2Real x1,x2,xReal secant,funcDoPrint*,輸入x1,x2的值:Read*,x1,x2 If(func(x1)*func(x2)<0.0) exitEnddox=secant(x1,x2)print 10,x=,x10 format(a,f15.7)EndReal function secant(x1,x2)Real x1,x2,x,f1,f2,fxReal funcx=x2-(x1+x2)/(func(x2)-func(x1)*func(x2)fx=func(x)

21、do while(abs(fx)>1e-6)f1=func(x1)if(f1*fx<0) then x2=xelse x1=xendifx=x2-(x1+x2)/(func(x2)-func(x1)*func(x2)fx=func(x)enddosecant=xendreal function func(x)real xfunc=x*3-2*x*2+7*x+4end3.牛頓迭代法Program exam12-3Real xInteger mPrint*,輸入初值Read*,xCall newton(x)Subroutine newton(x) Implicit none Real

22、x,x1 Real func,dfunc Integer i,m i=1x1=x-func(x)/dfunc(x)do while(abs(x-x1)>1e-6) print 10,i ,x1x=x1i=i+1x1=x-func(x)/dfunc(x)enddoprint 20,x=x110 format(i=,i4,6x,x=,f15.720 format(a,f15.7)Endreal function func(x)real xfunc=x*3-2*x*2+7*x+4endreal function dfunc(x) real xdfunc=3*x*2-4*x+7end四.數(shù)值積分

23、(以f(x)=e*x+1為例)1.矩形法Program exam12-5Real a,s,bInteger nReal rectanglePrint*,輸入a,b和n的值Read*,a,b,nS=rectangle(a,b,n)Print 10,a,b,nPrint 20,s10 format(a=,f5.2,3x, b=,f5.2,3x, n=,i4)20 format(s=,f15.8)EndReal function rectangle(a,b,n)Implicit noneReal x,a,b,h,sInteger i,nReal funcx=ah=(b-a)/ns=0do i=1,n s=s+func(x)*h x=x+henddorectangle=sendreal function func(x)real xfunc=1+exp(x)end2.梯形法Program exam12-6Real a,s,bInteger nReal trapeziaPrint*,輸入a,b和n的值Read*,a,b,nS= trapezia(a,b,n)Print 10,a,b,nPrint 20,s10 format(a=,f5.2,3x, b=,f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論