У меня возникли проблемы с реализацией связанного списка и возвратом значений списка на экран. Пожалуйста, извините, если это было задано раньше - я не мог его найти, и, возможно, я не знаю, как правильно задать вопрос!C++: Связанные списки, указатели на строки
Я только тестирую этот код, прежде чем я его создаю для большей функциональности, но я не могу сходить с земли. Я прокомментировал здесь какой-то код для возможного использования в будущем. Я не включил другие методы ниже, только Display, особенно потому, что в них нет ничего.
Я запускал операторы cout, чтобы увидеть, что у меня возникают проблемы с такими утверждениями, как: person-> lname. Это скомпилируется, но не будет работать. Когда я пытаюсь отлаживать, я получаю сообщение об ошибке с заголовком строки.
Любая помощь очень ценится!
#include <iostream>
#include <string>
using namespace std;
struct Birthday
{
int month;
int day;
int year;
};
struct Anniversary
{
int month;
int day;
int year;
};
struct Address
{
string street;
string city;
string state;
int zip;
};
struct PeopleInfo
{
string lname;
string fname;
Address fulladdr;
Birthday bday;
Anniversary aday;
//PeopleInfo* nextperson;
};
class AddressBook
{
public:
AddressBook();
AddressBook(string);
void NewPerson();
void DeletePerson();
void SetName();
void SetAddress();
void SetDates();
void Search(string);
void Sort();
void Display();
void BDayCard();
void ADayCard();
private:
PeopleInfo* person;
//PeopleInfo* currentperson;
int length;
};
AddressBook::AddressBook()
{
person->lname = "last";
person->fname = "first";
person->fulladdr.street = "default st.";
person->fulladdr.city = "anytown";
person->fulladdr.state = "NJ";
person->fulladdr.zip = 00000;
person->bday.month = 0;
person->bday.day = 0;
person->bday.year = 0;
person->aday.month = 0;
person->aday.day = 0;
person->aday.year = 0;
length = 0;
//person->nextperson->lname = NULL;
//currentperson->nextperson->lname = NULL;
}
void AddressBook::Display()
{
cout << person->lname << ", " << person->fname << " " << endl
<< person->fulladdr.street << endl
<< person->fulladdr.city << ", " << person->fulladdr.state << " " << person->fulladdr.zip << endl
<< "Birthday: " << person->bday.month << "/" << person->bday.day << "/" << person->bday.year << endl
<< "Anniversary: " << person->aday.month << "/" << person->aday.day << "/" << person->aday.year << endl << endl;
}
// Function Prototypes
void Menu(char &entry);
void Action(char &entry, AddressBook AllNames);
// Main
int main()
{
cout << "test\n";
char entry;
cout << "test\n";
AddressBook AllNames;
cout << "test\n";
do
{
Menu(entry);
Action(entry, AllNames);
} while (!(entry == 'E' || entry == 'e'));
return 0;
}
void Menu(char &entry)
{
cout << "\nADDRESSBOOK\n\n"
<< "(N) Enter New Name\n"
<< "(D) Delete a Name\n"
<< "(C) Change a Name/Date\n"
<< "(U) Update Anniversary/Birthday\n"
<< "(S) Show Address Book Entries\n"
<< "(B) Make a Birthday Card\n"
<< "(A) Make an Anniversary Card\n"
<< "(E) Exit Program\n\n";
cin >> entry;
cout << "\n";
}
void Action(char &entry, AddressBook AllNames)
{
switch (entry)
{
case 'N':
case 'n': AllNames.NewPerson(); break;
case 'D':
case 'd': AllNames.DeletePerson(); break;
case 'C':
case 'c': AllNames.SetName(); break;
case 'U':
case 'u': AllNames.SetDates(); break;
case 'S':
case 's': AllNames.Display(); break;
case 'B':
case 'b': AllNames.BDayCard(); break;
case 'A':
case 'a': AllNames.ADayCard(); break;
case 'E':
case 'e': break;
default: "\nPlease input a valid entry\n";
}
}
Я не вижу никаких следов вещей, которые вы написали в своем названии. – LogicStuff
";" необходимо после класса AddressBook – user3514538