PRG122804 2018 2 AULA15

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Trabalho Final

Requisito para Formação das Equipes

  • Os alunos formarão 5 equipes com até 5 integrantes. Caso algum aluno fique de fora de uma das equipes, vai ser decidido, em comum acordo com os outros alunos das equipes, em qual ele ficará. A apresentação do trabalho final da unidade curricular (AT3), será feita por um único representante por equipe, a ser escolhido ou sorteado pelo professor.

Requisitos mínimos do programa C

O programa em linguagem C deve necessariamente fazer uso de
  1. Vetores
  2. Estruturas
  3. Funções para tratamento de arquivo
Nota1
Os dados (informações) devem ser alterados na memória e só ao final gravadas no arquivo, ou seja, você deve abrir o arquivo e copiar as informações para um vetor e todas as operações devem ser sobre o vetor, sendo que no final, as alterações devem ser regravadas no arquivo.
Nota2
Fica proibido o uso de listas encadeadas.


Exemplo da estrutura
#define MAX 100;
struct TCarro {
   char placa[9];
   char marca[20];
   char modelo[30];
   float preco;
} Automoveis[MAX];
Exemplo de arquivo (carros.dat)
$ cat carros.dat (linux) ou Bloco de Notas->Arquivo->Abrir->carros.dat // CMD: type carros.dat
AAB-1248 GM CORSA 18000
PTY-6548 VOLKS GOL 21500
MTB-6587 FIAT UNO 15000
AAB-8787 FORD FUSION 50000
LTX-1234 VOLKS FUSCA 8790

Apresentação

  1. Apresentação: 03/12/2018 a 11/12/2018.
  2. Tempo: 30min.
  3. Todos os integrantes devem estar presentes.
  4. Um dos integrantes será escolhido ou sorteado para fazer a apresentação.

Avaliação

  1. Cumprimento de todos os requisitos; (20%)
  2. Aparência e facilidade de acesso ao menu e as informações; (20%)
  3. Clareza na apresentação das funcionalidades; (30%)
  4. Entrega do código fonte devidamente comentado. (30%)


Equipe 1: Papelaria

Implemente um programa em linguagem C que faça o controle de estoque simplificado de produtos de uma papelaria. O programa deverá ter necessariamente um menu onde se poderá fazer a escolha pelas opções disponíveis em loop contínuo, mas com opção de saída. Deverá ler de um arquivo de dados informações sobre os produtos (já cadastrados), poderá acrescentar novos produtos, eliminar produtos, e buscar um produto específico pelo código. Deverá ainda ter as opções de ordenar e imprimir a lista na tela de todos os produtos. Também deverá gravar as alterações no mesmo arquivo de dados lido. Pra terminar, contar com uma opção de estatística dizendo qual a quantidade de produtos, o maior, o menor e o valor médio dos produtos.

Alunos

  • Francisco G.
  • Gustavo F.
  • Isabelli T.
  • Marcelo R.
  • Matheus M.

++

Apresentação

Data: 10/12/2018
Horário: 16h (ou quando terminar a prova de digital)
Apresentado.

Equipe 2: Livros

Implemente um programa em linguagem C que faça o controle de estoque simplificado de livros. O programa deverá ter necessariamente um menu onde se poderá fazer a escolha pelas opções disponíveis em loop contínuo, mas com opção de saída. Deverá ler de um arquivo de dados informações sobre os livros (já cadastrados), poderá acrescentar novos livros, eliminar livros, e buscar um livro específico pelo ISBN. Deverá ainda ter as opções de ordenar e imprimir a lista na tela de todos os livros. também deverá gravar as alterações no mesmo arquivo de dados lido. Pra terminar, contar com uma opção de estatística dizendo qual o número de livros, o maior, o menor e o valor médio dos livros.

Alunos

  • Leonardo C.
  • João Pedro A.
  • Lucas G.
  • Victor H.
  • Lucas I.

++

Apresentação

Data: 05/12/2018
Horário: 16h10min.
Apresentado.

Equipe 3: Informática

Implemente um programa em linguagem C que faça o controle de estoque simplificado de produtos de uma loja de informática. O programa deverá ter necessariamente um menu onde se poderá fazer a escolha pelas opções disponíveis em loop contínuo, mas com opção de saída. Deverá ler de um arquivo de dados informações sobre os produtos de informática (cadastrados), poderá acrescentar novos produtos, eliminar produtos, e buscar um produto específico pelo código. Deverá ainda ter as opções de ordenar e imprimir a lista na tela de todos os produtos. Também deverá gravar as alterações no mesmo arquivo de dados lido. Pra terminar, contar com uma opção de estatística dizendo qual a quantidade de produtos, o maior, o menor e o valor médio dos produtos de informática cadastrados.

Alunos

  • Lucas M.
  • Leonardo A.
  • Felipe P.
  • Leonardo M.
  • Yhur B.


Apresentação

Data: 05/12/2018
Horário: 18h
Apresentado.

Equipe 4: Bicicletas

Implemente um programa em linguagem C que faça o controle de estoque simplificado de uma loja que vende bicicletas. O programa deverá ter necessariamente um menu onde se poderá fazer a escolha pelas opções disponíveis em loop contínuo, mas com opção de saída. Deverá ler de um arquivo de dados informações sobre as bicicletas já cadastradas a venda, poderá acrescentar novas bicicletas, eliminar bicicletas, e buscar um bicicletas específica pelo seu código. Deverá ainda ter as opções de ordenar e imprimir a lista na tela de todas as bicicletas. Também deverá gravar as alterações no mesmo arquivo de dados lido. Pra terminar, contar com uma opção de estatística dizendo qual a quantidade de bicicletas, o maior, o menor e o valor médio das bicicletas cadastradas.

Alunos

  • Bruno F.
  • Gabriel F.
  • Thiago A.
  • Matheus A.
  • Felipe R.


Apresentação

Data: 05/12/2018
Horário: 16h40min.
Apresentado.

Equipe 5: Confecção

Implemente um programa em linguagem C que faça o controle de estoque simplificado de uma confecção (roupas). O programa deverá ter necessariamente um menu onde se poderá fazer a escolha pelas opções disponíveis em loop contínuo, mas com opção de saída. Deverá ler de um arquivo de dados informações sobre os produtos que são as peças da confecção (cadastrados), poderá acrescentar novas peças, eliminar peças, e buscar uma peça específica pelo código. Deverá ainda ter as opções de ordenar e imprimir a lista na tela de todos as peças em estoque. Também deverá gravar as alterações no mesmo arquivo de dados lido. Pra terminar, contar com uma opção de estatística dizendo qual a quantidade de peças, o maior, o menor e o valor médio das peças da confecção cadastrados.

Alunos

  • Nataly W.
  • Bernardo S.
  • Mariana C.
  • Elisa K.
  • Fabio M.
  • Cesar A.


Apresentação

Data: 05/12/2018
Horário: 15h40min


Apresentado.

Exemplo de Funções

Abaixo segue o código fonte exemplo para resolver alguns problemas na hora de ler e gravar o arquivo. O programa lê o arquivo, cuida dos tipos de dados e depois grava, neste exemplo, sem alterações.

Código fonte
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct TCarros{
    char modelo[20];
    char marca[20];
    int ano;
    float valor;
} Estoque[100];

void lerArquivo();
void gravaArquivo();
int tam;

void main(){
    int i;
    lerArquivo();

    for(i=0;i<tam;i++){
        printf("\nModelo:%s \tMarca:%s \tano:%d \tvalor:%0.2f",Estoque[i].modelo,Estoque[i].marca,Estoque[i].ano,Estoque[i].valor);
    }
    gravaArquivo();
}

void lerArquivo(){
  FILE *p_arq;
  int i=0;
  int res;
  char buffer[100];
  const char s[2] = ":";
  char *token;

  if ((p_arq=fopen("carros.txt", "r")) == NULL) {
     printf("Problemas na abertura do arquivo\n");
     return;
  }

  while(1) {

      if((res = fscanf(p_arq,"%s",buffer))==EOF) {
	        printf("Fim de leitura\n");
	        tam=i;
            break;
      }
      token = strtok(buffer, s);
      if (token != NULL) strcpy(Estoque[i].modelo,token);
      token = strtok(NULL, s);
      if (token != NULL) strcpy(Estoque[i].marca,token);
      token = strtok(NULL, s);
      if (token != NULL) Estoque[i].ano=atoi(token);
      token = strtok(NULL, s);
      if (token != NULL) Estoque[i].valor=atof(token);
      token = strtok(NULL, s);
      i++;
  }
  fclose(p_arq);
}

void gravaArquivo(){
  FILE *p_arq;
  int i;
  int res;
  char buffer[100];

  if ((p_arq=fopen("carros.txt", "w")) == NULL) {
     printf("Problemas na abertura do arquivo\n");
     return;
  }

  for (i = 0; i<(tam);i++) {
      sprintf(buffer, "%s:%s:%d:%.2f",Estoque[i].modelo,Estoque[i].marca,Estoque[i].ano,Estoque[i].valor);

      if((res = fprintf(p_arq,"%s\n",buffer))==EOF) {
	        printf("Erro\n");
            break;
      }
  }
  fclose(p_arq);
}
Arquivo
carros.txt
UNO:FIAT:2002:13500.00
GOL:VW:2015:31500.99
KA:FORD:1990:8900.00



Icone voltar.png Icone menu.png Icone prox.png