Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h>
- #define TV 10
- #define TC 100
- const char FILENAME[] = "Arquivo35.txt";
- typedef struct ficha {
- char nome[TC];
- int dependentes;
- float salario;
- int atendimentos;
- char email[TC];
- } FICHA;
- int lerDados(FICHA usuario[TV]);
- void exibirFichas(FICHA usuario[TV], int qntdUsuarios);
- void ordenarDadosInt (FICHA usuario[TV], int qntdUsuarios);
- void ordenarDadosString (FICHA usuario[TV], int qntdUsuarios);
- void gravarDados(FICHA usuario[TV]);
- int main()
- {
- setlocale(LC_ALL, "Portuguese");
- FICHA usuario[TV];
- int opcao, qntdUsuarios = 0;
- do {
- printf("MENU DE OPCAO:\n");
- printf("[1]: Carregar arquivo e exibir\n");
- printf("[2]: Ordenar dados e exibir\n");
- printf("[3]: Pesquisar dados e exibir\n");
- printf("[4]: Gravar os dados ORDENADOS\n");
- printf("[0]: Sair do programa\n");
- printf("Opção: ");
- scanf("%i", &opcao);
- switch(opcao) {
- case 0:
- printf("Fim do programa.\n");
- break;
- case 1:
- qntdUsuarios = lerDados(usuario);
- exibirFichas(usuario, qntdUsuarios);
- break;
- case 2:
- system("cls");
- printf("Ordenado em forma crescente de acordo com a quantidade de atendimentos:\n");
- printf("\n");
- ordenarDadosInt(usuario, qntdUsuarios);
- exibirFichas(usuario, qntdUsuarios);
- printf("\n");
- printf("Ordenado em ordem alfabética de acordo com o nome:\n\n");
- printf("\n");
- ordenarDadosString(usuario, qntdUsuarios);
- exibirFichas(usuario, qntdUsuarios);
- break;
- case 3:
- break;
- case 4:
- ordenarDadosInt(usuario, qntdUsuarios);
- gravarDados(usuario);
- break;
- default:
- printf("Opção incorreta, tente novamente.\n");
- break;
- }
- } while(opcao);
- return 0;
- }
- int lerDados(FICHA usuario[TV])
- {
- system("cls");
- FILE *arquivo;
- int i = 0, qntdUsuarios = 0, campo = 1;
- char c, aux[TC];
- arquivo = fopen(FILENAME, "r");
- do {
- c = getc(arquivo);
- if(c != '\n' && c != EOF) {
- aux[i] = c;
- i++;
- } else {
- aux[i] = '\0';
- switch(campo) {
- case 1:
- strcpy(usuario[qntdUsuarios].nome, aux);
- break;
- case 2:
- usuario[qntdUsuarios].dependentes = atoi(aux);
- break;
- case 3:
- usuario[qntdUsuarios].salario = atof(aux);
- break;
- case 4:
- usuario[qntdUsuarios].atendimentos = atoi(aux);
- break;
- case 5:
- strcpy(usuario[qntdUsuarios].email, aux);
- campo = 0;
- qntdUsuarios++;
- break;
- }
- campo++;
- i = 0;
- }
- } while(c != EOF);
- fclose(arquivo);
- return qntdUsuarios;
- }
- void exibirFichas(FICHA usuario[TV], int qntdUsuarios)
- {
- int i;
- for(i = 0; i < qntdUsuarios; i++) {
- printf("Usuário %i:\n", i + 1);
- printf("Nome: %s\n", usuario[i].nome);
- printf("Quantidade de dependentes: %i\n", usuario[i].dependentes);
- printf("Salário: %.2f\n", usuario[i].salario);
- printf("Quantidade de atendimentos: %i\n", usuario[i].atendimentos);
- printf("E-mail: %s\n", usuario[i].email);
- printf("\n");
- }
- }
- void ordenarDadosInt(FICHA usuario[TV], int qntdUsuarios)
- {
- int i, trocou, aux, ls = qntdUsuarios - 1;
- do {
- trocou = 0;
- for(i = 0; i < ls; i++) {
- if(usuario[i].atendimentos > usuario[i + 1].atendimentos) {
- aux = usuario[i].atendimentos;
- usuario[i].atendimentos = usuario[i + 1].atendimentos;
- usuario[i + 1].atendimentos = aux;
- trocou = 1;
- }
- }
- ls--;
- } while(trocou);
- }
- void ordenarDadosString(FICHA usuario[TV], int qntdUsuarios)
- {
- int i, trocou, ls = qntdUsuarios - 1;
- char aux[TC];
- aux[TC - 1] = '\0';
- do {
- trocou = 0;
- for(i = 0; i < ls; i++) {
- if(strcmp(usuario[i].nome, usuario[i + 1].nome) > 0) {
- strcpy(usuario[i].nome, aux);
- strcpy(usuario[i + 1].nome, usuario[i].nome);
- strcpy(aux, usuario[i].nome);
- trocou = 1;
- }
- }
- ls--;
- } while(trocou);
- }
- void gravarDados(FICHA usuario[TV])
- {
- system("cls");
- FILE *arquivo;
- arquivo = fopen(FILENAME, "w");
- int i;
- for(i = 0; i < TV; i++) {
- fprintf(arquivo, "%s\n", usuario[i].nome);
- fprintf(arquivo, "%i\n", usuario[i].dependentes);
- fprintf(arquivo, "%.2f\n", usuario[i].salario);
- fprintf(arquivo, "%i\n", usuario[i].atendimentos);
- fprintf(arquivo, "%s\n", usuario[i].email);
- }
- fclose(arquivo);
- printf("Dados salvos no '%s' com sucesso.\n\n", FILENAME);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement