Baza danych w c++

0

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();	
}

0

Jak myślisz ile razy wykona się ta pętla:

 for(int i=numer;numer<i;i++)

?

0

Właśnie mam problem ze zrozumieniem pętli jak ona ma wyglądać.

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