• 软件工程课堂作业——计算最优惠价格


    一、题目:

          书店针对《哈利波特》系列书籍进行促销活动,一共5卷,单独一卷售价8元,具体折扣如下:本数对应的折扣分别为:2本—5%,3本—10%,4本—20%,5本—25%。根据购买的卷数以及本数,会对应不同的折扣规则情况。单独一本书只会对应一个折扣规则。设计算法能够计算出读者购买一批书的最低价格。

    二、设计思路:

    对于1-5,定义double具有返回值类型的函数,列举5种优惠情况。对于6-9,例如7,先计算2和5这种情况,然后2加1变3,计算3和4这种情况;然后3再加1,计算4,3这种情况。直至加一后小于5。对于10以上,那就简单了。。

    三、源代码:

    #include<iostream.h>
    double fa(int i)
    {
        double a;
        switch(i)
        {
        case 1:a=1.0;break;
        case 2:a=0.95;break;
        case 3:a=0.9;break;
        case 4:a=0.8;break;
        case 5:a=0.75;break;
        }
        return a;
    }
    
    int main()
    {
        int booknumber,keybook,a,i,d,b,g,j;
        double sum;
        cout<<"input:";
        cin>>booknumber;
        if(booknumber>0&&booknumber<=5)
        {
            double c=fa(booknumber);
                sum=c*booknumber*8;
                cout<<sum;
        }
        else if(booknumber>5&&booknumber<=9)
        {
            a=booknumber-5;
                double d=fa(a);
            sum=d*a*8+30;
            for(i=a;i<5;i++) 
            {
                b=booknumber-a;
            double e=fa(a);
            double f=fa(b);
            
            
            if (e*a*8+f*b*8<sum)
                sum=e*a*8+f*b*8;
            }
            
            cout<<sum;
        }
        else
        
        g=booknumber%5;
        j=booknumber/5;
        double k=fa(g);
        sum=j*30+k*8*g;
        cout<<sum;
    
    }

    四.截图

    五.实验总结这种

         这次试验应该说是不太难,只要分成3种情况就行,关键是6-7的这种情况,必须考虑到每一种情况。这种情况可以用switch语句,和循环解决。程序的关键是把实际问题抽象成为数学问题再用程序实现,只要想到每一种情况,解决好就行。

  • 相关阅读:
    模块介绍
    homebrew 更改镜像,进行成功安装
    必须要会的 50 个 React 面试题
    聚合
    mongodb高级聚合查询
    一款好用 mongodb 可视化工具
    在Mac上安装MongoDB,配置全局路径
    深入Vue2.x的虚拟DOM diff原理
    H5在WebView上开发小结
    接口文档RAP2 环境搭建(正常搭建成功)
  • 原文地址:https://www.cnblogs.com/yanyafeng/p/4427773.html
Copyright © 2020-2023  润新知