Witam,
Od kilku godzin mecze się z programem. Ma on zapisywać użytkownikom informacje kiedy ostatnio rozmawiali ze swoimi znajomymi. Uzytkownicy powinni mieć możliwość dodawania nowych znajomych( ilu tylko chcą ) oraz przechowywania liczby dni, które uplynely od czasu rozmowy z danych znajomym. W programie powinna być także opcja aktualizacji przechowywanej liczby dni od czasu ostatniej rozmowy ze znajomym. Cala lista znajomych i przechowywanych dni od ostatniej rozmowy z nimi powinny być wyświetlone w postaci tabeli posortowanej na podstawie ostatniego kontaktu ze znajomymi. Na razie główny problem polega na tym, że jestem w stanie wyświetlić jedynie dane o ostatnio dodanym użytkowniku za pomocą listy powiazanej. W skrócie chcę stworzyć liste powiazana przechowującą wszystkich znajomych i liczbe dni upływających od ostatniego kontaktu z nimi oraz to wyswietlic w formie tabeli. Oto kod:
#include <iostream>
#include <cstddef>
using namespace std;
struct FriendInformations
{
string name;
int days;
FriendInformations *p_new_friend;
};
FriendInformations *add_name( FriendInformations *linked_list )
{
FriendInformations *p_friend_data = new FriendInformations;
cout << "\nPodaj nazwe uzytkownika, ktorego chcesz dodac: ";
cin >> p_friend_data->name;
cout << "\nDodano uzytkownika. \n";
p_friend_data->p_new_friend = linked_list;
return p_friend_data;
}
FriendInformations *actualize_days( FriendInformations *p_friend_data, string *input_name, int *input_days )
{
cout << "Podaj nazwe znajomego, ktorego chcesz zaktualizowac liczbe dni plynacych od waszej ostatniej rozmowy: ";
cin >> *input_name;
cout << "Podaj nowa liczbe dni plynacych od ostatniej rozmowy z powyzszym znajomym: ";
cin >> *input_days;
if ( *input_name == p_friend_data->name && *input_days >= 0 )
{
p_friend_data->days = *input_days;
cout << "\nZaktualizowano dane o uzytkowniku. ";
}
else
{
cout << "\nKtores z wprowadzonych przez Ciebie danych jest niepoprawne. ";
}
return p_friend_data;
}
FriendInformations *display_friends_and_days( FriendInformations *p_friend_data )
{
cout << p_friend_data->name;
cout << p_friend_data->days;
}
int main()
{
FriendInformations *next_friend;
FriendInformations *linked_list;
int choice;
int input_days;
string input_name;
while ( choice != 0 )
{
cout << "\n0-wyjscie";
cout << "\n1-wyswietl liste znajomych i liczbe dni uplywajacych od waszej ostatniej rozmowy";
cout << "\n2-dodaj uzytkownika do twoich znajomych";
cout << "\n3-zaktualizuj liczbe dni uplywajacych od ostatniej rozmowy z danym znajomym";
cout << "\n\nWybierasz: ";
cin >> choice;
switch ( choice )
{
case 0:
return 0;
case 1:
display_friends_and_days( linked_list );
break;
case 2:
linked_list = add_name( linked_list );
break;
case 3:
actualize_days( linked_list, &input_name, &input_days );
break;
default:
cout << "\nNiepoprawny wybor. ";
}
}
}