2013-11-10 2 views
0

Я очень новичок в программировании, и я пытался создать приложение для телефонной книги, которое включает в себя массивы. Я хочу, по сути, получить большое количество информации о контакте и чтобы человек мог их искать.Массивы зданий в классе и необработанные исключения

Каждый раз, когда я пытаюсь скомпилировать код, он работает, а затем, когда я нажимаю 1, чтобы ввести контакт, и я ввожу его имя, я получаю это «Необработанное исключение в 0x000f2ceb в назначении7.23.exe: 0xC0000005: Место обнаружения нарушения доступа 0x99d0627c. "

Я не уверен, что это значит или что не так с моим кодом.

Заранее спасибо.

#include <iostream> 
#include <string> 
using namespace std; 

class AddressBook { 

public: 

string myContactsFirstName[100]; 
string myContactsLastName[100]; 
string myContactsEmailAddress[100]; 
string myContactsPhone[100]; 
int index; 

AddressBook() { 
    int index = 0; 
    for (int i = 0; i < 100; i++) { 
     myContactsFirstName[i] = ""; 
     myContactsLastName[i] = ""; 
     myContactsEmailAddress[i] = ""; 
     myContactsPhone[i] = ""; 
    } 
} 

void addContact() { 
    cout << "Enter the first name of the contact: " << endl; 
    string firstname; 
    cin >> firstname; 
    myContactsFirstName[index] = firstname; 

    cout << "Last Name:" << endl; 
    string lastname; 
    cin >> lastname; 
    myContactsLastName[index] = lastname; 

    cout << "Phone Number: " << endl; 
    string phone; 
    cin >> phone; 
    myContactsPhone[index] = phone; 

    cout << "Email Address: " << endl; 
    string address; 
    cin >> address; 
    myContactsEmailAddress[index] = address; 

    system("pause"); 
    index++; 
} 

    void deleteLastContact(){ 
     myContactsFirstName[index] = ""; 
     myContactsLastName[index] = ""; 
     myContactsPhone[index] = ""; 
     myContactsEmailAddress[index] = ""; 
     index--; 

     cout << "Contact deleted." << endl; 


    } 
}; 

int main() { 
AddressBook myPeople; 
string target; 

while(1){ 
    cout << "Enter 1 to add a contact." << endl; 
    cout << "Enter 2 to search contacts." << endl; 
    cout << "Enter 3 to delete a contact." << endl; 
    cout << "Enter anything else to leave the program" << endl; 

    int choice; 
    cin >> choice; 

    switch (choice) { 
     case 1: myPeople.addContact(); 
      break; 
     case 2: { 
     cout << "Enter the info to search for your contact:" << endl; 
     cin >> target; 

     for (int i = 0; i < myPeople.index; i++) { 
      if (myPeople.myContactsFirstName[i].compare(target) == 0) 
        cout << "We have a match" << endl; 
     } 
      break; 
       } 

     case 3: { 
      myPeople.deleteLastContact(); 
      break; 
       } 
     default: exit(0); 

} 
} 

    system("pause"); 
    return 0; 

} 
+0

Вы должны включить язык программирования, а также в качестве тега. – wvdz

+0

Извините. Спасибо, что проинформировали меня. Я обязательно сделаю это в будущем. – user2766546

ответ

1

Index не инициализирован:

AddressBook() { 
    int index = 0; //created a new index variable, fix this by deleting "int" 
    ^^^ 
    for (int i = 0; i < 100; i++) { 
     myContactsFirstName[i] = ""; 
     myContactsLastName[i] = ""; 
     myContactsEmailAddress[i] = ""; 
     myContactsPhone[i] = ""; 
     } 
} 
+0

Это имеет смысл. Я даже не думал об этом. Спасибо. Я изменил его, и это сработало. – user2766546

Смежные вопросы