49 lines
984 B
Plaintext
49 lines
984 B
Plaintext
/*
|
|
** Wir moechten die Betriebsstruktur (Unterstellungsverhaeltnisse)
|
|
** recherchieren.
|
|
*/
|
|
## shared Dt
|
|
## i2 leiter;
|
|
## char name[21];
|
|
int niveau;
|
|
amx(argc, argv)
|
|
int argc;
|
|
char **argv;
|
|
{
|
|
/*
|
|
** Wird kein Argument gegeben, liefert `atoi()' den Wert `0'.
|
|
*/
|
|
leiter = atoi(argv[1]);
|
|
## open Personal
|
|
/*
|
|
** Ausgangspunkt der Betriebsstruktur ist der Direktor, also die
|
|
** Leiternummer `0'.
|
|
*/
|
|
## retrieve Personal $Leiter == leiter (name = $Name, leiter = $Num)
|
|
## {
|
|
suche_mitarbeiter();
|
|
## }
|
|
## close Personal
|
|
fflush(stdout);
|
|
}
|
|
/*
|
|
** `suche_mitarbeiter' sucht rekursiv alle Unterstellten eines Angestellten.
|
|
*/
|
|
suche_mitarbeiter()
|
|
{
|
|
register int i;
|
|
/*
|
|
** Die C-Variable `niveau' verwaltet die Unterstellungstiefe,
|
|
** un optische Einrueckungen vornehmen zu koennen.
|
|
*/
|
|
niveau++;
|
|
for (i = niveau - 1; i; --i)
|
|
putchar('\t');
|
|
printf("%-20s %4d\n", name, leiter);
|
|
## retrieve Personal $Leiter == leiter (name = $Name, leiter = $Num)
|
|
## {
|
|
suche_mitarbeiter();
|
|
## }
|
|
--niveau;
|
|
}
|