Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int novo_codigo_funcionario = 1;
- typedef struct {
- char nome[30];
- char telefone[17];
- int idade;
- double salario;
- int codigo;
- } FUNCIONARIO;
- void mostra_erro(const char* mensagem)
- {
- printf(mensagem);
- }
- void mostra_funcionario(FUNCIONARIO* funcionario)
- {
- printf(" Codigo : %d\n", funcionario->codigo);
- printf(" Nome : %s\n", funcionario->nome);
- printf(" Telefone: %s\n", funcionario->telefone);
- printf(" Idade : %d\n", funcionario->idade);
- printf(" Salario : %.2lf\n", funcionario->salario);
- printf("\n");
- }
- void preenche_nome_desejado(char* nome)
- {
- fflush(stdin);
- printf("Digite o nome desejado: ");
- scanf("%s", nome);
- }
- void preenche_dados(FUNCIONARIO *funcionario)
- {
- fflush(stdin);
- printf("Nome: ");
- scanf("%s", funcionario->nome);
- printf("Telefone: ");
- scanf("%s", funcionario->telefone);
- printf("Idade: ");
- scanf("%d", &funcionario->idade);
- printf("Salario: ");
- scanf("%lf", &funcionario->salario);
- funcionario->codigo = novo_codigo_funcionario++;
- }
- void salva(FUNCIONARIO* funcionario)
- {
- FILE *fp;
- if ((fp = fopen("CadastroFuncionario.dat", "ab")) == NULL)
- {
- mostra_erro("Nao foi possivel abrir/criar arquivo 'CadastroFuncionario.dat'\n");
- exit(-1);
- }
- if (!fwrite(funcionario, sizeof(FUNCIONARIO), 1, fp))
- {
- mostra_erro("Nao consegui gravar no arquivo\n");
- }
- fclose(fp);
- fp = NULL;
- }
- FUNCIONARIO *busca_funcionario(char* nome_desejado, FUNCIONARIO* funcionario)
- {
- FILE *fp;
- FUNCIONARIO *retorno = NULL;
- if ((fp = fopen("CadastroFuncionario.dat", "rb")) == NULL)
- {
- mostra_erro("Nao foi possivel abrir arquivo 'CadastroFuncionario.dat'\n");
- exit(-1);
- }
- while (!feof(fp))
- {
- if (!fread(funcionario, sizeof(FUNCIONARIO), 1, fp))
- {
- break;
- }
- if (strcmp(funcionario->nome, nome_desejado) == 0)
- {
- printf("Funcionario encontrado!\n");
- retorno = funcionario;
- break;
- }
- }
- return retorno;
- }
- void mostra_menu()
- {
- printf("\n");
- printf("Opcao Descricao\n");
- printf(" 1 Cadastra funcionario\n");
- printf(" 2 Busca funcionario\n");
- printf(" X Sair\n\n");
- printf("Opcao: ");
- }
- void menu_cadastra_funcionario()
- {
- FUNCIONARIO funcionario;
- preenche_dados(&funcionario);
- salva(&funcionario);
- printf("Funcionario '%s' salvo oom sucesso\n", funcionario.nome);
- }
- void menu_busca_funcionario()
- {
- FUNCIONARIO funcionario;
- char nome_desejado[30];
- preenche_nome_desejado(nome_desejado);
- printf("O nome desejado e %s\n", nome_desejado);
- if (busca_funcionario(nome_desejado, &funcionario) == NULL)
- {
- mostra_erro("Funcionario nao encontrado!\n");
- }
- else
- {
- mostra_funcionario(&funcionario);
- }
- }
- int main()
- {
- char opcao = ' ';
- system("cls");
- do
- {
- mostra_menu();
- fflush(stdin);
- scanf("%c", &opcao);
- switch (opcao)
- {
- case '1':
- menu_cadastra_funcionario();
- break;
- case '2':
- menu_busca_funcionario();
- break;
- default:
- break;
- }
- } while (opcao != 'X');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement