码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-15 11:11:14      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

一、题目:

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

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

标签:

原文地址:http://www.cnblogs.com/yanyafeng/p/4427773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!