北京信息科技大學(xué)Java語言程序設(shè)計Java語言設(shè)計基礎(chǔ)_第1頁
北京信息科技大學(xué)Java語言程序設(shè)計Java語言設(shè)計基礎(chǔ)_第2頁
北京信息科技大學(xué)Java語言程序設(shè)計Java語言設(shè)計基礎(chǔ)_第3頁
北京信息科技大學(xué)Java語言程序設(shè)計Java語言設(shè)計基礎(chǔ)_第4頁
北京信息科技大學(xué)Java語言程序設(shè)計Java語言設(shè)計基礎(chǔ)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、【實驗名稱】Java程序設(shè)計基礎(chǔ) 【實驗?zāi)康摹?1、學(xué)習(xí)和掌握J(rèn)ava程序的基本結(jié)構(gòu)。 2、學(xué)習(xí)和掌握J(rèn)ava程序的基本開發(fā)過程和方法。 3、學(xué)習(xí)和掌握程序設(shè)計的基本開發(fā)步驟。 4、學(xué)習(xí)和掌握J(rèn)ava程序的基本輸入、輸出方法。 5、學(xué)習(xí)和掌握J(rèn)ava程序設(shè)計的基本技術(shù)。 【實驗日期和時間記錄】實驗預(yù)習(xí)時間:2014.4.12.8:3010:30實驗過程時間:2014.4.12 10:3017:00及2014.4.26.8:3012:00【實驗內(nèi)容】 1、創(chuàng)建、編譯和執(zhí)行Welcome.java。(參見教材1.7和1.8小節(jié),P8-11)【實驗預(yù)習(xí)】1. 這道題需要解決的是輸出“welcome

2、to java”這個字符串。2. 解決方案:用system.out.println(“welcome to java”).方法輸出。沒有輸入與處理,直接輸出。3. 學(xué)會輸出字符串的方法?!靖剑撼绦虼a】public class Welcomepublic static void main(Stringargs)System.out.println("Welcome to java!");/輸出并顯示信息Welcome to java!【實驗過程及結(jié)果記錄】在實驗過程中沒有遇到問題,需要注意的是System.out.println();的第一個字母大寫。2、(財務(wù)應(yīng)用程序:工

3、資單)編寫程序,讀入工資基本信息并打印工資單。編寫兩種版本的程序,依次使用控制臺實現(xiàn)輸入輸出和GUI實現(xiàn)輸入輸出。運行效果可參見圖1和圖2。 說明:題目來源,教材編程練習(xí)2.11(P51)??刂婆_輸入輸出,請參考教材2.3(P21)和1.8小節(jié)(P10)。GUI輸入輸出,請參考教材2.18(P44)和1.9(P12)小節(jié)。 圖1 工資單(控制臺輸入、輸出) 1)從控制臺輸入【實驗預(yù)習(xí)】1. 該程序是用來打印工資單。2. 讀入信息,將信息以按照一定格式輸出?!靖剑撼绦虼a】import java.util.Scanner;public class Payrollpublic static voi

4、d main(Stringargs)/創(chuàng)建一個Scanner Scanner input=new Scanner(System.in);/輸入姓名int("Enter employee's name:");String name=input.next();/輸入工作時間System.out.print("Enter number of hour worked in a week:");double weekHour=input.nextInt();/輸入每小時工資數(shù)System.out.print("Enter hourly pay r

5、ate:");double payRate=input.nextDouble();/輸入聯(lián)邦稅率System.out.print("Enter federal tax withoutholding rate:");double federalRate=input.nextDouble();/輸入州稅稅率System.out.print("Enter state tax withoutholding rate:");double stateRate=input.nextDouble();/輸出工資單System.out.println("

6、;雇員姓名:"+ name);System.out.println("工作小時數(shù):"+ weekHour);System.out.println("每小時工資數(shù):$" + payRate);System.out.println(" 工資總收入:$"+ payRate*weekHour);System.out.println(" 所納稅款:");System.out.println(" 聯(lián)邦稅<"+ federalRate*100 + "%>:$" + f

7、ederalRate*payRate*weekHour);System.out.println(" 州稅:<" + stateRate*100 +"%>:$" + (int)(stateRate*100*payRate*weekHour)/100.0);System.out.println(" 總納稅:$" + (int)(federalRate*payRate*weekHour+stateRate*payRate*weekHour)*100)/100.0 );System.out.println(" 凈收入:$

8、" + (int)(payRate*weekHour - federalRate*payRate*weekHour - stateRate*payRate*weekHour)*100)/100.0);【實驗過程及結(jié)果記錄】實驗過程遇到的問題是:不會保留兩位小數(shù)。在題中最后求州稅和凈收入和總納稅需保留兩位小數(shù)。解決方法是現(xiàn)將要保留的乘以100,取整后,在除以100.0即可。2)使用GUI【實驗預(yù)習(xí)】1.該程序是用來打印工資單。2.通過GUI讀入信息,將信息按照一定格式用GUI輸出?!靖剑撼绦虼a】import javax.swing.JOptionPane;public class P

9、ayrollGUIpublic static void main(Stringargs)/輸入雇員姓名String name=JOptionPane.showInputDialog("Enter employee's name:");/輸入工作小時數(shù)String weekHourString=JOptionPane.showInputDialog("Enter number of hour worked in a week:");int weekHour=Integer.parseInt(weekHourString);/輸入每小時工資數(shù)Stri

10、ng payRateString=JOptionPane.showInputDialog("Enter hourly pay rate:");Double payRate=Double.parseDouble(payRateString);/輸入聯(lián)邦稅率String federalRateString=JOptionPane.showInputDialog("Enter federal tax withoutholding rate:");Double federalRate=Double.parseDouble(federalRateString);/

11、輸入州稅稅率String stateRateString=JOptionPane.showInputDialog("Enter state tax withoutholding rate:");Double stateRate=Double.parseDouble(stateRateString);/用GUI輸出工資單String output1="雇員姓名:"+ name+"n"String output2="工作小時數(shù):"+ weekHour +"n"String output3="

12、;每小時工資數(shù):$" + payRate +"n"String output4="工資總收入:$"+ payRate*weekHour +"n"String output5="所納稅款:"+"n"String output6=" 聯(lián)邦稅<"+ federalRate*100.0 + "%>:$" + federalRate*payRate*weekHour+"n"String output7=" 州稅:&

13、lt;" + stateRate*100.0 +"%>:$" + (int)(stateRate*100*payRate*weekHour)/100.0+"n"String output8=" 總納稅:$" + (int)(federalRate*payRate*weekHour+stateRate*payRate*weekHour)*100)/100.0 +"n"String output9="凈收入:$" + (int)(payRate*weekHour - federalR

14、ate*payRate*weekHour - stateRate*payRate*weekHour)*100)/100.0 +"n"JOptionPane.showMessageDialog(null,output1+output2+output3+output4+output5+output6+output7+output8+output9);【實驗過程及結(jié)果記錄】 實驗中遇到的問題是:在使用federalRateString=JOptionPane.showInputDialog("Enter federal tax withoutholding rate:&

15、quot;);這句話中,JOptionPane.showInputDialog()函數(shù)直接返回的是String類型。不用在轉(zhuǎn)化。3、(財務(wù)應(yīng)用程序:計算稅款)按照表1,基于納稅人的身份和可征稅收入,編寫程序,計算某個納稅人的納稅額。比如,計算一個收入400000美元的單身納稅人的納稅額。程序的運行效果見圖3。 說明:題目來源,編程練習(xí)3.13(P85)和程序清單3-6(P68)。程序設(shè)計的基本步驟,參見2.2小節(jié)(P18)和教材P84給出的教學(xué)注意。解決方案的選擇模型,參見授課ppt文稿。 【實驗預(yù)習(xí)】1、 這道題解決的是計算某個納稅人的納稅額。2、 輸入:用戶先輸入選擇的納稅人所屬類型。輸入

16、納稅人收入。處理:判讀納稅人所屬類型,及分別求納稅人的收入的不同階段所需的納稅額,求和。輸出:輸出納稅人所交稅款3、 技術(shù)支持:用到的是輸入函數(shù),條件語句,輸出函數(shù)。4、 實驗步驟:先寫出輸入輸出語句,在寫中間處理部分?!靖剑撼绦虼a】import java.util.Scanner;public class ComputeTaxpublic static void main(Stringargs)/創(chuàng)建一個ScannerScanner input=new Scanner(System.in);/輸入用戶所屬類型System.out.println("(0-單身稅人,1-已婚共同納稅

17、人或證實的鰥寡,2-已婚單獨納稅人,3-家庭戶主納稅人)");System.out.println("Enter the filling status:");int status= input.nextInt();/輸入用戶收入System.out.println("Enter the taxable income:");double income=input.nextDouble();double tax=0;if(status=0)/計算單身稅人的稅款if(income<=6000)tax=income*0.10;else if(in

18、come<=27950)tax=6000*0.10+(income-6000)*0.15;else if(income<=67700)tax=6000*0.10+(27950-6000)*0.15+(income-27950)*0.27;else if(income<=141250)tax=6000*0.10+(27950-6000)*0.15+(67700-27950)*0.27+(income-67700)*0.30;else if(income<=307050)tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(

19、141250-67700)*0.30+(income-141250)*0.35;else tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(307050-141250)*0.35+(income-307050)*0.386;else if(status=1)/計算已婚共同納稅人或證實的鰥寡的稅款if(income<=12000)tax=income*0.10;else if(income<=46700)tax=12000*0.10+(income-12000)*0.15;else if(i

20、ncome<=112850)tax=12000*0.10+(46700-12000)*0.15+(income-46700)*0.27;else if(income<=171950)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(income-112850)*0.30;else if(income<=307050)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(income-171950)*0.35;else t

21、ax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(307950-171950)*0.35+(income-307050)*0.386;else if(status=2)/計算已婚單獨納稅人的稅款if(income<=6000)tax=income*0.10;else if(income<=23350)tax=6000*0.10+(income-6000)*0.15;else if(income<=56425)tax=6000*0.10+(46700-6000)*0.15+(in

22、come-23350)*0.27;else if(income<=85976)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(income-56425)*0.30;else if(income<=153525)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(income-85976)*0.35;else tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0

23、.30+(85976-171950)*0.35+(income-85976)*0.386;else if(status=3)/計算家庭戶主納稅人的稅款if(income<=10000)tax=income*0.10;else if(income<=37450)tax=10000*0.10+(income-10000)*0.15;else if(income<=96700)tax=10000*0.10+(37450-10000)*0.15+(income-37450)*0.27;else if(income<=156600)tax=10000*0.10+(37450-10

24、000)*0.15+(96700-37450)*0.27+(income-96700)*0.30;else if(income<=307050)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(income-156600)*0.35;else tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(307050-156600)*0.35+(income-307050)*0.386;else Syste

25、m.out.println("Error:invalid status");System.exit(0);/輸出該用戶所交稅款System.out.println("Tax is"+(int)(tax*100)/100.0);【實驗過程及結(jié)果記錄】實驗中遇到的問題:暫無。4、(財務(wù)應(yīng)用程序:打印稅表)在問題3的基礎(chǔ)上,使用下面的方法頭部,編寫一個計算稅款的方法: public static double computeTax()int status,double taxableIncome) 使用這個方法編寫程序,打印可征稅收入從50000美元到6000

26、0美元,收入間隔50美元的所有四種納稅人的納稅表。 說明:題目來源,編程練習(xí)5.15(P152)。程序設(shè)計的基本步驟,參見2.2小節(jié)(P18)和教材P84給出的教學(xué)注意。解決方案的循環(huán)設(shè)計策略,參見小節(jié)(P94)。方法,參見教材第5章?!緦嶒烆A(yù)習(xí)】1、 問題描述:打印四種納稅人的納稅表2、 沒有輸入,處理:判斷收入每部分所需付稅款,求和。輸出:每隔50美元寫出四種納稅人所需付稅款3、 技術(shù)支持:用到的是條件語句,循環(huán)語句,輸出語句?!靖剑撼绦虼a】import java.util.Scanner;public class PrintTaxpublic static void main(Stri

27、ngargs)System.out.println("Taxable income"+"t"+"Single"+"tt"+"Married joint"+"t"+"Married Seperate"+"t"+"Head of");/打印可征稅收入從50000美元到60000美元,收入間隔50美元的所有四種納稅人的納稅表。for(double income=50000;income<=60000;income=i

28、ncome+50)System.out.print(income);for(int status=0;status<=3;status+)System.out.print("ttt"+computeTax(status,income);System.out.println();/計算稅款的函數(shù)public static double computeTax(int status,double income)double tax=0;if(status=0)if(income<=6000)tax=income*0.10;else if(income<=2795

29、0)tax=6000*0.10+(income-6000)*0.15;else if(income<=67700)tax=6000*0.10+(27950-6000)*0.15+(income-27950)*0.27;else if(income<=141250)tax=6000*0.10+(27950-6000)*0.15+(67700-27950)*0.27+(income-67700)*0.30;else if(income<=307050)tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)

30、*0.30+(income-141250)*0.35;else tax=6000*0.10+(27950-6000)*0.15+(57700-27950)*0.27+(141250-67700)*0.30+(307050-141250)*0.35+(income-307050)*0.386;else if(status=1)if(income<=12000)tax=income*0.10;else if(income<=46700)tax=12000*0.10+(income-12000)*0.15;else if(income<=112850)tax=12000*0.10+

31、(46700-12000)*0.15+(income-46700)*0.27;else if(income<=171950)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(income-112850)*0.30;else if(income<=307050)tax=12000*0.10+(46700-12000)*0.15+(112850-46700)*0.27+(171950-112850)*0.30+(income-171950)*0.35;else tax=12000*0.10+(46700-12000)*0.15

32、+(112850-46700)*0.27+(171950-112850)*0.30+(307950-171950)*0.35+(income-307050)*0.386;else if(status=2)if(income<=6000)tax=income*0.10;else if(income<=23350)tax=6000*0.10+(income-6000)*0.15;else if(income<=56425)tax=6000*0.10+(46700-6000)*0.15+(income-23350)*0.27;else if(income<=85976)tax

33、=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(income-56425)*0.30;else if(income<=153525)tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(income-85976)*0.35;else tax=6000*0.10+(23350-6000)*0.15+(56425-23350)*0.27+(85976-56425)*0.30+(85976-171950)*0.35+(income-85976)*0.386;

34、else if(status=3)if(income<=10000)tax=income*0.10;else if(income<=37450)tax=10000*0.10+(income-10000)*0.15;else if(income<=96700)tax=10000*0.10+(37450-10000)*0.15+(income-37450)*0.27;else if(income<=156600)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(income-96700)*0.30;else if(i

35、ncome<=307050)tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(income-156600)*0.35;else tax=10000*0.10+(37450-10000)*0.15+(96700-37450)*0.27+(156600-96700)*0.30+(307050-156600)*0.35+(income-307050)*0.386;else System.out.println("Error:invalid status");System.exi

36、t(0);return tax;【實驗過程及結(jié)果記錄】 注意找出通式。5、(財務(wù)應(yīng)用程序:計算稅款)使用數(shù)組重新編寫問題3的實現(xiàn)。使用數(shù)組表示稅率: double rates = 0.10,0.15,0.25,0.28,0.33,0.35; 使用數(shù)組表示收入分段: int brackets = 8350,33950,82250,171550,372950, 16700,67900,137050,208850,372950, 8350,33950,68525,104425,186475, 11950,45500,117450,190200,372950 ; 參照問題3和4,編程實現(xiàn)計算稅款。 說

37、明:題目來源,編程練習(xí)7.12(P205)。數(shù)組技術(shù),參見教材第6和第7章。 【實驗預(yù)習(xí)】1. 用數(shù)組計算稅款2. 輸入:輸入納稅人所屬類型,及納稅人的收入。處理:用數(shù)組方法調(diào)用稅率及收入上下限,求收入每部分所需付的稅款,求和。輸出:輸出稅款。3、技術(shù)支持:數(shù)組,輸入語句,條件語句,輸出語句?!靖剑撼绦虼a】import java.util.Scanner;public class arrayComputeTaxpublic static void main(Stringargs)double rates=0.10,0.15,0.25,0.28,0.33,0.35;int brackets=8350,33950,82250,171550,372950,16700,67900,137050,208850,372950,8350,33950,68525,104425,186475,11950,45500

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論