首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ 大一實踐項目集錦:稅率計算、日期天數、星號圖案、窮舉法經典題

     編輯:關於C++

項目一:個人所得稅計算器

輸入月收入,按 2011 年新標準(起征點 3500,七級累進稅率)計算應納稅額與稅後收入。

核心邏輯

double tax = 0, taxable = salary - 3500;
if (taxable > 0) {
    if (taxable <= 1500) tax = taxable * 0.03;
    else if (taxable <= 4500) tax = taxable * 0.10 - 105;
    else if (taxable <= 9000) tax = taxable * 0.20 - 555;
    else if (taxable <= 35000) tax = taxable * 0.25 - 1005;
    else if (taxable <= 55000) tax = taxable * 0.30 - 2755;
    else if (taxable <= 80000) tax = taxable * 0.35 - 5505;
    else tax = taxable * 0.45 - 13505;
}
double net = salary - tax;

速算扣除數簡化了分段計算,直接套用公式:稅 = 應納稅所得額 × 稅率 - 速算扣除數。

項目二:輸入年月輸出天數

閏年判斷:(year%4==0 && year%100!=0) || year%400==0。
二月 28/29 天,其餘月份固定。

項目三:星號圖案輸出

雙層循環控制行列,條件判斷打印 * 或空格。常見圖案:直角三角形、等腰三角形、菱形、空心圖形。

項目四:窮舉法經典題型全解析

1. 百錢百雞

5x + 3y + z/3 = 100
x + y + z = 100
x∈[0,20], y∈[0,33], z=100-x-y

三重循環優化為雙重:確定 x,y 算 z,驗證方程。

2. 換分幣

i + 2j + 5k = 100
i∈[0,100], j∈[0,50], k∈[0,20]

3. 年齡等差數列

4n + 6d = 26
n(n+d)(n+2d)(n+3d) = 880
n∈[1,6], d∈[1,4]

4. 三色球

紅≤3, 白≤3, 黑≤6, 共取8
枚舉紅、白,黑=8-紅-白,檢查黑≤6

5. 委派任務(邏輯滿足問題)

6 人 A-F,6 條邏輯約束。
六重循環枚舉 0/1 狀態(64 種),驗證所有條件:

for(a:0..1) for(b:0..1) for(c:0..1) for(d:0..1) for(e:0..1) for(f:0..1)
    if (a+b>=1 && a+d!=2 && a+e+f==2 && (b+c==0||b+c==2) && c+d==1 && (d+e==0||d==1))
        print(a,b,c,d,e,f);

6. 猜數字(字母代表數字)

四重循環枚舉 0-9,檢查各位不同且滿足加法算式。

7. 誰是小偷(邏輯推理)

四人三真一假。枚舉小偷身份,統計真話數 = 3 的情況。

8. 辨數字(墨水遮擋數字/運算符)

枚舉 0-9 和 +-*/,驗證等式成立。

窮舉法核心思想

  1. 確定變量取值範圍(由約束條件推導)。
  2. 多重循環覆蓋所有組合。
  3. 剪枝:提前終止不可能的分支(如和已超過目標)。
  4. 驗證:代入原約束條件判斷合法性。

總結

這套項目覆蓋了 C++ 入門核心知識點:分支選擇、循環嵌套、邏輯表達式、窮舉剪枝。窮舉法雖然時間複雜度高,但對於小規模搜索空間(如 64、10000 以內),是最直觀、最不易出錯的「暴力美學」解法。掌握範圍確定與剪枝技巧,是進階搜索算法(回溯、DFS、BFS)的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved