200个Fibonacci数计算.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HUNAN UNIVERSITY 程序设计训练 报 告 学生姓名 学生学号 专业班级 指导老师 院长 (系主任) 2012 年 月 日 北 湖南大学程序设计训练报告 第 Ⅰ 页 目 录 一 绪论 二 目的 三 内容和要求 四 设计分析 五 程序调试与结论 六 程序设计心得与体会 七 附录: 参考文献 程序清单 二 目的 (一)此程序要求我们编写一个200个数以内的Fibonacci数列,要求有以下几点: 1.所求数列结果可以在频幕上输出,并要求每行输出3个数; 2.用一文本文件可以将输出结果以相同的格式保存。 3. 用文本保存的计算结果可以用文本编辑器打开。 4. 可以从文件中取出数列中某一项的值。 (二)功能需求: 1.首先要能正确地定义一个Fibonacci数列,并以数组的形式体现,并每一行输出3个。 2.本程序的关键在于如何正确并有效地避免数据溢出的问题,因为若定义Fibonacci数列为一般的int型,那么由于int数据类型的范围是-2^15-----(2^15-1),故很容易出现溢出。所以本程序中在数字存储的时候,采用了字符数组的形式,将数字转换为字符串,如此也就顺利解决了以上问题。 3.大家都知道Fibonacci数列的特点,是第一第二项为1,从第三项开始,前两项之和为第三项的值。考虑到数据溢出及将数字转换为字符串这两个问题,该程序必然要用到大数的加法。 4.在Fibonacci数列的实现中,两个大数相加,将大数的每一位都看做是字符数组的每一项,根据两数位数的不同,分情况讨论,并将运算结果保存到第三个字符数组中。在进行数字的顺序调整之后,即以上任务完成。 5.在读写文件时:以只读“read”或只写“write”方式打开一个文件时,要注意:在打开文件之前,首先应该定义一个文件指针变量,如FILE *fp;其次,若打不开文件,应打印说明,同时用exit()判断是否正确退出。数字打印时,考虑到文本文件,应用fprintf()函数;当文件操作完成时,应用fclose()关闭。 三 内容和要求 本程序由本人在查阅网络文献之后与同学探讨后独立完成,其中包括指针函数char* addfab(char* s1,char* s2),用来实现大数相加时的类型转换以及运算结果的输入;还有整型函数int Fibonacci(int n),用来实现Fibonacci数列的运算以及在文本文件中的输入;再有char* Read(int n)用以实现文件的读操作。还有全局变量char s4[100]和char buf[100]等,而在这三大函数内部,又包含了若干小函数,其详细内容会在以下的总体程序设计中全面讲解。 四 设计分析 系统分析: 模块分析:本程序可分为四大模块,即:char*addfab函数,用来实现大数的相加并将运算结果以字符串的形式保存在字符数组中; int Fibonacci(int n)函数,是根据此数列的特点,嵌套了char*addfab函数,对Fibonacci数列进行具体实现,并使其结果同步保存到相应的文本文档之中; char* Read(int n)函数,即将此数列的结果进行读操作; main()函数,即从整体出发,调用了Fibonacci()函数及Read()函数,实现了程序中需要将200个数以内的数列输出并指明其中具体哪一个的任务。 (2)基本的数据结构设计: 实现大数相加的addfab()函数和文件读操作函数Read()函数为字符型,实现数列的Fibonacci函数为整型数。 (3)模块设计 备注说明: a.此为大数相加字符函数addfab的简易流程图,在此函数中,刚开始定义字符数组s1[]与s2[],及若干循环变量,然后判断len1与len2的大小关系,即明确是同位相加还是异位相加。 b.接下来就是字符数组各位相加并保留结果,放到字符数组s3[]中,然后运用字符数组s4[]将s3[]倒序输出即可。 备注说明:a.根据Fibonacci数列的特点,第一二项值为1,而从第三项开始,运用strcpy(a,b)函数,即将b内容复

您可能关注的文档

文档评论(0)

chqs52 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档