000
03.05.2008, 10:29 Uhr
~orlandooo
Gast
|
Halllo,
Ich hab eine aufgabe die heist: Entwerfen Sie ein Programm (Datenentwurf und Modulentwurf als Struktogramm) zum Hinzufügen von beliebig vielen Elementen in einen Stapel (stack) nach Wunsch. Als Nutzdaten sollen jeweils der Name, das Alter und das Gehalt einer Person dienen. Sehen Sie für jedes Element des Stapels einen passenden Strukturtyp vor. Dieses Hinzufügen soll ein separates Modul: input übernehmen. Anschließend sollen alle Elemente des Stapels gelesen, damit ausgegeben und gelöscht werden. Dies soll ein separates Modul: output übernehmen.
Ich verstehe nicht wie ich das mit:
Sehen Sie für jedes Element des Stapels einen passenden Strukturtyp vor.
gemeint ist.
C++: |
#include <stdio.h> #include <stdlib.h> #include <conio.h>
struct personen { char name[50]; int alter; float gehalt; struct personen *last; }; struct personen *current = NULL; int input(){ struct personen *new = NULL; new = (struct personen *)malloc( sizeof( struct personen ) ); if( new == NULL ) { printf( "Kein Speicherplatz vorhanden!\n" ); return 0; } //-------------------------------------------------------------------------------- char _name[50]; int _alter; float _gehalt; printf( "\n\t[ E I N G A B E ] \n"); printf( "\nName...........:" ); printf( "\nEingabe: "); scanf( "%s", _name ); fflush( stdin ); printf( "\nAlter..........:" ); printf( "\nEingabe: " ); scanf( "%i", &_alter ); fflush( stdin ); printf( "\nGehalt..........:" ); printf( "\nEingabe: " ); scanf( "%f", &_gehalt ); fflush( stdin ); //-------------------------------------------------------------------------------- strcpy( new->name, _name ); new->alter = _alter; new->gehalt = _gehalt; if( current == NULL ) { new->last = NULL; } else { new->last = current; } current = new; return 1; } int output() { printf( "\n\n\t[ A U S G A B E ] \n"); if( current == NULL ) { printf( "\nKEIN STRUCT VORHANDEN!\n"); } else { printf( "\nName...........: %s\nAlter..........: %i\nGehalt.........: %.2f\n", current->name, current->alter, current->gehalt ); struct personen *new_current = NULL; new_current = current->last; free(current); current = new_current; } return 1; } pruefung() { printf("\n\n:::MENUE:::\n(1)Eingabe\nAusgabe(2)\nExit(0)"); int eingabe;
while(1) { if (eingabe 0 < || eingabe > 2) { printf("[Ungueltige Eingabe!]"); } if (eingabe == 2 && current == NULL) { printf("\n\n[Stapel leer!]"); printf("[Bitte Eingabe taetigen!]"); } else printf("\n"); return eingabe; }
int main() { while(1)
{ switch (pruefung())
{
case 1: input (); break;
case 2: output(); break;
case 3: printf("[Programm beendet!]"); return 0; }
} }
|
Mein Programm bis jetzt |