服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 用Java编写经典小程序

用Java编写经典小程序

2021-04-23 12:01Wendy-lxq Java教程

非常实用的12种基础算法的经典案例,对于初学者来说有很大的帮助,数量有限需要的朋友可以参考下

如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用

1、输出两个int数中的最大值

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.scanner;
 
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请依次输入两个整数:a,b(以空格隔开)");
 /*比较两个数的大小*/
 int a = scanner.nextint();
 int b = scanner.nextint();
 int max;
 if(a >= b){
 max = a;
 }else {
 max = b;
 }
 system.out.println("最大值为"+max);
 }
 }
}

2、输出三个int数中的最大值

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package demo;
 
import java.util.scanner;
 
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请依次输入两个整数:a,b(以空格隔开)");
 int a = scanner.nextint();
 int b = scanner.nextint();
 int c = scanner.nextint();
 scanner.close();
 /*方法一*/
 int d=(a>b)a:b;
 int e=(d>c)d:c;
 system.out.println("最大值为"+e);
 
 /*方法二*/
 if(a>b && a>c){
 system.out.println("最大值为"+a);
 }else if(b>c && b>a){
 system.out.println("最大值为"+b);
 }else if(c>b && c>a){
 system.out.println("最大值为"+c);
 }else{
 system.out.println("出现异常");
 }
 }
}

3、编写程序判断某一个年份是否是闰年

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package demo;
 
import java.util.scanner;
/*判断闰年
 由用户输入任意一个年份,能被4整除但不能被100整除,或者能被400整除,是闰年。
 要求判断一个年份是否为闰年。
 要求输出:此年份是否是闰年
 */
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入年份:");
 int year = scanner.nextint();
 
 /*方法一*/
 if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
 system.out.println("这个年份是闰年");
 }else{
 system.out.println("这个年份不是闰年");
 }
 
 /*方法二*/
 boolean isleapyear = (year % 4 ==0 && year % 100 !=0) || year%400 ==0;
 string string = isleapyearyear+"是闰年":year+"不是闰年";
 system.out.println(string);
 
 }
}

4、完成成绩等级输出程序:如果用户输入的分数正确(0-100),则根据表-1中的规则计算该分数所对应的的级别,并计算结果。

用Java编写经典小程序

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package demo;
 
import java.util.scanner;
 
/*
 * 成绩等级划分表
 * >= 90 a
 * >=80 b
 * >=60 c
 * <60 d
 *
 * 分数范围:0-100
 *
 * 需要有2个判断*/
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入分数:");
 double score = scanner.nextdouble();
 scanner.close();
 
 if(score < 0 || score >100){
 system.out.println("输入的分数不在0-100之间,不符合要求");
 }else if(score >= 90){
 system.out.println("a");
 }else if(score >= 80){
 system.out.println("b");
 }else if(score >= 60){
 system.out.println("c");
 }else{
 system.out.println("d");
 }
 }
}

5、完成命令解析程序:有一个命令解析程序,该程序提供三个功能选型供用户选择,用户选择某功能后,程序在界面上输出用 户所选择的的功能名称。程序的交互如图:

用Java编写经典小程序

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package demo;
 
import java.util.scanner;
/*
 * 有一个命令解析程序,该程序提供三个功能选型供用户选择,
 * 用户选择某功能后,程序在界面上输出用户所选择的的功能名称。
 *
 * */
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请选择功能:1.显示全部记录 2.查询登录记录 0.退出");
 int command = scanner.nextint();
 scanner.close();
 
 switch (command) {
 case 0:
 system.out.println("欢迎使用");
 break;
 case 1:
 system.out.println("显示全部记录……");
 break;
 case 2:
 system.out.println("查询登录记录……");
 break;
 
 default:
 system.out.println("输入错误!");
 
 }
 }
}

6、完成收银柜台收款程序:编写一个收银柜台收款程序,根据单价、购买数量以及收款进行计算并输出应收金额和找零;当总价大于或者等于500,享受8折优惠。控制台交互如下:

用Java编写经典小程序

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package demo;
 
import java.util.scanner;
/*
 * 需求:
 * 编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;
 * 当总价大于或者等于500,享受8折优惠。
 *
 */
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入单价(¥):");
 double price = scanner.nextdouble();
 
 system.out.println("请输入数量:");
 double amount = scanner.nextdouble();
 
 system.out.println("请输入收款金额:");
 double count = scanner.nextdouble();
 
 double totalmoney = price*amount;
 
 if(totalmoney > 500){
 totalmoney = totalmoney*0.8;
 }
 
 double change = count - totalmoney;
 system.out.println("应收金额为:"+totalmoney + "找零为:"+change);
 
 }
}

7、java从键盘输入三个整数,实现从小到大排序。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package demo;
 
import java.util.scanner;
 
/*
 * java从键盘输入三个整数,实现从小到大排序
 *
 **/
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入三个整数,以空格隔开:");
 
 int a = scanner.nextint();
 int b = scanner.nextint();
 int c = scanner.nextint();
 
 scanner.close();
 system.out.println("输入的值为:a = " + a + ", b = " + b + ", c = " + c);
 if(a > b){
 if ( b > c) {
 system.out.println("排序后的值为:" + c + "," + b + "," + a);
 }else if( c > a){
 system.out.println("排序后的值为:" + b + "," + a + "," + c);
 }else{
 system.out.println("排序后的值为:" + b + "," + a + "," + c);
 }
 }else{
 if(c < a){
 system.out.println("排序后的值为:" + c + "," + a + "," + b);
 }else if(c > b){
 system.out.println("排序后的值为:" + a + "," + b + "," + c);
 }else{
 system.out.println("排序后的值为:"+ a + "," + c + "," + b);
 }
 }
 }
}

8、计算个人所得税 北京地区的个人所得税计算公式:应纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数 其中,扣除数为3500,适用税率以及速算扣除数如下表所示:

用Java编写经典小程序

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package demo;
 
import java.util.scanner;
/*
 * 北京地区的个人所得税计算公式:
 应纳税额 = (工资薪金所得 - 扣除数)*适用税率 - 速算扣除数
 其中,扣除数为3500
*/
public class demo {
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入你的税前工资:");
 int salarybeforetax = scanner.nextint();
 scanner.close();
 
 int taxsalary = salarybeforetax - 3500;
 double tax;
 
 /* 方法一*/
 tax = taxsalary<00.0:
 taxsalary<=1500taxsalary*0.03:
 taxsalary<=4500taxsalary*0.1-105:
 taxsalary<=9000taxsalary*0.2-555:
 taxsalary<=35000taxsalary*0.25-1005:
 taxsalary<=55000taxsalary*0.3-2755:
 taxsalary<=80000taxsalary*0.35-5505:
 taxsalary*0.45-13505;
 system.out.println("个人应缴纳税款为:"+tax);
 
 /*方法二*/
 if( taxsalary < 0 ){
 tax = 0;
 }else if( taxsalary <= 1500){
 tax = taxsalary*0.03;
 }else if( taxsalary <= 4500){
 tax = taxsalary*0.1-105;
 }else if( taxsalary <= 9000){
 tax = taxsalary*0.2-555;
 }else if( taxsalary <= 35000){
 tax = taxsalary*0.25-1005;
 }else if( taxsalary <= 55000){
 tax = taxsalary*0.3-2755;
 }else if( taxsalary <= 80000){
 tax = taxsalary*0.35-5505;
 }else{
 tax = taxsalary*0.45-13505;
 }
 system.out.println("个人应缴纳税款为:"+tax);
 }
}

9、输入年份和月份,输出天数。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package demo;
 
import java.util.scanner;
/*
 提示:
 1.需要判断是否是闰年,2月份的天数跟是否是闰年有关系;
 2.用switch-case判断每个月的天数
 
 */
public class demo{
 public static void main(string[] args) {
 scanner scanner = new scanner(system.in);
 system.out.println("请输入年份:");
 int year = scanner.nextint();
 system.out.println("请输入月份:");
 int month = scanner.nextint();
 
 int daynum = thedaynum(month); //先根据月份得出天数,如果是闰年,对2月份的天数重新获取
 
 if(isleapyear(year)){
 if(month == 2){
 daynum ++; //如果是闰年,2月份增加一天
 }
 system.out.print(year + "是闰年,");
 }else{
 system.out.print(year + "不是闰年,");
 }
 
 system.out.println(year + "年" + month + "月份共有" + daynum + "天");
 }
 
 /*判断是否是闰年
 * 能被4整除但不能被100整除,或者能被400整除,是闰年
 */
 public static boolean isleapyear(int year) {
 if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
 return true;
 }else{
 return false;
 }
 }
 
 /*判断天数*/
 public static int thedaynum(int month) {
 switch (month) {
 case 1:
 return 31;
 case 2:
 return 28;
 case 3:
 return 31;
 case 4:
 return 30;
 case 5:
 return 31;
 case 6:
 return 30;
 case 7:
 return 31;
 case 8:
 return 31;
 case 9:
 return 30;
 case 10:
 return 31;
 case 11:
 return 30;
 case 12:
 return 31;
 default:
 system.out.println("对不起,您输入的月份有误!");
 return 0;
 }
 
 }
}

10、输出九九乘法表。

用Java编写经典小程序

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package demo;
 
/* author:wendy
 * 问题:
 * 直接输出九九乘法表
 * */
public class demo {
 
 public static void main(string[] args) {
 //i变量用于控制行数
 for(int i = 0; i <= 9; i++) {
 //j变量用于控制每行中参与计算的数值
 for(int j = 1; j <= i; j++) {
 system.out.print(j + "*" + i + "=" + i*j + "\t");
 }
 //每行输出之后需要换行
 system.out.println();
 }
 }
}<strong>
</strong>

11、随机产生一个从0-100之间的整数,判断是否是质数 质数又称素数,是指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数 。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package demo;
 
import java.util.random;
 
public class primenum {
 public static void main(string[] args) {
 int num;
 random random = new random();
 num = random.nextint(100);
 system.out.println("随机产生的数为:" + num);
 system.out.println(isprime(num));
 }
 
 public static boolean isprime(int num) {
 if(num < 2) {
 return false;
 }
 
 if(num == 2) {
 return true;
 }
 
 if(num % 2 == 0) {
 return false;
 }
 
 for(int i = 3; i <= math.sqrt(num); i += 2) {
 if(num % i == 0) {
 return false;
 }
 }
 return true;
 }
}

12、查找数组最小值,并将数组扩容成新数组。

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package demo;
 
import java.util.arrays;
import java.util.random;
/*
 * author:wendy
 * 问题:随机产生10个从0-100之间的整数,并查找最小值;
 * 将该数组扩容成新数组,把最小值存在新数组的第一个位置。
 * 步骤:
 * 1.构造一个长度为10的数组,利用random随机产生10个0-100之间的整数;
 * 2.寻找最小值,利用for循环
 * 3.扩容 利用arrays.coprof()构造新数组,将其长度设置为11
 * 4.遍历新数组,从后往前遍历,以此赋值,然后将2中找到的最小值存在数组的第一个
 * */
public class copyof {
 
 public static void main(string[] args) {
 int [] arr = new int[10];
 
 //随机产生10个 0-100之间的整数
 random random = new random();
 for(int i = 0; i < 10; i ++) {
 arr[i] = random.nextint(100);
 }
 //打印数组的内容
 system.out.println("随机产生的数组为:" + arrays.tostring(arr));
 
 //查找最小的值
 int min = arr[0];
 for(int j = 1; j < 10; j ++) {
 if(min > arr[j]) {
 min = arr[j];
 }
 }
 system.out.println("该数组最小的值为:" + min);
 
 //扩容,将最小值存在扩容之后的第一个
 int [] newarr = arrays.copyof(arr, 11);
 
 //从后往前遍历,将前面的值赋给后面的值,然后将第一个的值赋为最小值min
 for(int k = newarr.length-1; k >=1; k --) {
 newarr[k] = newarr[k-1];
 }
 //将第一个的值赋为最小值min
 newarr[0] = min;
 //打印数组的内容
 system.out.println("扩容之后的数组为:"+ arrays.tostring(newarr));
 }
 
}

这篇文章主要内容对初次接触java算法和思维的学员有很大的帮助,小编会给大家提供相关帮助,请多多关注服务器之家。

原文链接:https://blog.csdn.net/u010297791/article/details/77367589

延伸 · 阅读

精彩推荐