您的位置:首页 > 其它

书店折扣问题

2015-04-15 18:39 141 查看
1.设计题目

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

2.设计要求

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。
设计算法能够计算出读者购买一批书的最低价格。
要求将设计思想、代码实现、实现截图、个人总结以博文的形式发表。

3.设计思想

能够确定的是5本下的购买数量,买不同卷的书是最便宜的,大于5本的需要分两种情况, 6本5,1分配;7本5,2分配;8本4,4分配,9本,5,4分配,10本,5,5分配为最佳。

4.代码

#include<iostream>
using namespace std;
int main()
{
int num;
int m;
int n,d;
double sum;
do{
cout<<"请输入要买图书本书:";
cin>>num;

if(num<=0)
{
cout<<"请重新输入要买图书个数:";
}
else if(num>0)
{
m=num/5;
n=num%5;
if(m==0)
{
if(n==0)
{
sum=0;
}
else if(n==1)
{
sum=8;
}
else if(n==2)
{
sum=8*2*(1-0.05);
}
else if(n==3)
{
sum=8*3*(1-0.10);
}
else if(n==4)
{
sum=8*4*(1-0.20);
}
}
else if(m>0)
{
if(n==0)
{
sum=5*m*8*(1-0.25);
}
else if(n==1)
{
sum=5*8*m*(1-0.25)+8;
}
else if(n==2)
{
sum=5*8*m*(1-0.25)+8*2*(1-0.05);
}
else if(n==3)
{
sum=5*8*(m-1)*(1-0.25)+8*4*2*(1-0.20);
}
else if(n==4)
{
sum=5*8*m*(1-0.25)+8*4*(1-0.20);
}
}
cout<<"最低价格为:"<<sum<<"元"<<endl;
cout<<"如果需要计算其他数量的价格请输1,否则0:";
cin>>d;
cout<<endl;}
}
while(d==1);
return 0;
}


5、程序截图



6、实验感想

  要对输入的变量进行运算时输入语句要放在运算语句前,否则无法运行,这是本次编程遇到的错误。我感觉这个程序可以用函数调用来做,可能代码会容易读一点,可能会少几个大括号吧。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: