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.代码
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int num; 6 int m; 7 int n,d; 8 double sum; 9 do{ 10 cout<<"请输入要买图书本书:"; 11 cin>>num; 12 13 if(num<=0) 14 { 15 cout<<"请重新输入要买图书个数:"; 16 } 17 else if(num>0) 18 { 19 m=num/5; 20 n=num%5; 21 if(m==0) 22 { 23 if(n==0) 24 { 25 sum=0; 26 } 27 else if(n==1) 28 { 29 sum=8; 30 } 31 else if(n==2) 32 { 33 sum=8*2*(1-0.05); 34 } 35 else if(n==3) 36 { 37 sum=8*3*(1-0.10); 38 } 39 else if(n==4) 40 { 41 sum=8*4*(1-0.20); 42 } 43 } 44 else if(m>0) 45 { 46 if(n==0) 47 { 48 sum=5*m*8*(1-0.25); 49 } 50 else if(n==1) 51 { 52 sum=5*8*m*(1-0.25)+8; 53 } 54 else if(n==2) 55 { 56 sum=5*8*m*(1-0.25)+8*2*(1-0.05); 57 } 58 else if(n==3) 59 { 60 sum=5*8*(m-1)*(1-0.25)+8*4*2*(1-0.20); 61 } 62 else if(n==4) 63 { 64 sum=5*8*m*(1-0.25)+8*4*(1-0.20); 65 } 66 } 67 cout<<"最低价格为:"<<sum<<"元"<<endl; 68 cout<<"如果需要计算其他数量的价格请输1,否则0:"; 69 cin>>d; 70 cout<<endl;} 71 } 72 while(d==1); 73 return 0; 74 }
5、程序截图
6、实验感想
要对输入的变量进行运算时输入语句要放在运算语句前,否则无法运行,这是本次编程遇到的错误。我感觉这个程序可以用函数调用来做,可能代码会容易读一点,可能会少几个大括号吧。。