博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
个人项目——买书
阅读量:5324 次
发布时间:2019-06-14

本文共 2081 字,大约阅读时间需要 6 分钟。

用折后最低价买书

一、程序要求

    书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:

                       本数                    折扣

                        2                       5%

                        3                       10%

                        4                       20%

                        5                       25%

    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。

    设计算法能够计算出读者购买一批书的最低价格。

二、程序设计思想

    列举出买十本书以内的所有情况,从中找规律:买一本的时候不打折扣,价钱为 8;买两本的时候买最低价为 15.2(1+1);买三本的时候最低价为 21.6(1+1+1);买四本的时候最低价为25.6(1+1+1+1);买五本的时候最低价为30(1+1+1+1+1);买六本的时候最低价为 38(5+1);买七本的时候最低价为 45.2(5+1+1);买八本的时候最低价为 51.2(4+4);买九本的时候最低价为 55.6(5+4);买十本的时候最低价为 60(5+5)。按照上面的情况可以看出:购买8本书时,最低价并不是(5+3),所以每10本书是一个循环。书的总数除以10求余求商:余数部分按10本以内数目计算;商数部分按整套购买计算。按此类推,算出最低价。

三、源程序

 

//李俏  2016,6,2//根据折扣,计算买书的最低价#include
using namespace std;int main(){ int num;//书的数量 double money;//折后的钱数 int i, j; cout << "请输入要买的书的数量:"; cin >> num; while (num <= 0) { //exit(1); cout << "请重新输入要买的书的数量(数量必须为正数):"; cin >> num; } i = num % 10; j = num / 10; switch (i) { case 0: money = j * 40 * 0.75*2 ; break; case 1: money = j * 40 * 0.75 * 2 + 8; break; case 2: money = j * 40 * 0.75 * 2 + 8 * 2 * 0.95; break; case 3: money = j * 40 * 0.75 * 2 + 8 * 3 * 0.9; break; case 4: money = j * 40 * 0.75 * 2 + 8 * 4 * 0.8; break; case 5: money = j * 40 * 0.75 * 2 + 8 * 5 * 0.75; break; case 6: money = j * 40 * 0.75 * 2 + 8 * 5 * 0.75 + 8; break; case 7: money = j * 40 * 0.75 * 2 + 8 * 5 * 0.75 + 8 * 2 * 0.95; break; case 8: money = j * 40 * 0.75 * 2 + 8 * 4 * 0.8 * 2; break; case 9: money = j * 40 * 0.75 * 2 + 8 * 5 * 0.75 + 8 * 4 * 0.8; break; } cout << "这批书的折后价为:"<
<

 

四、结果截图

 

五、心得体会  

  课堂上,老师引导我们:根据题设,列举各种情况并且计算各种可能的结果,经过比较得到最低价;再然后从购买10以内数量的书、得到的每个最低价中,找规律,但是由于自己的不自信、计算的结果不正确,没能找到规律;最后,老师给出了思路——书的总数超过10本时,也可按10本以内的计算方法计算,并且指出购买8本书是一个特殊情况。

  就实现来讲,相比前两次的课堂练习,这次的还是比较简单的,关键在于解题的思路和从中发现的规律。这次练习实现后,内心还有点儿小激动,因为题目不太复杂,可以把自己的理解以程序的形式呈现出来,但是激动之余,还是有些担心,担心能力不能提高、以后遇到问题还是解决不了。通过本次实验,我复习了一些常用的基础语法点,以后会更加熟练的。

 

转载于:https://www.cnblogs.com/Aliqiao/p/5555039.html

你可能感兴趣的文章
c++中的string常用函数用法总结!
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
字符串比较
查看>>
epoll 技术(转)
查看>>
<转>Shell脚本相关
查看>>
使用FreeMarker加载远程主机上模板文件,比如FTP,Hadoop等(转载)
查看>>
Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)
查看>>
java 注解 学习
查看>>
[leetcode]403. Frog Jump青蛙过河
查看>>
英语音节知识
查看>>
IEEE 802.15.4协议学习之MAC层
查看>>
AngularJS学习篇(十三)
查看>>
Tableau 学习资料
查看>>
中断和异常
查看>>
lucene 全文检索工具的介绍
查看>>
C# MD5-16位加密实例,32位加密实例
查看>>
无线点餐系统初步构思
查看>>
AJAX
查看>>
前端之CSS
查看>>
List注意点【修改】
查看>>