zoukankan      html  css  js  c++  java
  • 课堂小练习

    一.题目及要求

    题目:

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

    具体折扣如下所示: 本数 折扣 2本    5%

                  3本    10%

                  4本    20%   

                  5本    25%

    要求:

    根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。

    二.设计思路

    1).<=5,最理想的状态是这几本书都不一样,直接按对应的折扣购买就可以

    2).若6<=x<=9,理想状态是里面每个类别最多有两本重复的,分别计算6,7,8,9时,书的最低价格。

    3).若>=10,和2)的情况重复

    三.源代码

    // Test_sale.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include<stdio.h>
    #include<iostream.h>
    float discount_2(int number)//当数量在6到10 之间时
    {
        float sum;
        switch(number)
        {
            case 6: sum=38; break;
            case 7: sum=45.2; break;
            case 8: sum=51.2; break;
            case 9: sum=55.5; break;
            case 10: sum=60; break;
            default:cout<<"ERROR!!!"<<endl;
        }
            return sum;
    }
    float discount_3(int number)       //当数量大于10时
    {
        int remainder,itg;             //remainder是余数,itg是整数
        float sum;
        remainder=5+number%5;          //将数量分成两部分,一部分是5+number%5
        itg=number/5-1;                //一部分是number/5-1
        sum=discount_2(remainder);     //第一部分调用discount_2函数
        sum=sum+itg*30;                //另一部分直接按整套价格计算
        return sum;
    }
    float sale(int number)
    {
        float sum;
    
        if(number<=5)                  //当数量小于6本时
        {
            switch(number)
            {
                case 1: sum=8; break;
                case 2:    sum=2*8*0.95; break;
                case 3: sum=3*8*0.9; break;
                case 4: sum=4*8*0.8; break;
                case 5: sum=5*8*0.75; break;
                default: cout<<"ERROR!!!"<<endl;
            }
        }
        else if(number<=10)            //当数量在5到10之间时
        {
            sum=discount_2(number);
        }
        else                          //当数量大于10本时
            sum=discount_3(number);
        return sum;
    }
    int main()
    {
        int sale_number,flag=1;
        float sum;
        while(flag==1)
        {
            cout<<"请输入要购买的书的数量:";
            cin>>sale_number;
            sum=sale(sale_number);        //调用买书的最佳算法
            cout<<"最低的价格是"<<sum<<endl;
            cout<<"是否继续使用(是/1,否/0):";
            cin>>flag;
        }
        return 0;
    }

    四.结果及截图

  • 相关阅读:
    scrapy 随机UserAgent
    Scrapy使用中间件捕获Spider抛出的异常
    10.16-arrarylist
    10.15_package_2
    10.14_package_1
    10.13_enum_2
    10.12-enum_1
    10.11-java的接口2
    10.10-3对象和类_动手动脑-java的接口
    10.9-java的封装
  • 原文地址:https://www.cnblogs.com/menglikanhualuo/p/4428174.html
Copyright © 2011-2022 走看看