课堂练习之书店促销

一 实验题目:

在节假日的时候,书店都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。在销售《哈利波特》平装本系列中,一共有五卷,用编号0,1,2,3,4来表示。假设每一卷单独销售均需要8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体的折扣情况如下:

本数          折扣

      2          5%

      3          10%

      4           20%

      5           25%

在一份订单中,根据购买的卷数以及本数,就会出现可以应用不同折扣规则的情况。但是,一本书只会应用一个折扣规则。比如,读者一共买了两本卷一,一本卷二。那么,可以享受5%的折扣,另外一本卷一则不能享受折扣。如果有多种折扣,希望能够计算出的总额尽可能的低。要求根据这样的需求,设计算法,能够计算出读者所购买的一批书的最低价格。

二 设计思想:

      由题目要求可知:2本   便宜5%,3本  便宜10%,4本   便宜20%,5本   便宜25%。所以1~5本按照每册买一本来买最便宜;6~10本则要看情况计算,6本  按照5册加一本  也就是5*单价*(1-25%)+1*单价;7本则是  5*单价*(1-25%)+2*单价*(1-5%);8本 是4*单价*(1-20%)*2;9本 是4*单价*(1-20%)+5*单价*(1-25%);10本以上整数部分按套买,个数部分则和前面一样。

三 程序代码:

//2016 6 3
//二十划生 课堂练习之最划算的买书方法
#include <iostream>

using namespace std;

 

void main()

{

    int num,a,b;

    double sumprice;

 

    cout<<"请输入要买的书的本数:"<<endl;

    cin>>num;

    a=num/5;

    b=num%5;

 

    cout<<"最低价格为:";

    if(num<=5)

    {

        if(num==1)

        {

            sumprice=1;

        }

        else if(num==2)

        {

            sumprice=2*(1-0.05);

        }

        else if(num==3)

        {

            sumprice=3*(1-0.1);

        }

        else if(num==4)

        {

            sumprice=4*(1-0.2);

        }

        else if(num==5)

        {

            sumprice=5*(1-0.25) ;

        }

    }

    else

    {

        if(b==0)

        {

            sumprice=a*5*(1-0.25);

        }

         

        if(b==1)

        {

            sumprice=a*5*(1-0.25)+1;

        }

 

        if(b==2)

        {

            sumprice=a*5*(1-0.25)+2*(1-0.05);

        }

 

        if(b==3)

        {

            sumprice=(num-8)/5*5*(1-0.25)+4*2*(1-0.2);

        }

 

        if(b==4)

        {

            sumprice=a*5*(1-0.25)+4*(1-0.2);

        }

    }

    cout<<sumprice<<endl;

} 


 

四 运行结果

五 心得体会

    本次的题目比较简单,由于老师在课堂上已经给出了具体的规律,所以较好实现。

原文地址:https://www.cnblogs.com/wangzongze/p/5560120.html