C课程设计Fibonacci数列输出系统.doc_第1页
C课程设计Fibonacci数列输出系统.doc_第2页
C课程设计Fibonacci数列输出系统.doc_第3页
C课程设计Fibonacci数列输出系统.doc_第4页
C课程设计Fibonacci数列输出系统.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13 信息科学与技术学院程序设计基础课程设计报告题目名称: Fibonacci 数列输出系统 学生姓名: 侯 明 学 号: 2011508026 专业班级: 计算机科学与技术专业(1)班 指导教师: 郑 瑶 2012年 7 月 2 日目 录1 课程设计题目与要求31.1设计题目31.2设计要求.32 总体设计.43 详细设计53.1数据结构设计53.2主模块设计5 (1)数据操作模块.5 (2)循环模块.64 运行结果75 课程设计总结96 参考文献.101 课程设计题目与要求1.1设计题目 :Fibonacci 数列输出系统1.2设计要求:(1)简单变量“数据平移”方法计算Fibonacci 数列的第n项(正数n通过键盘输入):说明变量old1=1,old2=1,newitem:新的Fionacci项newitem总是“距它最近”的前两项(old1与old2)的累加和。而后通过“old1=old2;old2=newitem;”进行所谓的“数据平移”。接着计算另一个Fibonacci项newitem,依次循环,直到求出数列的第n项时为止。(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f0=1,f1=1,而后通过fi=fi-2+fi-1;一次计算出f2到fn-1(注意fn-1恰为所要求出的第n项)并将该值显示在屏幕上。(3)其他要求 (1) 只能使用c+或c语言,源程序要有适当的注释,使该程序容易易读。(2) 至少采用文本菜单界面(3) 学生可自动增加新功能模块(4) 完成系统总结报告以及系统使用说明书。2 总体设计:把握Fibonacci递推公式意义确定函数类型及变量:根据函数类型选用适当的方法开始界面图 2-1 总设计图3 详细设计3.1 数据结构设计:(1)通过简单变量“数据平移”方法计算Fibonacci 数列的第n项(正数n通过键盘输入):说明变量old1=1,old2=1,newitem:新的Fionacci项newitem总是“距它最近”的前两项(old1与old2)的累加和。而后通过“old1=old2;old2=newitem;”进行所谓的“数据平移”。接着计算另一个Fibonacci项newitem,依次循环,直到求出数列的第n项时为止。具体如下:long f10000; /定义一个数组来乘放斐波那契数列 int i,m ; /定义两个变量来决定斐波那契数列长度fi+2=fi+1+fi; /数据平移及数组法求得斐波那契数列(2)使用数组求出Fibonacci数列的第n项(正整数n通过键盘输入)并显示在屏幕上:说明数组f用来存放Fibonacci数列的各项之值,且仅初始化前两个元素f0=1,f1=1,而后通过fi=fi-2+fi-1;一次计算出f2到fn-1具体如下:for (i=0;i=n;i+) if (i=0|i=1)fi=1; else fi=fi-1+fi-2; /定义一个数组f 进行值传递3.2主模块设计1数据操作模块 Fibonacci输出系统1输入一个正整数3 选择一种算法结构后进行计算5退出系统4 输出所求Fibonacci项数2 选择方法结构 图3.2-1 数据操作模块图2选择循环模块 :输入n值判断n: n=0 n0显示错误执行操作图 3.2-2选择循环模块图 4 运行结果 截图及说明 图4-1 windows 侯明.exe程序执行界面图 4-2 windows 侯明.exe程序执行过程中5 课程设计总结在计算Fibonacci数列时需要循环相加,但首先要保证n的值是大于2的。在n的值为1或2的时候,f(n)=1。所以在进行循环之前要先判断n是否为1或2,将这两种情况排除后才能利用公式f(n)=f(n-1)+f(n-2)进行累加。这是在编写这个程序中需要注意的很重要的一部分。经过抽其中几项,本程序均能达到实验要求,得出正确的答案。经过此次的课程设计,我也学习到了c+课程设计的知识。首先,在程序的制作过程中,遇到了很多意想不到的困难,自己一个人解决起来有难度,于是也少不了同学的帮助,深刻体会到开发程序不只是一两个人就能很好的完成的,要大家互相帮助,共同探讨问题,才能更好的解决困难。其次,编程设计中遇到了很多没有学过但需要用到的内容,怎样将其变成自己掌握的内容就很重要了,对知识的掌握应该做到融会贯通。最后,我觉得接到一个任务不能立刻就下手编程序,应该先理清楚思路,列出大概的框架,在需要注意的细节处做好标记,写出应注意的问题;然后再编程。多翻看书籍,尽量简练的句子写出来。盲目的编写程序只会让以后的工作很难展开,这些经验必将对以后的学习起到重要的作用。6 参考文献1 谭浩强,C程序设计题解与上机指导(第二版),北京,清华大学出版社,2000年9月。2 侯俊杰,深入浅出MFC,武汉,华中科技大学出版社,2001年1月。3 丁有和,Visual C+实用教程,北京,电子工业出版社,2007 年1月。4 Thomas H.Cormen,算法导论,湖北,机械工业出版社,2006 年9月。5 编程之美小组,编程之美,北京,电子工业出版社,2009 年3月。6 孙鑫,VC+深入详解,北京,电子工业出版社,2000年9月。7 陈维兴,C+面向对象程序设计教程,北京,清华大学出版社,2009年6月。8 杰夫瑞,Windows 核心编程,北京,清华大学出版社,2008年9月。9 Jeff Prosise ,MFC Windows程序设计,北京,清华大学出版社,2007 年5月。10 Paul McJones,编程的本质,湖北,机械工业出版社,2010 年3月。源代码:#include #include #include #include#define MAXLength 10000using namespace std;int main() coutendlendl; cout -endl; cout -endl; cout -endl; cout * Fibonacci 输出系统*endlendl; coutntttttt信息科学与技术学院; coutntttttt计算机科学与技术专业; coutntttttt侯明 - 学号:2011508026endlendlendlendlendlendlendl;char a;int b,i,n;coutb;switch(b) case 1: double fMAXLength; /定义一个数组 again: printf(输入n(0n%d):,MAXLength); scanf(%d,&n); if (n=MAXLength|n0) /判断n是否大于0,若是则继续进行,若不是则返回! printf(输入的n太大或太小!); return 1; for (i=0;i=n;i+) /循环结构 if (i=0|i=1)fi=1; else fi=fi-1+fi-2; printf(%-10.0f ,fi); if(i%5=4)printf(n);/每输出5个输出一个换行 printf(n); cout继续输入请按y,按 n 结束并跳转至数据平移求Fibonacci数列na; if(a=y|a=Y) goto again; /继续或者退出 if(a=n|a=N) goto fuc; / 如果输入n直接调至fuc 使用数据平移求Fibonacci数列break;fuc:while(1) long a,b,old1=1,old2=1;int i,n;Sleep(60*6);coutendl请输入所需求的第N项。n;if(n=0) cout出错了!endl;break; /输入为0的话,就会结束循环,并给出出错提示。fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论