______________________________________________________________________
// 1_28 Verkettete Listen
#include <stdio.h>
#include <string.h>
struct Listenelement
{
char Name[50];
int Munition;
int Kampfstaerke;
int Lebensenergie;
// Zeiger auf das nächste Listenelement:
Listenelement* Naechstes;
};
Listenelement* Letztes(void);
void Neues_Element(char* Name, int Munition, int Kampfstaerke, int Lebensenergie);
void Ausgabe(void);
void Liste_Loeschen(void);
Listenelement Liste;
void main(void)
{
int auswahl=0;
printf("Geben sie die Daten fuer den ersten Character ein:\n"
"Achtung: Dieser Charcter kann nicht geloescht werden");
printf("Geben sie Name, Munition, Kampfstaerke und Lebensenergie an\n"
"Name:\n");
scanf("%s", &Liste.Name);
printf("Munition:\n");
scanf("%d", &Liste.Munition);
printf("Kampfstaerke:\n");
scanf("%d", &Liste.Kampfstaerke);
printf("Lebensenergie:\n");
scanf("%d", &Liste.Lebensenergie);
char Name[50];
int Munition=0;
int Kampfstaerke=0;
int Lebensenergie=0;
while(auswahl != 4)
{
printf("Was wollen sie tun?\n"
"1. Einen Charakter speichern\n"
"2. Die Liste der vorhandenen Charaktere einsehen\n"
"3. Alle Charactere loeschen\n"
"4. BEENDEN\n");
scanf("%d", &auswahl);
switch(auswahl)
{
case 1:
printf("Geben sie Name, Munition, Kampfstaerke und Lebensenergie an\n"
"Name:\n");
scanf("%s", &Name);
printf("Munition:\n");
scanf("%d", &Munition);
printf("Kampfstaerke:\n");
scanf("%d", &Kampfstaerke);
printf("Lebensenergie:\n");
scanf("%d", &Lebensenergie);
Neues_Element(Name, Munition, Kampfstaerke, Lebensenergie);
break;
case 2:
Ausgabe();
break;
case 3:
Liste_Loeschen();
printf("Alle Charactere bis auf den ersten wurden geloescht\n");
default:
break;
}
} // Ende while
}
void Neues_Element(char* Name, int Munition, int Kampfstaerke, int Lebensenergie)
{
Listenelement* Element = new Listenelement;
strcpy(Element->Name, Name);
Element->Munition = Munition;
Element->Kampfstaerke = Kampfstaerke;
Element->Lebensenergie = Lebensenergie;
Element->Naechstes = NULL;
Listenelement* Zeiger = Letztes();
Zeiger->Naechstes = Element;
}
Listenelement* Letztes(void)
{
Listenelement* Zeiger = &Liste;
while(NULL != Zeiger->Naechstes)
{
Zeiger = Zeiger->Naechstes;
}
return Zeiger;
}
void Ausgabe(void)
{
Listenelement* Zeiger = &Liste;
while(NULL != Zeiger)
{
printf("%s %d %d %d\n", Zeiger->Name, Zeiger->Munition, Zeiger->Kampfstaerke, Zeiger->Lebensenergie);
Zeiger = Zeiger->Naechstes;
}
}
void Liste_Loeschen(void)
{
while(NULL != Liste.Naechstes)
{
Listenelement* Zeiger = & Liste;
while(Letztes() != Zeiger->Naechstes)
Zeiger = Zeiger->Naechstes;
delete Letztes();
Zeiger->Naechstes = NULL;
}
}
______________________________________________________________________
|
|
Zurück
|