FORTRAN課程設(shè)計(jì)2014級(總14頁_第1頁
FORTRAN課程設(shè)計(jì)2014級(總14頁_第2頁
FORTRAN課程設(shè)計(jì)2014級(總14頁_第3頁
FORTRAN課程設(shè)計(jì)2014級(總14頁_第4頁
FORTRAN課程設(shè)計(jì)2014級(總14頁_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、后一張牌;.再依次5的倍數(shù)的牌翻一次,6的,7的直到以52為基數(shù)的翻過,輸出:這時(shí)正面向上的牌有哪些?6.【設(shè)計(jì)題目】排序綜合問題描述和基本要求:利用隨機(jī)函數(shù)產(chǎn)生N個(gè)隨機(jī)整數(shù)(2000以上),對這些數(shù)進(jìn)行多種方法進(jìn)行排序。1)至少采用兩種方法實(shí)現(xiàn)上述問題求解(提示,可采用的方法有插入排序、冒泡排序、選擇排序、交換排序等)。并把排序后的結(jié)果保存在不同的文件中。2)統(tǒng)計(jì)每一種排序方法的性能(以上機(jī)運(yùn)行程序所花費(fèi)的時(shí)間為準(zhǔn)進(jìn)行對比),找出其中兩種較快的方法。3)如果采用4種或4種以上的方法者,可適當(dāng)加分。7.【設(shè)計(jì)題目】班級成績考評程序問題描述和基本要求:編寫班級學(xué)生成績管理程序1)采用數(shù)據(jù)文件輸入

10、某班級30名同學(xué)的學(xué)號及各五門課程的成績;2)求出每名同學(xué)的總分、統(tǒng)計(jì)各門課程的平均分;3)統(tǒng)計(jì)各門課程中高于和低于平均分的人數(shù);4)按總分高低排序,在輸出文件中輸出名次、學(xué)號及總分(按學(xué)號順序輸出)。5)分?jǐn)?shù)查詢,輸入某一同學(xué)的學(xué)號,輸出該生的名次、各門課程的成績及總分。 6)要求使用結(jié)構(gòu)體,鏈表或數(shù)組等實(shí)現(xiàn)上述要求7)采用多種方法且算法正確者,可適當(dāng)加分8. 【設(shè)計(jì)題目】數(shù)據(jù)庫簡單應(yīng)用問題描述:某旅游公司有職工15人,現(xiàn)在需要通過計(jì)算機(jī)管理該公司的人員信息,所開發(fā)的程序應(yīng)當(dāng)包括:1建立人員基本信息(姓名、性別、出生年月、工齡、基本工資,獎金,總收入等)檔案;2能夠按照當(dāng)?shù)貍€(gè)人所得稅繳納辦法

11、計(jì)算職工應(yīng)繳納的個(gè)人所得稅并記錄到員工信息中;3 能夠判斷某人是否是該公司的員工;4能夠按照員工的最終實(shí)際收入對員工進(jìn)行排序,以便對前三名進(jìn)行表彰。要求采用子程序編程方式編寫各個(gè)功能模塊9. 【設(shè)計(jì)題目】 計(jì)算任意多邊形的面積 問題描述和基本要求:假定有一N多邊形,N通過輸入數(shù)據(jù)指定(N)=3),以多邊形各個(gè)頂點(diǎn)的坐標(biāo)值為輸入數(shù)據(jù),編寫程序?qū)崿F(xiàn)該多邊形面積的計(jì)算。1 假定該多邊形位于XOY平面2 多邊形頂點(diǎn)坐標(biāo)采用復(fù)型數(shù)據(jù)處理,提示:兩個(gè)復(fù)數(shù)的差是兩點(diǎn)間的距離;3 利用計(jì)算三角形的面積的子程序10. 【設(shè)計(jì)題目】 打印圖形問題描述和基本要求:打印由*組成的各種圖案,至少打印5種以上。1 直角三

12、角形形狀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ì)一程序完成水準(zhǔn)測量中的數(shù)據(jù)處理和平差計(jì)算。要求如下: 1.可以處理任意個(gè)測量點(diǎn),可以處理根據(jù)菜單選擇測量方法(閉合水準(zhǔn)路線、附合水準(zhǔn)路線、支水準(zhǔn)路線) 2.測量數(shù)據(jù)以文件形式輸入,輸入數(shù)據(jù)格式自己設(shè)計(jì); 3.根據(jù)輸入的測量數(shù)據(jù),按照工程測量基本原理,計(jì)算高差閉合差、分配高差閉合差及最終高程計(jì)算結(jié)果 4.將計(jì)算結(jié)果以文件形式輸出四、 課程設(shè)計(jì)考核方法

13、及成績評定課程設(shè)計(jì)結(jié)束時(shí),要求學(xué)生寫出課程設(shè)計(jì)報(bào)告(附可運(yùn)行的源程序),由指導(dǎo)教師根據(jù)現(xiàn)場考查(考查任務(wù)完成情況)、批閱課程設(shè)計(jì)報(bào)告按百分制給定最終成績(必要時(shí)可進(jìn)行答辯,以檢查學(xué)生的實(shí)際完成情況)。按照百分制評定成績:平時(shí)表現(xiàn)(20%)、課程設(shè)計(jì)報(bào)告和程序質(zhì)量可行性(60%),相對應(yīng)運(yùn)行結(jié)果數(shù)據(jù)及文件(20%)。第二題 利用梯形法計(jì)算f(x)=1/(1+x)的定積分即面積real a,b,h,x,s,s1,f0,f1integer n,iread*,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

14、/2 s=s+s1 f0=f1enddoprint*,定積分為:,send第三題 利用蒙特拉法求(圓周率),主要是隨機(jī)分配integer(4) ISEEDread*,nm=0do i=1,n x=RAN(ISEED) y=ran(ISEED) IF(X*X+Y*Ya(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個(gè)數(shù)據(jù)Read*,ado i=1,n-

15、1 p=i do j=i+1,n 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 num,s Real a(3),aveend typeType(student_racord) class(n)Print 100,請輸入n個(gè)學(xué)生的學(xué)號和成績:do i=1,n Read*,class(i)%num,class(i)%a C

16、lass(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)%aveclass(i)%ave) k=k+1 enddo class(i)%s=k+1enddoprint*, print*,按照平均分排名如下:print*,-print*,名次 學(xué)號 語文 數(shù)學(xué) 英語 平均分?jǐn)?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

17、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,x2 If(func(x1)*func(x2)1e-6)f1=func(x1)if(f1*fx0) then x2=xelse x1=xendifx=(x1+x2)/2.0fx=func(x)enddobisect=xendfunction func(x)real xf

18、unc=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)1e-6)f1=func(x1)if(f1*fx1e-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

19、=x*3-2*x*2+7*x+4endreal function dfunc(x) real xdfunc=3*x*2-4*x+7end四.數(shù)值積分(以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,

20、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=,f5.2,3x, n=,i4)20 format(s=,f15.8)EndReal function trapezia(a,b,n)Implicit noneReal x,a,b,h,sInteger i,nReal funcx

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論