课堂实验--购书最低价实验

一、设计思想

本次实验是要计算出购买一批图书的最低价格,当选取不同类型的图书时购买者可以享受折扣,并且根据购买者买的图书种类的数目可以分为四档折扣,本数为2,3,4,5时的折扣分别为5%,10%,20%,25%。

本次题目的解题核心是找到最低价的规律,并且这个规律在每十本书中循环一次,在这十本书中除了八本书时享受20%的优惠以外,其它的都遵循优先享受25%优惠的规律,因此在计算最终价格时,只要将10的倍数的书和剩余的书分开来计算价格就可以了。

二、代码实现

//Hao Ying 2016/6/2
//购书最低价实验
#include<iostream>
using namespace std;
int main()
{
    int i,number,a,b;
    double price;
    cout<<"请输入书本数:";
    cin>>number;
    a=number/10;
    b=number%10;
    if(b==0)
    {
        price=2*a*8*0.25;
    }
    else if(b>0&&b<9&&b!=8)
    {
        if(b%5==0)
        {
            price=10*a*8*0.25+(b/5)*5*8*0.25+(b%5)*8*0.25;
        }
        else if(b%5==1)
        {
            price=10*a*8*0.25+(b/5)*5*8*0.25+(b%5)*8;
        }
        else if(b%5==2)
        {
            price=10*a*8*0.25+(b/5)*5*8*0.25+2*8*0.05;
        }
        else if(b%5==3)
        {
            price=10*a*8*0.25+(b/5)*5*8*0.25+3*8*0.1;
        }
        else if(b%5==4)
        {
            price=10*a*8*0.25+(b/5)*5*8*0.25+4*8*0.2;
        }
    }
    else if(b==8)
    {
        price=10*a*8*0.25+8*8*0.2;
    }
    cout<<"读者购买这批书的最低价格为:"<<price;
    cout<<endl;
    return 0;
}

三、实现截图

当书本数为1-10时的最低价格:

当书本数为338时的最第价格为:

四、个人总结

通过这次的实验我觉得主要还是锻炼了设计思路,其实一开始把题目想的简单了,比如8本书就只想到了5和3的组合,并没有想到4和4或者其他的组合,当再深入思考的时候,考虑到了在书本数一定的情况下有很多种组合方式,于是不知道如何从这些情况下找到花销最小的那个,在老师的提示下,试着先从一本开始找规律,果然,他的最低价是有规律可言的,只有在8本的倍数时出现特例,并且每十本都可以享受25%的折扣,只要考虑除去十本之外多余的书本的情况就可以了。在这次实验中收获的是一种数学方法,它告诉我们在解决一个问题之前要先找到最佳的方法,这样可以避免做很多的无用功,也可以提高我们解决问题的效率,在遇到问题时多动笔多动脑是解决问题的最好途径!这次实验使我受益匪浅,之后的实验中我一定会更加努力去完成的!

时间: 2024-11-08 23:10:47

课堂实验--购书最低价实验的相关文章

课堂作业-购书问题

1.题目要求: 书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示: 本数                   折扣 2                    5% 3                    10% 4                    20% 5                    25% 根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可

LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 逻辑可分为: 1调度层 (Director):它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的. 2[服务器池(server pool)/集群层(Real server)]:是一组真正执行客

实验2串口实验

0目标 1STM32 串口简介 2硬件设计 3软件设计 4下载验证 0.目标 利用串口1 不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑. 1.STM32 串口简介 串口设置的一般步骤可以总结为如下几个步骤:1) 串口时钟使能, GPIO 时钟使能2) 串口复位3) GPIO 端口模式设置4) 串口参数初始化5) 开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤)6) 使能串口7) 编写中断处理函数注:对于复用功能的 IO,我们首先要使能GPIO 

信息安全系统设计基础 实验一、实验二 20135327郭皓 20135329 李海空

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础                         班级:1353 姓名:郭皓 李海空 学号:20135327  20135329 成绩:             指导教师:娄嘉鹏        实验日期:2015.11.10 实验密级:         预习程度:         实验时间:15:30~18:00 仪器组次:          必修/选修:            实验序号:1 实验名称: 

实验报告(实验一)

北京电子科技学院(BESTI) 实     验    报     告 课程: 密码系统设计基础                                                               班级: 1352班.1353班 姓名:王玥.刘浩晨                                                                    学号:20135232.20135318 成绩:                      

SEED实验——Environment Variable and Set-UID Program实验描述与实验任务

第一部分:实验描述 该实验的学习任务是理解环境变量是如何影响程序和系统行为的.环境变量是一组动态命名的变量 第二部分:实验任务 2.1 任务一:操作环境变量 在这个任务中,我们研究可以用来设置和取消设置环境变量的命令.我们在seed实验环境中使用Bash.用户使用的默认shell在/etc/passwd文件(每个条目的最后一个字段)中设置.您可以使用命令chsh 将其更改为另一个shell程序(请不要在该实验中实现).执行以下任务: 使用printenv或env命令打印出环境变量.也可以单独打印

Java实验报告(实验四)

北京电子科技学院(BESTI) 实     验    报     告 课程:Java    班级:1352班      姓名:王国伊    学号:20135207 成绩:             指导教师:娄嘉鹏       实验日期:2015.6.9 实验密级:无       预习程度:           实验时间:15:30-18:00 仪器组次:         必修/选修:选修     实验序号:四 实验名称:  服务器与客户端间传送信息加解密 实验目的与要求: 1.没有Linux基础

实验报告(实验三)

北京电子科技学院(BESTI) 实     验    报     告 课程: 密码系统设计基础                     班级: 1352班.1353班 姓名:刘浩晨.王玥                学号:20135318. 20135232 成绩:             指导教师:娄嘉鹏       实验日期:2015.11.24 实验密级:        预习程度:        实验时间:15:30—18:00 仪器组次:          必修/选修:        

实验五存储管理实验

实验五存储管理实验 一.        实验目的 连续内存分配方式会形成许多“碎片”,虽然可以通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销.如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无需再进行“紧凑”.基于这一思想而产生了离散分配方式. 如果离散分配的基本单位是页,则称为分页存储管理方式:如果离散分配的基本单位是段,则称为分段存储管理方式. 在分页存储管理方式中,如果不具备页面兑换功能,则称为基本的分页存储管理方式,或称为纯分页存储管理方式,它不具备支持虚