Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++] Usuwanie osoby.

Ostatnio zmodyfikowano 2009-08-09 21:18
Autor Wiadomość
krdk
Temat założony przez niniejszego użytkownika
[c++] Usuwanie osoby.
» 2009-08-09 20:23:28
Mam taki kod:
C/C++
#include <iostream>
#include <conio.h>
#include <console.ddt>
#include <cstring>

using namespace std;
using namespace ddt::console;

int wybor_opcji, wybor_opcji_listy, nr_osoby = 0, nr_osoby_do_edycji;
string imie[ 99 ], nazwisko[ 99 ];
int wiek[ 99 ];

int main()
{
    title( "Baza danych osobowych. v 0.1 created by Dominik Waclawik" );
   
    do {
       
        clrscr();
       
        cout << "Opcje:" << endl;
        cout << "[1] Dodaj osobe" << endl;
        cout << "[2] Wyswietl liste osob" << endl;
        cout << "[0] Zakoncz program" << endl;
       
        cin >> wybor_opcji;
       
        switch( wybor_opcji )
        {
        case 1:
            cout << "Wpisz imie osoby numer " << nr_osoby << endl;
            cin >> imie[ nr_osoby ];
            cout << "Wpisz nazwisko osoby numer" << nr_osoby << endl;
            cin >> nazwisko[ nr_osoby ];
            cout << "Wpisz wiek osoby numer" << nr_osoby << endl;
            cin >> wiek[ nr_osoby ];
            nr_osoby++;
            break;
           
        case 2:
            for( int i = 0; i < nr_osoby; i++ )
            {
                cout << "Dane osoby numer " << i << " :" << endl;
                cout << imie[ i ] << " " << nazwisko[ i ] << " lat " << wiek[ i ] << endl << endl;
            }
           
            cout << "Opcje listy:" << endl;
            cout << "[1]XUsun osobe" << endl;
            cout << "[2] Edytuj osobe" << endl;
            cout << "[3] Kontynuuj" << endl;
           
            cin >> wybor_opcji_listy;
           
            switch( wybor_opcji_listy )
            {
            case 1:
                break;
               
            case 2:
                nr_osoby_do_edycji = nr_osoby;
               
                cout << "Podaj nr osoby do edycji" << endl;
                cin >> nr_osoby_do_edycji;
                cout << "Wpisz imie osoby numer " << nr_osoby_do_edycji << endl;
                cin >> imie[ nr_osoby_do_edycji ];
                cout << "Wpisz nazwisko osoby numer" << nr_osoby_do_edycji << endl;
                cin >> nazwisko[ nr_osoby_do_edycji ];
                cout << "Wpisz wiek osoby numer" << nr_osoby_do_edycji << endl;
                cin >> wiek[ nr_osoby_do_edycji ];
               
                nr_osoby_do_edycji = 0;
                break;
               
            case 3:
               
                break;
               
            default:
                cout << "Wybrales inna opcje" << endl;
                break;
            }
           
            cout << endl << "Nacisnij dowolny klawisz by kontynuowac" << endl;
            getch();
            break;
           
        case 0:
            cout << "Po wcisnieciu dowolnego klawisza program zostanie zakonczony." << endl;
            break;
           
        default:
            cout << "Wybrales inna opcje" << endl;
            break;
        }
       
    } while( wybor_opcji != 0 );
   
   
    getch();
    return 0;
}

Teraz pytanie:
Jak zrobić mechanizm usuwania osoby?

Gdy skończę ten program mam zamiar go przepisać, stylem obiektowym.
P-9251
malan
» 2009-08-09 20:58:20
Możesz np. zrobić tak:
1. Pytasz się usera o numer osoby, która ma zostać usunięta.
2. Tworzysz pętle (pokażę Ci na strukturach):
C/C++
struct Baza_danych
{
    string user_name;
};
//...
Baza_danych Tablica[ 69 ];
for( int i = pozycja_osoby_do_usuniecia; i < Ilosc_osob - 1; i += 1 )
{
    Tablica[ i ].user_name = Tablica[ i + 1 ].user_name;
}
3. Usuniętej osobie mówisz <papa>.
P-9254
krdk
Temat założony przez niniejszego użytkownika
» 2009-08-09 22:14:44
Tak właśnie myślałem, ale myślałem, że źle myślałem i nie wymyśliłem. Miałem wszystko tak jak w Twoim poście, oprócz ciała pętli, którego się domyśliłem zaraz po napisaniu postu, lecz nie chciało mi się go wdrażać w kod.
Podsumowując: dzięki za pomoc :)
P-9258
manfred
» 2009-08-09 21:18:29
Nie wygodniej użyć vectora?
P-19165
« 1 »
  Strona 1 z 1