Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <string.h>
- void insere(struct data *pdados);
- void remove(struct data *pdados2);
- void imprime(struct data *pdados3);
- typedef struct data{
- char nome[20];
- float salario;
- int idade;
- char sexo[1];
- int veri;
- }dados2;
- struct data dados[100];
- int contsub=0;
- int contdesc=100;
- int contsuper;
- main(){
- int opc;
- setlocale(LC_ALL, "");
- while (opc != 4){
- printf(" --------------------------------------------------------------\n");
- printf(" Cadastro de Funcinários\n");
- printf(" --------------------------------------------------------------\n\n");
- printf("Digite uma opção: \n\n");
- printf("1 - Inserir funcionário.\n");
- printf("2 - Remover funcionário\n");
- printf("3 - Imprimir dados.\n");
- printf("4 - Sair.\n");
- scanf("%d", &opc);
- if (opc != 1 && opc != 2 && opc != 3 && opc != 4){
- while(opc != 1 && opc != 2 && opc != 3 && opc != 4){
- printf("Opção não encontrada, tente novamente.\n");
- scanf("%d", &opc);
- }
- }
- if (opc == 1){
- insere(dados);
- }
- if (opc == 2){
- remove(dados);
- }
- if (opc == 3){
- imprime(dados);
- }
- }
- }
- void insere(struct data *pdados){
- system("cls");
- int quant,i;
- printf("Quantos funcionários deseja cadastrar ? \n");
- scanf("%d", &quant);
- if (quant > contdesc or quant < 1){
- while(quant > contdesc or quant < 1){
- printf("Essa quantidade não é suportada, tente uma maior ou uma menor.\n");
- scanf("%d", &quant);
- }
- }
- for (i=0; i<quant; i++){
- pdados = (dados+contsub);
- printf("\n\nDigite o nome do %d° funcionário: \n",i+1);
- scanf("%s", &pdados->nome);
- printf("Digite a idade em anos do funcionário: %s \n",pdados->nome);
- scanf("%d", &pdados->idade);
- printf("Digite o sexo do funcionário: %s / M = Masculino / F = Feminino. \n",pdados->nome);
- scanf("%s", &pdados->sexo);
- printf("Digite o salário do funcionário: %s \n", pdados->nome);
- scanf("%f", &pdados->salario);
- contsub++;
- contdesc--;
- }
- system("cls");
- printf("\nFuncionário(s) cadastrados com sucesso!\n\n");
- contsuper++;
- }
- void remove(struct data *pdados2){
- system("cls");
- if (contsuper == 0)
- printf("\nAntes de remover um usuário, primeiro você deve cadastrar um usuário.\n");
- else{
- int i,j,t,x=0;
- char nomeuser[20];
- int cont2=0;
- printf("Digite o nome do funcionário que quer remover: \n");
- scanf("%s", &nomeuser);
- for (i=0; i<contsub; i++){
- pdados2 = (dados+i);
- if (stricmp(nomeuser, pdados2->nome)==0){
- printf("\nFuncionário localizado e excluído.\n\n");
- contsub--;
- contdesc++;
- x=1;
- cont2=i+1;
- system("cls");
- pdados2->veri=1;
- for (j=0; j<contsub;j++){
- if (pdados2->veri==1){
- if(((pdados2 + 1)->nome)!='\0'){
- printf("teste");
- while (cont2<100){
- strcpy(pdados2->nome,(pdados2 + 1)->nome);
- pdados2->idade=(pdados2 + 1)->idade;
- strcpy(pdados2->sexo,(pdados2 + 1)->sexo);
- pdados2->salario=(pdados2 + 1)->idade;
- pdados2++;
- cont2++;
- }
- }
- }
- }
- }
- }
- if (x==0){
- printf("\nFuncionário não encontrado, tente novamente.\n\n");
- }
- }
- }
- void imprime(struct data *pdados3){
- system("cls");
- if (contsuper == 0)
- printf("\nAntes de imprimir os dados, primeiro você deve cadastrar um usuário.\n");
- else{
- int i;
- int opc;
- char nomeuser[20];
- int x=0;
- while (opc != 4){
- printf("Digite uma opção: \n\n");
- printf("1 - Imprimir nomes de todos os funcionários.\n");
- printf("2 - Imprimir nome e salário.\n");
- printf("3 - Imprimir Informação completa de um funcionário.\n");
- printf("4 - Sair.\n");
- scanf("%d", &opc);
- if (opc != 1 && opc != 2 && opc != 3 && opc != 4){
- while(opc != 1 && opc != 2 && opc != 3 && opc != 4){
- printf("Opção não encontrada, tente novamente.\n");
- scanf("%d", &opc);
- }
- }
- if (opc == 1){
- for(i=0; i<contsub; i++){
- pdados3 = (dados+i);
- printf("\n\nNome: %s \n\n", pdados3->nome);
- }
- }
- if (opc == 2){
- for(i=0; i<contsub; i++){
- pdados3 = (dados+i);
- printf("\n\nNome: %s / Salário: %.2f\n\n", pdados3->nome, pdados3->salario);
- }
- }
- if (opc == 3){
- printf("Digite o nome do funcionário que quer imprimir os dados completos: \n");
- scanf("%s", &nomeuser);
- for (i=0; i<contsub; i++){
- pdados3 = (dados+i);
- if (stricmp(nomeuser, pdados3->nome)==0){
- printf("\nFuncionário localizado, Imprimindo:\n\n");
- printf("\nNome: %s / Idade: %d / Sexo: %s / Salário: %.2f\n\n", pdados3->nome, pdados3->idade, pdados3->sexo, pdados3->salario);
- x=1;
- }
- }
- if (x==0)
- printf("\nFuncionário não encontrado, tente novamente!\n");
- }
- }
- system("cls");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement