zoukankan      html  css  js  c++  java
  • 书店折扣问题

    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、实验感想

      要对输入的变量进行运算时输入语句要放在运算语句前,否则无法运行,这是本次编程遇到的错误。我感觉这个程序可以用函数调用来做,可能代码会容易读一点,可能会少几个大括号吧。。

  • 相关阅读:
    SpringMVC 拦截器实现权限统一校验
    SpringMVC 全局异常处理
    Maven环境隔离应用场景
    Lombok入门
    父组件动态生成,子组件值进行渲染
    java实战
    Android studio 如何通过DB Navigator连接微软的SQL Server
    自定义的AutoComplTextView
    转 -- 用shape画内圆外方,形成一个圆形头像
    (记录问题)1.Canvas.drawArc()方法的问题
  • 原文地址:https://www.cnblogs.com/cuipengbo/p/4429643.html
Copyright © 2011-2022 走看看