Struktura usuwanie c++

Odpowiedz Nowy wątek
Fallcon
2015-11-10 20:12
Fallcon
0

Witam mam pewien problem z funkcją. Muszę napisać kod który ze struktury bedzie usuwał wybranego użytkownika.
na razie napisałem coś takiego:

#include <iostream>
#include <cstdlib>

using namespace std;

struct czlowiek{
 char imie[50];
 char nazwisko[50];
 char plec;
 long long pesel;
 int wiek;
 float wzrost;
};

void wprowadz(int n,czlowiek osoba[])
{
for(int i=0;i<n;i++)
{
cout<<"podaj imie: " ;
cin>>osoba[i].imie;
cout<<"podaj nazwisko: ";
cin>>osoba[i].nazwisko;
cout<<"Wpisz m jesli jestes mezczyzna, a k jesli kobieta: ";
cin>>osoba[i].plec;
cout<<"podaj pesel: ";
cin>>osoba[i].pesel;
cout<<"podaj wiek: ";
cin>>osoba[i].wiek;
cout<<"podaj wzrost: ";
cin>>osoba[i].wzrost;
}
}

void wypisz(int n,czlowiek osoba[])
{
for(int i=0;i<n;i++)
{
cout<<endl;
cout<<i+1<<" ";
cout<<"imie: "<<osoba[i].imie<<" ";
cout<<"nazwisko:"<<osoba[i].nazwisko<<" ";
if(osoba[i].plec=='m')
cout<<"plec: mezczyzna"<<" ";
else
cout<<"plec: kobieta"<<" ";
cout<<"pesel: "<<osoba[i].pesel<<" ";
cout<<"wiek: "<<osoba[i].wiek<<" ";
cout<<"wzrost: "<<osoba[i].wzrost;
}
}

void usun(int n,czlowiek osoba[])
{
cout<<"Podaj id ktore chcesz usunac ";
int i;
cin>>i;
i=i-1;
delete osoba[i].imie;
delete osoba[i].nazwisko;
delete osoba[i].plec;
delete osoba[i].pesel;
delete osoba[i].wiek;
delete osoba[i].wzrost;
}

//--------------------------------------------------------------------------------------------------------------------------------------------------------------
int main()
{
int n;
cout<<"Podaj ilosc osob: ";
cin>>n;
czlowiek *osoba;
osoba = new czlowiek[n];
wprowadz(n, osoba);
wypisz(n, osoba);
usun(n, osoba);
wypisz(n, osoba);

return 0;
} 

Proszę o pomoc.

Pozostało 580 znaków

2015-11-10 20:44

Rejestracja: 4 lata temu

Ostatnio: 4 lata temu

0

Nie wiem jakie masz tam wymagania w zadaniu, ale proponuję użyć std::vector.

Pozostało 580 znaków

Fallcon
2015-11-10 20:46
Fallcon
0

mógł byś mi wytłumaczyć gdzie o użyc bo nie miałem tego jeszcze, ale dzieki za podpowiedz :)

Pozostało 580 znaków

2015-11-10 20:49

Rejestracja: 4 lata temu

Ostatnio: 4 lata temu

1

std::vector to taka lista zaimplementowana jako tablica. to taka dynamiczna tablica, tylko że w lepszym stylu. Więc zacznij od zamiany

 czlowiek *osoba;
osoba = new czlowiek[n];

na równoważny kod wykorzystujący std::vector.

edytowany 1x, ostatnio: IForgotMyPass, 2015-11-10 21:07
std::vector to taka lista zaimplementowana jako tablica nope. - satirev 2015-11-10 21:02
Dobrze. "std::vector is a sequence container that encapsulates dynamic size arrays.". Tylko nie wiem co jest bardziej czytelne dla początkującego ;-) - IForgotMyPass 2015-11-10 21:04
Nie lepiej od razu powiedzieć, ze to dynamiczna tablica? - satirev 2015-11-10 21:06
Ano lepiej. Wybacz ;-) - IForgotMyPass 2015-11-10 21:07

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0