Enviado em 28/04/2017 - 17:37h
#include<stdio.h>
#include<stdlib.h> //para a funcao exit()
#include<conio.h>
#include<string.h>
#define SIZE 200
/* Estrutra para armazenar a ficha do funcionario*/
struct cadastro
{
int cod; /* Código do funcionario*/
char nome[SIZE]; /* Nome do funcionario*/
char end[SIZE]; //endereco do funcionario
int fone; //telefone de contato do funcionario
char email[SIZE]; //email do funcionario
float salario; /* Salario do funcionario*/
char cargo[SIZE]; /* Cargo do funcionario*/
};
//-- Variáveis do tipo: global -----------
FILE *cadastros;
struct cadastro cadast;
int vet[10], soma=0, x;
//-- Declarando funções ------------
void abre_arquivo(){ // função que abre o arquivo de cadastros
cadastros=fopen("cadastros.txt","rb+"); // tenta abrir o arquivo (rb+)
if(cadastros == NULL) // se ele ainda não existe
cadastros=fopen("cadastros.txt","wb+");// então criamos ele (wb+)
if(cadastros == NULL) // se a criação também não funcionar
printf("\nErro ao abrir/criar arquivo de cadastros"); // então uma mensagem de erro é mostrada
}
/* Estrutra para as funcões*/
struct cadastro funcionario[SIZE];
int topo;
void inserir();
void excluir();
void listar();
void pesquisar();
void pesquisarnome();
void calcular();
void alterar();
/* Programa Principal*/
int main()
{
int opcao;
char seguir = 's';
topo = 0;
while(seguir == 's')
{
system("cls");
system("color F0");
printf(" %c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t- CADASTRO DE FUNCIONARIOS -");
printf("\t\t\t |\n");
printf(" %c----------------------------------------------------------------------------%c\n\n",200,188);
printf("\t\t\t %c----------%c\t\t\t\t ",201,187);
printf("\t\t\t | MENU: ");
printf("|\t\t\t\t \n");
printf("\t\t %c-----------%c----------%c------------%c \n",201,200,188,187);
printf("\t\t | <1> Novo cadastro |\n");
printf("\t\t |-----------------------------------|\n");
printf("\t\t | <2> Excluir cadastro |\n");
printf("\t\t |-----------------------------------|\n");
printf("\t\t | <3> Listar Categorias |\n");
printf("\t\t |-----------------------------------|\n");
printf("\t\t | <4> Pesquisar matricula |\n");
printf("\t\t |-----------------------------------|\n");
printf("\t\t | <5> Pesquisar funcionario |\n");
printf("\t\t |-----------------------------------|\n");
printf("\t\t | <6> Alterar cadastro |\n");
printf("\t\t %c-----------------------------------%c\n",200,188);
printf("\n%c----------------------------------------------------------------------------%c\n",201,187);
printf("| ");
printf(" Digite sua opcao: ");
scanf("%d%*c",&opcao);
printf("\n");
switch(opcao)
{
case 1:
{
printf(" INSERINDO NOVO REGISTRO \n\n");
if(topo < SIZE)
{
inserir();
printf(" DADO INSERIDO COM SUCESSO!\n\n");
}
else
{
printf(" Desculpe, Sitema de Cadastro esta no limite!\n\n");
}
break;
}
case 2:
{
if(topo == 0)
{
printf("não há dados para serem excluidos!\n\n");
}
else
{
excluir();
printf(" DADO EXCLUIDO COM SUCESSO!\n\n");
}
break;
}
case 3:
{
if(topo == 0)
{
printf("não há dados no sistema!\n\n");
}
else
{
printf(" Listando os Funcionarios cadastrados\n\n");
listar();
}
break;
}
case 4:
{
if(topo == 0)
{
printf("não há dados no sistema!\n\n");
}
else
{
printf(" PESQUISANDO DADO\n\n");
pesquisar();
}
break;
}
case 5:
{
if(topo == 0)
{
printf("não há dados no sistema!\n\n");
}
else
{
printf(" PESQUISANDO DADO\n\n");
pesquisarnome();
}
break;
}
case 6:
{
if(topo == 0)
{
printf("não há dados no sistema!\n\n");
}
else
{
printf(" ALTERARANDO DADOS!\n\n");
alterar();
printf(" DADOS ALTERADOS COM SUCESSO!\n\n");
}
break;
}
default:
printf(" ( OPCAO INVALIDA! )\n\n");
}
printf(" CONTINUAR?(S/N) ");
scanf("%c",&seguir);
printf("\n");
}
getch();
return 0;
}
/*Função para inserir um funcionario do Sistema*/
void inserir()
{
funcionario[topo].cod = topo+1;
printf(" CODIGO : %d\n",funcionario[topo].cod);
printf(" NOME: ");
fgets(funcionario[topo].nome,50,stdin);
fflush(stdin);
printf(" ENDERECO: ");
fgets(funcionario[topo].end,50,stdin);
fflush(stdin);
printf(" TELEFONE: ");
scanf("%d", &funcionario[topo].fone);
fflush(stdin);
printf(" EMAIL: ");
fgets(funcionario[topo].email,50,stdin);
fflush(stdin);
printf(" CARGO: ");
fgets(funcionario[topo].cargo,30,stdin);
fflush(stdin);
printf(" SALARIO: ");
scanf("%f", &funcionario[topo].salario);
fflush(stdin);
printf("\n");
topo = topo + 1;
}
/*Função para excluir um funcionario do Sistema*/
void excluir()
{
topo = topo - 1;
}
/*Função para listar os funcionarios cadastrados no Sistema*/
void listar()
{
int i;
for(i = 0;i < topo; i++)
{
printf(" ARQUIVO %d\n",(i+1));
printf(" CODIGO: %d",funcionario[i].cod);
printf(" NOME: %s",funcionario[i].nome);
printf(" TELEFONE: %d",funcionario[i].fone);
printf(" EMAIL: %s",funcionario[i].email);
printf(" CARGO: %s",funcionario[i].cargo);
printf(" SALARIO: %f",funcionario[i].salario);
printf("\n\n");
}
}
/*Função para pesquisar por matricula do funcionario cadastrados
no Sistema e mostrar os dados for se caso for encontrado*/
void pesquisar()
{
int i,dado,cont = 0;
printf(" PESQUIZA POR CODIGO: ");
scanf("%d",&dado);
for(i = 0;i < topo; i++)
{
if(dado == funcionario[i].cod)
{
printf("Dado Encontrado \n\n");
printf(" CODIGO: %d",funcionario[i].cod);
printf(" NOME: %s",funcionario[i].nome);
printf(" TELEFONE: %d",funcionario[i].fone);
printf(" EMAIL: %s",funcionario[i].email);
printf(" CARGO: %s",funcionario[i].cargo);
printf(" SALARIO: %f",funcionario[i].salario);
printf("\n");
cont = cont + 1;
}
}
if(cont == 0)
{
printf(" Registro não Encontrado!\n\n");
}
}
/*Função para pesquisar por matricula do funcionario cadastrados
no Sistema e mostrar os dados for se caso for encontrado*/
void pesquisarnome()
{
int i,dados,cont = 0;
printf(" PESQUIZA POR nome: ");
scanf("%d",&dados);
for(i = 0;i < topo; i++)
{
if(dados == 'funcionario[i].nome')
{
printf("Dado Encontrado \n\n");
printf(" CODIGO: %d",funcionario[i].cod);
printf(" NOME: %s",funcionario[i].nome);
printf(" TELEFONE: %d",funcionario[i].fone);
printf(" EMAIL: %s",funcionario[i].email);
printf(" CARGO: %s",funcionario[i].cargo);
printf(" SALARIO: %f",funcionario[i].salario);
printf("\n");
cont = cont + 1;
}
}
if(cont == 0)
{
printf(" Registro não Encontrado!\n\n");
}
}
/*Função para alterar os funcionarios cadastrados no Sistema*/
void alterar()
{
int i,dado,cont = 0;
printf(" ATENCAO! PARA ALTERAR UM REGISTRO \n");
printf(" EFETUE UMA PESQUIZA PELO SEU CODIGO. \n\n");
printf(" CODIGO DO REGISTRO: ");
scanf("%d",&dado);
for(i = 0;i < topo; i++)
{
if(dado == funcionario[i].cod)
{
cont = cont + 1;
funcionario[topo].cod = topo+1;
printf(" CODIGO : %d\n",funcionario[topo].cod);
printf(" NOME: ");
fgets(funcionario[topo].nome,50,stdin);
fflush(stdin);
printf(" ENDERECO: ");
fgets(funcionario[topo].end,50,stdin);
fflush(stdin);
printf(" TELEFONE: ");
scanf("%d", &funcionario[topo].fone);
fflush(stdin);
printf(" EMAIL: ");
fgets(funcionario[topo].email,50,stdin);
fflush(stdin);
printf(" CARGO: ");
fgets(funcionario[topo].cargo,30,stdin);
fflush(stdin);
printf(" SALARIO: ");
scanf("%f", &funcionario[topo].salario);
fflush(stdin);
}
}
if(cont == 0)
{
printf(" DADO não ENCONTRADO!\n\n");
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (2)
Gestão de Ambiente em uma rede Linux (3)