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

struktura

Ostatnio zmodyfikowano 2009-05-29 20:46
Autor Wiadomość
wiktor12348
Temat założony przez niniejszego użytkownika
» 2009-05-30 09:43:15
spokojnie po kolei ... będę do tego dochodzić.. dzięki za wytłumaczenie...

dawałem Osoby dodaj; w wewnętrznych funkcjach ale nie działały... dlatego sie spytałem po co ona.

Co nie działa  w twojej funkcji? wywala mi błąd w - getchar();.
widzę że dałeś do struktury funkcje wyświetl i dodaj. Czyli jak tak zrobię nie będę musiał Pisać Osoby dodaj;>
P-7282
ziemianp
» 2009-05-30 17:50:29
getchar nie działa, bo pewnie jakiejś biblioteki nie includowałeś. Ale myśle, że jakbyś po prostu skompilował całość kodu, to zadziała. Jeszcze zależy w czym i jak kompilujesz.

I taka rada - nie nazywaj obiektów klasy kompletnie bez sensu (w danym kontekście), czyli np dodaj, bo trudno się domyśleć, co to za typ danych.

Ogólnie to deklaracja struktury, nie różni się od deklaracji zmiennej:

C/C++
int i;
Osoba ja;

Napisz sobie w programie coś takiego (w funkcji main):

C/C++
Osoby ja, ty, on;
ja.Dodaj();
ty.Dodaj();
on.Dodaj();
ja.Wyswietl();
ty.Wyswietl();
on.Wyswietl();

i zobacz jak to działa. Mam wrażenie, że jeszcze nie do końca to rozumiesz ;)

Uruchom to na moim kodzie i po prostu wywal getchar() jak nie będziesz mógł sobie z tym poradzić. Użyj po prostu cin>> i wpisz coś do jakiejś zmiennej.
P-7289
wiktor12348
Temat założony przez niniejszego użytkownika
» 2009-05-30 19:25:20
dobra chyba to ogarnąłem...
C/C++
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include "console.ddt"

using namespace ddt::console;
using namespace std;
struct Osoby
{
    string imie;
    string nazwisko;
    string telefon;
};
Osoby lista[ 100 ];
int id = 1;
void Wyswietl()
{
    for( int i = 1; i < id; i++ )
    {
        cout << lista[ i ].imie << "|" << lista[ i ].nazwisko << "|" << lista[ i ].telefon << "|" << endl;
    }
    system( "pause" );
}

void DodajOsobe()
{
    if( id == 100 )
    {
        cout << "Limit Został wyczerpany" << endl;
    }
    else
    {
        cout << "Dodaj osobe" << endl;
        cout << "Imie: ";
        cin >> lista[ id ].imie;
        cout << "Nazwisko: ";
        cin >> lista[ id ].nazwisko;
        cout << "Telefon: ";
        cin >> lista[ id ].telefon;
        id++;
    }
}

int Menu()
{
    int wybierz;
    textbackground( 0 );
    textcolor( 7 );
    gotoxy( 1, 1 );
    cout << "[ESC] Wyjscie     ";
    cout << "[F1] Dodaj osobe     ";
    cout << "[F2] Wyświetl Liste     " << endl;
    wybierz;
}
int main()
{
    int wybierz;
    bool koniec = false;
    while( koniec != true )
    {
        clrscr();
        Menu();
        wybierz = getch();
        if( wybierz == 27 )
        {
            koniec = true;
        }
        if( wybierz == 0 )
        {
            wybierz = getch();
            if( wybierz == 59 )
            {
                DodajOsobe();
            }
            if( wybierz == 60 )
            {
                Wyswietl();
            }
        }
    }
    return 0;
   
}

Może być(?) mi wszystko działa i najważniejsze sam to napisałem :)

Teraz tak jak kasować dane ze stryktury i edytować, ale to drugie to chyba wiem- porostu nadpisać :) Tylko kurka ta kasowanie... Ktoś ma jakiś pomysł a może się podzielić z noobem?
P-7290
ziemianp
» 2009-05-30 20:29:34
Usuwanie w tym programie najłatwiej zrobić po prostu zmniejszając numer id, co jest jednoznaczne z udostępnieniem tego elementu tablicy do nadpisania przy dodawaniu osoby i spowoduje nie wyświetlanie go w funkcji wyświetl.

Ale zależy co rozumiesz pod pojęciem usuwanie. I pamiętaj, że tabele się indeksuje od 0.
P-7291
manfred
» 2009-05-29 20:46:11
Struktura jest równoznaczna z klasą pomijając domyślny specyfikator dostępu i dziedziczenia - public dla struct, private dla class.
P-18930
1 « 2 »
Poprzednia strona Strona 2 z 2