TaxWorks
目錄
背景介紹
TaxWorks,是用C++編寫的模擬爲商店購物清單計算稅費的控制檯小程序,是在參加ThoughtWorks2016校招的過程中依據給出的編程題目開發。
項目介紹
TaxWorks 的設計初衷是模擬客人在商店購物,根據她出示的一個購物清單,爲她估算稅費和總費用。
在生活中有這樣的情況,有些客人拿着預先準備好的購物清單直接來到結算處要求計算費用,以確定稅費多少再決定是否購買。稅費計算比較複雜,除了普通消費稅以外,有的進口商品還需繳納進口附加稅,當然還有免稅商品的情況。TaxWorks 正是爲了解決此問題而設計的。
在TaxWorks中,使用Text文檔保存購物清單(英文)。如果用戶想要修改購物清單,直接修改txt文檔即可。程序中對購物清單的格式提出了一些要求,但由於個人時間和能力所限,考慮得並不是十分周全。
TaxWorks還初始化了一個庫存項目列表,檢查購物清單中的物品是否存在於庫存中,並返回物品類別號。從購物清單中可以讀出物品的數量,後期在完善程序功能的時候可以和庫存項目的數量做對比,檢查是否有足夠的庫存。
使用說明
輸入
Input 1:
1 book at 12.49
1 music CD at 14.99
1 chocolate bar at 0.85
Input 2:
1 imported box of chocolates at 10.00
1 imported bottle of perfume at 47.50
Input 3:
1 imported bottle of perfume at 27.99
1 bottle of perfume at 18.99
1 packet of headache pills at 9.75
1 box of imported chocolates at 11.25
分別用3個Text文檔存儲了以上Input的內容,程序中選擇讀取編號。將每個Input視爲一次購物清單,當完成了一項購物清單的稅費計算後,TaxWorks會詢問是否還要計算別的清單。
購物清單格式要求
可以根據需求,改變購物清單的內容。
但因爲程序會對購物清單的內容逐行進行語義識別,所以對購物清單的格式是有要求的:
- 字段間用空格分割
- 數量是第一個字段,且不小於零、不溢出、不爲非數字
- 價格是最後一個字段,且不小於零
- 對於有單位的描述,識別of與at間的所有字段爲name
- 對於沒有單位的字段,識別數量後到at前的所有字段爲name
- 進口商品在描述中需有imported字段
由於個人時間和能力所限,考慮得並不是十分周全,有些字段例如數量的設立是爲了後期擴展程序時與庫存數量對比準備的。
庫存數據
本程序中,僅按題目設定了7種商品,使用vector組織結構。
如果要對本程序做應用方面的進一步完善,應該用數據庫,還需要完善。
稅費計算原理
1、普通商品都需要繳納10%的消費稅。
2、免稅商品無需繳納消費稅,免稅商品種類爲:書籍(book)、食品(food)、藥品(medical product)
3、進口商品需要繳納5%的進口附加稅,沒有種類可以豁免。
4、每個物品的2項稅費在彙總之後,向上舍入到最近的0.05元。
輸出
顯示每個商品的描述(數量、單位、名稱),在冒號(:)後顯示該商品經過稅費計算後需要付款的總額(價格+稅費)。
列表最下面列出了該訂單需要付出的總稅費和總額。
其他
時間倉促,功能簡陋,望您包涵。項目的Bug和改進點,期盼得到您的指點,歡迎隨時與我溝通,聯繫方式:
- Email: [email protected]
- Phone: