带有一组选项的代码,用于打印联系人列表,联系人数量,联系人的平均年龄以及每种类型的联系人的数量



我在这个代码中有 3 个选项,据我所知,我的其他类设置正确。选项 1 和 3 似乎工作正常,但对于选项 2,我希望它打印联系人数量(它已经这样做了),打印每种联系人的数量,即个人或企业,然后打印所有联系人的平均年龄。我不知道如何获得平均年龄或如何打印每种类型。

import java.util.Scanner;

公共类规划师主 { 静态扫描仪扫描仪 = 新扫描仪(System.in);

public static void main(String[] args) {
    Contact[] contacts = new Contact[6];
    contacts[0] = new PersonalContact("Joe Smith, ", 33, ", 100 Evergreen Ave, ", "Seattle,", "WA ", 98999); // Personal
    contacts[1] = new PersonalContact("Lawrence Williams, ", 45, ", 2000 1st St, ", "Tacoma,", "WA ", 98100); // Personal
    contacts[2] = new PersonalContact("Rachel Garcia, ", 12, ", 12 Forest Drive, ", "Los Angelos,", "CA ", 99301); // Personal
    contacts[3] = new BusinessContact("Gregory Smith, ", 67, ", 360-888-7777", " 360-555-6666"); // Business
    contacts[4] = new BusinessContact("Jerome Bradley, ", 18, ", 216-111-2222", " 253-444-7777"); // Business
    contacts[5] = new BusinessContact("Susie Adams, ", 23, ", 253-333-7777", " 425-666-9999"); // Business
    while (true) {
        System.out.println("1.Print planner contacts. ");
        System.out.println("2.Print planner statistics. ");
        System.out.println("3.Exit.");
        int option = scanner.nextInt();
        if (option == 1) { // Displays every contact in the list until the length of the list has been reached
            for (int i = 0; i < contacts.length; i++) {
                System.out.println(contacts[i]);
            } // End for
        } // End option 1
        else if (option == 2) { 
            int sum = 0;
            System.out.println("Number of contacts: " + contacts.length);
            for (int i = 0; i < contacts.length; i++){
                sum += contacts[i];
                }
            System.out.println("Average age: " + (sum / contacts.length));
              if(contacts[] instanceof PersonalContact){             
                for (int i = 0; i < PersonalContact.getLength(); i++){
                    System.out.println("Personal Contacts: " + personalContacts.length);
                }// End for PC
               }//End if PC
              if(contacts[] instanceof BusinessContact){             
                for (int i = 0; i < BusinessContact.getLength(); i++){
                    System.out.println("BusinessContacts: " + businessContacts.length);
                }// End for BC
               }//End if BC
        } // End option 2
        else if (option == 3) { /** Terminates the program */
            System.exit(0);
        } // End option 3
    } // End while

}// End void main

}//结束

要获取当前的平均年龄,您使用 sum 变量并尝试为联系人中的每个联系人添加联系人 [i]。 您真正想要的是将每个联系人的年龄相加,使用类似

sum += contacts[i].getAge()

sum += contacts[i].age

取决于联系人类的实现方式。

要获取个人联系人和商务联系人的数量,您可以执行以下操作:

int personalContactsCount = 0;
for (int i = 0; i < contacts.length; i++) {
    if (contacts[i] instanceof PersonalContact) {
        personalContactsCount++;
    }
}  
int businessContactsCount = contacts.length - personalContactsCount;    

最新更新