Mudanças entre as edições de "Equipe6-2015-1"
Linha 87: | Linha 87: | ||
Com esse projeto chegamos a uma conclusão: é muito mais viável, para nós, trabalhar por meio de algo que você tem acesso diretamente. | Com esse projeto chegamos a uma conclusão: é muito mais viável, para nós, trabalhar por meio de algo que você tem acesso diretamente. | ||
Armazenamento de dados é muito mais simples através de arquivos do que dentro do próprio programa. Quando você manipula o arquivo que serve de "banco de dados" diretamente, linha a linha, você consegue observar, analisar muita coisa e isso facilita muito na criação de novas ferramentas. | Armazenamento de dados é muito mais simples através de arquivos do que dentro do próprio programa. Quando você manipula o arquivo que serve de "banco de dados" diretamente, linha a linha, você consegue observar, analisar muita coisa e isso facilita muito na criação de novas ferramentas. | ||
− | Esse "programinha" que criamos é o básico, porém mexendo nele, criando outras funções, você consegue construir coisas bem maiores, projetos mais complexos. | + | Esse "programinha" que criamos é o básico, porém mexendo nele, criando outras funções, você consegue construir coisas bem maiores, projetos mais complexos, basta estudar algumas funções, pensar na lógica e colocar os dedos pra trabalhar no teclado. |
+ | Assim concluímos que esse projeto nos ajudou a pensar de diversas maneiras, achar respostas pras nossas perguntas e que existem diversos caminhos para se percorrer, mas vai de cada um escolher o caminho que prefere. | ||
=Código fonte= | =Código fonte= |
Edição das 13h39min de 24 de junho de 2015
Integrantes
AUGUSTO DA SILVEIRA WILLEMANN
GABRIEL FARIAS TURNES
JEFERSON RICARDO TICHZ ESPINDOLA
Descrição da atividade principal
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, menor e valor médio das bicicletas cadastradas.
Descrição da atividade específica
- Fazer uso
- Comando swith
- Lista encadeada
- Ponteiros
- Alocação Dinâmica de Memória
- Funções para tratamento de arquivo
- Exemplo da estrutura (encadeada)
struct TBicicleta{ char codigo[5]; char descricao[20]; float preco; int qtdade; struct TBicicleta *prox; };
- Exemplo de arquivo (bicicletas.dat)
cat bicicletas.dat A111 MEGAULTRA 1920.00 10 FG02 KRONA 280.00 20 1B0A CALOI 1785.00 5 11CA HPS12 850.00 10
Atividades
Distribuição
Desenvolvimento
Esqueleto
Primeiramente criamos o esqueleto do programo, a base dele. Escrevemos os códigos mostrando todas as funções necessárias para a execução dele, definimos as estruturas para a bicicletas e planejamos a maneira mais fácil de executar as funções de maneira correta e cumprindo os requisitos.
Funções
Inserir
A primeira função feita foi a de inserir os dados cadastrais, tais como: código, descrição, preço e quantidade, assim como pedido. Existia maneiras mais fáceis para trabalhar com essa função e escrever os dados inseridos em um arquivo, porém usamos lista, ponteiros e alocação dinâmica de memória para atender o requisito que o professor pediu. Focamos em criar um arquivo .bat organizado por meio da estrutura "%s %s %0.2f %d\n", ou seja, "código descrição preço quantidade". Cada bicicleta foi separada por uma quebra de linha ("\n") e cada campo da bicicleta foi separa por um espaço. Usamos a função fprintf para escrever no arquivo "bicicletas.dat".
Abrir
Uma simples função que abre o arquivo "bicicletas.dat" de uma maneira mais simples para agilizar o processo de abrir o arquivo em todas as funções, nada mais que isso.
Listar
Nessa função apenas executamos a função fscanf para ler o nosso arquivo "bicicletas.dat". Ele lê nosso "banco de dados" de maneira organizada, através da estrutura "%s %s %f %d\n", a mesma usada para inserir as bicicletas. Essa maneira de organização facilitou muito o andamento do projeto. Separamos cada campo em uma variável, assim podendo organiza-las no printf para melhor visualização.
Buscar
Muito parecida com a função "Listar", a função que busca as bicicletas no nosso arquivo "bicicletas.dat" se baseia na separação dos campos por meio de variáveis. Pensando nessa maneira, listamos as bicicletas, porém apenas aquela que possuía o código digitado pelo usuário. Comparamos o valor digitado pelo usuário com a variável cod0, que se refere ao código da bicicleta, tudo isso através da função strcmp. Se os valores fossem iguais o programa mostraria as informações da bicicleta.
Alterar
A função "Alterar", um pouco diferente das outras, utiliza da busca usada na função "Buscar". Após digitada pelo usuário o código da bicicleta que ele deseja alterar, o programa faz uma busca e encontra a bicicleta com o código informado. Nessa hora ficou uma duvida: como alterar uma linha inteira no arquivo "bicicletas.dat"? Essa pergunta deu um nó na nossa cabeça até que pensamos: Por que não criar um arquivo temporário e mandar os dados do arquivo antigo para esse temporário? Com esse pensamento, desenvolvemos a função "Alterar" através da cópia dos dados que não seriam alterados para outro arquivo e escrever em uma nova linha os novos dados da bicicleta alterada. Usamos a condição usada na função "Busca", se o código digitado fosse diferente do código da bicicleta toda essa linha seria copiada pro novo arquivo temporário. Caso contrário, se o código digitado fosse igual o código da bicicleta, ele iria escrever essa linha baseada nos dados que o usuário digitou para alterar. O código da bicicleta não poderia ser alterado, porque ele seria considerado uma "chave primária" para identificação da bicicleta(linha). Com o novo arquivo chamado "bicicletas_temp.dat" criado, que possui todos os dados necessários alterados, o arquivo "bicicletas.dat" é excluído, pois ele armazena apenas dados antigos e renomeamos o "bicicletas_temp.dat" para "bicicletas.dat", assim satisfazendo nossa necessidade.
Excluir
Idêntica a função "Alterar", porém com uma diferença: ao invés de escrever essa nova linha alterada no novo arquivo, ela apenas não copiaria a linha desejada para o novo arquivo, assim ele seria excluído.
Estatísticas
Última função, bem simples, apenas usando alguns "if" já foi possível produzir o resultado esperado. Contamos os números de linhas, somamos todos os preços e fizemos a média, primeiro requisito feito! Comparamos todos os valores entre si e achamos o maior preço e o menos preço, já tínhamos feito algo parecido em aula, outros dois requisitos feitos. Depois era só exibir a média dos preços, o maior preço e o menor preço e pronto.
Main
Na nossa MAIN contém nada mais que o básico: um simples menu usando "switch" e "loop", onde o usuário digita a opção que deseja. Cada "case" executa sua função e pronto, o programa já pode ser executado.
Tratamento de erros
Alguns erros foram tratados para evitar a quebra do código, porém alguns acabaram passando, pois acreditamos que esse não seja o objetivo do projeto.
Conclusão
Com esse projeto chegamos a uma conclusão: é muito mais viável, para nós, trabalhar por meio de algo que você tem acesso diretamente. Armazenamento de dados é muito mais simples através de arquivos do que dentro do próprio programa. Quando você manipula o arquivo que serve de "banco de dados" diretamente, linha a linha, você consegue observar, analisar muita coisa e isso facilita muito na criação de novas ferramentas. Esse "programinha" que criamos é o básico, porém mexendo nele, criando outras funções, você consegue construir coisas bem maiores, projetos mais complexos, basta estudar algumas funções, pensar na lógica e colocar os dedos pra trabalhar no teclado. Assim concluímos que esse projeto nos ajudou a pensar de diversas maneiras, achar respostas pras nossas perguntas e que existem diversos caminhos para se percorrer, mas vai de cada um escolher o caminho que prefere.
Código fonte
#include <stdio.h>
void main()
{
printf("Exemplo"");
}
<< | Equipe6-2015-1 |
---|