zoukankan      html  css  js  c++  java
  • 软件工程课堂作业——购书问题

    小组成员:陈志利   檀威

    一、题目要求

    书店针对《哈利波特》系列书籍进行促销活动,一共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本是折扣力度最大的,这就是由于我们的不认真,太天真造成的,以后要坚决避免这种类似情况的发生。

  • 相关阅读:
    异常以及异常处理框架探析
    ArcGis Server10 for java初试
    C#制作鹰眼全过程(带注释)
    flex remoteobject 因默认设置而调用失败
    ExecutorService.submit(Callable).get()不并发执行
    学习《The Flex, Spring, and BlazeDS full stack》-1
    java.lang.NoSuchMethodError: org.hibernate.mapping.SimpleValue.<init>(Lorg/hibernate/mapping/Table;)V
    用内置jetty运行项目struts2提示找不到Action
    二分查找
    排序
  • 原文地址:https://www.cnblogs.com/czl123/p/4427910.html
Copyright © 2011-2022 走看看