【項目1:個人所得稅計算器】
編寫選擇結構程序,輸入個人月收入總額,計算出他本月應繳稅款和稅後收入(計算辦法見附:關於個人所得稅的有關背景知識)。
(1)自選if語句的嵌套或/和switch語句完成程序設計;
(2)下面給出程序的基本框架,請從課程主頁找到鏈接下載使用。
#include
using namespace std;
int main( )
{
double dSalary,dTax=0,dNetIncome=0;
cout<<"請輸入您本月的收入總額(元):";
cin>>dSalary;
// 下面求解應繳個人所和稅dTax和稅後收入dNetIncome
cout<<"您本月應繳個人所和稅 "<
附:關於個人所得稅的有關背景知識
計算方法:個人所得稅=(收入總額-3500)*稅率-速算扣除數
從2011年9月1日起,我國個人所得稅起征點基數為3500元,超出部分按以下7級計算。
序號
收入范圍
稅率
速算扣除數
1
超過0至1500
3%
0
2
超過1500元至4500元的部分
10%
105
3
超過4500元至9000元的部分
20%
555
4
超過9,000元至35,000元的部分
25%
1005
5
超過35,000元至55,000元的部分
30%
2755
6
超過55,000元至80,000元的部分
35%
5505
7
超過80,000以上
45%
13505
例如:
王某月收入總額3600元,個人所得稅=(3600-3500)*3%=3元;
再例:
李某月收入13500元,個人所得稅=(13500-3500)*25%-1005=2500-1005=1495元。
更多了解速算扣除數,請找百度百科。
【項目2:本月有幾天?】
編程序,輸入年份和月份,輸出本月有多少天。合理選擇分支語句完成設計任務。
樣例輸入1:2004 2,輸出結果1:本月29天
樣例輸入2:2010 4,輸出結果2:本月30天
【項目3:輸出星號圖】
自選下面的幾個圖案,編程序輸出(自選兩個完成,其他的想想思路即可)。
【項目4:窮舉法解決組合問題】
領會窮舉法(意為“窮盡式列舉”,也稱枚舉)的思想,然後自行選題進行解決,掌握這種程序設計的一般方法。
(1)百錢百雞問題
中國古代數學家張丘建在他的《算經》中提出了著名的“百錢買百雞問題”:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何?
提示:
設雞翁、雞母、雞雛的個數分別為x,y,z,題意給定共100錢要買百雞,若全買公雞最多買20只,顯然x的值在0~20之間;同理,y的取值范圍在0~33之間,可得到下面的不定方程:
{5x+3y+z/3=100x+y+z=100
所以此問題可歸結為求這個不定方程的整數解。
由程序設計實現不定方程的求解與手工計算不同。在分析確定方程中未知數變化范圍的前提下,可通過對未知數可變范圍的窮舉,驗證方程在什麼情況下成立,從而得到相應的解。
引申:
這類求解不定方程的實現,各層循環的控制變量直接與方程未知數有關,且采用對未知數的取值范圍上窮舉和組合的方法來復蓋可能得到的全部各組解。如果要采取技巧,往往是根據題意,更合理地設置循環控制條件來減少這種窮舉和組合的次數,提高程序的執行效率,需要具體問題具體分析。
(2)換分幣
用一元人民幣兌換成1分、2分和5分硬幣,有多少種不同的兌換方法?請輸出所有可能的方案。
提示:
根據題意設i,j,k分別為兌換的1分、2分、5分硬幣的枚數,則i,j,k 的值應滿足:i+j?2+k?5=100 ,根據取值范圍構造循環解題即可。
(3)年齡幾何:張三、李四、王五、劉六的年齡成一等差數列,他們四人的年齡相加是26,相乘是880,求以他們的年齡為前4項的等差數列的前20項。
提示:
設數列的首項為n ,項差為a ,則前4項之和為n+(n+a)+(n+a+a)+(n+a+a+a)=4?n+6?a" ,前4 項之積為n?(n+a)?(n+a+a)?(n+a+a+a) 。同時有1≤a≤4 和1≤n≤6 。可采用窮舉法求出此數列。
(4)三色球問題
若一個口袋中放有12個球,其中有3個紅的。3個白的和6個黒的,問從中任取8個共有多少種不同的顏色搭配?
提示:
設任取的紅球個數為i ,白球個數為j ,則黒球個數為8?i?j ,根據題意紅球和白球個數的取值范圍是0 ~3 ,在紅球和白球個數確定的條件下,黒球個數取值應為8?i?j≤6 。
(5)委派任務
某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件:
A和B兩人中至少去一人; A和D不能一起去; A、E和F三人中要派兩人去; B和C都去或都不去; C和D兩人中去一個; 若D不去,則E也不去。
問應當讓哪幾個人去?
提示:
用a、b、c、d、e、f六個變量表示六個人是否去執行任務的狀態,變量的值為1,則表示該人去;變量的值為0,則表示該人不參加執行任務,根據題意可寫出表達式:a+b>=1 //A和B兩人中至少去一人; (a+d)!=2 //A和D不能一起去; a+e+f==2 // A、E、F三人中要派兩人去; b+c==0或b+c==2 // B和C都去或都不去; c+d==1 //C和D兩人中去一個; d+e==0或d==1 //若D不去,則E也不去(都不去;或D去E隨便)。
上述各表達式之間的關系為“與”關系。窮舉每個人去或不去的各種可能情況,代入上述表達式中進行推理運算,使上述表達式均為“真”的情況就是正確的結果。
(6)猜數字
在下面的加法算式中,不同的符號代表不同的數字,相同的符號代表相同的數字。請設計程序求出”都、要、學、C”4個符號分別代表的數字。
提示:
讓計算機解奧數題。窮舉”都、要、學、C”4個符號分別代表的數字(從0到9),然後進行組合,如果組合起來符合規則(不同的符號代表不同的數字,相同的符號代表相同的數字,且使等式成立),則為正解。
(7)誰是小偷
警察局抓住了A、B、C、D四名盜竊嫌疑犯,其中只有一人是小偷。在審問時,A說:“我不是小偷”;B說:“C是小偷”;C說:“小偷肯定是D”;D說:“C在冤枉好人”。現在已經知道這四人中有三人說的是真話,一人說的是假話。請問到底誰是小偷?
提示:
設4個變量a,b,c,d,為0時表示不是小偷,為1時表示是小偷,用四重循環窮舉a,b,c,d可能的取值的組合,對每一種組合判斷其是否符合題目中給出的約束。最後結論:C是小偷。
(8)辯數字
有等式[※×(※3+※)]2=8※※9,其中※處為1個數字,滴上了墨水無法辨認。請編程找出※表示哪個數字。
拓展:有等式[※×(※3○※)]2=8※※9,其中※處為1個數字,○處為+、-、×、÷四個運算符之一,現滴上了墨水無法辨認。請編程找出※表示哪個數字,○表示哪個運算符。