Java编写生肖计算器,有以下功能:1. 输入同学的年龄,计算该同学的生肖;2. 输入同学的出生年份,计算该同学的生肖;3. 将多位同学的年龄存入一个txt文档。软件可以读取该 文档,软件将所有的同学生肖计算出;4. 将多位同学的出生年份存入一个txt文档。软件可以读取文档,软件将所有的同学生肖计算出;5. 文件的文本格式如下(也可以增加更多信息): 学号 姓名 班级 年龄或者出生年份
时间: 2024-03-20 18:38:35 浏览: 95
好的,以下是 Java 编写生肖计算器的示例代码,包括上述五个功能:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class ZodiacCalculator {
// 计算生肖
public static String calculateZodiac(int year) {
String[] zodiacs = {"猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊"};
return zodiacs[year % 12];
}
// 输入同学的年龄,计算该同学的生肖
public static void calculateZodiacByAge() {
Scanner input = new Scanner(System.in);
System.out.print("请输入同学的年龄:");
int age = input.nextInt();
int year = 2021 - age; // 假设今年是2021年
String zodiac = calculateZodiac(year);
System.out.println("该同学的生肖是:" + zodiac);
}
// 输入同学的出生年份,计算该同学的生肖
public static void calculateZodiacByYear() {
Scanner input = new Scanner(System.in);
System.out.print("请输入同学的出生年份:");
int year = input.nextInt();
String zodiac = calculateZodiac(year);
System.out.println("该同学的生肖是:" + zodiac);
}
// 将多位同学的年龄存入一个txt文档,计算所有同学的生肖
public static void calculateZodiacByAgeFile() {
try {
Scanner scanner = new Scanner(new File("students_age.txt"));
FileWriter writer = new FileWriter("students_zodiac.txt");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] fields = line.split("\\s+");
int age = Integer.parseInt(fields[3]);
int year = 2021 - age; // 假设今年是2021年
String zodiac = calculateZodiac(year);
writer.write(fields[0] + " " + fields[1] + " " + fields[2] + " " + zodiac + "\n");
}
scanner.close();
writer.close();
System.out.println("已计算所有同学的生肖,结果存储在 students_zodiac.txt 文件中。");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 将多位同学的出生年份存入一个txt文档,计算所有同学的生肖
public static void calculateZodiacByYearFile() {
try {
Scanner scanner = new Scanner(new File("students_year.txt"));
FileWriter writer = new FileWriter("students_zodiac.txt");
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] fields = line.split("\\s+");
int year = Integer.parseInt(fields[3]);
String zodiac = calculateZodiac(year);
writer.write(fields[0] + " " + fields[1] + " " + fields[2] + " " + zodiac + "\n");
}
scanner.close();
writer.close();
System.out.println("已计算所有同学的生肖,结果存储在 students_zodiac.txt 文件中。");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 主函数,提供菜单选择功能
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int choice = 0;
do {
System.out.println("请选择功能:");
System.out.println("1. 输入同学的年龄,计算该同学的生肖");
System.out.println("2. 输入同学的出生年份,计算该同学的生肖");
System.out.println("3. 将多位同学的年龄存入一个txt文档,计算所有同学的生肖");
System.out.println("4. 将多位同学的出生年份存入一个txt文档,计算所有同学的生肖");
System.out.println("0. 退出程序");
System.out.print("请输入选项:");
choice = input.nextInt();
switch (choice) {
case 1:
calculateZodiacByAge();
break;
case 2:
calculateZodiacByYear();
break;
case 3:
calculateZodiacByAgeFile();
break;
case 4:
calculateZodiacByYearFile();
break;
case 0:
System.out.println("程序已退出。");
break;
default:
System.out.println("选项无效,请重新输入。");
break;
}
} while (choice != 0);
}
}
```
上述代码中,我们将生肖计算封装成了一个 calculateZodiac 方法,可以在多个功能中复用。然后我们分别实现了输入同学的年龄、输入同学的出生年份、将多位同学的年龄存入一个 txt 文档、将多位同学的出生年份存入一个 txt 文档等四个功能。最后在主函数中提供了一个选择菜单,用户可以根据需要选择不同的功能。需要注意的是,读取 txt 文档时需要使用 try-catch 语句捕获可能出现的异常。
阅读全文