面向对象程序设计课程设计报告如何购买到最多的巧克力.docx

上传人:b****3 文档编号:5272781 上传时间:2022-12-14 格式:DOCX 页数:11 大小:164.74KB
下载 相关 举报
面向对象程序设计课程设计报告如何购买到最多的巧克力.docx_第1页
第1页 / 共11页
面向对象程序设计课程设计报告如何购买到最多的巧克力.docx_第2页
第2页 / 共11页
面向对象程序设计课程设计报告如何购买到最多的巧克力.docx_第3页
第3页 / 共11页
面向对象程序设计课程设计报告如何购买到最多的巧克力.docx_第4页
第4页 / 共11页
面向对象程序设计课程设计报告如何购买到最多的巧克力.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

面向对象程序设计课程设计报告如何购买到最多的巧克力.docx

《面向对象程序设计课程设计报告如何购买到最多的巧克力.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计报告如何购买到最多的巧克力.docx(11页珍藏版)》请在冰豆网上搜索。

面向对象程序设计课程设计报告如何购买到最多的巧克力.docx

面向对象程序设计课程设计报告如何购买到最多的巧克力

购买到最多的巧克力

一目的

利用所学知识,编写出可以解决从自动售货机出购买巧克力时,已知1美元可以购得一块巧克力。

如果我们有n美元,且设置m张优惠券可以兑换一块巧克力,那么最多能够得到多少块巧克力,其中包括优惠券换到的巧克力,以及还有多少张富余的优惠券这一问题,最后将从键盘上键入的内容和输出数据保存到outfile.txt文件夹中。

通过这次课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,学会编制结构清晰、编程风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。

二需求分析

1、输入数据

(1)输入您所拥有的美元金额n;

(2)能够兑换一块巧克力的的优惠券张数m。

2、输出数据

(1)输出最后得到的巧克力块数

(2)富余优惠券的数量

3、程序所达到的功能

从自动售货机处购买巧克力时,已知1美元可以购得一块巧克力。

如果我们有n美元,且设置m张优惠券可以兑换一块巧克力,那么一共能够吃到多少块巧克力,包括优惠券兑换到的巧克力,以及还有多少张富余的优惠券,并且将输出数据保存到outfile.txt文件中。

三概要设计

1、程序核心所解决的问题

(1)兑换后富余优惠券数=兑换巧克力剩余的优惠券数+兑换得到巧克力所带来的优惠券

(2)最多拥有的巧克力数=美元购买的巧克力数+优惠券兑换到巧克力的总数

2、各成员函数的功能、各数据成员的含义

(1)main函数;

voidmain()

{

intm,n,a[2];

charc=0;

ofstreamoutfile;

outfile.open("myfile.txt");

while(c!

='#'){cout<<"请输入金额:

";

cin>>n;

cout<<"请输入可以用多少优惠券兑换一块巧克力:

";

cin>>m;

a[0]=0;

a[1]=n;

(定义兑换之后剩余的优惠券数a[0],最多拥有的巧克力数a[1])用于最终输出程序结果

(2)Fun函数;

intfun(intm,intn,inta[],ints){

if(n

a[0]=n;

}

else

{

a[1]+=n/m;

n=n/m+n%m;

returnfun(m,n,a,2);

}

}

(定义整型美元金额n,能够兑换一块巧克力的的优惠券张数m,定义数组a[],定义形参s)用于判断拥有的美元金额数n是否小于所设定的m张优惠券兑换一块巧克力的数目:

如果小于则输出兑换后剩余的优惠券数为n,最多拥有的巧克力数为n;如果拥有的美元金额数n大于所设定的m张优惠券兑换一块巧克力的数目,则所拥有的巧克力数=a[1]+n/m,n=n/m+n%m,接着返回Fun函数

(3)#include文件流类;

ofstreamoutfile;

outfile.open("myfile.txt")

outfile<<"兑换之后剩余的优惠券数为"<

outfile.close();

将从键盘上入的内容和输出数据保存到myfie.txt文件中。

四详细设计

1、伪代码

intfun(intm,intn,inta[],ints)//定义函数fun,定义整型美元金额n,能够兑换一块巧克力的的优惠券张数m,定义数组a[],定义形参s

{

if(n

{

则输出兑换后剩余的优惠券数为n

}

else//如果拥有的美元金额数n大于所设定的m张优惠券兑换一块巧克力的数目

{

a[1]+=n/m;//则所拥有的巧克力数=a[1]+n/m

n=n/m+n%m;

returnfun(m,n,a,2);//返回函数fun

}

}

voidmain()

{

intm,n,a[2];//定义兑换之后剩余的优惠券数a[0],最多拥有的巧克力数a[1]

charc=0;

ofstreamoutfile;

outfile.open("myfile.txt");//输出到文件myfile.txt

while(c!

='#'){cout<<"请输入金额:

";

输入拥有的美元金额n

输入可以用多少优惠券兑换一块巧克力:

";

输入所设定的几张优惠券能够兑换巧克力的数目m

a[0]=0;

a[1]=n;

fun(m,n,a,2);

输出"兑换之后剩余的优惠券数为"<

outfile<<"兑换之后剩余的优惠券数为"<

c=getchar();

c=getchar();

}

outfile.close();

}

2、流程图

五调试分析

1、调试过程中出现的问题

在visculC++6.0环境下调试,调试过程中发现第一次所编写的程序虽然在结构算法方面没有什么大的问题但是只能够循环一次,如果输入的所拥有美元金额n与设置的m张优惠券兑换一块巧克力数相差较大那么输出结果就是错误的。

如下图:

从中明显可看出输出结果不正确,如果2张优惠券就可以兑换一块巧克力那么最后富余的优惠券数绝对是小于2的。

并且在第一次检查程序时没有将最后的输出结果保存到outfile.txt文件中。

2、解决方案

为了能够得到正确的输出结果,首要的就是解决程序只能够循环一次的问题。

于是通过询问同学并再次翻阅课本有关章节后,我认为应该在程序中添加了一个循环,通过几次修改调试后程序得以运行成功。

通过查阅网上资料在程序中添加了头文件及相应代码使得程序最后从键盘上接受到的数据以及运行得到的结果可以输出保存在outfile.txt文件中。

六测试结果

1、测试计划

输入一系列可行的所拥有的美元金额n与能兑换一块巧克力所需的优惠券张数m的值检测输出结果是否正确。

2、测试数据

拥有的美元金额n

兑换一块巧克力的优惠券张数

兑换后富余的优惠券数

最多拥有的巧克力数

1

10

2

1

19

2

20

7

2

23

3

25

5

1

31

4

34

6

4

40

5

55

5

3

68

6

66

4

3

87

七用户使用说明

1、操作步骤

打开qkl文件夹点击里面第二个文件qkl。

打开后点击保存并进行调试。

界面出现“请输入您拥有的美元金额:

”从键盘上输入您所拥有的美元金额数n。

按回车。

界面出现“请输入可以用多少优惠券兑换一块巧克力:

”从键盘上输入您需要的多少张优惠券兑换一块巧克力的数目m。

按回车。

界面出现运算结果。

按回车。

界面又出现“请输入您拥有的美元金额:

”从键盘上输入您所拥有的美元金额数n。

………..

以此往复便可求得一系列从自动售货机处购买巧克力时,已知1美元可以购得一块巧克力。

如果我们有n美元,且设置m张优惠券可以兑换一块巧克力,那么最多能得到多少块巧克力,包括第一次用美元购买的巧克力和之后用优惠券兑换的巧克力及富余优惠券的张数。

2、查看结果

若想在文件中查看从键盘上键入的一系列m、n的值只需打开qkl文件夹中myfile.txt便可查到。

如下图:

八课程设计总结

课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次课程设计,不仅暴露了我在学习中的一些不足也使我在多方面都有所提高。

同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

在这次设计过程中,锻炼了自己单独设计以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。

由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正。

在实际的上机操作过程中,不仅是让我们了解数据结构的理论知识,更重要的是培养解决实际问题的能力,所以相信通过此次实习可以提高我们分析设计能力和编程能力,为后续课程的学习及实践打下良好的基础。

在这次短短的课程实践里,对“学无止境”这句话,理解更深了,只有不断的学习,才会发现问题,才会引起思考,没有问题才是最大的问题。

同时,一定要踏实,将问题落到实处,不要拖延,不懂就虚心请教他人,学会合作。

本次课程设计,我深刻的认识到要做好一件事,必须要认真的对待,一直都相信那句话“不是你做不好,是你花的心思太少”,有些事,你可以选择把它做好,一定要踏实认真切勿敷衍!

每件事都一样,没有捷径可走,必须要自己动手,自己努力,是问题总有解决的办法,就看你够不够认真。

尤其是像对于课程编程这类问题,更需要有一个好的态度和足够的耐心。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1