Beruflich Dokumente
Kultur Dokumente
typedef struct {
char *nome;
int numeroHorasTrabalho;
}Atendente;
typedef struct {
char *nome;
int numeroHorasTrabalho;
struct Atendentes *subordinados;
int numeroSubordinados;
}GerenteDeGrupo;
typedef struct {
char *nome;
char *senha;
}Administrador;
Crie uma maneira de representar estes dados na memória de forma mais eficiente,
Para que em seguida seja implementada uma função que recebe um array de
Usuários e um inteiro para indicar o tamanho do array, esta função deverá imprimir
todos os dados dos usuários de acordo com seus tipos. (6.0)
typedef struct {
union {
Atendente atendente;
GerenteDeGrupo gerente;
Administrador administrador;
}dados;
switch (usuario->tipo) {
case (Atend):
printf("ATENDENTE\n");
printf("Nome: %s\nHoras de Trabalho: %d\n",
usuario->dados.atendente.nome,
usuario->dados.atendente.numeroHorasTrabalho);
break;
case (Gerente):
printf("GERENTE\n");
printf("Nome: %s\nHoras de Trabalho: %d\n",
usuario->dados.gerente.nome,
usuario->dados.gerente.numeroHorasTrabalho);
printf("Subordinados: ");
for (i = 0; i <
usuario->dados.gerente.numeroSubordinados;
i++) {
printf("%s ",
usuario->dados.gerente.subordinados[i].nome);
}
printf("\n");
break;
case (Admin):
printf("ADMINISTRADOR DO SISTEMA\n");
printf("Nome: %s\nSenha: %s\n",
usuario->dados.administrador.nome,
usuario->dados.administrador.senha);
break;
default:
printf("TIPO INVALIDO\n");
break;
free(usr);