课堂测试-买书
题目:书店针对《哈利波特》系列书籍进行促销活动,一共5卷,用编号0、1、2、3、4表示,单独一卷售价8元, 具体折扣如下所示:
本数 折扣
2 5%
3 10%
4 20%
5 25%
根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。请设计算法能够计算出读者购买一批书的最低价格。
思路:先进行枚举计算,找出规律,总结规律,整除10来分情况,5以下包括5按折扣算,5以上,6按5+1,7按5+2,8按4+4,9按5+4,10按5+5,然后分情况来实现。
代码:
#include<iostream> using namespace std; int main() { int i, m, n; double s = 0; cout << "请输入想要购买书的数量:"; cin >> i; while (i <= 0) { cout << "输入的数不正确,请输入正整数" << endl; cin >> i; } m = i / 10;//求整 n = i % 10;//求余 if (n == 0) { s = 60 * m;//10的整数倍 } if (n == 1) { s = 60 * m + 8; } if (n == 2) { s = 60 * m + 2 * 8 * 0.95; } if (n == 3) { s = 60 * m + 3 * 8 * 0.90; } if (n == 4) { s = 60 * m + 4 * 8 * 0.8; } if (n == 5) { s = 60 * m + 5 * 8 * 0.75; } if (n == 6) { s = 60 * m + 30 + 8; } if (n == 7) { s = 60 * m + 30 + 2 * 8 * 0.95; } if (n == 8) { s = 60 * m + 2 * 4 * 8 * 0.8; } if (n == 9) { s = 60 * m + 30 + 4 * 8 * 0.8; } cout << "买" << i << "本书,花费的最低价钱为:" << s <<endl; return 0; }
测试结果:
测试结果:
===== ===== ===== ===== =====
Compiling...
Compiling done.
===== ===== ===== ===== =====
Doing Unit Test Case 01
输入要购买书的数量:
0
显示:输入的数不正确,请输入重新输入
16
显示:买16本书,花费的最低价格为98
Done: 01.
===== ===== ===== ===== =====
Doing Unit Test Case 02
输入帖子数量:
8
显示:买8本书,花费的最低价格为51.2
Done:02
ALL DONE.
===== ===== ===== ===== =====
开发日志:
星期 | 听课 | 上网 | 读书 | 编程 | 总计 |
周一 | 2 | 1 | 1 | 4 | |
周二 | |||||
周三 | 1 | 1 | |||
周四 | 2 | 1 | 3 | ||
周五 | 2 | 2 |
时间记录日志:
日期 | 开始时间 | 结束时间 | 休息时间 | 工作时间 | 内容 |
5/30 | 19:00 | 21:10 | 10 | 120 | 查资料 |
6/1 | 14:00 | 15:10 | 10 | 120 | 看书 |
6/2 | 14:00 | 17:30 | 30 | 180 | 编程 |
6/3 | 14:20 | 16:20 | 0 | 120 | 写博客 |
缺陷记录日志:这次测试不是很难,用枚举法找出规律就行了