Tworzenie listy osób
Ostatnio zmodyfikowano 2014-01-23 16:48
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? :) #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 ) { 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 ); };
|
|
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. |
|
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. #include <iostream> #include <stdio.h> #include <conio.h> #include <cstdlib> #include <fstream>
using namespace std;
int main() { int liczba; int a = 0; do { system( "cls" ); 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 ) { case 1: system( "cls" ); cout << "Dodawanie nowej osoby:\n\n\n"; cout << "Podaj liczbe osob do wpisania: "; int n; cin >> n; char TabImie[ n ][ 20 ]; char TabNazwisko[ n ][ 50 ]; int TabData[ n ][ 3 ]; for( int i = 0; i < n; i++ ) { cout << "\nPodaj imie: "; cin >> TabImie[ i ]; cout << "\nPodaj nazwisko: "; cin >> TabNazwisko[ i ]; cout << "\nPodaj date urodzenia (RRRR MM DD): "; cin >> TabData[ i ][ 0 ] >> TabData[ i ][ 1 ] >> TabData[ i ][ 2 ]; } for( int i = 0; i < n - 1; i++ ) for( int j = 0; j < n - 1; j++ ) { if( TabNazwisko[ j ] == TabNazwisko[ j + 1 ] ) { if( TabImie[ j ][ a ] > TabImie[ j + 1 ][ a ] ) { 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 ] ) { swap( TabNazwisko[ j ], TabNazwisko[ j + 1 ] ); swap( TabImie[ j ], TabImie[ j + 1 ] ); swap( TabData[ j ], TabData[ j + 1 ] ); } else if( TabNazwisko[ j ][ a ] == TabNazwisko[ j + 1 ][ a ] ) { a = a + 1; }; cout << "Ilosc wprowadzonych osob: " << n; } cout << "\n\nPoprawnie zakonczono wprowadzanie danych. \n\n\n\a"; break; system( "pause" ); case 2: system( "cls" ); cout << "Wyswietlanie liczby osob na liscie.\n\n"; cout << "Obecnie na liscie znajduje sie: " << n << " osob.\n"; break; system( "pause" ); case 3: 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: system( "cls" ); cout << "Zapis listy do pliku....\n\n"; ofstream Plik; Plik.open( "C:\\plik.txt" ); for( int i = 0; i < n; i++ ) { Plik << TabNazwisko[ i ] << " " << TabImie[ i ] << " " << TabData[ i ][ 0 ] << " " << TabData[ i ][ 1 ] << " " << TabData[ i ][ 2 ] << endl; } Plik.close(); cout << "\n\nPoprawnie zakonczono eksport danych do pliku. \n\n\n\a"; break; system( "pause" ); system( "cls" ); cout << "\n\tDziekujemy za skorzystanie z naszego programu!\n\n"; } } while( liczba != 5 ); }
|
|
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 struct StrukturaOsoba { string imie; string nazwisko; } StrukturaOsoba tablicaOsoba[ 20 ] 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. void zapisz() { getch(); system( "cls" ); } |
|
« 1 » |