Fortran课程设计报告范文Word格式.docx

上传人:b****6 文档编号:16936067 上传时间:2022-11-27 格式:DOCX 页数:34 大小:225.62KB
下载 相关 举报
Fortran课程设计报告范文Word格式.docx_第1页
第1页 / 共34页
Fortran课程设计报告范文Word格式.docx_第2页
第2页 / 共34页
Fortran课程设计报告范文Word格式.docx_第3页
第3页 / 共34页
Fortran课程设计报告范文Word格式.docx_第4页
第4页 / 共34页
Fortran课程设计报告范文Word格式.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

Fortran课程设计报告范文Word格式.docx

《Fortran课程设计报告范文Word格式.docx》由会员分享,可在线阅读,更多相关《Fortran课程设计报告范文Word格式.docx(34页珍藏版)》请在冰豆网上搜索。

Fortran课程设计报告范文Word格式.docx

以统一格式保存在一个纯文本文件tongji.dat中。

编程实现:

(1)从文件tongji.dat中读取数据,计算全国省会2005年GDP的平均值,统计GDP高于平均值的城市数;

(2)按第一产业(即农林牧渔业总产值与工业总产值之和)总产值的升序排序,将排序后的数据存入文件fenxi.dat中。

(3)统计工业总产值在1000亿元以下、1000~2000亿元、2000~3000亿元、3000亿元以上的城市数,并绘制分布饼图和折线图。

(4)计算各城市2005年较2004年相比的GDP增长幅度,计算并输出自己所在省的省会城市GDP增长幅度在各省会城市中的排名。

2.已知

,其中h=0.002

(1)计算

,k、i、j=0,1,2,….,500

要求结果精确到小数点后第6位,并将结果输出到文件poisson.dat中。

(2)找出

的最大、最小值,并统计两个最小值各有几个。

(3)统计

在0.000005以下、0.000005~0.000010、0.000010~0.000015、0.000015~0.000020、0.000020以上的数据个数,并绘制分布饼图和直方图。

三、设计报告要求

1.设计报告字数一般不少于3000字,内容应层次分明,文字简练,说明透彻,立论正确。

2.报告要理论联系实际,运用科学的研究方法对选题进行综合分析,有完整的设计方案。

3.基本内容:

(1)需求分析:

包括设计题目、设计要求以及系统功能需求分析;

(2)概要设计:

包括系统总体设计框架和系统功能模块图;

(3)详细设计。

包括主要功能模块的算法设计思路以及对应的工作流程图;

(4)主要源程序代码。

包括存储结构设计说明,以及完整源程序清单;

(5)调试分析过程描述。

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);

(6)总结。

包括对自己的工作作出客观的评价(优、缺点)和设计进一步的优化思路。

(7)附录和参考文献。

四、考核方式与评分办法

1.程序调试结果按优、良、中、及格、不及格五档评分,占总成绩的60%。

2.实验过程评价:

在上机操作过程中学生上机能力按好、较好、差三档评定,占课程总成绩的20%。

3.实验报告评价占课程总成绩的20%。

一、需求分析

1.课题

上网查询各省会城市2005年生产总值(GDP)、农林牧渔业总产值、工业总产值,将数据。

2.此课题有以下几点要求

(1)查询2005年GDP各项数据,这可以通过上网查询的方式实现。

(2)将数据保存在纯文本文件tongji.dat中,可以编写程序写在文件中,或者直接输入。

(3)从文件中读取数据。

(4)计算平均值,统计数据,排序,输出数据。

(5)绘制分布饼图和折线图,这需要在QuickWinApplication环境下实现。

(6)实现主模块和子模块的连接。

二、概要设计(总体设计框架)

1.本系统是在QuickWinApplication环境下实现的,由一个主模块和五个子模块组成。

其中主模块的功能是建立一个主界面,并和各个子模块连接。

五个子模块的程序名和功能如下:

(1)Inputdata()输入/查看2005年全国各省会城市GDP源数据

(2)Tongji()计算GDP的平均值,统计GDP高于平均值的城市数

(3)Gdppaixu()按第一产业总产值的升序排序

(4)Fenduan()将城市按工业产值分段

Bingtu()绘制分布饼图

Zhexian()绘制分布折线图

(5)Increase()计算各城市的GDP增长幅度,并排名

2.各个模块的具体连接结构如下图:

三、系统实现

1.主要变量的定义

①本系统主要处理的是全国GDP的数据,一条记录有很多个数据,用结构体数组s(23)来表示:

typeeveryprovenceGDP

character*10provence

character*10capital

realpopulation

realgdp

realgop

endtype

dimensions(23)

type(everyprovenceGDP):

:

s

②涉及到在界面输出的变量

integer(4)color,fff

integer(4)fontnum

type(xycoord)xy

integer(4)dummy,status

2.文件的存取

本课题涉及的文件的存取内容主要有:

建立文件,打开文件,读文件,写文件和关闭文件。

在系统实现过程中用的都是有格式、直接存取的方式。

主要是这种直接存取方式读写数据时比较自由,可以在程序招待的过程中对任意一个指定的记录进行读写。

例如:

open(3,file='

quanguogdp.dat'

access='

direct'

form='

formatted'

recl=100)

300format(a10,2x,a10,2x,f10.0,2x,f20.0,2x,f20.0)

doi=1,23

read(3,300,rec=i)m(i)

enddo

close(3)

3.排序

在设计过程中,多处用到了排序问题。

我是先把要排序的数据值赋给一个数组,然后用选择排序法对此数组进行排序,然后返回进行其它操作。

选择排序法是排序法中比较好的一种方法,在很多地方都有应用。

4.在QuickWinApplication界面中显示图文

QuickWinApplication环境中主要调用的模块是msflib模块,我的这个系统主要调用的子程序如下:

Initializefonts初始化前景

floodfillrgb颜色填充

setcolorrgb设置颜色

setfont设置字体

clearscreen清空屏幕

moveto移动光标

outgtext显示字符

pie画扇形

lineto画直线

5.主模块和子模块的连接

在主模块中用一个if语句来和不同的子模块建立连接,调用子模块(子例行程序)。

返回主模块的时候有很多方法,可以用goto语句来返回,也可以用一个循环结构配合read语句来实现。

本系统采用的是后一种方法。

6.数据的公用

在编程实现过程中会遇到各个子程序之间数据的传输问题,比如在绘制饼图和折线图的时候就要用到前面的统计数据,这时就要用common语句实现不同程序单元之间的数据通信。

本系统中涉及到一处,故只需建立一个无名公用区:

Commonk1,k2,k3,k4

7.数据类型的转换

在QuickWinApplication中输出文件时,必须要把文件中的数据全部改成字符型数据才会显示出来。

这就要用到read语句或者write语句。

比如:

write(char,40)ave

40format(f20.0)

上面这段程序就实现了将ave的数值赋给字符变量char。

在数据形成文件时,也可以直接读取文件中的记录,本系统在实现过程中多数采用了这种方法。

比如在输出源数据的时候:

open(1,file='

recl=80)

read(1,200)t

200format(a80)

close

(1)

8.界面设计

在设计界面的时候,基本上是一个模块对应一个界面(有时有两个)。

各个界面切换的时候都会在界面上显示一些提示信息。

每个界面都经过精心设计,背景,字体,表格等都达到最佳的视觉效果。

下面是一些主要的界面:

9.系统测试

用户启动本系统后,会看到一个系统主界面。

按照界面上提示提示信息用户可以选择不同的功能。

①用户若选择输入1,再回车,则将切换到另一个界面,用户可以选择输入数据或直接查看源数据。

若直接查看源数据,则会切换到一个数据界面。

这时用户可根据提示信息随便输入一个整数,再回车就可以回到主界面。

②用户若选择输入2,再回车,则将切换到统计结果界面。

随便输入一个整数,再回车可以回到主界面。

③用户若选择输入3,再回车,则系统会自动按工业总产值排序,并显示在屏上,在文件夹里还会生成文件。

④用户若选择输入4,再回车,则界面会显示工业总产值在1000亿元以下、1000~2000亿元、2000~3000亿元、3000亿元以上的城市数。

再随便输入一个整数,回车就会转到分布饼图界面。

再随便输入一个整数,回车就会转到分布折线图界面。

⑤用户若选择输入5,再回车,则界面会显示GDP增长率和排序结果,随便输入一个整数,再回车可以回到主界面。

⑥用户若选择输入0,再回车,则退出本系统。

四、详细设计

1.主模块(ProgramEVERYPROVENCEGDP_SYSTEM)流程图

2.Subroutineinputdata

①清屏,设计界面,写提示语。

②从键盘输入一个字符char6。

用一个if语句,若char6为空,则等待用户输入源数据,存入文件quanguogdp.dat中;

若char6不为空,继续。

③读取quanguogdp.dat中的数据,给s(23)赋值。

④将s(23)显示在界面上,画表格。

显示返回提示语。

3.Subroutinetongji

①读取quanguogdp.dat中的数据,给s(23)赋值。

②用一个循环结构统计gdp总数sum,计算平均值ave=sum/23。

③用循环结构统计gdp高于ave的城市数k。

④清屏,设计初始界面。

⑤在界面上显示统计结果,显示返回提示语。

4.Subroutinegdppaixu

②用选择排序法升序排列s(23).gop。

③将排序后的s(23)按格式(a10,2x,a10,2x,f10.0,2x,f20.0,2x,f20.0)写入文件paixu.dat中。

④清屏,将s(23)显示在界面上,画表格。

5.Subroutinefenduan

②用循环结构读取quanguogdp.dat中的数据,同时统计工业总产值在1000亿元以下、1000~2000亿元、2000~3000亿元、3000亿元以上的城市数k1,k2,k3,k4。

③清屏,设计初始界面。

④在界面上显示统计结果,显示下一步提示语。

6.Subroutinebingtu

①用公用区实现数据k1,k2,k3,k4通信。

②进行坐标换算,将一个整圆分块。

在使用PIE函

数画扇形的时候,需要用到8个参数。

本系

统在绘制饼图的时候(如右图),先确定圆的

大小,即:

x1=300;

y1=100

x2=700;

y2=500

还要确定第一个扇形的始边,即

x3=500;

y3=100

剩下的三个点就要利用k1,k2,k3,k4来计算:

x4=500-200*cos((2.0*k1/23.0-0.5)*py)

y4=300+200*sin((2.0*k1/23.0-0.5)*py)

x5=500+200*cos((2.0*(k1+k2)/23.0-1.5)*py)

y5=300-200*sin((2.0*(k1+k2)/23.0-1.5)*py)

x6=500+200*cos((2.0*(k1+k2+k3)/23.0-1.5)*py)

y6=300-200*sin((2.0*(k1+k2+k3)/23.0-1.5)*py)

其中py=3.14159265

④绘制饼图,写标识语,显示下一步提示语。

7.Subroutinezhexian

①清屏,设计初始界面。

②用moveto和lineto函数画坐标系。

③用moveto和outgtext函数标出坐标。

④用公用区实现数据k1,k2,k3,k4通信,计算出折线各端点的位置,画出折线。

⑤显示返回提示语。

8.Subroutineincrease

①定义结构体gdpincreace,在此结构体下定义另一数组t(23)。

②读取quanguogdp.dat中的数据,给s(23)赋值。

③计算gdp增长率,将省名、省会、2004年gdp、2005年gdp、gdp增长率赋给t(23)。

④用选择排序法将t(23)按gdp增长率排名,并将存入文件increase.dat中。

⑤清屏,设计初始界面。

⑥将t(23)及排名显示在界面上,显示返回提示语。

五、源程序代码

主模块程序

programEVERYPROVENCEGDP_SYSTEM

usemsflib

integer(4)color,fff

integer(4)fontnum

type(xycoord)xy

integerinput

parameter(py=3.14159265)

do

CALLCLEARSCREEN($GCLEARSCREEN)

color=setcolorrgb(#9056df)

fontnum=initializefonts()

fff=floodfillrgb(100,100,#ffffff)

fff=setcolorrgb(#abfdef)

fontnum=setfont('

t'

'

宋体'

h45w30e'

callmoveto(120,70,xy)

calloutgtext("

全国各省会城市GDP统计系统"

楷体'

h28w15e'

callmoveto(210,150,xy)

制作人:

成丕富日期:

2006-6-28"

h18w8e'

callmoveto(110,200,xy)

本系统的功能有:

"

callmoveto(150,240,xy)

(1)输入/查看2005年全国各省会城市GDP源数据"

callmoveto(150,270,xy)

(2)计算全国省会2005年GDP的平均值,统计GDP高于平均值的城市数"

callmoveto(150,300,xy)

(3)按第一产业(即农林牧渔业总产值与工业总产值之和)总产值的升序排序"

callmoveto(150,330,xy)

(4)统计工业总产值在1000亿元以下、1000~2000亿元、2000~3000亿元、3000亿元"

callmoveto(180,360,xy)

以上的城市数,并绘制分布饼图和折线图"

callmoveto(150,390,xy)

(5)计算各城市2005年较2004年相比的GDP增长幅度,并排名"

fff=setcolorrgb(#aa0000)

callmoveto(120,500,xy)

请选择您所要使用的功能(输入对应的序号,再按回车键):

____"

callmoveto(120,550,xy)

按“0+ENTER”退出本系统"

read*,input

if(input==0)exit

if(input==1)then

callinputdata

elseif(input==2)then

calltongji

elseif(input==3)then

callgdppaixu

elseif(input==4)then

callfenduan

callbingtu

callzhexian

elseif(input==5)then

callincrease

endif

end

输入/查看数据子模块程序

subroutineinputdata

usemsflib

typeeveryprovenceGDP

integer(4)fontnum,x1

integerturn

character*10char6*1

character*80t(23)

color=setcolorrgb(#ffff00)

仿宋'

h35w15e'

callmoveto(50,50,xy)

请按“ENTER”键开始输入源数据"

callmoveto(50,150,xy)

按“数字键+ENTER”键跳过"

read*,char6

if(char6=='

)then

doi=1,23

read(*,1000)s(i).provence,s(i).capital,s(i).population,s(i).gdp,s(i).gop

enddo

open(8,file='

write(8,1000,rec=i)s(i)

close(8)

1000format(a10,2x,a10,2x,f10.0,2x,f20.0,2x,f20.0)

fff=floodfillrgb(100,100,#000000)

h17w10e'

callmoveto(100,90+20*i,xy)

calloutgtext(t(i))

color=setcolorrgb(#11aadd)

callmoveto(90,108+20*i,xy)

x1=lineto(850,108+20*i)

callmoveto(90,75,xy)

x1=lineto(90,568)

callmoveto(180,75,xy)

x1=lineto(180,568)

callmoveto(300,75,xy)

x1=lineto(300,568)

callmoveto(455,75,xy)

x1=lineto(455,568)

callmoveto(650,75,xy)

x1=lineto(650,568)

callmoveto(850,75,xy)

x1=lineto(850,568)

x1=lineto(850,75)

callmoveto(90,108,xy)

x1=lineto(850,108)

color=setcolorrgb(#00aaaa)

callmoveto(100,83,xy)

calloutgtext('

省名省会人口GDPGDP1'

fff=setcolorrgb(#1199ff)

h35w20e'

callmoveto(175,30,xy)

全国各省会城市2005年GDP源数据'

fff=setcolorrgb(#ff0000)

h25w12e'

callmoveto(110,600,xy)

callou

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1