软件工程课堂作业——购书问题

小组成员:陈志利   檀威

一、题目要求

书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
                                  本数                   折扣
                                   2                       5%
                                   3                       10%
                                   4                       20%
                                   5                       25%

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

二、设计思想

  首先我们俩根据书的本数划分了三个范围,0-5,6-9,10以上。然后我们决定从实际数据出发,笔算了10以下的实际最大折扣,总结出10以上就是前面6-9的循环。跟5做除法得到的商就是5本的最大折扣的整数倍,再加上跟5取余得到的余数乘上相应的折扣,最终得到的和就是最低价格。

三、代码实现

 1 #include<iostream.h>
 2 void main()
 3 {
 4     int number;//本数
 5     int shang;//
 6     int remainder;//余数
 7     double price;
 8     int n;
 9     while(n)
10     {
11         cout<<"请输入您买书的本数:"<<endl;
12         cin>>number;
13         shang=number/5;
14         remainder=number%5;
15         switch(remainder)
16         {
17         case 0:
18             price=shang*8*0.75*5;
19             cout<<"购买"<<number<<"本书的最低价格是:"<<price<<""<<endl;
20             break;
21         case 1:
22             price=shang*8*0.75*5+8;
23             cout<<"购买"<<number<<"本书的最低价格是:"<<price<<""<<endl;
24             break;
25         case 2:
26             price=shang*8*0.75*5+8*2*0.95;
27             cout<<"购买"<<number<<"本书的最低价格是:"<<price<<""<<endl;
28             break;
29         case 3:
30             price=(shang-1)*8*0.75*5+8*4*0.8*2;
31             cout<<"购买"<<number<<"本书的最低价格是:"<<price<<""<<endl;
32             break;
33         case 4:
34             price=shang*8*0.75*5+8*4*0.8;
35             cout<<"购买"<<number<<"本书的最低价格是:"<<price<<""<<endl;
36             break;
37         default:
38             break;
39         }
40         cout<<"继续输入1,退出输入0"<<endl;
41         cin>>n;
42     }
43 }

 

四、实现截图

五、个人总结

  在我们计算的过程中,由于计算不认真,不全面误以为6-9的时候都是先满足5本的折扣,剩下的折扣就是最便宜的,不过经过后来同学的指正,我们又认真计算了一下,当为8本时,4本和4本是折扣力度最大的,这就是由于我们的不认真,太天真造成的,以后要坚决避免这种类似情况的发生。

posted @ 2015-04-15 11:00  Jameslige  阅读(206)  评论(0编辑  收藏  举报