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

Problem z ćwiczeniem z kursu / skoroszyt

Ostatnio zmodyfikowano 2010-10-24 20:39
Autor Wiadomość
c00per
Temat założony przez niniejszego użytkownika
Problem z ćwiczeniem z kursu / skoroszyt
» 2010-10-24 14:18:33
Cześć :) Jako, że ćwiczę podstawy natknąłem się na nurtujący mnie problem. Otóż mam następujący kawałek kodu:
C/C++
#include <iostream>
#include <conio.h>
#include <string>
#include <ctime>
using namespace std;
int main()
{
    //start deklaracja zmiennych
    int i, ile;
    string imie, nazwisko, tel, uwagi;
    //end of deklaracja zmiennych
    cout.fill( '-' );
    cout.width( 50 );
    cout << "" << endl;
    cout << "Witaj w programie skoroszyt v1.0." << endl <<
    "Wpisz ilosc osob, ktore chcesz wpisac do skoroszytu: ";
    cin >> ile;
    cout << endl;
    for( i = 1; i <= ile; i++ )
    {
        cout << "Osoba nr " << i << "." << endl << "Imie: ";
        cin >> imie;
        cout << "Nazwisko: ";
        cin >> nazwisko;
        cout << "Nr tel.: ";
        cin >> tel;
        cout << "Uwagi: ";
        cin >> uwagi;
        cout << endl;
       
       
       
    }
    cout << endl;
    cout.fill( '-' );
    cout.width( 50 );
    cout << "" << endl;
   
    getch();
    return( 0 );
}

Mam za zadanie wyświetlić poszczególne rekordy, ale gdy cała pętla zostanie wykonana. I tu się pojawia problem. Bo wyświetla się wtedy tylko ostatni rekord. Bo cały czas następny nadpisuje poprzedni. Myślałem tu o tablicach, tylko nie umiem je przystosować do tego, aby zapisywała tekst. Proszę o pomoc. Pozdrawiam
P-23233
pekfos
» 2010-10-24 14:24:53
oczywiście że tablice! wszystkie wpisy zapisujesz w jednym rekordzie!.
C/C++
struct wpis {
    string imie, nazwisko; //..itp
};

wpis data[ MAX_WPISOW ];

//..
for( int current = 0; current < ILE_WIPISAC && current < MAX_WPISOW; current++ ) {
    cin >> data[ current ].imie;
    //itd.
}
P-23234
ison
» 2010-10-24 14:26:47
przykładowe użycie tablic:

C/C++
#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

const int MAX_OSOB = 100;

int main()
{
    int i, ile;
    string imie[ MAX_OSOB ], nazwisko[ MAX_OSOB ], tel[ MAX_OSOB ], uwagi[ MAX_OSOB ];
   
    cout.fill( '-' );
    cout.width( 50 );
    cout << "" << endl;
    cout << "Witaj w programie skoroszyt v1.0." << endl
    << "Wpisz ilosc osob, ktore chcesz wpisac do skoroszytu: ";
    cin >> ile;
    cout << endl;
   
    for( i = 1; i <= ile; i++ )
    {
        cin.sync();
        cout << "Osoba nr " << i << "." << endl << "Imie: ";
        getline( cin, imie[ i - 1 ] );
        cout << "Nazwisko: ";
        getline( cin, nazwisko[ i - 1 ] );
        cout << "Nr tel.: ";
        getline( cin, tel[ i - 1 ] );
        cout << "Uwagi: ";
        getline( cin, uwagi[ i - 1 ] );
        cout << endl;
    }
   
    cout << endl;
    cout.fill( '-' );
    cout.width( 50 );
    cout << "" << endl;
   
    getch();
}

lepiej gdy będziesz używał getline(cin,x); wczytuje całą linijkę a nie pojedyncze słowo

przykładowo do imienia osoby o numerze n odwołujesz się przez
C/C++
imie[ n ];
P-23235
pekfos
» 2010-10-24 14:29:38
C/C++
for( i = 0; i < ile; i++ )
{
    cin.sync();
    cout << "Osoba nr " << i + 1 << "." << endl << "Imie: ";
    getline( cin, imie[ i ] );
    cout << "Nazwisko: ";
    getline( cin, nazwisko[ i ] );
    cout << "Nr tel.: ";
    getline( cin, tel[ i ] );
    cout << "Uwagi: ";
    getline( cin, uwagi[ i ] );
    cout << endl;
}
nie prościej tak?
P-23236
ison
» 2010-10-24 14:31:02
@up zależy jak wygodniej autorowi, nie chce mu nic narzucać, często widuję jak niektórzy lecą for'em od 1 i potem odwołują się do komórek i-1. Zależy od upodobań
P-23237
pekfos
» 2010-10-24 15:04:36
tak, wszystko sprowadza się do upodobań. I tego co dla kogo jest bardziej czytelne. Ja preferuję krótszy zapis:P
P-23238
c00per
Temat założony przez niniejszego użytkownika
» 2010-10-24 15:12:24
Na obecnym etapie mojej nauki, że tak powiem =), najbardziej przypadło mi rozwiązanie @isona. @pekfos - masz rację, wyjdzie szybciej. Jednak wcześniej jeszcze nie wiedziałem w jaki sposób zrobić to w tablicach, dlatego nie zacząłem tego w ten sposób. Zresztą podobnie jak Ty w php też zaczynałem w reguły od 0. A do struktur jeszcze dojdę ;]

Pozdrawiam i dzięki za pomoc.

Btw. w jaki sposób wklejać kod, który nie jest na czarnym tle? [ quote] ? [ code ] na pewno nie.
P-23240
SeaMonster131
» 2010-10-24 15:13:20
[ code src="C++" ] .. [ /code ]
:)
P-23241
« 1 » 2 3 4 5
  Strona 1 z 5 Następna strona