JAVA基础.docx
- 文档编号:12013354
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:19
- 大小:416.84KB
JAVA基础.docx
《JAVA基础.docx》由会员分享,可在线阅读,更多相关《JAVA基础.docx(19页珍藏版)》请在冰豆网上搜索。
JAVA基础
Java语言基础Day03
1.数字排序程序
2.个人所得税计算器
3.命令解析器
4.累加、阶乘及求𝝅算法(求𝝅选做)
5.数列求和
1数字排序程序
1.1问题
系统使用交互的方式给三个数字进行排序。
例如:
接收用户输入的三个整数a,b,c,a的原值是20,b的原值是5,c的原值是10,排序后a的值为5,b的值为10,c的值为20。
系统交互情况如图-26所示:
图-26
1.2方案
系统使用if语句实现对三个数的排序,首先判断a和b的大小情况并进行交换,代码如下:
1.if(a>b){
2. temp=a;
3. a=b;
4. b=temp;
5.}
其次判断a和c的大小情况,并进行交换,代码如下:
1.if(a>c){
2. temp=a;
3. a=c;
4. c=temp;
5.}
最后判断b和c的大小情况,并进行交换,代码如下:
1.if(b>c){
2. temp=b;
3. b=c;
4. c=temp;
5.}
1.3实现
系统代码实现如下:
1.importjava.util.Scanner;
2.publicclassMaxofThree{
3. publicstaticvoidmain(String[]args){
4. Scannerscanner=newScanner(System.in);
5. System.out.println("请依次输入三个整数:
6.a,b,c(以空格隔开)");
7. inta=scanner.nextInt();
8. intb=scanner.nextInt();
9. intc=scanner.nextInt();
10. scanner.close();
11. System.out.println("a="+a+",b="+b+",c="+c);
12. inttemp=0;
13. if(a>b){
14. temp=a;
15. a=b;
16. b=temp;
17. }
18. if(a>c){
19. temp=a;
20. a=c;
21. c=temp;
22. }
23. if(b>c){
24. temp=b;
25. b=c;
26. c=temp;
27. }
28. System.out.println("a="+a+",b="+b+",c="+c);
29. }
30.}
1.4扩展
用户在控制台输入3个数值,需要找出这3个数值中的最小值,要求使用if语句来实现。
系统交互信息如图-27所示:
图-27
系统代码实现如下:
1.importjava.util.Scanner;
2.publicclassMinofThree{
3. publicstaticvoidmain(String[]args){
4. Scannerscanner=newScanner(System.in);
5. System.out.println("请依次输入三个整数:
a,b,c(以空格隔开)");
6. inta=scanner.nextInt();
7. intb=scanner.nextInt();
8. intc=scanner.nextInt();
9. scanner.close();
10. inttemp=a;
11. if(temp>b){
12. temp=b;
13. }
14. if(temp>c){
15. temp=c;
16. }
17.
18. System.out.println("最小值为:
"+temp);
19.}
20.}
2个人所得税计算器
2.1问题
计算个人所得税的缴纳情况。
用户从控制台输入税前工资的金额,系统根据用户输入的工资金额计算应缴纳的税额,如图-28所示:
图-28
注:
工资个税的计算公式为:
应纳税额=(工资薪金所得-扣除数)×适用税率-速算扣除数
全月应纳税所得额=月工资薪金所得-扣除数
2011年9月1日起执行7级超额累进税率:
扣除数为3500元。
个人所得税缴纳标准
2.2方案
使用if语句的下列结构来完成该题目:
if(boolean表达式1){...}
elseif(boolean表达式2){...}
elseif(boolean表达式3){...}
......
else{...}
如图-29所示:
(图中T表示true,F表示false,taxIncome表示全月应纳税所得额,tax表示应纳税额)
图-29
2.3实现
系统代码实现如下:
1.publicclassIncomeTax{
2. publicstaticvoidmain(String[]args){
3. Scannerscanner=newScanner(System.in);
4. System.out.println("请输入你的工资的税前金额(¥):
");
5. doublesalary=scanner.nextDouble();
6. doubletax=0.0;
7. doubletaxIncome=salary-3500;
8. if(taxIncome<=0){
9. tax=0.0;
10. }elseif(taxIncome<=1500){
11. tax=taxIncome*0.03;
12. }elseif(taxIncome<=4500){
13. tax=taxIncome*0.10-105;
14. }elseif(taxIncome<=9000){
15. tax=taxIncome*0.20-555;
16. }elseif(taxIncome<=35000){
17. tax=taxIncome*0.25-1005;
18. }elseif(taxIncome<=55000){
19. tax=taxIncome*0.30-2755;
20. }elseif(taxIncome<=80000){
21. tax=taxIncome*0.35-5505;
22. }else{
23. tax=taxIncome*0.45-13505;
24. }
25. System.out.println("你应该缴纳的个人所得税是:
26.¥"+tax);
27. }
28.}
2.4扩展
计算个人工资收入的保险缴纳情况以及个人所得税。
用户从控制台输入税前工资的金额,系统根据用户输入的工资金额计算应缴纳的各项保险的总金额,并计算应该缴纳的税额。
系统交互过程如图-30所示:
图-30
注:
工资个税的计算公式为:
应纳税额=(工资薪金所得-各项保险金额-扣除数)×适用税率-速算扣除数
全月应纳税所得额=月工资薪金所得-各项保险金额-扣除数
其中,各项保险金额的缴纳比例如下:
养老保险:
月工资薪金所得×8%
医疗保险:
月工资薪金所得×2%
失业保险:
月工资薪金所得×0.2%
公积金:
月工资薪金所得×12%
系统代码实现如下:
1.publicclassInsuranceTax{
2. publicstaticvoidmain(String[]args){
3. Scannerscanner=newScanner(System.in);
4. System.out.println("请输入你的工资的税前金额(¥):
");
5. doublesalary=scanner.nextDouble();
6. scanner.close();
7. //计算各项保险金额
8. doubleendowmentInsurance=salary*0.08;
9. doublemedicalInsurance=salary*0.02;
10. doubleunemploymentInsurance=salary*0.002;
11. doubleaccumulationFund=salary*0.12;
12. doubleinsurance=endowmentInsurance+medicalInsurance
13. +unemploymentInsurance+accumulationFund;
14. System.out.println("你应该缴纳的各项保险总金额为:
15.¥"+insurance);
16. //计算个税
17. doubletax=0.0;
18. doubletaxIncome=salary-insurance-3500;
19. if(taxIncome<=0){
20. tax=0.0;
21. }elseif(taxIncome<=1500){
22. tax=taxIncome*0.03;
23. }elseif(taxIncome<=4500){
24. tax=taxIncome*0.10-105;
25. }elseif(taxIncome<=9000){
26. tax=taxIncome*0.20-555;
27. }elseif(taxIncome<=35000){
28. tax=taxIncome*0.25-1005;
29. }elseif(taxIncome<=5500){
30. tax=taxIncome*0.30-2755;
31. }elseif(taxIncome<=80000){
32. tax=taxIncome*0.35-5505;
33. }else{
34. tax=taxIncome*0.45-13505;
35. }
36. System.out.println("你应该缴纳的个人所得税是:
37.¥"+tax);
38. }
39.}
3命令解析器
3.1问题
命令解析器。
有如下功能供用户选择:
显示全部记录,查询登录记录,退出。
当用户在控制台输入1,用户选择的功能为显示全部记录;输入2,用户选择的功能为查询登录记录;输入0,用户选择的功能为退出。
系统交互情况如图-31所示:
图-31
3.2方案
系统使用while(true)循环实现用户重复的进行选择功能,当while(true)循环遇到break时,循环结束,使用if语句判断用户所选择的功能类型。
代码如下
1.while(true){
2. System.out.println("
3.请选择功能:
1.显示全部记录2.查询登录记录0.退出");
4. command=scanner.next();
5. if("1".equals(command)){
6. System.out.println("显示全部记录");
7. }elseif("2".equals(command)){
8. System.out.println("查询登录记录");
9. }elseif("0".equals(command)){
10. System.out.println("欢迎使用");
11. break;
12. }
13.}
3.3实现
系统代码实现如下:
1.importjava.util.Scanner;
2.publicclassCommandByIf{
3. publicstaticvoidmain(String[]args){
4. Scannerscanner=newScanner(System.in);
5. Stringcommand=null;
6. while(true){
7. System.out.println("请选择功能:
1.显示全部记录
8.2.查询登录记录0.退出");
9. command=scanner.next();
10. if("1".equals(command)){
11. System.out.println("显示全部记录");
12. }elseif("2".equals(command)){
13. System.out.println("查询登录记录");
14. }elseif("0".equals(command)){
15. System.out.println("欢迎使用");
16. break;
17. }
18. }
19. scanner.close();
20. }
21.}
3.4扩展
使用switch...case语句实现命令解析器程序。
命令解析器程序提供如下功能供用户选择:
“显示全部记录”,“查询登录记录”和“退出”。
当用户在控制台输入1,则表示选择“显示全部记录”功能,程序在界面输出文本“显示全部记录”;用户输入2,则表示选择“查询登录记录”功能,程序在界面输出文本“查询登录记录”;用户输入0,则表示选择“退出”功能“,程序在界面输出文本”欢迎使用“,且程序结束。
系统实现代码如下:
1.importjava.util.Scanner;
2.publicclassCommandBySwitch{
3. publicstaticvoidmain(String[]args){
4. Scannerscanner=newScanner(System.in);
5. intcommand=0;
6. $1:
while(true){
7. System.out.println("请选择功能:
8.1.显示全部记录2.查询登录记录
9.0.退出");
10. command=scanner.nextInt();
11. switch(command){
12. case1:
13. System.out.println("显示全部记录");
14. break;
15. case2:
16. System.out.println("查询登录记录");
17. break;
18. case0:
19. System.out.println("欢迎使用");
20. break$1;
21. default:
22. }
23. }
24. scanner.close();
25. }
26.}
4累加、阶乘及求𝝅算法(求𝝅选做)
4.1问题
累加、阶乘和求𝜋的算法。
先在控制台输出从0累加到10000的和;然后在控制台输出1到20的阶乘;最后求出程序有效精度范围内的𝜋的值,并在界面上输出。
控制台输出情况如图-32所示:
图-32
注:
圆周率π的计算公式为:
π/4=1-1/3+1/5-1/7+1/9-1/11+……。
4.2方案
系统使用for循环计算从0累加到10000的和。
代码如下
1.intsum=0;
2.for(inti=0;i<=10000;i++){
3. sum+=i;
4.}
系统使用for循环计算1到20的阶乘。
代码如下:
1.longf=1;
2.for(inti=2;i<=20;i++){
3. f*=i;
4.}
为尽量精确的计算π的值,可以循环10亿次。
代码如下:
1.doublepi=0;
2.intflag=-1;
3.for(inti=1;i<=1000000000;i+=2){
4. flag*=-1;
5. pi+=flag*1.0/i;
6.}
4.3实现
系统代码实现如下:
1.publicclassAccumulation{
2. publicstaticvoidmain(String[]args){
3. //累加
4. intsum=0;
5. for(inti=0;i<=10000;i++){
6. sum+=i;
7. }
8. System.out.println("1+2+...+10000="+sum);
9.
10. //阶乘
11. longf=1;
12. for(inti=2;i<=20;i++){
13. f*=i;
14. }
15. System.out.println("1*2*...*20="+f);
16.
17. //π
18. doublepi=0;
19. intflag=-1;
20. for(inti=1;i<=1000000000;i+=2){
21. flag*=-1;
22. pi+=flag*1.0/i;
23. }
24. System.out.println("pi=
25.4*(1-1/3+1/5-1/7+......)="+4*pi);
26. }
27.}
4.4扩展(选做)
由用户在控制台输入一个整数,然后实现如下功能:
1.计算从1到该整数之间所有偶数的累加和,并在控制台输出计算结果;
2.求出该整数的所有约数,即可以整除该整数的数值(如:
10可以被1、2、5、10整除,这些数字是10的约数),并逐一在控制台输出;
系统交互过程如图-33所示:
图-33
系统代码实现如下:
1.publicclassAccumulationExt{
2. publicstaticvoidmain(String[]args){
3. Scannerscanner=newScanner(System.in);
4. System.out.println("请输入整数(例如:
100)");
5. intn=scanner.nextInt();
6. scanner.close();
7.
8. //累加偶数
9. intsum=0;
10. for(inti=2;i<=n;i=i+2){
11. sum+=i;
12. }
13. System.out.println("1到"+n+
14."之间所有的偶数的累加和为:
"+sum);
15. //整除因子
16. System.out.println(n+"的约数有:
");
17. for(inti=1;i<=n;i++){
18. if(n%i==0)
19. System.out.println(i);
20. }
21.}
22.}
5数列求和
5.1问题
有数列如:
9,99,999,...,9999999999。
需要用程序计算此数列的结果,并在控制台输出结果。
系统交互情况如图-34所示:
图-34
5.2方案
此数列的规律为:
下一个数值等于前一个数乘以10并加上9。
因此,先需要声明用以表示数列的第一个数,数值较大因此需要使用long类型,代码如:
1.longnine=9;
此数列的和的数值较大,因此,需要使用lo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 基础