CZeść!
Ucze sie programowac i mam problem z funkcją void usun(). Nie wiem co mam kompletnie poprawić.Prosze o pomoc, o wytłumaczenie i napisanie tej funkcji stylem jakim jest reszta programu
#include <iostream>
#include <conio.h>
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
struct dane_osobowe
{
string imie;
string nazwisko;
int rok_urodzenia;
int wzrost;
};
void menu();
void dodaj();
void wypisz();
void usun();
int main()
{
int decyzja;
do
{
menu();
cout<<"\nPolecenie numer: ";
cin>>decyzja;
switch(decyzja)
{
case 1: dodaj();break;
case 2: wypisz();break;
case 3: usun();break;
}
}
while(decyzja!=0);
cout<<"Koniec dzialania programu.\nNacisnij ENTER";
cin.ignore();
getchar();
return 0;
}
void menu()
{
cout<<"\n\n******************************\nMenu\n1\tDodaj\n2\tWypisz\n************************************" ;
}
void dodaj()
{
dane_osobowe osoba;
cout<<"Podaj dane osoby, ktora chcesz dodac do bazy!\n"<<endl;
cout<<"Podaj imie: ";
cin>>osoba.imie;
cout<<"Podaj nazwisko: ";
cin>>osoba.nazwisko;
cout<<"Podaj rok urodzenia: ";
cin>>osoba.rok_urodzenia;
cout<<"Podaj wzrost (w cm): ";
cin>>osoba.wzrost;
ofstream plik;
plik.open("dane_tekstowe.txt",ios::app);
plik<<endl<<osoba.imie<<" "<<osoba.nazwisko<<" "<<osoba.rok_urodzenia<<" "<<osoba.wzrost;
plik.close();
}
void usun()
{
int numer;
dane_osobowe osoba;
cout<<"Podaj numer osoby ktora chcesz usunac: ";
cin>>numer;
for(int i=numer;numer<i;i++)
{
osoba[i].imie=osoba[i-1].imie;
osoba[i].nazwisko=osoba[i-1].nazwisko;
osoba[i].rok_urodzenia=osoba[i-1].rok_urodzenia;
osoba[i].wzrost=osoba[i-1].wzrost;
}
i--;
ofstream plik;
plik.open("dane_tekstowe.txt",ios::app);
plik<<endl<<osoba.imie<<" "<<osoba.nazwisko<<" "<<osoba.rok_urodzenia<<" "<<osoba.wzrost;
plik.close();
}
void wypisz()
{
dane_osobowe osoba;
int licznik=1;
ifstream odczyt;
odczyt.open("dane_tekstowe.txt");
while(!odczyt.eof())
{
odczyt>>osoba.imie>>osoba.nazwisko>>osoba.rok_urodzenia>>osoba.wzrost;
cout<<licznik<<endl<<osoba.imie<<"\t "<<osoba.nazwisko<<" "<<osoba.rok_urodzenia<<" "<<osoba.wzrost<<"\n";
licznik++;
};
odczyt.close();
}