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:
- 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 ***
*** ***
************************************************************************/
- 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.
- EXERCÍCIOS ATRASADOS NÃO
SERÃO ACEITOS.
- Exercícios com erros de sintaxe (ou seja,
erros de compilação) receberão nota ZERO.
- É 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.
- 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.
- 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.
- 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.