MAC 115 - Instituto Oceanográfico/2004

Introdução a Computação para Ciências Exatas e Tecnologia

  Terceiro Exercício-Programa (EP3)

Entrega: 9 de dezembro


O objetivo deste exercício é escrever um programa em C que a partir de um arquivo contendo pedidos de compras
de clientes de um supermercado, gere um arquivo contendo as notas fiscais das compras.


Exemplo de uso de arquivos


Após testar as funções do EP3 com leitura do teclado, vocês devem fazer com que o programa leia os dados de entrada de um arquivo. Abaixo vocês encontram um exemplo de uso de arquivos. O programa lê um arquivo "entrada.txt" e copia o que foi lido no arquivo "saida.txt":
 

#include 

int main(){

FILE *arq1, *arq2;

char ch;


/* abre o arquivo de entrada para leitura ("r") */
if ((arq1 = fopen("entrada.txt","r"))==NULL){

printf ("Erro na abertura do arquivo");
return 1;
}


/* abre o arquivo de saida para escrita ("w") */
if ((arq2 = fopen("saida.txt","w"))==NULL){

printf ("Erro na abertura do arquivo");
return 1;
}


/* lê de arq1 e escreve em arq2 */
while (!feof(arq1)){
fscanf(arq1, "%c", &ch);
fprintf(arq2, "%c",ch);
}

/* fecha os arquivos usados */
fclose(arq1);
fclose(arq2);

return 0;
}






Atenção: o arquivo entrada.txt deve estar no mesmo diretório em que o programa se encontra. 


Formato da entrada


Seu programa deve ler os dados de dois arquivos. O primeiro, "supermercado.txt" irá conter, em cada linha, um código de produto (número inteiro) e seu preço (número real). Você pode assumir que o supermercado trabalha com no máximo 100 produtos. Aqui você encontra um exemplo de arquivo de entrada de supermercado.

O segundo arquivo, "pedidos.txt", deverá conter, na primeira linha, um inteiro entre 0 e 50 que indica o número de clientes que fizeram pedidos. Para cada cliente, deverá aparecer no arquivo uma linha com o nome e o número de produtos pedidos (entre 0 e 100) e depois, em cada linha, um código de produto (número inteiro) e a quantidade desejada (também um número inteiro). Aqui você encontra um exemplo de arquivo de entrada de pedidos.

Formato da saída

Seu programa deve gerar um arquivo de saída "notasfiscais.txt" contendo para cada cliente seu nome, a lista com código do produto, quantidade pedida, preço unitário e preço total do produto e no final, o total geral para aquele cliente. Veja aqui um exemplo de arquivo de saída.


Detalhes do programa

- Os dados de entrada devem ser armazenados em vetores.

- O formato dos arquivos de entrada deve seguir exatamente o modelo. Os programas serão testados com arquivos
no formato descrito acima.

- Vocês devem separar a leitura dos arquivos e geração das notas em funções.





OBSERVAÇÕES:

  1. Todos os exercícios-programa devem ter o seguinte cabeçalho:

       /************************************************************************
    *** ***
    *** Fulano de Tal (é o nome do aluno) Número USP ***
    *** Exercício-Programa xx ***
    *** Professor: Ciclano de Tal ***
    *** ***
    ************************************************************************/

  2. O Exercício-programa pode ser feito em dupla. Isso significa no máximo dois alunos por programa. Exercícios copiados (com ou sem eventuais disfarces) receberão nota ZERO (inclusive o original). A dupla que copiou o exercício será reprovado na disciplina sem mais.

  3. EXERCÍCIOS ATRASADOS NÃO SERÃO ACEITOS.

  4. Exercícios com erros de sintaxe (ou seja, erros de compilação) receberão nota ZERO.

  5. É muito importante que seu programa tenha comentários e esteja bem endentado, ou seja, digitado de maneira a ressaltar a estrutura de subordinação dos comandos do programa (conforme visto em aula). Esta observação será levada em consideração pelo critério de avaliação dos exercícios-programa.

  6. Na saída do programa todos os dados de entrada e resultados devem aparecer da forma mais clara possível. Esta observação será levada em consideração pelo critério de avaliação dos exercícios-programa.

  7. Você deve entregar um disquete com o arquivo fonte do programa (arquivo .c ou .txt) e uma versão impressa do código. Não se esqueça de colocar o nome no disquete e na impressão.

  8. Guarde com você até o final do semestre, em seus disquetes, os arquivos de seus programas. Guarde também a versão impressa corrigida pelo monitor. Este material pode ser solicitado pelo seu professor em caso de alguma dúvida.