JAVA实现宠物管理系统

使用集合来存储和管理对象,编写一个Java程序,根据以下要求存储和管理在宠物诊所
注册的一组宠物的数据:
1.该应用程序必须能够处理来自至少两种类型的宠物的数据,如猫和狗。
2.对于每只宠物,它们的名字、年龄、颜色、体重和品种 应该被记录。
提示:考虑创建一个类型为Pet的数组,其中Pet是您创建的一个基类,其中包含名称、年龄
、颜色和权重作为实例变量。每个子类代表每种类型的宠物都有一个额外的实例变量品种,
可以存储特定的宠物品种。例如,它可以是波斯猫,虎斑猫...西班牙猎犬,小猎
犬等等。您需要检查每个变量是否已以您指定的任何格式正确输入。您还需要通知用
户,如果给定宠物的任何数据字段保留为空,该宠物的完整详细信息将不会保存在当前会话
之外。
3.该程序应该包含一个叫做“speak”的方法,它返回一个典型的动物噪声,加上对动物的描述,如:
“喵喵!我是Pixel,一个4岁的虎斑猫
汪汪我是Jack,一只9岁的小猎犬。”
4.该计划需要允许将宠物添加到诊所或从诊所中删除。在创建宠物细节后,不要求有任何设施来
修改宠物细节。
提示:从数组中删除数据可能会在数组中留下一个空白,所以在添加另一只宠物时,计算另
一个宠物总数并搜索下一个免费的数组单元格。
5.必须有可能进行报告。e.打印到屏幕上)在诊所上。该报告应标明可以硬编码的诊所名称、登
记的每种宠物的总数以及这些宠物的主要颜色。
6.该程序应该允许用户查看目前在诊所注册的所有宠物。
7.在一个会议结束时,当项目被终止时,诊所的详细信息以及每个注册宠物的细节应该被写入磁
盘。这些细节应该记录在两个标准文本文件中:一个包含诊所详细信息(称为“诊所细节”。
另一个保存着所有的宠物记录,被称为“宠物细节”。txt" .
提示:不要将空白记录保存到磁盘,在将其内容写入磁盘之前,请检查每个数组单元格中是
否有一个有效的“宠物”对象。如果宠物的详细信息中的任何字段被留空(字符串长度为零
),那么该学生是无效的,他们的详细信息不应该被写入磁盘。
8.当程序启动时,它应该从这些标准文本文件中读取,以便将以前存储的任何数据重新填充应用
程序作为起点。
提示:每个记录都需要创建一个Pet类的新实例,并将其链接到数组中的下一个可用的空闲单
元格。
9.程序用户还必须能够根据名字或颜色搜索宠物,从而显示该宠物的细节,并调用该宠物的语音
()方法。
10.该程序必须只使用一个控制台接口。
您必须开发一组测试用例和至少一个单元测试,并记录将这些测试应用于软件的结果。
其他分配要求:
1.采用面向对象的原则应该在您实现上述需求时很明显,包括使用继承和多态性。
2.一种结构化的测试方法应通过提交一个测试计划来证明,其中包括至少一个符合上述要求的单

元测试和结果。

运行结果(所有功能均已实现,此处仅展示功能3):

部分代码如下:

PetClinicManagement.java

import java.util.List;
import java.util.Scanner;

// Main class for managing a pet clinic
public class PetClinicManagement {
    public static void main(String[] args) throws InterruptedException {
        Scanner scanner = new Scanner(System.in);
        PetClinic petClinic = new PetClinic("Great Pet Clinic"); // Create a new pet clinic instance

        petClinic.loadFromFiles(); // Load pet data from files

        boolean exit = false;
        while (!exit) { // Main menu loop
            System.out.println("\n----- Pet Clinic Management -----");
            System.out.println("\n------- 1. Add a pet-------------");
            System.out.println("\n--------2. Remove a pet----------");
            System.out.println("\n--------3. View clinic details---");
            System.out.println("\n--------4. View all pets---------");
            System.out.println("\n--------5. Search pet by name----");
            System.out.println("\n--------6. Search pet by color---");
            System.out.println("\n--------7. Save to files and exit");
            System.out.print("\n-Please enter your choice (1-7): ");

            int choice = scanner.nextInt();
            scanner.nextLine(); // Consume the newline character

            switch (choice) {
                case 1: // Add a pet
                    System.out.print("Enter pet type (Cat/Dog/Bird): ");
                    String petType = scanner.nextLine();
                    System.out.print("Enter pet name: ");
                    String name = scanner.nextLine();
                    System.out.print("Enter pet age: ");

                    while (!scanner.hasNextInt()) { // Validate age input
                        System.out.println("Error: Please enter a valid age as a number");
                        System.out.print("Enter pet age: ");
                        scanner.next(); // Consume invalid input
                    }
                    int age = scanner.nextInt();
                    scanner.nextLine(); // Consume the newline c
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值