C语言程序报告Word文档下载推荐.docx
《C语言程序报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序报告Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
假设一银行零存整取的月利率为0.63%。
现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第5年刚好取完。
请算出他存钱时存款多少?
2、换零钱:
用1元人民币换成1分、2分、5分的硬币,共有多少种方案?
1.3开发工具
编译器:
VisualBasicC++6.0;
1.4应用平台
WindowsXP;
2详细设计
2.1程序结构
1、存款问题:
通过循环控制求出各参量,示意图如下:
(以整存5年,每年取1000元为例)
输入存款的年数5↓;
for(i=1;
i<
=5;
i++)
i=1;
第5年初存款额(第4年剩余存款);
i=2;
第4年初存款额(第3年剩余存款);
i=3;
第3年初存款额(第2年剩余存款);
i=4;
第2年初存款额(第1年剩余存款);
i=5;
第1年初存款额;
即最初存款;
2、换零钱问题:
通过三重循环,结合判断条件求出各目标参量(以1元为例)
for(a=0;
a<
=100;
a++)一重循环;
for(b=0;
b<
50;
b++)二重循环;
for(c=0;
c<
=20;
c++)三重循环;
判断a*1+b*2+c*5==100;
假真
继续循环;
输出并计数
2.2主要功能
该程序可以求得整存零取的最初存款额。
(以整存5年零取1000元为例)
程序为了计算出各年初的剩余存款额,从而清晰地观察到各年初存款额的变化,进而通过倒推法确定最初存款额。
本程序采用简单的for循环语句,循环条件变量i从1开始,条件为<
=5,增加的步长值为1,;
由数学知识可知,年初的剩余存款额为1000/(1+0.0063*12);
从而求出各目标量。
2、换零钱问题:
该程序可以求出将1元钱换成1分、2分、5分的方案及其个数;
程序为了使各种面值的硬币不断变换数量进而与其它两种硬币数量组合使得总和为输入值(元为单位)n*100;
所以程序设计了三个循环变量a,b,c分别代表1分、2分、5分的个数;
运用三重循环模拟三种面值的硬币数量发生变化,在面值和为100的限制条件下,求得各种情况。
2.3函数实现
1.实际生活存款问题:
#include"
stdio.h"
voidmain()
{
doublefund;
/*定义变量,用以存放存款数*/
intI,year;
printf("
请输入每年的取款金额(元,两位小数)和存款年数:
"
);
/*用户输入存款金额和年数*/
scanf("
%lf%d"
&
fund,&
year);
fund=fund/(1+12*0.0063);
/*求出第year年初的剩余存款额*/
for(i=1;
=year;
{
fund=(fund+1000)/(1+12*0.0063);
/*通过循环分别求出各年初的剩余存款额并进行输出*/
if(year-i!
=0)
{printf("
第%d年的剩余存款为:
%.2lf\n"
year-i,fund);
}/*人民币只需精确到小数点后两位即可*/
elseprintf("
年初存款为:
fund);
}
printf("
以上为各年初的剩余存款(保留两位小数)。
\n"
/*输出数值*/
存钱时应存%.2lf元。
}
2.换零钱问题:
inta,b,c,n=0;
/*定义变量,n用来存放方案个数*/
doublem;
请输入要兑换的钱数(元,<
=10且保留两位小数):
/*用户输入*/
scanf("
%lf"
m);
满足条件时,1分、2分、5分分别对应的个数为:
for(a=0;
=m*100;
a++)/*外层循环代表1分可能出现情况*/
for(b=0;
=m*50;
b++)/*中层循环代表2分可能出现情况*/
{
for(c=0;
=m*20;
c++)/*内层循环代表5分可能出现情况*/
{
if(a*1+b*2+c*5==m*100)/*结果成立的条件*/
{
printf("
%d%d%d;
a,b,c);
/*输出满足条件的情况*/
n++;
/*存放方案个数*/
}
}
}
printf("
总计方案种数:
%d\n"
n);
/*输出*/
2.4开发日志
1、第一个程序编写得很成功,心情很舒畅;
2、第二个程序在显示时出现一些问题,无法完全显示符合条件的结果,还以为是程序错了,将程序中的20、50分别改小,再编译结果和预期很吻合,证明程序没有错误,但还是要找老师问一下,弄清楚;
3、发现自己的程序不能和用户互动,有点遗憾,准备问一下老师能不能改进或者拓展;
4、经搜集信息得知可以自由发挥,故对程序做进一步修改,增强与用户交流能力;
3程序调试及运行
3.1程序运行结果
1、整存零取问题:
(以每年取出1000元为例)
(以1元为例)
3.2程序使用说明
1、操作简单,用户只需按提示输入所需项即可得到结果;
2、同题一;
3.3程序开发总结
1、计算机可以很好的解决生活中的问题,是日常生活的好帮手;
2、编写程序很费脑力和时间,软件工程人员为人们日常生活提供丰富多彩的软件工具,真的很有奉献精神;
而且也很有能力,我要继续学习,争取在大学期间编写出自己的软件;
3、做事要有耐心,C语言没有耐心编不好,生活没有耐心过不好;
4附件(源程序)
inti,year;
fund=(fund+1000)/(1+12*0.0063);
if(year-i!
{printf("
elseprintf("
}2、换零钱问题:
longa,b,c,n=0;
doublem;
a++)
b++)
for(c=0;
c++)
if(a*1+b*2+c*5==m*100)
{
printf("
}