Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Astrix

como fazer esse programa usando o struct???

Recommended Posts

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

 

void info();

char nome[15];

char rg[8];

int dia;

int mes;

int ano;

char setor[10];

char funcao[10];

char mesa[2];

char sala[3];

int opcao;

 

int main(int argc, char *argv[])

{

 

char sair;

 

while (1)

{

 

printf("\n 1-operacional \n 2-administrativo \n 3-direcao \n 0-sair \n");

printf("\n Opcao:");

fflush(stdin);

scanf("%d",&opcao);

 

info();

 

 

printf("\nDeseja sair? (S) (N)\n");

sair=getch();

if (sair=='s' || sair=='S')

{

break;

}

}

 

getch();

return 0;

}

void info()

{

switch(opcao)

{

case 1:

printf("\n OPERACIONAL\n");

printf("\n Informe o nome: ");

fflush(stdin);

gets(nome);

printf("\n Informe o rg: ");

fflush(stdin);

gets(rg);

printf("\n Informe o dia, mes e o ano de admissao: ");

scanf("%d %d %d",&dia, &mes, &ano);

fflush(stdin);

printf("\n Informe o setor: ");

fflush(stdin);

gets(setor);

printf("\n Informe a funcao: ");

fflush(stdin);

gets(funcao);

 

 

break;

 

case 2:

printf("\n ADMINISTRATIVO\n");

printf("\n Informe o nome: ");

fflush(stdin);

gets(nome);

printf("\n Informe o rg: ");

fflush(stdin);

gets(rg);

printf("\n Informe o dia, mes e o ano de admissao: ");

fflush(stdin);

scanf("%d %d %d",&dia, &mesa, &ano);

printf("\n Informe o setor: ");

fflush(stdin);

gets(setor);

printf("\n Informe a mesa: ");

fflush(stdin);

gets(mesa);

break;

 

case 3:

printf("\n DIRECAO\n");

printf("\n Informe o nome: ");

fflush(stdin);

gets(nome);

printf("\n Informe o rg: ");

fflush(stdin);

gets(rg);

printf("\n Informe o dia, mes e o ano de admissao: ");

fflush(stdin);

scanf("%d %d %d",&dia, &mes, &ano);

printf("\n Informe o sala: ");

fflush(stdin);

gets(sala);

break;

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha Astrix, não sei exatemante o que quer fazer, mas ficou meio estranha essa organização, eu colocaria os cargos (operacional, administrativo, direcao) dentro da struct mesmo...bom, fiz um esboço, ve se te ajuda. Se quiser complementar, terá que criar uma função pra cadastrar sempre um novo registro na próxima posição vazia da struct Funcionario, uma alocação dinâmina no "cadastro[60]" também fica da hora :D

 

#include <stdio.h>

typedef struct
{
	char nome[60];
	char rg[8];
	int dia;
	int mes;
	int ano;
	char setor[10];
	char funcao[10];
	char mesa[2];
	char sala[3];
}Funcionario;

void Menu();
void ExecutaOperacao(int opcao);
void Exibir(Funcionario* cadastro);
void Operacional(Funcionario* cadastro);

int main()
{
	int opcao;

	do
	{
		printf("\n\n");		
		Menu();
		printf("\nDigite uma opcao: ");
		scanf("%d",&opcao);
		ExecutaOperacao(opcao);
	}while(opcao != 5);

	return(0);
}

void Menu()
{
	printf("1 - Operacional");
	printf("\n2 - Administrativo");
	printf("\n3 - Direcao");
	printf("\n4 - Exibir");
printf("\n5 - Sair");
}

void ExecutaOperacao(int opcao)
{
	Funcionario cadastro[60]; //Variavel do tipo Funcionario
	switch(opcao)
	{
		case 1:
			Operacional(cadastro);
		break;
		case 4:
			Exibir(cadastro);
		break;
		/*		
		case 2:
			Administrativo(cadastro);
		break;
		case 3:
			Direcao(cadastro);
		break;
		case 4:
			printf("\nSAINDO...");
		break;
		*/
	}
}

void Exibir(Funcionario* cadastro)
{
	printf("\nNome: %s",cadastro->nome);	
}

void Operacional(Funcionario* cadastro)
{
	printf("\nInforme nome: ");
	scanf("%s",cadastro->nome);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.