Lista Obiektow

Odpowiedz Nowy wątek
2013-11-16 16:40
0

Witam
Mam niewielki problemik mianowicie mam do napisania program który ma stworzyć listę obiektów (każdy obiekt zawiera imie i nr osoby). Przy kompilacji nie wykrywa błędów niestety gdy chcę zakończyć dodawanie to Visual Studio wywala mi "break", tak jakby moja ostatnia pętla nie działała poprawnie. Czy ma ktoś pomysł co zrobiłem źle ?
Pozdrawiam

#include "stdafx.h"

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

class osoba{
public:
    int numer;
    string imie;

    osoba(){
    imie="";
    numer=0;
    }

    osoba(string x, int y){
        imie = x;
        numer = y;
    }
};

typedef struct lista{
        osoba key;
        struct lista*next,*prev;}listaD;

void wstaw(listaD **head,osoba x){
     listaD*nowy= new listaD;
     nowy->key=x;
     nowy->next=*head;
     nowy->prev=NULL;
     if(*head)(*head)->prev=nowy;
     *head=nowy;
}

void show(listaD *head){
    osoba ktos;

    while(head){
        ktos = head -> key;

        cout << ktos.imie << " " << ktos.numer << endl;
        if(head->next)
        head = head -> next;
        }
}

int main(void){
    listaD *head = new listaD;
    char pyt = 'n';
    int y;
    string x;
    osoba ktos;

    do{
        cout << "Podaj imie: ";
        cin >> x;
        cout << "\nPodaj numer: ";
        cin >> y;
        cout << endl;
        ktos = osoba(x,y);
        wstaw(&head,ktos);

        cout << "Czy chcesz dodac kolejna osobe? t/n ";
        cin >> pyt;
        cout << endl;
    }while(pyt == 't');

    show(head);

    getchar();
    getchar();
    return 0;
}

Pozostało 580 znaków

2013-11-16 17:14
sig
0

A skąd program ma wiedzieć że to już koniec listy? Musisz to jakoś specjalnie zaznaczyć, i zakończyć tym while-a (ew dać ilość elementów do zmiennej potem while (ilość--))

Pozostało 580 znaków

2013-11-16 17:29
0

Wywal ten wiersz:
if(head->next)


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0