Stos - Zadanie

0

Witam, mam sporo zaległości i potrzebuje Waszej pomocy.
Proszę oszczędzić postów pokazujących moje braki w wiedzy.

Potrzebuje pomocy w zrobieniu zadanie do szkoły :

 A) Zaimplementować, wykorzystując typ tablicowy, dla którego typem podstawowym będzie typ
rekordowy, abstrakcyjny typ danych stos. Implementacja powinna udostępniać komplet 5-ciu
funkcji interfejsu (wskazany w materiałach wykładowych). Typ rekordowy właściwy dla danych
umieszczanych w stosie powinien w języku C (C++) odpowiednik strukturalny wskazany
poniżej.
struct osoba
{
 char imie[20];
 char nazwisko[20];
 int nr_albumu;
}
B) Interfejs użytkownika powinien umożliwiać zainicjowanie stosu, wprowadzanie kolejnych
elementów danych (rekordów) do stosu (edycja poszczególnych składowych z klawiatury)
oraz ich pobieranie ze stosu (wyświetlanie wszystkich składowych pobieranego elementu
danych na ekranie). Przyjąć, że w stosie nie może się pojawić więcej niż 50 elementów
danych (rekordów).
C) Uzupełnić interfejs użytkownika o „zagregowaną” operację polegającą na pobraniu wszystkich
elementów ze stosu, umieszczeniu ich w pomocniczej tablicy (dla której typem podstawowym
będzie wskazany powyżej typ rekordowy), a następnie posortowaniu tych elementów zgodnie
ze wskazaną składową rekordu (dla składowych tekstowych przyjąć dla sortowani porządek
leksykograficzny/alfabetyczny).

Z góry dziękuje za pomoc.. :(

0

Na podstawie tego kodu

#include <iostream>
#include <windows.h>

using namespace std;

char dane[6];
int rozmiar;
struct osoba;
//------------------------------------------------------------------------

struct osoba
{
 char imie[20];
 char nazwisko[20];
 int nr_albumu;
};


void wyswietl_stos()
{
    system("CLS");
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);

    cout<<endl;
    cout<<"----------------"<<endl;
    cout<<"ZAWARTOSC STOSU:"<<endl;
    cout<<"----------------"<<endl;

    for (int i=rozmiar; i>=1; i--)
    {
        cout<<osoba<<<<endl;
    }

    if (rozmiar==0) cout<<"pusty"<<endl;

    cout << "----------------"<<endl<<endl;

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
}

//------------------------------------------------------------------------


void push()
{
	struct osoba
{
 char imie[20];
 char nazwisko[20];
 int nr_albumu;
};
    if (rozmiar>=5)
    {
        cout << "Stos pelny!";
        Sleep(1000);
    }
    else
    {
        cout<<endl<< "PUSH (umieść na stos): ";

        rozmiar=rozmiar+1;
        cin>>"Imie">>imie;
        cin>>"Nazwisko">>azwisko;
        cin>>"Nr Albumu">>nr_albumu;
    }
}

//------------------------------------------------------------------------

void pop()
{
    if (rozmiar>=1)
    {
        cout<<endl<<"POP - nastapi usuniecie ze stosu liczby: "<<dane[rozmiar];
        Sleep(2000);

        rozmiar=rozmiar-1;
    }
    else
    {
        cout << "Stos pusty!";
        Sleep(1000);
    }
}
//------------------------------------------------------------------------

void size()
{
    cout<<endl<<"Liczba elementow na stosie: "<<rozmiar;
    Sleep(2000);
}

//------------------------------------------------------------------------

void empty()
{

    if (rozmiar==0) cout<<endl<<"EMPTY (stos pusty?) ->  TRUE";
    else cout<<endl<<"EMPTY (stos pusty?) ->  FALSE";
    Sleep(2000);
}

//------------------------------------------------------------------------


int main()
{

    int wybor;
    rozmiar=0;

    do
    {
        wyswietl_stos();

        cout << "MENU GLOWNE STOSU:"<<endl;
        cout << "------------------------------------------"<<endl;
        cout << "1. PUSH (dodaje element na szczyt stosu) "<<endl;
        cout << "2. POP (usuwa element ze szczytu stosu) "<<endl;
        cout << "3. SIZE (ile elementow na stosie) "<<endl;
        cout << "4. EMPTY (czy stos jest pusty?) "<<endl;
        cout << "5. Koniec programu "<<endl;
        cout << "------------------------------------------"<<endl;
        cout << "Wybor: ";
        cin >> wybor;

        switch (wybor)
        {
        case 1:
            push();
            break;

        case 2:
            pop();
            break;

        case 3:
            size();
            break;

        case 4:
            empty();
            break;

        }

    }
    while (wybor != 5);

    return 0;
} 

Chciałbym zaimplementować strukture osoby czyli imie nazwisko i nr albumu.
Cos kombinuje ale wyswietla mi jedynie pierwsza litere np "A" zamiast "Ala".

0
void push()
{
    struct osoba
{
 char imie[20];
 char nazwisko[20];
 int nr_albumu;
};
    if (rozmiar>=5)
    {
        cout << "Stos pelny!";
        Sleep(1000);
    }
    else
    {
        cout<<endl<< "PUSH (umieść na stos): ";
 
        rozmiar=rozmiar+1;
        cin>>"Imie">>imie;
        cin>>"Nazwisko">>azwisko;
        cin>>"Nr Albumu">>nr_albumu;
    }
} 

nie wiem czy wiesz ale tutaj po raz drugi deklarujesz strukturę a to raczej się nie uda...
czy to się w ogóle kompiluje?

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