《Fortran课程设计报告》由会员分享,可在线阅读,更多相关《Fortran课程设计报告(28页珍藏版)》请在金锄头文库上搜索。
1、 课程设计报告书课程名称: Fortran语言课程设计 班 级: 土木工程2005级06班 学 号: 1201050624 姓 名: 指导教师: 二六 年 六 月目录一、 课程设计任务书3二、 需求分析5三、 概要设计5四、 系统实现6五、 详细设计10六、 源程序代码12七、 总结28八、 参考文献28FORTRAN程序设计课程设计任务书一、 实践目的通过本课程设计,培养利用程序设计技术进行计算机与专业知识的交叉应用,综合解决实际问题的能力。通过自己分析问题、寻求算法、编写、调试程序、解决问题的过程,掌握多模块结构的程序设计与调试方法,以及程序模块间的数据传递方法,建立提出问题、分析问题、解
2、决问题的思维方式,促进灵活运用所学知识解决问题能力的提高。二、 设计任务制作一个信息管理系统,从以下题目中任选其一。1上网查询各省会城市2005年生产总值(GDP)、农林牧渔业总产值、工业总产值,将数据。以统一格式保存在一个纯文本文件tongji.dat中。编程实现:(1)从文件tongji.dat中读取数据,计算全国省会2005年GDP的平均值,统计GDP高于平均值的城市数;(2)按第一产业(即农林牧渔业总产值与工业总产值之和)总产值的升序排序,将排序后的数据存入文件fenxi.dat中。(3)统计工业总产值在1000亿元以下、10002000亿元、20003000亿元、3000亿元以上的城
3、市数,并绘制分布饼图和折线图。(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.0000050.000010、0.0000100.000015、0.0000150.000020、0.000020以上的数据个数,并绘制分布饼图和直方图。三、 设计报告要求1 设计报告字数一般不少于3
4、000字,内容应层次分明,文字简练,说明透彻,立论正确。2 报告要理论联系实际,运用科学的研究方法对选题进行综合分析,有完整的设计方案。3 基本内容:(1)需求分析:包括设计题目、设计要求以及系统功能需求分析;(2)概要设计:包括系统总体设计框架和系统功能模块图;(3)详细设计。包括主要功能模块的算法设计思路以及对应的工作流程图;(4)主要源程序代码。包括存储结构设计说明,以及完整源程序清单;(5)调试分析过程描述。包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);(6)总结。包括对自己的工作作出客观的评价(优、缺点)和设计进
5、一步的优化思路。(7)附录和参考文献。四、 考核方式与评分办法1 程序调试结果按优、良、中、及格、不及格五档评分,占总成绩的60%。2 实验过程评价:在上机操作过程中学生上机能力按好、较好、差三档评定,占课程总成绩的20%。3 实验报告评价占课程总成绩的20%。一、需求分析1课题上网查询各省会城市2005年生产总值(GDP)、农林牧渔业总产值、工业总产值,将数据。以统一格式保存在一个纯文本文件tongji.dat中。编程实现:(1)从文件tongji.dat中读取数据,计算全国省会2005年GDP的平均值,统计GDP高于平均值的城市数;(2)按第一产业(即农林牧渔业总产值与工业总产值之和)总产
6、值的升序排序,将排序后的数据存入文件fenxi.dat中。(3)统计工业总产值在1000亿元以下、10002000亿元、20003000亿元、3000亿元以上的城市数,并绘制分布饼图和折线图。(4)计算各城市2005年较2004年相比的GDP增长幅度,计算并输出自己所在省的省会城市GDP增长幅度在各省会城市中的排名。2此课题有以下几点要求(1)查询2005年GDP各项数据,这可以通过上网查询的方式实现。(2)将数据保存在纯文本文件tongji.dat中,可以编写程序写在文件中,或者直接输入。(3)从文件中读取数据。(4)计算平均值,统计数据,排序,输出数据。(5)绘制分布饼图和折线图,这需要在
7、QuickWin Application 环境下实现。(6)实现主模块和子模块的连接。二、概要设计(总体设计框架) 1本系统是在QuickWin Application 环境下实现的,由一个主模块和五个子模块组成。其中主模块的功能是建立一个主界面,并和各个子模块连接。五个子模块的程序名和功能如下:(1)Inputdata() 输入/查看2005年全国各省会城市GDP源数据(2)Tongji() 计算GDP的平均值,统计GDP高于平均值的城市数(3)Gdppaixu() 按第一产业总产值的升序排序(4)Fenduan() 将城市按工业产值分段 Bingtu()绘制分布饼图 Zhexian()绘制
8、分布折线图(5)Increase()计算各城市的GDP增长幅度,并排名2各个模块的具体连接结构如下图:计算gdp平均值,统计高于平均值的城市数按第一产业升序排列,存入文件paixu.dat 中统计工业总产值在1000亿元以下、10002000亿元、20003000亿元、3000亿元以上的城市数计算GDP增长幅度,将增长幅度排名主控模块将源数据存入纯文本文件quanguogdp.dat中,读取数据绘制分布饼图绘制分布折线图三、系统实现1主要变量的定义 本系统主要处理的是全国GDP的数据,一条记录有很多个数据,用结构体数组s (23)来表示: type everyprovenceGDP chara
9、cter*10 provence character*10 capital real population real gdp real gopend typedimension s(23)type(everyprovenceGDP):s涉及到在界面输出的变量integer(4) color,fff integer(4) fontnumtype(xycoord) xyinteger(4) dummy,status2文件的存取本课题涉及的文件的存取内容主要有:建立文件,打开文件,读文件,写文件和关闭文件。在系统实现过程中用的都是有格式、直接存取的方式。主要是这种直接存取方式读写数据时比较自由,可以
10、在程序招待的过程中对任意一个指定的记录进行读写。例如:open(3,file=quanguogdp.dat,access=direct,form=formatted,recl=100)300 format(a10,2x,a10,2x,f10.0,2x,f20.0,2x,f20.0)do i=1,23 read(3,300,rec=i)m(i)end doclose(3)3排序在设计过程中,多处用到了排序问题。我是先把要排序的数据值赋给一个数组,然后用选择排序法对此数组进行排序,然后返回进行其它操作。选择排序法是排序法中比较好的一种方法,在很多地方都有应用。4在QuickWin Applicat
11、ion界面中显示图文QuickWin Application环境中主要调用的模块是msflib模块,我的这个系统主要调用的子程序如下: Initializefonts 初始化前景 floodfillrgb颜色填充 setcolorrgb设置颜色 setfont设置字体 clearscreen清空屏幕 moveto移动光标 outgtext显示字符 pie画扇形 lineto画直线5 主模块和子模块的连接在主模块中用一个if 语句来和不同的子模块建立连接,调用子模块(子例行程序)。返回主模块的时候有很多方法,可以用goto 语句来返回,也可以用一个循环结构配合read 语句来实现。本系统采用的是
12、后一种方法。6数据的公用在编程实现过程中会遇到各个子程序之间数据的传输问题,比如在绘制饼图和折线图的时候就要用到前面的统计数据,这时就要用common 语句实现不同程序单元之间的数据通信。本系统中涉及到一处,故只需建立一个无名公用区:Common k1,k2,k3,k47.数据类型的转换在QuickWin Application中输出文件时,必须要把文件中的数据全部改成字符型数据才会显示出来。这就要用到read语句或者write语句。比如:write(char,40)ave 40 format(f20.0)上面这段程序就实现了将ave 的数值赋给字符变量char 。在数据形成文件时,也可以直接读取文件中的记录,本系统在实现过程中多数采用了这种方法。比如在输出源数据的时候:open(1,file=quanguogdp.dat,access=direct,form=formatted,recl=80)read(1,200)t200 format(a80)close(1)8界面设计 在设计界面的时候,基本上是一个模块对应一个界面(有时有两个)。各个界面切换的时候都会在界面上显示一些提示信息。每个界面都经过精心设计,背景,字体,表格等都达到最佳的视觉效果。下面是一些主要的界面: 主界面 源数据 统计结果 按工业总产值排序 分布结果 饼图 折线图 增长率排名9系统测试用户启动本系统