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

一、题目:

      书店针对《哈利波特》系列书籍进行促销活动,一共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语句,和循环解决。程序的关键是把实际问题抽象成为数学问题再用程序实现,只要想到每一种情况,解决好就行。

posted @ 2015-04-15 10:28  燕亚峰  阅读(182)  评论(0编辑  收藏  举报