软件工程个人项目——买书的最低价格
生活随笔
收集整理的這篇文章主要介紹了
软件工程个人项目——买书的最低价格
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
軟件工程個人項目——買書的最低價格
題目要求:
書店針對《哈利波特》系列書籍進行促銷活動,一共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
總結
以上是生活随笔為你收集整理的软件工程个人项目——买书的最低价格的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5天不再惧怕多线程——第三天 互斥体
- 下一篇: JPA J2SE 桌面应用范例