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

Tworzenie listy osób

Ostatnio zmodyfikowano 2014-01-23 16:48
Autor Wiadomość
filipcio
Temat założony przez niniejszego użytkownika
Tworzenie listy osób
» 2014-01-10 13:04:05
Witam,
Próbuję stworzyć program pozwalający na wpisanie danych kilku osób, a później wyświetlenie wyniku.
Póki co udało mi się jedynie na wpisanie jednej osoby, a niestety nie wychodzi mi to.
Może ktoś mnie nakierować, co robię źle? :)

C/C++
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cstdlib>

using namespace std;

class osoba
{
public:
    int i;
    string imie;
    string nazw;
    string dataur;
   
   
    void pokaz_info( string imie, string nazw, string dataur )
    { // deklaracja funkcji wypisującej na ekran dane osoby
        cout << imie << " " << nazw << " " << dataur << endl << "\n\n";
    }
};


main()
{
    osoba osoba;
    cout << "Dodawanie nowej osoby:\n\n\n";
    int i;
   
   
    for( i = 0; i <= 2; i++ )
   
   
    { cout << "Podaj imie: ";
        cin >> osoba.imie;
       
        cout << "\nPodaj nazwisko: ";
        cin >> osoba.nazw;
       
        cout << "\nPodaj date urodzenia: ";
        cin >> osoba.dataur;
       
        cout << "\n\nPoprawnie zakonczono wprowadzanie danych. \n\n\n\a";
       
       
       
    }
    osoba.pokaz_info( osoba.imie, osoba.nazw, osoba.dataur );
    //    system("pause");
};
P-101747
alixir
» 2014-01-10 13:09:24
W tym momencie masz jeden obiekt osoba, więc możesz przechowywać dane maksymalnie jednej osoby. Stwórz sobie tablicę osób.
P-101748
filipcio
Temat założony przez niniejszego użytkownika
» 2014-01-20 16:56:43
Już sobie poradziłem, troszeczkę inaczej, ale nadal mam problem, ponieważ chcę, żeby po wykonaniu np. 1 części z wpisywaniem osób program powrócił do menu, a tutaj cały czas mam błąd...
jeśli wywalę break'i to leci do końca i też wywala błąd :(
szukałem podobnych programów, wydaje się, że robię identycznie, a tu błąd.

C/C++
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <fstream> //biblioteka umozliwiajaca prace na plikach


using namespace std;

// *****************************************************************************
// rozpoczecie programu glownego
int main()
{
   
    int liczba;
    int a = 0;
    do
    {
       
        system( "cls" ); /// wyczyszczenie ekranu przed wyswietleniem programu
       
        cout << "\n\t\t\tLISTA OSOB\n\n\n";
        cout << "\tWpisz liczbe w zaleznosci od tego co chcesz zrobic: \n\n\t";
        cout << "1. Dodawanie nowej osoby.\n\t";
        cout << "2. Liczba osob na liscie.\n\t";
        cout << "3. Osoby na liscie.\n\t";
        cout << "4. Zapis do pliku.\n\t";
        cout << "5. Zakonczenie pracy z programem\n\n\t";
        cout << "Wybieraj znaki 1,2,3,4, lub 5 - zakoncz\n\n\t";
        cout << "Podaj znak danej opcji: ";
        cin >> liczba;
        cout << endl;
       
        switch( liczba )
       
        {
            // instrukcje przypadków
        case 1:
            //przypadek 1 - dodawanie osob
            system( "cls" );
           
            cout << "Dodawanie nowej osoby:\n\n\n";
            cout << "Podaj liczbe osob do wpisania: ";
            int n; //n ilosc osob
            cin >> n;
           
            char TabImie[ n ][ 20 ]; //Tabela przechowująca imie
            char TabNazwisko[ n ][ 50 ]; //Tabela przechowująca nazwisko
            int TabData[ n ][ 3 ]; //Tabela przechowująca date urodzenia
           
           
            for( int i = 0; i < n; i++ )
            {
                cout << "\nPodaj imie: ";
                cin >> TabImie[ i ];
                cout << "\nPodaj nazwisko: ";
                cin >> TabNazwisko[ i ]; //pobranie nazwiska i imienia
                cout << "\nPodaj date urodzenia (RRRR MM DD): ";
                cin >> TabData[ i ][ 0 ] >> TabData[ i ][ 1 ] >> TabData[ i ][ 2 ]; //pobranie daty urodzenia
            }
           
            for( int i = 0; i < n - 1; i++ ) //sortowanie
            for( int j = 0; j < n - 1; j++ )
            {
                if( TabNazwisko[ j ] == TabNazwisko[ j + 1 ] ) //jesli nazwisko takie samo porownaj imiona
                {
                    if( TabImie[ j ][ a ] > TabImie[ j + 1 ][ a ] ) //porownanie imion (nie dziala)
                    {
                        swap( TabNazwisko[ j ], TabNazwisko[ j + 1 ] );
                        swap( TabImie[ j ], TabImie[ j + 1 ] );
                        swap( TabData[ j ], TabData[ j + 1 ] );
                    }
                    else
                    if( TabImie[ j ] == TabImie[ j + 1 ] )
                    {
                        a = a + 1;
                    }
                }
                else
                     a = 0;
               
                if( TabNazwisko[ j ][ a ] > TabNazwisko[ j + 1 ][ a ] ) //porownanie nazwisk (dziala)
                {
                    swap( TabNazwisko[ j ], TabNazwisko[ j + 1 ] ); //swap - zamiana wartosci miejscami
                    swap( TabImie[ j ], TabImie[ j + 1 ] );
                    swap( TabData[ j ], TabData[ j + 1 ] );
                }
                else
                if( TabNazwisko[ j ][ a ] == TabNazwisko[ j + 1 ][ a ] ) //jesli w obu nazwiskach ta sama litera porownaj nastepna
                {
                    a = a + 1;
                };
               
                cout << "Ilosc wprowadzonych osob: " << n;
            }
           
           
            cout << "\n\nPoprawnie zakonczono wprowadzanie danych. \n\n\n\a";
            break;
            system( "pause" );
           
            ///////////////////////////////////////////////////////////////////////////////
           
        case 2:
            //przypadek 2 - wyswietlanie liczby osob
            system( "cls" );
           
            cout << "Wyswietlanie liczby osob na liscie.\n\n";
            cout << "Obecnie na liscie znajduje sie: " << n << "   osob.\n";
            break;
           
            system( "pause" );
           
            ///////////////////////////////////////////////////////////////////////////////
           
        case 3:
            //przypadek 3 - wyswietlanie osob na liscie
            system( "cls" );
           
            cout << "Wyswietlanie osob na liscie: \n\n";
            cout << "Obecnie na liscie znajduja sie nastepujace osoby:\n\n ";
           
            for( int i = 0; i < n; i++ )
            {
                cout << TabNazwisko[ i ] << " " << TabImie[ i ] << " " << TabData[ i ][ 0 ] << " " << TabData[ i ][ 1 ] << " " << TabData[ i ][ 2 ] << endl;
            }
            break;
           
            system( "pause" );
           
           
            ///////////////////////////////////////////////////////////////////////////////
           
        case 4:
            //przypadek 4 - zapis do pliku
            system( "cls" );
           
            cout << "Zapis listy do pliku....\n\n";
           
            ofstream Plik; //WYPISYWANIE,  rozpoczecie pracy na pliku
            Plik.open( "C:\\plik.txt" ); //utworzenie pliku o podanej lokalizacji
            for( int i = 0; i < n; i++ )
            {
                Plik << TabNazwisko[ i ] << " " << TabImie[ i ] << " " << TabData[ i ][ 0 ] << " " << TabData[ i ][ 1 ] << " " << TabData[ i ][ 2 ] << endl;
            }
            Plik.close(); //zamkniecie pliku i zakonczenie pracy na nim
           
            cout << "\n\nPoprawnie zakonczono eksport danych do pliku. \n\n\n\a";
            break;
           
            system( "pause" );
           
            //case 5:
            //zakonczenie programu
            system( "cls" );
            cout << "\n\tDziekujemy za skorzystanie z naszego programu!\n\n";
           
           
            ////////////////////////////////////////////////////////////////////////////////
           
            //default:
            // cout<< "W programie nie przewidziano takiej opcji!";
           
        }
       
    } while( liczba != 5 );
   
    // return 0;
}

// koniec programu glownego
// *****************************************************************************
P-102645
colorgreen19
» 2014-01-23 16:48:50
Generalnie to chcesz stworzyć "mini"-baze danych? W takim wypadku łatwiej jest stworzyć strukture, a z niej tablice struktur
C/C++
struct StrukturaOsoba {
    string imie;
    string nazwisko;
}
StrukturaOsoba tablicaOsoba[ 20 ] // tablica struktur na 20 osob[/cpp]
i potem wpisujesz rekord za pustego mniejsca w tablicy
[ cpp ] int i = 0;
cin >> tablicaOsoba[ i ].imie;
cin >> tablicaOsoba[ i ].nazwisko;
i++;

Podziel sobie też kod na funkcje i na koncu dawaj takie sformułowanie, to czysci ekran po tym jak cos klikniesz np.
C/C++
void zapisz() {
    //.....
   
    getch(); // z biblioteki conio.h
    system( "cls" );
}
P-102971
« 1 »
  Strona 1 z 1