2015/4/14课堂练习
1.设计题目
书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示: 本 数量 折扣
2 5%
3 10%
4 20%
5 25%
2.设计要求
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。 要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。(截止日期2015-4-15晚18:00)
3、设计思路
由题目能够看出来,1-5本书的时候是很简单的,关键是大于5本书的情况,
6本:5.1 4.2 3.3
7本:5.2 4.3
8本:5.3 4.4
9本:5.4 (很显然,再分成三组只会增大花销)
10本:5.5
11本:5.5.1 ~~~
>10的时候可以分成5n+(6~9)的数
3、源代码
#include<iostream.h>
int main()
{
double sum;
sum=0;
int i,j;
cout<<"请输入要购买本数(请输入大于0的整数):";
cin>>i;
if(i<0)
{
cout<<" 错误"<<endl;
cout<<"请重新输入本数(请输入大于0的整数):";
cin>>i;
}
if(i<5)
{
switch(i)
{
case 1:
sum = 8;
break;
case 2:
sum = 8*2*0.95;
break;
case 3:
sum = 8*3*0.9;
break;
case 4:
sum = 8*4*0.8;
break;
case 5:
sum = 8*5*0.75;
break;
}
}
else(j=i%5);
switch(j)
{
case 0:
sum=i*8*0.75;
break;
case 1:
sum=(i-1)*8*0.75+8;
break;
case 2:
sum=(i-2)*8*0.75+15.2;
break;
case 3:
sum=(i-8)*8*0.75+51.2;
break;
case 4:
sum=(i-4)*8*0.75+25.6;
break;
}
cout<<"最低价格:"<<sum<<endl;
return 0;
}
4、实验结果截图
5、实验心得
由于家里有事,这次课没上,导致我拿到这个题目的时候,硬是看了一个小时,一点思路没有,完全不知道题目在说什么,更不用说有想法去解决了,最后还是问的舍友题目的意思,才有了思路,有思路后到感觉这个题目也不难,就是在于理解,找到着手点,知道从哪下手,小到个程序,大到一个程序都需要一步一步去做。