日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/3/13 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程个人项目——买书的最低价格 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

軟件工程個(gè)人項(xiàng)目——買書的最低價(jià)格

題目要求:

書店針對(duì)《哈利波特》系列書籍進(jìn)行促銷活動(dòng),一共5卷,用編號(hào)0、1、2、3、4表示,單獨(dú)一卷售價(jià)8元, 具體折扣如下所示:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本數(shù)????????????????? 折扣

?????????????????????????????????? 2?????????????????????? 5%

?????????????????????????????????? 3?????????????????????? 10%

?????????????????????????????????? 4?????????????????????? 20%

?????????????????????????????????? 5?????????????????????? 25%

根據(jù)購(gòu)買的卷數(shù)以及本數(shù),會(huì)對(duì)應(yīng)不同折扣規(guī)則情況。單數(shù)一本書只會(huì)對(duì)應(yīng)一個(gè)折扣規(guī)則,例如購(gòu)買了兩本卷1,一本卷2,則可以享受5%的折扣,另外一本卷一則不享受優(yōu)惠。 設(shè)計(jì)算法能夠計(jì)算出讀者購(gòu)買一批書的最低價(jià)格。
一、設(shè)計(jì)思想 本題采用的是找規(guī)律的方法,經(jīng)過(guò)計(jì)算會(huì)發(fā)現(xiàn),購(gòu)買的數(shù)量在5以內(nèi)的時(shí)候沒什么問題,都是按照成套的購(gòu)買打折的。但是從6開始就會(huì)出現(xiàn)多種組合方式,我們就逐一進(jìn)行計(jì)算,發(fā)現(xiàn)10以內(nèi)只有8是特殊的。她不是購(gòu)買5的倍數(shù)最便宜,而是采用4+4的方式最便宜。所以我們先按照5的倍數(shù)記錄折扣率方便以后的計(jì)算,然后再把購(gòu)買情況按照10分類。單獨(dú)討論余數(shù)為8的情況:8按照4+4的方式購(gòu)買,其余按照5的倍數(shù)成套購(gòu)買。余數(shù)不為8的情況都以5的多少倍成套購(gòu)買,剩下的單獨(dú)購(gòu)買。 二、代碼實(shí)現(xiàn) 1 //求買書的最低價(jià)格 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;//單價(jià)為8 10 double rate, low_price; 11 12 //輸入 13 cout << "輸入買書的數(shù)量:"; 14 cin >> num; 15 while (num < 1) 16 { 17 cout << "輸入的數(shù)量有誤!"<<endl; 18 cout << "輸入買書的數(shù)量:"; 19 cin >> num; 20 } 21 22 multi = num / 10;//除以10的商 23 remain = num % 10;//余數(shù) 24 s = num % 5;//除以5的余數(shù) 25 b = num / 5;// 26 switch (s)//根據(jù)數(shù)量是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 << "您購(gòu)買這些書的最低價(jià)格為:" << low_price << endl; 43 44 return 0; 45 } 三、實(shí)現(xiàn)截圖 輸入錯(cuò)誤處理: 輸入10以內(nèi): 特殊以8為基準(zhǔn)的數(shù): 其他情況: ? ? ?? ?? 四、個(gè)人總結(jié) 本次實(shí)驗(yàn)并不難,但是開始時(shí)候我們還是沒有什么思路,老師提醒我們把情況都列舉出來(lái)找規(guī)律。我以后要學(xué)習(xí)這種編程的方法。 還有就是代碼的簡(jiǎn)略問題,開始的時(shí)候我用switch語(yǔ)句編寫從余數(shù)為0到5的情況,寫到6的時(shí)候我發(fā)現(xiàn)這些的情況都是相通的,無(wú)非是5的倍數(shù)不同、剩余單獨(dú)購(gòu)買的本數(shù)不同、折扣率不同,只有余數(shù)為8的時(shí)候不是以5為基準(zhǔn)寫的。所以我修改了代碼,只是用if……else寫出了余數(shù)是否為8,然后把情況合在一起寫,這樣減少了很多代碼冗余,然后我看代碼的時(shí)候也能比較清晰。 最后就是要注意一些編程的細(xì)節(jié),,貌似最近都在用java寫安卓,swich語(yǔ)句開始居然忘記了寫break!然后定義int類型的變量習(xí)慣了把這次的low_price等價(jià)格最開始也定義成了int……下次要細(xì)心啊……

轉(zhuǎn)載于:https://www.cnblogs.com/2016helen/p/5560262.html

總結(jié)

以上是生活随笔為你收集整理的软件工程个人项目——买书的最低价格的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。