ED1A2-TADS S2 2017 – Exemplo TAD – main.c

 1 /*
 2  * Este programa implementa leitura de aquivo texto para testar as implementações do 
 3  * TAD Conta (Conta Corrente).
 4  * Declarações se encontram em conta.h e as respectivas implementações do TAD em conta.c.
 5  */
 6 
 7 /* 
 8  * File:   main.c
 9  * Author: Osvandre
10  *
11  * Created on 7 de Setembro de 2017, 00:43
12  */
13 
14 #include "conta.h"
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
18 
19 /*
20  * Este programa  dados de um arquivo texto e define elementos para um vetor
21  * cujos itens são do tipo do TAD Conta. Cada linha do arquivo contém um nome
22  * de cliente. O número de conta é composto por meio de um cálculo de sequencial
23  * e o salto inicia-se com 0.00. 
24  */
25 int main(void) {
26     Conta cc[100]; //Um vetor de no máximo 100 Contas-correntes
27     int nc, n, i;
28     char nomeCli[NOMECLI_MAX_SIZE+1];
29     char nomeArq[]="nomes.txt";
30     FILE *arq;
31     printf("\nIniciando o processamento.....\n\n");
32     arq = fopen(nomeArq, "r");
33     
34     if(arq == NULL) {
35       printf("Erro, nao foi possivel abrir o arquivo\n");
36    } else {
37       printf("Lendo arquivo....");
38       nc = 1000;
39       n = 0;
40       while( fgets(nomeCli,(NOMECLI_MAX_SIZE+1), arq) != NULL){ //Lê cada linha do arquivo
41         strcpy(cc[n].nomeCliente, nomeCli);   //Preenche dados de uma variável do TAD
42         cc[n].numero = nc+n;
43         cc[n].saldo = 0;
44         n++;
45       }
46       printf(">>>>>>> Foram lidas %d linhas do arquivo! <<<<<<<\n",n);
47    }
48    fclose(arq);
49    
50 
51    printf("\n\n>>>>>>>  listando as contas <<<<<<<\n");
52    for(i=0; i<n; i++) {
53        printf("\n------ Conta Corrente nº %d ------\n", cc[i].numero);
54        printf("Cliente...: %s", cc[i].nomeCliente);
55        printf("Saldo.....: %7.2f\n", cc[i].saldo);
56    }        
57     
58     return (EXIT_SUCCESS);
59 }
60 
61