/* ==================================== *\
 *	File      : NyAgent.c                *
 *	Påbegyndt : 14.03.02 Henning Karlby  *
 *	Færdig    :                          *
 *	Ændret    :                          *
\* ==================================== */

/* ---- INCLUDES ------- */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define Sand 1

void newname(void);
void listall(void);

struct prs
{
	char navn[30]; // agentens navn
	int agnum; // agentens nummer
	float hoej; // agentens højde
	struct prs *ptrnext; // pointer ril den næste post
}; // slut på posten

struct prs *ptrfirst = NULL;

void main(void)
{
	char ch;
	while (Sand)
	{
		printf("\nTast 'e' for at indtaste en ny agent"); // print
		printf("\n 'l' for at udskrive alle agenterne"); // muligheder
		printf("\n 'q' for at afslutte programmet");
		ch = getche(); // Modtager valget.
		switch(ch)
		{
			case 'e': newname(); break;
			case 'l': listall(); break;
			case 'q': exit(0);
			default : puts("\nIndtast kun et af de bogstaver,
                                                                     som er nævnt i listen");
		} // Slut på switch
	} // Slut på while
} // Slut på main

void newname(void)
{
	struct prs *ptrthis; // pointer til den aktelle post
	char numstr[81]; // variabel som holder et tal som en streng
	ptrthis = malloc(sizeof(struct prs)); // få tildelt hukommelseplads
	if(ptrthis == NULL)
	{ printf("\nFejl under tildelingen!"); return; }
	ptrthis -> ptrnext = ptrfirst;
	ptrfirst = ptrthis;

	printf("\nIndtast et agentnavn: ");
	gets(ptrthis -> navn);
	printf("\nIndtast et agentnavn: ");
	gets(numstr);
	ptrthis -> agnum = atoi(numstr);
	printf("\nIndtast agentens højde: ");
	gets(numstr);
	ptrthis -> hoej = atof(numstr);
}

void listall(void)
{
	struct prs *ptrthis;

	if(ptrthis == NULL)
	{ printf("\nListen er tom!"); return; }
	ptrthis = ptrfirst;
	do
	{
		printf("\nAgentnavn : %s\n", ptrthis -> navn);
		printf("\nAgentnummer : %03d\n", ptrthis -> agnum);
		printf("\nAgentens højde: %4.2f\n", ptrthis -> hoej);
		ptrthis = ptrthis -> ptrnext;
	}
	while(ptrthis != NULL);
}
