c语言课程设计银行存钱.doc_第1页
c语言课程设计银行存钱.doc_第2页
c语言课程设计银行存钱.doc_第3页
c语言课程设计银行存钱.doc_第4页
c语言课程设计银行存钱.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

红河学院工学院课程设计报告专业:计算机技术与科学年级: 11 级学号:201101030466姓名: 曹 永 前 成绩:批改时间:红河学院 工学院编制说 明1、本报告供学生课程设计时使用。2、学生应认真阅读课程设计要求。3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。课程设计目录课程名称:高级语言程序设计序号课程设计名称起止页码36银行存钱 设计任务题目该存多少钱,假设银行一年整存零取的月利息为0.68%。现在某人手上有一笔钱,他打算在今后的十年中每年年底取出500元,到第十年时刚好取完,请算出他存钱时应该存入多少?班级11计科指导教师地点成绩学年2011-2012开始日期结束日期一、问题分析根据这学期所学内容,解决这类问题有多种方法,由于对这些方法都不熟悉,不知道使用哪一种方法更为简便,我打算在这个程序中运用不同方法解决问题,分析比较两种方法,得出两种方法的利弊,方便以后的学习利用.数据分析:1.(倒推法分析)设:年初存款为x,年底连本带息为y则y=x*(1+12*0.0068)即:x=y/(1+12*0.0068)(递推公式)第十年:y=500第九年:y=(500+第十年初的存款)第八年:y=(500+第九年初的存款)第一年:y=(500+第二年初的存款)方法分析:(使用倒推法) 第十年初存款x10=(0+500)/(1+12*0.0068)第九年初存款x9=(x10+500)/(1+12*0.0068)第一年初存款x1=(x2+500)/(1+12*0.0068)2.(顺序分析)假设第一年存n元,那么年终应当是n=n*(1+0.68%*12)-500;第二年也是n=n*(1+0.68%*12)-500第三年n=n*(1+0.68%*12)-500第四年n=n*(1+0.68%*12)-500方法分析(递归法)第十年n=n*(1+0.68%*12)-500为零所以n=500/(1+0.68%*12)为第九年底,第十年初的数量第九年初n=(500+第十年初的数量)/(1+0.68%*12)第八年初n=(500+第九年初的数量)/(1+0.68%*12)第二年初n=(500+第三年初的数量)/(1+0.68%*12)第一年初n=(500+第二年初的数量)/(1+0.68%*12)二、设计流程图定义per为年利率,i=0,n=10定义变量k,x=0(初值) 输出结果x=(x+500)/(1+0.0068*12)K的值从101,for(k=10;k0;k-)1倒推法2.递归法结束结束n减1输出结果n=0?a+= 500;a = a/(1+per)递归出口是否循环三、程序代码1(倒推法)#includestdio.hvoid main() int k; float x=0;for(k=10;k0;k-) /k从10开始,只要k0,执行之后k自减(倒推法)x=(x+500)/(1+0.0068*12);/每一年的存款等于下一年的存款加500再除以(1+0.0068*12)printf(He must save %f at firstn,x);/输出第一次需要存入的金额2.递归法#includestdio.h#includemalloc.h#define per 0.0816/银行的年利率,等于月利率0.68%*12void count(int n,float a)if (n = 0)/如果n等于0,则输出a,递归出口printf(%fn,a);a += 500;/a=a+500a = a/(1+per);/下一年的存款除以(1+per)等于上一年的count(n-1,a);void main()float i = 0;int n = 10;count(n,i);3.把结果写进文件(倒推法)#includestdio.h#includestdlib.hvoid main() int k; double x=0;for(k=10;k0;k-) /k从10开始,只要k0,执行之后k自减(倒推法)x=(x+500)/(1+0.0068*12);/每一年的存款等于上一年的存款加500再除以(1+0.0068*12) FILE*fp; fp=fopen(E:daan1.txt,w); fprintf(fp,%f,x); fclose(fp);printf(He must save %f at firstn,x);/输出第一次需要存入的金额递归法#includestdio.h#includemalloc.h#define per 0.0816/银行的年利率,等于月利率0.68%*12void count(int n,float a)if (n = 0)/如果n等于0,则输出a,递归出口 FILE*fp; fp=fopen(E:daan.txt,w); fprintf(fp,%f,a); fclose(fp);printf(%fn,a);a += 500;/a=a+500a = a/(1+per);/下一年的存款除以(1+per)等于上一年的count(n-1,a);void main()float i = 0;int n = 10;count(n,i);四、运行结果与分析1.倒推法2.递归法五、课程设计过程问题讨论问题讨论及解决办法:1. 设计时,先完成初步构思,然后对主函数设计的各个模块进行查阅资料进行编程。在环境中进行调试。2. 设计过程中,不应该忽视环境提示的警告。要及时修正并仔细认真检查。3. 程序调试时许多错误使自己学到知识,更好的巩固了课本知识。4. 刚开始的时候不会把结果写入文件(最主要是参数出错,没有弄清各语句的参数).总结:1. 这个课程设计的主要目的是学会运用知识来解决实际问题,在开始的时候我已说明我要以不同的方法来解决问题,来得到两种方法在解决这个问题的难易、利弊。2. 从程序的问题分析上来看,倒推法当然是倒着来分析,而递归是顺序来分析,顺序分析可能共容易理解。3. 从代码上来看,运用倒推法的程序代码更为简洁,只用一个for循环节能的到答案,运用递归法首先必须找到递归出口,程序代码与倒推法相比起来更长,更难理解。4. 总体来看,没有哪一种方法是绝对简单的,需要具体问题具体分析,根据自己对知识的掌握程度在进行方法的选择。5. 这一次课程设计使我体会的

温馨提示

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

评论

0/150

提交评论