案例一 水仙花数
案例要求
【案例目标】 用户通过键盘输入一个整数值,判断该数值是否为“水仙花数”。
【相关解释】 “水仙花数”是指一个3位数,其各位数的三次方和等于该数本身。
例如:水仙花例如: 153是一个“水仙花数”,因为
【案例效果】本案例程序运行的结果如图
【具体要求】本案例的实现过程应满足以下要求。
1. 创建工程并配置环境
-
限制1:工程取名SE_JAVA_EXP_E005
-
限制2:创建包,取名cn.campsg.java.experiment。
-
限制3:创建类,类名为DaffodilsNum。
2. 获取用户输入的数值
要求用户输入数值,提示语句:"请输入 0-1000 内的数字:"
3. 判断输入的数值是否合法
1)用户输入数值范围应为0~1000。
2)输入不合法,显示提示:
"输入的不是 0-1000 内的数字!"
4. 判断输入的数值是不是水仙花数
1)获取用户输入的数值的个位数。
2)获取用户输入的数值的十位数。
3)获取用户输入的数值的百位数。
4)分别计算各个位数的三次方值并求和。
5)根据水仙花数判断规则,判断用户输入的数值是不是水仙花数。
6)是水仙花数,打印:
用户输入的数值+"是水仙花数!"
7)不是水仙花数,打印:
用户输入的数值+"不是水仙花数!"
2. 实现思路与代码
【实现思路】本案例实现的参考思路如下。
1. 创建工程并配置环境
按实训要求创建工程并配置环境
2. 获取用户输入的数值
1)创建 Scanner对象,设置参数System.in:
提示
Scanner in = new Scanner (System.in);
2)调用Scanner的nextInt方法获取用户输入的数值。
3)调用 close方法关闭Scanner。
3. 判断输入的数值是否合法
1)如用户输入数值不在 0~1000 范围内,打印提示语句:
“输入的不是 0-1000 内的数字!”
2)退出程序。
提示
return
4. 判断输入的数值是不是水仙花数
1)获取用户输入的数值的个位数=数值%10。
2)获取用户输入的数值的十位数=数值/10%10。
3)获取用户输入的数值的百位数=数值/100
4)分别计算各个位数的三次方值并求和:(个位数*个位数*个位数) + (十位数*十位数*十位数) + (百位数*百位数*百位数)。
5. 判断计算结果与用户输入的数值是否相等
1)是水仙花数,打印:
用户输入的数值+"是水仙花数!"
2) 不是水仙花数,打印:
用户输入的数值+"不是水仙花数!"
package cn.campsg.java.experiment;
import java.util.Scanner;
public class DaffodilsNum {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入 0-1000 内的数字:");
int Num = input.nextInt();
input.close();
if ((Num > 0) && (Num < 1000)) {
int a = Num % 10;
int b = Num / 10 % 10;
int c = Num / 100;
int Sum = a*a*a + b*b*b + c*c*c;
if (Num == Sum) {
System.out.println(Num + "是水仙花数!");
}else {
System.out.println(Num + "不是水仙花数!");
}
}else {
System.out.println("输入的不是 0-1000 内的数字!");
}
}
}
案例二 闰年计算
1.案例要求
【案例目标】 用户通过键盘输入一个年份值,判断该年是否为闰年。
【相关解释】 “闰年”是指能被4整除却不能被100整除,或能被400整除的年份。 2024
例如:2018年不是闰年, 2012年是闰年。
【案例效果】 本案例程序运行的结果如图所示。
【具体要求】本案例的实现过程应满足以下要求。
1. 闰年条件
1)条件 1:每相隔4年为一个闰年。
2)条件2:相隔100年一定不是闰年。
3)条件 3:相隔 400年一定是闰年。
2. 创建工程并配置环境
1)限制1:工程取名SE_JAVA_EXP_E003。
2)限制2:创建包,取名