




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/《JAVA語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)——計(jì)算個(gè)人所得稅設(shè)計(jì)系別:計(jì)算機(jī)系專業(yè):計(jì)算機(jī)科學(xué)和技術(shù)年級(jí):07計(jì)算機(jī)本科(2)班姓名:鐘俊杰指導(dǎo)老師:齊勇軍2010年6月28日—2010年6書目《JAVA語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì) -1-一、摘要 -2-二、需求分析 -3-2.1背景介紹 -3-2.2功能需求 -4-三、總體設(shè)計(jì) -4-四、具體設(shè)計(jì) -4-五:代碼實(shí)現(xiàn)及運(yùn)行狀況: -5-六、代碼清單: -7-七、小結(jié) -16-八、參考文獻(xiàn) -17-一、摘要本設(shè)計(jì)是一個(gè)基于吩咐行界面的計(jì)算個(gè)人所得稅應(yīng)用程序,依據(jù)用戶輸入的當(dāng)月工資薪金總額計(jì)算應(yīng)繳納的個(gè)人所得稅額。為適應(yīng)將來個(gè)人所得稅法的可能改變,該程序支持對(duì)個(gè)人所得稅起征點(diǎn)進(jìn)行調(diào)整的功能,并且個(gè)人所得稅各級(jí)稅率也允許修改。利用簡(jiǎn)潔的菜單方式讓用戶選擇所需的功能。設(shè)計(jì)中主要用到JFrame、Frame、JTextField、TextField、Button這幾個(gè)類。關(guān)鍵字:計(jì)算個(gè)人所得稅、JFrame、Frame、JTextField、TextField、Button二、需求分析2.1背景介紹個(gè)人所得稅,是調(diào)整征稅機(jī)關(guān)和自然人之間在個(gè)人所得稅的征納和管理過程中所發(fā)生的社會(huì)關(guān)系的法律規(guī)范的總稱。凡在中國(guó)境內(nèi)有居處,或者無(wú)居處而在中國(guó)境內(nèi)居住滿一年的個(gè)人,從中國(guó)境內(nèi)和境外取得所得的,以及在中國(guó)境內(nèi)無(wú)居處又不居住或者無(wú)居處而在境內(nèi)居住不滿一年的個(gè)人,從中國(guó)境內(nèi)取得所得的,均為個(gè)人所得稅的納稅人。隨著社會(huì)和經(jīng)濟(jì)的發(fā)展,計(jì)算個(gè)人所得稅已成為人們?nèi)粘I钪斜夭恍猩俚闹匾獌?nèi)容,因此一個(gè)計(jì)算所得稅系統(tǒng)是人們生活中一個(gè)重要的計(jì)算工具。依據(jù)此背景,我們開發(fā)了一個(gè)簡(jiǎn)潔而且簡(jiǎn)潔操作的個(gè)人所得稅的系統(tǒng),希望能夠給人們帶來便利。2.2功能需求本系統(tǒng)是一個(gè)計(jì)算個(gè)人所得稅的應(yīng)用程序,用戶可以輸入的當(dāng)月工資薪金總額,從而系統(tǒng)會(huì)自動(dòng)計(jì)算應(yīng)繳納的個(gè)人所得稅額。同時(shí),我們依據(jù)實(shí)際狀況,還增加了個(gè)人所得稅的修改等功能,通過簡(jiǎn)潔的菜單欄上的操作,用戶可以輕松地依據(jù)實(shí)際狀況作出稅率等數(shù)據(jù)的調(diào)整,從而達(dá)到精確的計(jì)算結(jié)果。三、總體設(shè)計(jì)依據(jù)Java的特點(diǎn),我們利用類的設(shè)計(jì),簡(jiǎn)潔實(shí)現(xiàn)查詢當(dāng)前免征基數(shù)及稅率、更改免征基數(shù)、更改稅率、個(gè)人所得稅的計(jì)算的功能。便利用戶運(yùn)用及查詢。在類的設(shè)計(jì)過程中,主要用到了以下幾個(gè)類:GRS:、Windowclose:、Calculate:、XiuGai1 、XiuGai2:四、具體設(shè)計(jì)以下是每個(gè)類的設(shè)計(jì):GRS:主體類:此類是用于顯示主窗體中,全部類都是此類的內(nèi)部類。Windowclose:關(guān)閉窗體類,這個(gè)類的作用是當(dāng)要關(guān)閉一個(gè)窗體調(diào)用這類Calculate:用于計(jì)算稅,這個(gè)類主要用于完成稅的計(jì)算,這個(gè)類繼承了ActionListener接口,用于監(jiān)聽calculate按鈕產(chǎn)生的事務(wù)。XiuGai1:修改免征基數(shù) XiuGai2:修改稅率五:代碼實(shí)現(xiàn)及運(yùn)行狀況:用javacApplication運(yùn)行程序的吩咐行顯示如下界面:
2、登錄后進(jìn)入選擇功能界面:
3、進(jìn)行選擇功能:選擇功能1,計(jì)算個(gè)人所得稅。輸入工資,計(jì)算出結(jié)果進(jìn)行功能選擇:選擇功能2,查詢免征基數(shù)和稅率,查詢結(jié)果如下圖所示:4、進(jìn)行功能選擇:選擇功能3,修改免征基數(shù),運(yùn)行結(jié)果如下圖:5、進(jìn)行功能選擇:選擇功能4,修改稅率。運(yùn)行結(jié)果如下:六、代碼清單:importjava.awt.Choice;importjava.awt.Dialog;importjava.awt.FlowLayout;importjava.awt.Frame;importjava.awt.GridLayout;importjava.awt.Label;importjava.awt.List;importjava.awt.ScrollPane;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjava.lang.String;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JTextField;importjava.awt.BorderLayout;importjava.awt.Frame;importjava.awt.Label;importjava.awt.Panel;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;//用戶登錄界面publicclassGRSextendsFrameimplementsActionListener{ staticdoublebase=1600;//免征基數(shù) staticdouble[]taxRate={0.05,0.10,0.15,0.20,0.25};//各級(jí)稅率 publicstaticvoidmain(String[]args){ Frameframe=newFrame(); newGRS(frame); } LabelLabel1=newLabel("用戶名:"); TextFieldtextfieldialog=newTextField("密碼:123"); LabelLabel2=newLabel("用戶密碼:"); TextFieldtextfield2=newTextField(10); LabelLabel5=newLabel("用戶地區(qū):"); Choicechoice=newChoice(); LabelLabel6=newLabel("用戶類別:"); Listlist=newList(2,false); JButtonbutton1=newJButton("確定"); JButtonbutton2=newJButton("取消"); Dialogdialog=newDialog(this,"提示信息",false); ScrollPanesp=newScrollPane(); publicGRS(Frameframe){ super("個(gè)人所得稅查詢"); add(Label1); add(textfieldialog); add(Label2); textfield2.setEchoChar('*'); add(textfield2); add(Label5); choice.addItem("廣東"); choice.addItem("上海"); choice.addItem("北京"); add(choice); add(Label6); list.add("一般用戶"); list.add("管理員"); sp.add(list); add(sp); add(button1); button1.addActionListener(this); add(button2); button2.addActionListener(this); setLayout(newGridLayout(5,2,5,20)); setBounds(430,430,300,200); setResizable(false); setVisible(true); addWindowListener(newwindowclose()); } publicclasswindowcloseextendsWindowAdapter{ publicvoidwindowClosing(WindowEvente){ System.exit(0); } }//主菜單 publicvoidactionPerformed(ActionEvente){ if(e.getActionCommand().equals("確定")){ if(textfield2.getText().trim().equals("123")){ addWindowListener(newwindowclose()); JFramef=newJFrame("主菜單"); JButtonbutton5=newJButton("1:計(jì)算個(gè)人所得稅"); JButtonbutton6=newJButton("2:查詢免征基數(shù)和稅率"); JButtonbutton7=newJButton("3:修改免征基數(shù)"); JButtonbutton8=newJButton("4:修改稅率"); f.add(button5); f.add(button6); f.add(button7); f.add(button8);button5.addActionListener(newButAL()); button6.addActionListener(newChaXun()); button7.addActionListener(newXiuGai1()); button8.addActionListener(newXiuGai2()); f.setLayout(newGridLayout(2,2,5,20)); f.setBounds(385,420,400,220); f.setResizable(false); f.setVisible(true); } else{ dialog.setLayout(newFlowLayout(FlowLayout.CENTER)); Labeltf=newLabel("對(duì)不起,密碼錯(cuò)誤,請(qǐng)重試"); dialog.add(tf); dialog.setBounds(455,430,250,60); dialog.setResizable(false); dialog.setVisible(true); dialog.addWindowListener(newwindowclose()); } }else System.exit(0); } //計(jì)算個(gè)人所得稅 privateclassButALimplementsActionListener{ doubleincome=-1;//個(gè)人收入 doublerevenue=-1;//個(gè)人所得稅 JTextFieldtestField; JTextFieldresultField; GRSr; publicvoidactionPerformed(ActionEventevent){ JFramef=newJFrame("個(gè)人所得稅的計(jì)算"); JLabeljl=newJLabel("請(qǐng)輸入你的工資:"); JLabelresult=newJLabel("計(jì)算的結(jié)果:"); testField=newJTextField(5); resultField=newJTextField(5); JButtoncalculate=newJButton("計(jì)算"); calculate.addActionListener(newCalculate()); f.add(jl); f.add(testField); f.add(calculate); f.add(result); f.add(resultField); f.setLayout(newGridLayout(2,3,3,20)); f.setBounds(380,500,400,100); f.setResizable(false); f.setVisible(true); } privateclassCalculateimplementsActionListener{ @Override publicvoidactionPerformed(ActionEvente){ Strings1=testField.getText().trim(); income=Double.valueOf(s1); doubletaxible=income-r.base; if(taxible>20000) revenue=(taxible-20000)*r.taxRate[4]+15000 *r.taxRate[3]+3000*r.taxRate[2]+1500 *r.taxRate[1]+500*r.taxRate[0]; elseif(taxible>5000) revenue=(taxible-5000)*r.taxRate[3]+3000*r.taxRate[2] +1500*r.taxRate[1]+500*r.taxRate[0]; elseif(taxible>2000) revenue=(taxible-2000)*r.taxRate[2]+1500*r.taxRate[1] +500*r.taxRate[0]; elseif(taxible>500) revenue=(taxible-500)*r.taxRate[1]+500*r.taxRate[0]; elseif(taxible>0) revenue=taxible*r.taxRate[0]; elseif(taxible<=0) revenue=0; Strings2=String.valueOf(revenue); resultField.setText(s2); } } } //查詢免征基數(shù)和稅率 privateclassChaXunimplementsActionListener{ GRSr; @Override publicvoidactionPerformed(ActionEvente){finalJFramef=newJFrame("查詢");//窗體1 JTextFieldf1=newJTextField(); JTextFieldf2=newJTextField(); JTextFieldf3=newJTextField(); JTextFieldf4=newJTextField(); JTextFieldf5=newJTextField(); JTextFieldf6=newJTextField(); f.add(f1); f1.setText("免征基數(shù)為:"+String.valueOf(r.base));//輸入免征基數(shù) f.setLayout(newGridLayout(6,1,3,5)); f.add(f2); f.add(f3); f.add(f4); f.add(f5); f.add(f6); f2.setText("一級(jí)稅率為:"+r.taxRate[0]); f3.setText("二級(jí)稅率為:"+r.taxRate[1]); f4.setText("三級(jí)稅率為:"+r.taxRate[2]); f5.setText("四級(jí)稅率為:"+r.taxRate[3]); f6.setText("五級(jí)稅率為:"+r.taxRate[4]); f.addWindowListener(newWindowAdapter(){ @Override publicvoidwindowClosing(WindowEvente){ f.setVisible(false); } }); f.setBounds(385,420,400,200); f.setResizable(false); f.setVisible(true); }}//修改免征基數(shù)privateclassXiuGai1implementsActionListener{ GRSr; TextFieldtf=newTextField(10); Framef=newFrame("修改免征基數(shù)"); @Override publicvoidactionPerformed(ActionEvente){ f.add(newLabel("現(xiàn)在的免征基數(shù)為:"+r.base),BorderLayout.NORTH); f.add(newLabel("請(qǐng)輸入新的免征基數(shù):"),BorderLayout.CENTER); f.add(tf,BorderLayout.EAST); tf.addActionListener(newTextFieldListener()); f.addWindowListener(newWindowAdapter(){ @Override publicvoidwindowClosing(WindowEvente){ f.setVisible(false); } }); f.setBounds(425,460,300,120); f.setResizable(false); f.setVisible(true); } privateclassTextFieldListenerimplementsActionListener{ @Override publicvoidactionPerformed(ActionEvente){ Strings=tf.getText().trim(); r.base=Double.valueOf(s); tf.setText("修改勝利!"); } } } //修改稅率 privateclassXiuGai2implementsActionListener{ intrateLevel=0;//客戶要修改的稅率級(jí)別 doublenewTaxRate=0;//修改后的稅率 GRSr; Framef=null; TextFieldtf1=null; TextFieldtf2=null; @Override publicvoidactionPerformed(ActionEvente){ f=newFrame("修改稅率");//創(chuàng)建窗體 tf1=newTextField(6); tf2=newTextField(6); Panelp1=newPanel(); Panelp2=newPanel(); JButtonok1=newJButton("確定");ok1.addActionListener(newTF1Listener()); p1.add(newLabel("請(qǐng)輸入要修改的稅率的級(jí)別:"),BorderLayout.WEST); p1.add(tf1,BorderLayout.EAST); p1.add(ok1,BorderLayout.EAST); f.add(p1,BorderLayout.NORTH); JButtonok2=newJButton("確定"); ok2.addActionListener(newTF2Listener()); f.addWindowListener(newWindowAdapter(){ @Override publicvoidwindowClosing(WindowEvente){ f.setVisible(false); } }); p2.add(newLabel("請(qǐng)輸入你確定修改后的稅率:"),BorderLayout.WEST); p2.add(tf2,BorderLayout.EAST); p2.add(ok2); f.add(p2,BorderLayout.SOUTH);f.setLayout(newGridLayout(2,3,3,15)); f.setBounds(425,460,550,120); f.pack(); f.setVisible(true); } privateclassTF1ListenerimplementsActionListener{ @Override public
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 外科三基考試題+參考答案
- 局部解剖學(xué)模擬題(含答案)
- 送配電線路工(配電)-初級(jí)工習(xí)題庫(kù)
- 2025年湖南工商職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完美版
- 《選擇性必修1、2》 集體教學(xué)設(shè)計(jì)-2024-2025學(xué)年高二上學(xué)期生物人教版選擇性必修
- 2025年黑龍江農(nóng)墾職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)1套
- 高中信息技術(shù)必修教學(xué)設(shè)計(jì)-4.2.2 表格數(shù)據(jù)的圖形化6-教科版
- Module 2 public holidays Unit 1教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版九年級(jí)英語(yǔ)上冊(cè)
- 2024中國(guó)華能旗下湖南華能長(zhǎng)江環(huán)??萍加邢薰臼袌?chǎng)化招聘筆試參考題庫(kù)附帶答案詳解
- 機(jī)器學(xué)習(xí)原理與應(yīng)用電子教案 5.2Logistis回歸
- GA 979-2012D類干粉滅火劑
- 骨科病人健康教育處方
- 關(guān)鍵詞與有機(jī)關(guān)聯(lián)寫作課件
- 贛價(jià)協(xié)〔2023〕9號(hào)江西省建設(shè)工程造價(jià)咨詢服務(wù)收費(fèi)基準(zhǔn)價(jià)
- 小汽車掛靠協(xié)議書范本(2篇)
- 三年級(jí)心理健康全冊(cè)課件
- 顱腦外傷(共61張PPT)
- 黃河流域生態(tài)保護(hù)與高質(zhì)量發(fā)展課件
- 化妝品產(chǎn)品召回模擬演練記錄表格
- 信息系統(tǒng)安全等級(jí)保護(hù)基本要求表格
- 京東考試答案
評(píng)論
0/150
提交評(píng)論