首页 > 编程语言 >Java简单宠物系统案例和代码实现(控制台输出 “推荐小白练习”)

Java简单宠物系统案例和代码实现(控制台输出 “推荐小白练习”)

时间:2024-08-04 10:53:31浏览次数:15  
标签:Java String 宠物 System println scanner 控制台 out

文章目录


案例要求

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

相关文章

  • Java计算机毕业设计酒店管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展和消费者对住宿体验要求的不断提升,酒店业面临着前所未有的挑战与机遇。传统的手工管理模式已难以满足现代酒店对效率、准确性和......
  • Java计算机毕业设计农商对接系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着农业现代化和电子商务的迅猛发展,农产品销售的传统模式正面临深刻变革。传统农产品流通链条长、环节多、信息不对称等问题日益凸显,导致农产品销售......
  • Java计算机毕业设计旅游度假村管理系统(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,旅游度假村作为集休闲、度假、娱乐于一体的综合性旅游目的地,其管理与服务质量的提升成为行业关注的焦点。传统的人工管理模式已......
  • Java计算机毕业设计绿色生鲜(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着人们生活水平的提高和健康意识的增强,绿色生鲜食品逐渐成为现代消费者餐桌上的新宠。然而,传统生鲜市场面临着信息不对称、供应链冗长、品质难以保......
  • javabasic笔记----分支语句
    分支语句--ifif单分支语句语法:        //....前置代码        if(codition){           //code1        }        //....后续代码如果codition返回true, 就执行code1,继续执行后续代码如果codition返回false,就跳过......
  • Java面试题
    目录一、你觉得Java好在哪里?二、多态是什么意思?三、Java中hashCode和equals方法是什么?它们和==各有什么区别?四、动态代理是什么?五、什么是序列化?什么是反序列化?六、String,StringBuffer,StringBuilder的区别?七、JDK和JRE的区别八、注解是什么原理九、反射用过......
  • Java计算机毕业设计党员之家(开题报告+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在新时代背景下,加强党员队伍建设,提升党员素质,是巩固党的执政基础、推动党和国家事业发展的重要保障。随着信息技术的飞速发展,传统的党员教育管理方式......
  • Java计算机毕业设计球鞋商城系统小程序(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着体育文化的普及和消费者对个性化、高品质球鞋需求的日益增长,球鞋市场正经历着前所未有的繁荣。然而,传统购买渠道受限于时间、空间及信息不对称等......
  • Optional类的使用 java8(附代码)
    ......
  • Flink开发语言选择:Java还是Scala?
    在大数据处理领域,ApacheFlink因其高性能、低延迟和强大的数据流处理能力,成为了广泛使用的流处理框架。然而,在决定使用Flink进行开发时,选择合适的编程语言——Java还是Scala——往往是一个重要的考虑因素。本文将探讨这两种语言在Flink开发中的优劣,并帮助开发者做出最适合自己......