软件工程课堂作业——购书问题

本文详细介绍了书店针对《哈利波特》系列书籍的促销活动,通过算法计算出读者购买不同数量书籍时的最低价格。文章包括设计思想、代码实现、实现截图以及个人总结,帮助读者了解如何最大化节省购书成本。

小组成员:陈志利   檀威

一、题目要求

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

转载于:https://www.cnblogs.com/czl123/p/4427910.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值