購買圖書最低價格

1、程序要求ios

  書店針對《哈利波特》系列書籍進行促銷活動,一共5卷,用編號0、一、二、三、4表示,單獨一卷售價8元, 具體折扣以下所示:算法

  

  根據購買的卷數以及本數,會對應不一樣折扣規則狀況。單數一本書只會對應一個折扣規則,例如購買了兩本卷1,一本卷2,則能夠享受5%的折扣,另一本卷一則不享受優惠。編程

  設計算法可以計算出讀者購買一批書的最低價格。post

2、程序設計思想編碼

  買一本書時,只有一種狀況,8元;spa

  買兩本書時,有2種狀況:設計

    1. 買2本同樣的書,2*8=16元日誌

    2. 買2本不同的書,2*8-2*8*5%=15.2code

  買三本書時,有3種狀況:blog

    1. 買3本同樣的書,3*8=24元

    2. 買2本卷1,1本卷2,3*8-8*2*5%=23.2

    3. 買3本不同的,8*3-3*8*10%=21.6

  買四本書時,有4種狀況:

    1. 買4本同樣的書,4*8=32元

    2. 買3本卷1,1本卷2,8*4-2*8*5%=31.2

    3. 買2本卷1,2本卷2,8*4-8*2*2*5%=30.4

    4. 買3本不同的書,8*4-8*3*10%=29.6

    5. 買4本不同的書,8*4-8*4*20%=25.6

  買5本書時,有7種狀況:

    1. 買5本同樣的書,5*8=40元

    2. 買4本卷1,1本卷2,8*5-2*8*5%=39.2

    3. 買3本卷1,2本卷2,8*5-8*2*2*5%=38.4

    4. 買3本卷1,1本卷2,1本卷3,8*5-8*3*10%=37.6

    5. 買2本卷1,2本卷2,1本卷3,8*5-8*3*10%-8*2*5%=36.8

    6. 買4本不同的書,8*5-8*4*20%=33.6

    7. 買5本不同的書,8*5-8*5*25%=30

  買6本書時,有10種狀況:

    1. 買6本同樣的書,6*8=48元

    2. 買5本卷1,1本卷2,6*8-2*8*5%=47.2

    3. 買4本卷1,2本卷2,6*8-2*8*2*5%=46.4

    4. 買3本卷1,3本卷2,6*8-3*8*2*5%=45.6

    5. 買4本卷1,1本卷2,1本卷3,6*8-3*8*10%=45.6

    6. 買3本卷1,2本卷2,1本卷3,6*8-3*8*10%-8*2*5%=44.8

    7. 買2本卷1,2本卷2,2本卷3,6*8-2*8*3*10%=43.2

    8. 買3本卷1,1本卷2,1本卷3,1本卷4,6*8-8*4*20%=41.6

    9. 買2本卷1,2本卷2,1本卷3,1本卷4,6*8-8*4*20%-8*2*5%=40.8

    10. 買5本不同的書,6*8-8*5*25%=38

  買7本書時,有13種狀況:

    1. 買7本同樣的書,7*8=56元

    2. 買5本卷1,1本卷2,7*8-2*8*5%=55.2

    3. 買4本卷1,2本卷2,7*8-2*8*2*5%=54.4

    4. 買3本卷1,3本卷2,7*8-3*8*2*5%=53.6

    5. 買5本卷1,1本卷2,1本卷3,7*8-3*8*10%=53.6

    6. 買4本卷1,2本卷2,1本卷3,7*8-3*8*10%-8*2*5%=52.8

    7. 買3本卷1,3本卷2,1本卷3,7*8-3*8*10%-2*8*2*5%=52

    8. 買2本卷1,2本卷2,2本卷3,7*8-2*8*3*10%=51.2

    9. 買4本卷1,1本卷2,1本卷3,1本卷4,7*8-8*4*20%=49.6

    10. 買3本卷1,2本卷2,1本卷3,1本卷4,7*8-8*4*20%-8*2*5%=48.8

    11. 買2本卷1,2本卷2,2本卷3,1本卷4,7*8-8*4*20%-8*3*10%=47.2

    13. 買2本卷1,2本卷2,1本卷3,1本卷4,1本卷5,7*8-8*5*25%-8*2*5%=45.2

  因而可知,購買的每套圖書裏的本數最多,折扣越大,價格越低。

3、源程序代碼

 1 //購買圖書最低價格
 2 //張瑩熒 2016-06-03
 3 
 4 #include <iostream>
 5 using namespace std;
 6 void main()
 7 {
 8     int n;  //書的本數
 9     int a = 0, b = 0; //a爲當本數大於5的時候,表示有幾個5,則計算幾倍的5本價錢。b表示剩餘的不足5本的價格。
10     double price;  //sum表示總價格
11     cout << "請輸入要買的書的本數:" << endl;
12     cin >> n;
13 
14     a = n / 5;
15     b = n % 5;
16 
17     if (n == 3)
18         price = 3 * 8 * (1 - 0.1);
19     else
20     {
21         if (b == 0)
22             price = a * 5 * 8 * (1 - 0.25);
23         if (b == 1)
24             price = a * 5 * 8 * (1 - 0.25) + 8;
25         if (b == 2)
26             price = a * 5 * 8 * (1 - 0.25) + 2 * 8 * (1 - 0.05);
27         if (b == 3)
28             price = (n - 8) / 5 * 5 * 8 * (1 - 0.25) + 4 * 2 * 8 * (1 - 0.2);
29         if (b == 4)
30             price = a * 5 * 8 * (1 - 0.25) + 4 * 8 * (1 - 0.2);
31     }
32     cout << "購買書的最低價格爲:" << price << "元。" << endl;
33 }

4、運行結果截圖

  

  

  

5、項目計劃日誌:

          周活動總結表

姓名:張瑩熒                             日期:2016-06-03

日期/任務    聽課     編寫程序    閱讀課本   準備考試                        日總計  
週一5.30 100   30 120     250
週二   30 30 120     180
週三   180   180     360
週四 100 30    120     250
週五   30         30
周總結 200 270 60 540     1070

 

 

 

 

 

 

 

 

 

 

階段時間和效率                      週數:14

不包括上一週在內的累計時間

總計 200 270 60 540       1070
平均 200 270 60 540     1070
最大 200 270 60 540     1070
最小 200  270 60 540     1070

 

 

 

 

 

之前各周的累計時間

總計 200 270 60 540       1070
平均 200 270 60 540     1070
最大 200 270 60 540     1070
最小 200 270 60 540     1070

 

 

 

 

 

6、時間記錄日誌:

  學生:張瑩熒                 日期:2016-06-03

  教師:王建民                 課程: PSP  

日期 開始時間 結束時間 中斷時間 淨時間 活動 備註
5.30

14:00

15:50

10

100

上課

課間休息
5.31

10:00

10:30

0

30

編程  
6.1

14:30

17:40

10

180

編程

中間休息
6.2

12:30

14:00

13:00

15:50

0

10

30

100

編程

上課

 

 課間休息

6.3

11:00

11:30

0

30

編程

 

 

 

 

 

 

 

 

 

 

 

7、缺陷記錄日誌:

  學生: 張瑩熒 

  日期: 2016-06-03 

  教員:  王建民     

  程序號:  14  

 日期  編號 類型 引入階段 排除階段 修復時間 修復缺陷
 6.03  1 算法 編碼 查資料、問同窗 30min  
描述:程序設計問題,不知道該如何入手。

 

 
 
 
 
 

8、實驗總結

題自己很簡單,只要從第一本開始列出來,找出其中的規律,程序思路很容易就出來了。

相關文章
相關標籤/搜索