2016-02-07 259 views
0

我有3个选项在此代码和我的其他类设置正确,据我所知。选项1和3似乎工作正常,但选项2我希望它打印联系人数量(它已经),打印每种联系人的数量,即个人或业务,然后打印所有联系人的平均年龄联系人。我无法弄清楚如何获得平均年龄或如何打印每种类型。代码与打印联系人列表,联系人数量,联系人数量,联系人的平均年龄和联系人的数量的选项集

进口java.util.Scanner的;

public class PlannerMain { static Sc​​anner scanner = new 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 

} //结束

回答

1

要获得当前正在使用的和可变的,并试图添加联系人[I],以它为每一个接触联系的平均年龄。你真正需要的是增加每个联系人来总和的年龄,使用类似

sum += contacts[i].getAge() 

sum += contacts[i].age 

取决于Contact类是如何实现的。

为了让你可以这样做PersonalContacts和BusinessContacts数量:

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

感谢@Spencer是清除它适合我。看起来很简单,哈哈 – Chap

相关问题