Mudanças entre as edições de "PR1022804 2022 2 AULA14"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '=Trabalho Final= O trabalho final visa desenvolver habilidades de pensamento e programação em linguagem C. Neste semestre o trabalho final, que corresponde a unidade 3, tem...')
 
 
(17 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
=Trabalho Final=
 
=Trabalho Final=
  
O trabalho final visa desenvolver habilidades de pensamento e programação em linguagem C. Neste semestre o trabalho final, que corresponde a unidade 3, tem peso 2. Portanto, todos os alunos vão ter que desenvolver seus programas.
 
  
==Informações==
+
;INTRODUÇÃO: O trabalho final visa desenvolver habilidades de pensamento e programação de computadores utilizando os recursos apresentados em aula com a linguagem C. Neste semestre o trabalho final, que corresponde a Unidade 3, tem peso 1. Portanto, os alunos terão que desenvolver seus programas, e, no final quem somar 17 pontos ou mais nas três avaliações estará aprovado. Não realizar e/ou não apresentar o trabalho no prazo estipulado pelo final do semestre resultará em nota 0 (zero).
 +
 
 +
 
 +
;INFORMAÇÕES:
  
 
* Os trabalhos serão individuais ou duplas;
 
* Os trabalhos serão individuais ou duplas;
* A nota do trabalho final corresponde a Avaliação Prática 1 - AP1 (unidade 3);
+
* Os temas dos trabalhos podem ser escolhidos abaixo;
 +
* A nota do trabalho final corresponde a Avaliação Prática 1 - AP1 (unidade 3); e
 
* A apresentação do trabalho vai ser na forma de seminário presencial mostrando todas as funcionalidades do programa.
 
* A apresentação do trabalho vai ser na forma de seminário presencial mostrando todas as funcionalidades do programa.
 +
 +
  
 
==Requisitos mínimos do programa C==
 
==Requisitos mínimos do programa C==
Linha 45: Linha 50:
 
  LTX-1234 VOLKS FUSCA 8790
 
  LTX-1234 VOLKS FUSCA 8790
  
<!--
+
==Apresentação==
{{collapse top|Exemplo de como ficaria o código:}}
 
<syntaxhighlight lang=c>
 
#include <stdio.h>
 
#include <string.h>
 
#define MAX 100
 
 
 
struct TCarro {
 
  char placa[9];
 
  char marca[20];
 
  char modelo[30];
 
  char preco[20];
 
} Auto[MAX];
 
 
 
FILE *p_arq;
 
int prox_registro;
 
 
 
void abrir_arquivo();
 
void ler_arquivo();
 
void cadastrar();
 
void relatorio();
 
void grava_arquivo();
 
 
 
 
 
void main()
 
{
 
  abrir_arquivo();
 
  int opcao;
 
  while(1){
 
printf("\nMENU PRINCIPAL\n\n");
 
printf("1 - Cadastrar\n");
 
printf("2 - Relatorio\n");
 
printf("? - Sair ");
 
scanf("%d",&opcao);
 
  
switch (opcao)
+
A apresentação vai ser realizada por um dos integrantes da equipe que será escolhido pelo professor.
{
 
  case 1:
 
    cadastrar();
 
  break;
 
 
 
  case 2:
 
    relatorio();
 
  break;
 
 
 
  default:
 
            grava_arquivo();
 
    printf("\nBye!\n");
 
    return;
 
}
 
  }
 
}
 
 
 
void abrir_arquivo()
 
{
 
  int i;
 
  int res;
 
 
 
  if ((p_arq=fopen("carros.txt", "r")) == NULL) {
 
    if ((p_arq=fopen("carros.txt", "w")) == NULL) {
 
    printf("Problemas na abertura do arquivo\n");
 
    return;
 
    }
 
  }
 
  ler_arquivo();
 
}
 
 
 
void ler_arquivo()
 
{
 
  char buff[4][100];
 
  int res,j,i=0;
 
  while(1) {
 
      if((res = fscanf(p_arq,"%s %s %s %s",buff[0],buff[1],buff[2],buff[3]))==EOF)
 
      {       
 
  printf("Fim de leitura\n");
 
  break;
 
      }
 
    strcpy(Auto[i].placa,buff[0]);
 
    strcpy(Auto[i].marca,buff[1]);
 
    strcpy(Auto[i].modelo,buff[2]);
 
    strcpy(Auto[i].preco,buff[3]);
 
    i++;
 
  }
 
  prox_registro=i;
 
  fclose(p_arq);
 
}
 
 
 
void grava_arquivo()
 
{
 
  int i, res;
 
  if ((p_arq=fopen("carros.txt", "w")) == NULL) {
 
    printf("\n\nErro: Problemas na abertura do arquivo.\n");
 
    return;
 
  }
 
 
 
  for (i=0; i<prox_registro;i++) {
 
      if((res = fprintf(p_arq,"%s %s %s %s\n",Auto[i].placa,Auto[i].marca,Auto[i].modelo,Auto[i].preco))==EOF) {
 
  printf("Erro\n");
 
          break;
 
      }
 
  }
 
  fclose(p_arq);
 
}
 
 
 
 
 
void cadastrar()
 
{
 
  int i;
 
  i=prox_registro;
 
printf("\n\nCadastrar Automóvel:\n");
 
printf("Placas: ");
 
scanf("%s",Auto[i].placa);
 
printf("\nMarca: ");
 
scanf("%s",Auto[i].marca);
 
printf("\nModelo: ");
 
scanf("%s",Auto[i].modelo);
 
printf("\nValor: ");
 
scanf("%s",Auto[i].preco);
 
 
 
  prox_registro=i+1;
 
}
 
 
 
void relatorio()
 
{
 
  printf("\nImprimir relatorio...\n\n");
 
  for(int i=0;i<prox_registro;i++)
 
      printf("%s %s %s %s\n",Auto[i].placa,Auto[i].marca,Auto[i].modelo,Auto[i].preco);
 
  printf("\n================================================================");
 
}
 
</syntaxhighlight>
 
{{collapse bottom}}
 
-->
 
 
 
==Apresentação==
 
  
#Data final para apresentação: '''27/07/2022''';
+
*Data final para apresentação: '''15/12/2022''';
#Apresentação presencial: 20min.
+
*Apresentação presencial: 20min; e
 +
*Todos os membros da equipe devem estar presentes.
  
 
=Temas de Negócios=
 
=Temas de Negócios=
  
;Sugestões
+
;TEMAS PROPOSTOS:
  
* Padaria:
+
* Padaria: '''Isabela'''.
* Roupas (malharia, confecção): '''Pamela Regina S.'''
 
 
* Verdureira
 
* Verdureira
* Papelaria
+
* Papelaria: '''Karoliny e Mateus.'''
* Livraria: '''Vanessa''';
+
* Motos: '''João e Francisco'''.
* Motos: '''Gustavo e Denis''';
+
* Material esportivo: '''Lucas P.'''.
* Bicicletas: '''Guilherme''';
+
* Material de construção: '''Renan e Pablo'''.
* Material esportivo, '''Allec''';
 
* Material de construção
 
 
* Farmácia
 
* Farmácia
 
* Lubrificantes
 
* Lubrificantes
 
* Parafusos
 
* Parafusos
 
* Utilidades do lar
 
* Utilidades do lar
* Cutelaria (facas, ..)
+
* Cutelaria
* Floricultura
+
* Floricultura: '''Inaudi e Letícia'''.
* Açougue
+
* Açougue: '''Luiz Felipe'''.
 
* Armarinhos
 
* Armarinhos
 
* Bebidas
 
* Bebidas
* Conveniência: '''Felipe C.'''
+
* Conveniência: '''Felipe e Geovana'''.
* Eletrônicos: '''João Antonio''';
 
 
* ... ''(conversar comigo sobre outro tema)''.
 
* ... ''(conversar comigo sobre outro tema)''.
  
Linha 212: Linha 83:
 
==Requisitos do negócio==
 
==Requisitos do negócio==
  
Implemente um programa em linguagem C que faça o controle de estoque simplificado de produtos ou materiais de um comércio varejista. 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 do negócio e buscar um produto específico pelo código. Deverá ainda ter as opções de ordenar (por código) 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 estatística dizendo qual a quantidade de produtos, o maior, o menor e o valor médio dos produtos cadastrados.
+
Implemente um programa em linguagem C que faça o cadastro de estoque simplificado de produtos ou materiais de um comércio varejista. 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 do negócio (tema) escolhido e buscar um produto específico pelo código. Deverá ainda ter as opções de ordenar (por código) e imprimir a lista na tela de todos os produtos. Também deverá gravar as alterações no mesmo arquivo de dados lido/criado. Pra terminar, contar com uma opção estatística dizendo qual a quantidade de produtos, o maior, o menor e o valor médio dos produtos cadastrados.
  
 
=Avaliação=
 
=Avaliação=
  
#Cumprimento de todos os requisitos; (40%)
+
#Cumprimento de todos os requisitos; (50%)
 
#Aparência e facilidade de acesso ao menu e as informações; (20%)
 
#Aparência e facilidade de acesso ao menu e as informações; (20%)
#Clareza na apresentação das funcionalidades; (30%)
+
#Clareza na apresentação das funcionalidades; (20%)
 
#Entrega do código fonte devidamente comentado. (10%)
 
#Entrega do código fonte devidamente comentado. (10%)
  

Edição atual tal como às 15h24min de 1 de dezembro de 2022

Trabalho Final

INTRODUÇÃO
O trabalho final visa desenvolver habilidades de pensamento e programação de computadores utilizando os recursos apresentados em aula com a linguagem C. Neste semestre o trabalho final, que corresponde a Unidade 3, tem peso 1. Portanto, os alunos terão que desenvolver seus programas, e, no final quem somar 17 pontos ou mais nas três avaliações estará aprovado. Não realizar e/ou não apresentar o trabalho no prazo estipulado pelo final do semestre resultará em nota 0 (zero).


INFORMAÇÕES
  • Os trabalhos serão individuais ou duplas;
  • Os temas dos trabalhos podem ser escolhidos abaixo;
  • A nota do trabalho final corresponde a Avaliação Prática 1 - AP1 (unidade 3); e
  • A apresentação do trabalho vai ser na forma de seminário presencial mostrando todas as funcionalidades do programa.


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 gravados no arquivo, ou seja, você deve abrir o arquivo e copiar as informações para um vetor e todas as operações devem ser realizadas sobre este vetor, sendo que no final, as alterações devem ser regravadas no arquivo no disco.
Nota2
Fica proibido o uso de listas encadeadas.
Note3
Fica proibido o uso do C++ (Cpp).



Exemplo da estrutura (automóveis)
#define MAX 100
struct TCarro {
   char placa[9];
   char marca[20];
   char modelo[30];
   char preco;
} Auto[MAX];
Exemplo do conteúdo do arquivo de texto (carros.txt)
$ cat carros.dat (linux) ou Bloco de Notas->Arquivo->Abrir->carros.txt // CMD: type carros.txt
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

A apresentação vai ser realizada por um dos integrantes da equipe que será escolhido pelo professor.

  • Data final para apresentação: 15/12/2022;
  • Apresentação presencial: 20min; e
  • Todos os membros da equipe devem estar presentes.

Temas de Negócios

TEMAS PROPOSTOS
  • Padaria: Isabela.
  • Verdureira
  • Papelaria: Karoliny e Mateus.
  • Motos: João e Francisco.
  • Material esportivo: Lucas P..
  • Material de construção: Renan e Pablo.
  • Farmácia
  • Lubrificantes
  • Parafusos
  • Utilidades do lar
  • Cutelaria
  • Floricultura: Inaudi e Letícia.
  • Açougue: Luiz Felipe.
  • Armarinhos
  • Bebidas
  • Conveniência: Felipe e Geovana.
  • ... (conversar comigo sobre outro tema).


Requisitos do negócio

Implemente um programa em linguagem C que faça o cadastro de estoque simplificado de produtos ou materiais de um comércio varejista. 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 do negócio (tema) escolhido e buscar um produto específico pelo código. Deverá ainda ter as opções de ordenar (por código) e imprimir a lista na tela de todos os produtos. Também deverá gravar as alterações no mesmo arquivo de dados lido/criado. Pra terminar, contar com uma opção estatística dizendo qual a quantidade de produtos, o maior, o menor e o valor médio dos produtos cadastrados.

Avaliação

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



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