文章目录
案例要求
1. 主程序入口
- 初始化: 创建账号数组和宠物数组来存储用户信息和宠物信息。
- 展示主菜单: 提供给用户三个选项:注册、登录、退出程序。
2. 用户注册
-
方法:
public static boolean Register(Account[] accounts)
-
功能
:
- 输入用户名
- 输入密码
- 再次输入密码进行确认
- 验证密码一致性
- 检查用户名是否已经存在
- 成功注册后将用户名和密码添加到账户数组,并自动跳转到登录界面。
3. 用户登录
-
方法:
public static void Login(Account[] accounts)
-
功能
:
- 输入用户名
- 输入密码
- 验证用户名是否存在
- 验证密码是否正确
- 登录成功后跳转到宠物管理界面;登录失败则提示错误信息。
4. 宠物管理界面
-
展示选项
:
- 寄养宠物
- 领养宠物
- 查看宠物列表
- 退出程序
5. 寄养宠物
-
方法:
public static void AddPet()
-
功能
:
- 输入宠物类型
- 输入宠物属性(例如名称、年龄、品种等)
- 将宠物信息保存到宠物数组中。
6. 领养宠物
-
方法:
public static void SelectAndUpdatePet()
-
功能
:
- 输入查询条件(例如宠物类型)
- 查询并显示匹配的宠物列表
- 用户选择要领养的宠物
- 成功领养后从宠物数组中移除该宠物。
7. 查看宠物列表
-
方法:
public static void SelectAllPet()
-
功能
:
- 输入宠物类型
- 显示所有匹配类型的宠物
- 根据种类(例如猫、狗、鸟)分类显示。
8. 退出程序
-
方法:
public static void ExitProgram()
-
功能
:
- 退出程序前保存必要的数据。
注意事项
- 在实际实现时,需要考虑异常处理和数据校验,以确保系统的健壮性和安全性。
- 可能还需要考虑数据库连接和数据持久化方案,以保证数据的安全存储和访问。
- 用户界面应该友好且易于使用,可以使用图形界面或者命令行界面实现。
代码实现
1. 数据结构定义
Account.java
1public class Account {
2 private String username;
3 private String password;
4
5 public Account(String username, String password) {
6 this.username = username;
7 this.password = password;
8 }
9
10 // Getters and setters
11 public String getUsername() {
12 return username;
13 }
14
15 public String getPassword() {
16 return password;
17 }
18}
Pet.java
1public class Pet {
2 private String type;
3 private String name;
4 private int age;
5 private String breed;
6
7 public Pet(String type, String name, int age, String breed) {
8 this.type = type;
9 this.name = name;
10 this.age = age;
11 this.breed = breed;
12 }
13
14 // Getters and setters
15 public String getType() {
16 return type;
17 }
18
19 public String getName() {
20 return name;
21 }
22
23 public int getAge() {
24 return age;
25 }
26
27 public String getBreed() {
28 return breed;
29 }
30}
2. 功能实现
Main.java
1import java.util.Scanner;
2
3public class Main {
4 private static Account[] accounts = new Account[100];
5 private static Pet[] pets = new Pet[100];
6 private static int accountCount = 0;
7 private static int petCount = 0;
8
9 public static void main(String[] args) {
10 Scanner scanner = new Scanner(System.in);
11 boolean running = true;
12
13 while (running) {
14 System.out.println("1. 注册");
15 System.out.println("2. 登录");
16 System.out.println("3. 退出程序");
17 System.out.print("请选择: ");
18 int choice = scanner.nextInt();
19
20 switch (choice) {
21 case 1:
22 Register(accounts);
23 break;
24 case 2:
25 if (Login(accounts)) {
26 managePets(scanner);
27 }
28 break;
29 case 3:
30 running = false;
31 break;
32 default:
33 System.out.println("无效的选择,请重新输入。");
34 }
35 }
36
37 scanner.close();
38 System.out.println("程序已退出。");
39 }
40
41 private static void managePets(Scanner scanner) {
42 boolean running = true;
43
44 while (running) {
45 System.out.println("1. 寄养宠物");
46 System.out.println("2. 领养宠物");
47 System.out.println("3. 查看宠物列表");
48 System.out.println("4. 退出宠物管理界面");
49 System.out.print("请选择: ");
50 int choice = scanner.nextInt();
51
52 switch (choice) {
53 case 1:
54 AddPet(pets);
55 break;
56 case 2:
57 SelectAndUpdatePet(pets);
58 break;
59 case 3:
60 SelectAllPet(pets);
61 break;
62 case 4:
63 running = false;
64 break;
65 default:
66 System.out.println("无效的选择,请重新输入。");
67 }
68 }
69 }
70
71 private static boolean Register(Account[] accounts) {
72 Scanner scanner = new Scanner(System.in);
73 System.out.print("请输入用户名: ");
74 String username = scanner.next();
75 System.out.print("请输入密码: ");
76 String password = scanner.next();
77 System.out.print("请再次输入密码: ");
78 String confirmPassword = scanner.next();
79
80 if (!password.equals(confirmPassword)) {
81 System.out.println("两次密码不一致!");
82 return false;
83 }
84
85 for (Account account : accounts) {
86 if (account != null && account.getUsername().equals(username)) {
87 System.out.println("用户名已存在!");
88 return false;
89 }
90 }
91
92 accounts[accountCount++] = new Account(username, password);
93 System.out.println("注册成功,请登录。");
94 return true;
95 }
96
97 private static boolean Login(Account[] accounts) {
98 Scanner scanner = new Scanner(System.in);
99 System.out.print("请输入用户名: ");
100 String username = scanner.next();
101 System.out.print("请输入密码: ");
102 String password = scanner.next();
103
104 for (Account account : accounts) {
105 if (account != null && account.getUsername().equals(username) && account.getPassword().equals(password)) {
106 System.out.println("登录成功!");
107 return true;
108 }
109 }
110
111 System.out.println("登录失败,用户名或密码错误。");
112 return false;
113 }
114
115 private static void AddPet(Pet[] pets) {
116 Scanner scanner = new Scanner(System.in);
117 System.out.print("请输入宠物类型: ");
118 String type = scanner.next();
119 System.out.print("请输入宠物名称: ");
120 String name = scanner.next();
121 System.out.print("请输入宠物年龄: ");
122 int age = scanner.nextInt();
123 System.out.print("请输入宠物品种: ");
124 String breed = scanner.next();
125
126 pets[petCount++] = new Pet(type, name, age, breed);
127 System.out.println("宠物寄养成功!");
128 }
129
130 private static void SelectAndUpdatePet(Pet[] pets) {
131 Scanner scanner = new Scanner(System.in);
132 System.out.print("请输入查询条件(宠物类型): ");
133 String type = scanner.next();
134
135 System.out.println("可领养的宠物:");
136 for (int i = 0; i < petCount; i++) {
137 if (pets[i].getType().equals(type)) {
138 System.out.println((i + 1) + ". " + pets[i].getName() + " (" + pets[i].getAge() + "岁, " + pets[i].getBreed() + ")");
139 }
140 }
141
142 System.out.print("请输入要领养的宠物编号: ");
143 int index = scanner.nextInt();
144
145 if (index > 0 && index <= petCount) {
146 pets[index - 1] = null;
147 System.out.println("领养成功!");
148 } else {
149 System.out.println("无效的宠物编号。");
150 }
151 }
152
153 private static void SelectAllPet(Pet[] pets) {
154 System.out.println("所有的宠物:");
155 for (int i = 0; i < petCount; i++) {
156 System.out.println((i + 1) + ". " + pets[i].getName() + " (" + pets[i].getAge() + "岁, " + pets[i].getBreed() + ")");
157 }
158 }
159}
标签:Java,String,宠物,System,println,scanner,控制台,out
From: https://blog.csdn.net/chen_shi_jie_/article/details/140903209