首先寫JAVABEAN文件:WageTax.java/**nbsp;*nbsp;*nbsp;@authornbsp;劍江帝國nbsp;*nbsp;@usagenbsp;計算個人所得稅nbsp;*nbsp;@datenbsp;2008-10-8nbsp;*/publicnbsp;classnbsp;WageTaxnbsp;implementsnbsp;java.io.Serializable{nbsp;nbsp;nbsp;nbsp;privatenbsp;doublenbsp;wage;//定義工資nbsp;nbsp;nbsp;nbsp;privatenbsp;Stringnbsp;output=““;//定義輸入nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;輸入一個字符串,代表工資,如果輸入出錯會將錯誤寫至outputnbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;voidnbsp;setWage(Stringnbsp;wageInput){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;try{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;this.wage=Double.parseDouble(wageInput);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;catch(Exceptionnbsp;ex){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;output=“輸入有誤“;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;this.wage=-1;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;計算稅額,算法簡單說一下。nbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;doublenbsp;countTax(){nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wage-2000amp;gt;0){nbsp;nbsp;nbsp;nbsp;//第一步,將個人的工資減去2000后按交稅等級分成若干個收入塊nbsp;nbsp;nbsp;nbsp;//第二步,按對應稅率統(tǒng)計每個塊應該交稅額并相加,之后返回nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;//STEP1nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=wage-2000;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;rate[]={0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;intnbsp;bound[]={0,500,2000,5000,20000,40000,60000,80000,100000};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;chunk[]={0,0,0,0,0,0,0,0,0};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for(intnbsp;i=1;iamp;lt;9;i++){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wage-bound[i]+bound[i-1]amp;gt;0)nbsp;{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=wage-bound[i]+bound[i-1];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;chunk[i-1]=bound[i]-bound[i-1];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;chunk[i-1]=wage;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=-1;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wageamp;gt;0)nbsp;chunk[8]=wage;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;tax=0;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for(intnbsp;i=0;iamp;lt;9;i++){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tax=tax+chunk[i]*rate[i];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;returnnbsp;tax;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;returnnbsp;0;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;獲得稅款數(shù)nbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;Stringnbsp;getTax(){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(output.equals(““)){nbsp;nbsp;nbsp;nbsp;returnnbsp;Double.toString(countTax());}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;returnnbsp;output;nbsp;nbsp;nbsp;nbsp;}}///////////////////////////////////////////////////////然后在輸出頁面中使用設定wage屬性為工資,獲得tax屬性得到稅
成都創(chuàng)新互聯(lián)公司專注于鹽湖企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設公司,商城網(wǎng)站建設。鹽湖網(wǎng)站建設公司,為鹽湖等地區(qū)提供建站服務。全流程按需網(wǎng)站制作,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
這是網(wǎng)絡異常的提示,通常是服務器端的問題,換臺機器試試,如果還是不行,那就是稅務那面的問題,稍微等等再試好了。
第一個是:
import?javax.swing.*;
public?class?Test{
public?static?void?main(?String?args[]){
String?input?=?JOptionPane.showInputDialog("請輸入一個時間:");
int?time?=?Integer.parseInt(input);
int?hour?=?time?/?60;
int?minute?=?(time?%?60);
JOptionPane.showMessageDialog(null,hour+"小時"+minute+"分鐘");
System.exit(?0?);
}
}
直接復制粘貼。
把這個保存為Test.java,然后編譯。注意大小寫。
第二個是:
import?javax.swing.*;
public?class?Test{
public?static?void?main(?String?args[]){
String?input?=?JOptionPane.showInputDialog("請輸入工作每小時的報酬:");
int?pay??=??Integer.parseInt(input);
input?=?JOptionPane.showInputDialog("請輸入工作小時數(shù):");
int?hour?=?Integer.parseInt(input);
input?=?JOptionPane.showInputDialog("請輸入稅率(0.00):");
float?rate?=?Float.parseFloat(input);
String?output;
output?=?"每小時工資:"?+?pay?+
"\n工作小時數(shù):"?+?hour?+
"\n總收入:"?+?(pay?*?hour)?+
"\n繳稅金額:"?+?(pay*hour*rate)?+
"\n凈利潤:"?+?(pay*hour*(1-rate));
JOptionPane.showMessageDialog(null,output);
System.exit(?0?);
}
}
這程序中在輸入稅率時不以%5輸入?,而是以0.05的形式輸入。因為我還沒有找到能把%5轉(zhuǎn)換成float型數(shù)的函數(shù)。所以這一點很抱歉。望諒解。^_^
同樣的把這個保存成Test.java即可編譯。
# coding=utf-8
import time
base_quota = 3500
tax_quota = [1500, 4500, 9000, 35000, 55000, 80000]
tax_rat = [0.03, 0.10, 0.20, 0.25, 0.30, 0.35, 0.45]
tax_quick = [0, 105, 555, 1005, 2755, 5505, 13505]
one_month = 0
two_month = 0
# 主線程執(zhí)行函數(shù)
def run():
year_bonus = input('Please input bonus\n')
month_salary = input('Please input salary\n')
year_bonus = int(year_bonus)
month_salary = int(month_salary)
# 獲取三種方案的稅額(不拆分、拆入一個月、拆入兩個月)
start_time = time.clock()
year_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
one_month_tax = get_one_month_bonus(year_bonus, month_salary)
two_month_tax = get_two_month_bonus(year_bonus, month_salary)
# 取最小稅額并計算稅后獎金
min_tax = min(year_bonus_tax, one_month_tax, two_month_tax)
bonus_remain = year_bonus - min_tax
if min_tax == year_bonus_tax:
print(year_bonus, "0", "0", bonus_remain)
elif min_tax == one_month_tax:
print(year_bonus - one_month, one_month, "0", bonus_remain)
elif min_tax == two_month_tax:
print(year_bonus - (two_month * 2), two_month, two_month, bonus_remain)
else:
return
end_time = time.clock()
print(u"耗時:"),
print(end_time - start_time)
run()
return
# 獲取稅率等級
def get_tax_num(money):
for i in range(len(tax_quota)):
if money tax_quota[-1]:
return len(tax_quota)
elif money = tax_quota[i]:
return i
else:
continue
# 獲取稅率
def get_tax_rat(money):
return rat(get_tax_num(money))
# 獲取速算扣除數(shù)
def get_tax_quick(money):
return quick(get_tax_num(money))
def rat(num):
if num len(tax_rat):
return tax_rat[num]
else:
print("function rat error")
def quick(num):
if num len(tax_quick):
return tax_quick[num]
else:
print("function quick error")
# 獲取平常月交稅金額
def get_month_tax(money):
if money = base_quota:
return 0
else:
money -= base_quota
return money * get_tax_rat(money) - get_tax_quick(money)
# 獲取年獎平均月交稅金額
def get_per_month_tax(money):
return money * get_tax_rat(money) - get_tax_quick(money)
# 獲取不拆分年獎交稅總額
def get_only_bonus_tax(year_bonus, month_salary):
if int(month_salary) = int(base_quota):
if int(year_bonus) int(base_quota - month_salary):
return 0
else:
per_month = (year_bonus - (base_quota - month_salary)) / 12.0
tax = (year_bonus - (base_quota - month_salary)) * get_tax_rat(per_month) - get_tax_quick(
per_month)
else:
per_month = year_bonus / 12.0
tax = year_bonus * get_tax_rat(per_month) - get_tax_quick(per_month)
return tax
# 獲取拆分為一個月交稅總額
def get_one_month_bonus(year_bonus, month_salary):
now_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
for i in range(1, int(year_bonus)):
bonus_remain = year_bonus - i
month_add_salary = month_salary + i
month_tax_add = get_month_tax(month_add_salary) - get_month_tax(month_salary)
bonus_tax = round(get_only_bonus_tax(bonus_remain, month_salary) + month_tax_add, 2)
if bonus_tax now_bonus_tax:
now_bonus_tax = bonus_tax
global one_month
one_month = i
return now_bonus_tax
# 獲取拆分為兩個月交稅總額
def get_two_month_bonus(year_bonus, month_salary):
now_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
for i in range(1, int(year_bonus)):
bonus_remain = year_bonus - i
month_add_salary = month_salary + (i / 2.0)
month_tax_add = (get_month_tax(month_add_salary) - get_month_tax(month_salary)) * 2.0
bonus_tax = round(get_only_bonus_tax(bonus_remain, month_salary) + month_tax_add, 2)
if bonus_tax now_bonus_tax:
now_bonus_tax = bonus_tax
global two_month
two_month = i / 2.0
return now_bonus_tax
# 運行主函數(shù)
run()
你寫錯了,else if(3500income income=5000)
要改成else if(income3500 income=5000)
這個else if(5000income income=8000)
要改成else if(income5000 income=8000)
下面你自己仔細找,大于號寫反了