zoukankan      html  css  js  c++  java
  • 软件工程课堂训练————最便宜购书方案

    一·实验题目

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

                                   本数                  折扣

                                     2                       5%

                                     3                       10%

                                     4                       20%

                                     5                       25%

       

      根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。设计算法能够计算出读者购买一批书的最低价格。

    二·实验思路:

         通过计算 算出6~10本分别的价钱,8本例外。因为8本分为4本和4本买比较便宜,其他则是5本和余数买。而10本以上的本书可以分别对应6~10本,例如 11本与6本是等价的,17与7本事等价。。。计算的规则在于把本数n mod  5 =k,然后再对应k+5即可。然后5*y+8的数例外。

    三·代码

    // goyshu.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "iostream"
    using namespace std;
    
    int main()
    {
        int b;//定义购买的书籍数
        int m,n;
        int i;
        double sum=0;
        cout<<"请输入需要购买的书籍数:"<<endl;
        cin>>b;
        m=b/5;
        n=b%5;
        i=n+5;
        if(i!=8)
        {
            switch(n)
            {
            case 0:
                sum=m*40*0.75;
                break;
            case 1:
                sum=m*40*0.75+8;
                break;
            case 2:
                sum=m*40*0.75+16*0.95;
                break;
            case 3:
                sum=m*40*0.75+24*0.9;
                break;
            case 4:
                sum=m*40*0.75+32*0.8;
                break;
            }
        }    
        else 
            sum=(m-1)*30+4*8*0.8*2;
        if(i!=8)
        {
            cout<<"读者购买"<<b<<"本书的最低价格为:"<<endl;
            cout<<sum<<endl;
            cout<<"可以分为买"<<m<<""<<""<<n<<"本不同类型的书"<<endl;
        }
        else
        {
             cout<<"读者购买"<<b<<"本书的最低价格为:"<<endl;
             cout<<sum<<endl;
             cout<<"可以分为买"<<m-1<<""<<""<<"2套4本不同类型的书"<<endl;
        }
    
        return 0;
    }

    四·心得体会

          这个题目刚开始的时候我觉得挺简单的,因为我没有算6-10的最低价是多少,错误的认为就是5+n。可是经过计算我知道了8本书的时候是个陷阱。明白了购买方法以后,代码就容易得多了。看来做个程序猿也要特别认真,别大意才对。

        

  • 相关阅读:
    function to_timestamp(timestamp without time zone, unknown) does not exist
    Xshell连接不上Ubuntu解决方式
    怎样使用MobaXterm上传文件到远程Linux系统 MobaXterm怎么使用连接远程服务器?
    notepad++怎样删除空行
    思维脑图在线制作工具网址
    @ApiImplicitParams
    .bat批出处理文件
    主题模型及其在文本情感分析中的应用
    表达式求职JAVA(转)
    2013华为校园招聘java实现(大家水个回复啊)
  • 原文地址:https://www.cnblogs.com/123jy/p/4430024.html
Copyright © 2011-2022 走看看