欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

软件工程个人项目——买书的最低价格

发布时间:2025/3/13 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 软件工程个人项目——买书的最低价格 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

软件工程个人项目——买书的最低价格

题目要求:

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

                                  本数                  折扣

                                   2                       5%

                                   3                       10%

                                   4                       20%

                                   5                       25%

根据购买的卷数以及本数,会对应不同折扣规则情况。单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠。 设计算法能够计算出读者购买一批书的最低价格。
一、设计思想 本题采用的是找规律的方法,经过计算会发现,购买的数量在5以内的时候没什么问题,都是按照成套的购买打折的。但是从6开始就会出现多种组合方式,我们就逐一进行计算,发现10以内只有8是特殊的。她不是购买5的倍数最便宜,而是采用4+4的方式最便宜。所以我们先按照5的倍数记录折扣率方便以后的计算,然后再把购买情况按照10分类。单独讨论余数为8的情况:8按照4+4的方式购买,其余按照5的倍数成套购买。余数不为8的情况都以5的多少倍成套购买,剩下的单独购买。 二、代码实现 1 //求买书的最低价格 2016/6/3 Zhao Ziyin 2 #include<iostream> 3 using namespace std; 4 5 int main() 6 { 7 int num = 0, s, b; 8 int multi, remain; 9 double p_price = 8;//单价为8 10 double rate, low_price; 11 12 //输入 13 cout << "输入买书的数量:"; 14 cin >> num; 15 while (num < 1) 16 { 17 cout << "输入的数量有误!"<<endl; 18 cout << "输入买书的数量:"; 19 cin >> num; 20 } 21 22 multi = num / 10;//除以10的商 23 remain = num % 10;//余数 24 s = num % 5;//除以5的余数 25 b = num / 5;// 26 switch (s)//根据数量是5的几倍求折扣率rate 27 { 28 case 0: rate = 0.75; break; 29 case 1: rate = 1; break; 30 case 2: rate = 0.95; break; 31 case 3: rate = 0.9; break; 32 case 4: rate = 0.8; break; 33 } 34 if (remain == 8)//8是特例,是4+4的形式 35 { 36 low_price = (multi * 10 * p_price * 0.75) + (2 * 4 * p_price * 0.8); 37 } 38 else 39 { 40 low_price = (b * 5 * p_price * 0.75) + (s * p_price * rate); 41 } 42 cout << "您购买这些书的最低价格为:" << low_price << endl; 43 44 return 0; 45 } 三、实现截图 输入错误处理: 输入10以内: 特殊以8为基准的数: 其他情况:           四、个人总结 本次实验并不难,但是开始时候我们还是没有什么思路,老师提醒我们把情况都列举出来找规律。我以后要学习这种编程的方法。 还有就是代码的简略问题,开始的时候我用switch语句编写从余数为0到5的情况,写到6的时候我发现这些的情况都是相通的,无非是5的倍数不同、剩余单独购买的本数不同、折扣率不同,只有余数为8的时候不是以5为基准写的。所以我修改了代码,只是用if……else写出了余数是否为8,然后把情况合在一起写,这样减少了很多代码冗余,然后我看代码的时候也能比较清晰。 最后就是要注意一些编程的细节,,貌似最近都在用java写安卓,swich语句开始居然忘记了写break!然后定义int类型的变量习惯了把这次的low_price等价格最开始也定义成了int……下次要细心啊……

转载于:https://www.cnblogs.com/2016helen/p/5560262.html

总结

以上是生活随笔为你收集整理的软件工程个人项目——买书的最低价格的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。