Você está na página 1de 10

Projeto Final - Versão 2

Introdução e Orientações gerais


Os temas serão distribuídos pelo professor.

A divisão dos temas por aluno será publicada no final deste documento.

O projeto deve ser feito por dois alunos. A dupla deve fazer um ​plano de trabalho​, que
será entregue junto com o projeto. No plano de trabalho deve constar a divisão de tarefas
entres os participantes e os dias/período utilizados para realizar o projeto.

IMPORTANTE!!!!!
Se forem detectadas cópias (“colas'') de partes do trabalho, será atribuída nota
ZERO a todos os trabalhos envolvidos.

Conceitos obrigatórios no projeto


Os seguintes tópicos devem, de alguma maneira, fazer parte do trabalho.

● Estruturas condicionais e de repetição


● Strings/Cadeia de caracteres
● Vetores e/ou Matrizes
● Ordenação (de acordo com a tabela ascii)
● Modularização (sub-rotinas e funções)
● Ponteiros
● Estruturas
● Arquivos
● Diretivas e Organização do código fonte (edentação; uso de comentários;
distribuição do código fonte entre arquivos)

Funcionalidades:
O software construído deve ter funcionalidades comuns a diversos softwares do mercado.
São elas:
● Acesso ao sistema através de menus
● Cadastro (com gravação em arquivos)
● Pesquisa dos dados cadastrados
● Ordenação e exibição dos dados
● Remoção de dados do arquivos
● Alteração nos dados cadastrados
● Validação para manter integridade dos dados
● Restrições de acesso

Entrega e forma de avaliação


● A entrega consiste no envio do ​código fonte​ através de link apropriado no moodle.
● Além da entrega para avaliação do código fonte, será necessário a ​apresentação
do produto​ construído.
● É necessário entrega do ​plano de trabalho​.

Critérios de Avaliação
● Prazo: Avalia se foi entregue no prazo estabelecido.
● Completude: Avalia se foi entregue tudo o que foi especificado.
● Corretude: avalia se os resultados apresentados pelo programa estão corretos.
● Qualidade do código: legibilidade, edentação, regras e boas práticas para produzir
código, etc
● Participação no trabalho
● Grau de conhecimento apresentado por cada membro do grupo

Módulos
O trabalho terá os seguintes módulos:
● Módulo I - Controle de Acesso - 30% da nota
● Módulo II - Inclusão de dados - 25% da nota
● Módulo III - Exclusão de dados - 15% da nota
● Módulo IV - Pesquisa de dados - 15%
● Módulo V - Relatórios de Análise de dados - 10% da nota
● Módulo VI - Menu principal - 5%

A nota irá computar a entrega do programa e a explicação/apresentação do programa


(código e funcionalidade) ao professor.

Módulo I - Controle de Acesso


O sistema deve conter controle de acesso por senha. Os usuários são cadastrados no
sistema e sua a senha deve ser gravada criptografada (utilize o algoritmo de criptografia da
prova 03​ para cifrar a senha).

Formato do arquivo
Obs: pode ser utilizado arquivo ​binário​ em vez do formato descrito abaixo.
O arquivo de usuário deve ter o nome de ​usuarios.txt​ e possuir a estrutura definida abaixo,
onde cada usuário deve ser gravado em uma linha:
login\tsenha criptografada\tnome do usuário\n

Existe uma tabulação (\t) entre um dado e outro.


O sistema deve solicitar usuário (login) e senha para permitir o acesso.

Opções disponíveis
Dentro do sistema é necessário ter um menu chamado Usuário, onde um novo usuário
poderá ser incluído no sistema. Também deve ser possível excluir um usuário, listar os
usuários cadastrados e alterar a senha do usuário logado.
1 - Incluir usuário
2 - Excluir usuário
3 - Listar usuários (em ordem alfabética de nome)
4 - Alterar senha do usuário
0 - Voltar para o menu principal

Regras
● Não é permitido cadastrar dois usuários com o mesmo login.
● A senha precisa ter no mínimo 3 dígitos

Modulo II, III e IV - Cadastro de ​Elemento


Representa o elemento central e tema do trabalho. Um ​elemento​ é relacionado um assunto
específico (por exemplo: produtos, fornecedores, clientes, etc).

Formato do arquivo
Obs: pode ser utilizado arquivo ​binário​ em vez do formato descrito abaixo.

codigo\toutras informaçãos\t…..\n

Opções disponíveis
1 - Incluir
2 - Excluir
3 - Pesquisar
4 - Listar
0 - Voltar para o menu principal
Módulo V - Relatórios de Análise de dados
Esta opção irá utilizar os dados do ​elemento​ para apresentar um relatório estatístico com
informações dos dados que foram cadastrados.

Este arquivo deve ser gerado no formato ​html​ e deve conter os dados do ​elemento
cadastrado. No final, deve exibir a quantidade de elementos que foram listados.

Um arquivo ​html​ é um arquivo texto normal, mas que precisar conter ​tags​ que identificam
os elementos. Esses dados devem ser gerados numa arquivo chamado ​relatorio.html​ com
o seguinte formato:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>Análise de Dados</h1>

<h2>​Um título para o relatório​</h2>

<table border=”1”>
<tr>
<td> ​título coluna 1​ </td>
<td> ​título coluna 2​ </td>
…..
</tr>
<tr>
<td> ​dado na coluna 1​ </td>
<td> ​dado na coluna 2​ </td>
…..
</tr>
….
</table>
<p>Total de itens: 999</p>
</body>
</html>
Elementos
Cada grupo fará o trabalho sobre um determinado assunto (​elemento​), definido pelo
professor, as opções de elementos são:

Tema Elemento

Estoque Produto(código, nome, preço de compra, preço de venda, ano de


vencimento, quantidade em estoque, grupo)

Floricultura Planta(número de identificação, nome científico, ano do plantio,


frutífera[S/N], preço de venda, família)

Patrimônio BemPatrimonial (número de identificação, descrição, ano de aquisição,


valor da compra, situação e nome do departamento)

Distribuidor Fornecedor(cnpj, nome, Capital Social, nome do representante,


Telefone, ano do cadastro, situação)

Tema Estoque
O assunto deste tópico é o cadastro de produto da empresa. O grupo é uma classificação
dos tipos de produtos da empresa, por exemplo: eletrônicos, telefonia, informática, etc.

Arquivos:

● produtos.txt

Regras:
● Todos os campos são obrigatórios
● Preço de venda deve ser maior que o preço de compra
● Quantidade em estoque deve ser superior a zero

Tema Floricultura
Uma floricultura precisa controlar suas plantas e saber como classificá-las em suas
respectivas famílias. São exemplos de famílias de plantas: Fabaceae, Faboideae​,
Fagaceae​, etc.
O campo frutífera indica a planta produz frutos ou não. Os valores são Sim ou Não, no
entanto, é necessário gravar apenas as letras S ou N.
Arquivos:

● plantas.txt

Regras:
● Todos os campos são obrigatórios
● Ano do plantio não pode ser negativo
● Não aceitar valores diferentes de S ou N (maiúsculas) para o campo frutífera.

Tema Patrimônio
Os bens patrimoniais constituem uma empresa. Todo bem móvel ou imóvel adquirido por
uma empresa compõe seu patrimônio. Para cada bem patrimonial deve ser informado um
departamento, para fins de localização e controle.
O campo situação indica se o bem patrimonial está Incorporado (ou seja, compõe o
patrimônio da empresa) e se foi baixado (deixou de fazer parte do patrimônio da empresa).
Sendo que os valores possíveis para este campo são B ou I.

Arquivos:

● benspatrimoniais.txt

Regras:
● Todos os campos são obrigatórios
● Ano de aquisição deve ser maior que 1900
● O campo situação deve aceitar apenas as letras I ou B (maiúsculas)

Tema Distribuidor
Realiza o controle dos fornecedores que trabalham com a empresa.
A situação do fornecedor é Ativa ou Inativa. Sendo que é utilizada as letras A ou I (Ativo ou
Inativo) para identificar esta situação.

Arquivos:

● fornecedores.txt

Regras:
● Todos os campos são obrigatórios
● Ano de cadastro deve ser maior que 1950
● O capital social do fornecedor deve ser superior a 10.000,00
● A situação do fornecedor deve aceitar os valores A ou I (maiúsculas)
Estrutura do programa

Outros arquivos de código podem ser criados, porém os arquivos acima devem existir no
seu código (apenas adequando o nome do arquivo Elemento.c e Elemento.h).

Tela inicial (principal)

Criar a função ​main​ no arquivo "principal.c". Este arquivo deverá ter, no mínimo duas
funções: ​main​ e ​montarMenu​;

A estrutura de menu deve ser a seguinte:


1 - <​Elemento​>
2 - Análise de Dados
3 - Controle de Acesso
0 - Sair

Ao escolher a opção "<Elemento>" deve-se construir um segundo nível de menu com as


opções:

1-Incluir <​elemento> ​
2-Consultar <​elemento​>
3-Listar <​elemento>​
4-Excluir <​elemento> ​
0-Voltar ao menu principal
Detalhando as opções dos submenus

A opção de ​Incluir​ deve permitir que dados sejam digitados para serem gravados em
arquivos. Não permitir cadastro duplicado.

A opção ​Consultar​ deve solicitar o identificador do item a ser pesquisado e mostrar os


dados daquele item. Se não existir o item na base de dados, emitir um aviso.

A opção ​Listar​ deve mostrar a relação de todos os itens cadastrados na tela, 1 por linha.
Aqui você pode escolher as informações mais importantes para serem mostradas, de tal
forma que permita uma boa apresentação.

A opção ​Excluir​ deve solicitar a identificação do item, procurá-lo no arquivo e removê-lo.


Em arquivo texto, uma estratégia de exclusão é carregar todos os itens em memória (ou em
outro arquivo), apagar o arquivo original e cria-lo novamente com os dados da memória.
Distribuição dos temas
Observações importantes:
● Os alunos devem formar duplas e informar ao professor pelo e-mail
eliasferreira@ufg.br​, em seguida, o aluno receberá como resposta o tema
escolhido.
● Os grupos devem ser definidos, no máximo, até o dia 03 de dezembro. Se o grupo
não for definido e repassado ao professor até esta data, será considerado que o
aluno optou por ​não​ fazer o trabalho final, portanto sua nota neste trabalho será 0
(zero).
● As apresentações podem acontecer à partir do dia 03 de dezembro.
● O prazo máximo para apresentação é dia 12 de dezembro.

Tema: Estoque
● Igor Faria de Oliveira / Thiago Baroni Peres

Tema: Floricultura
● Giovanna Waleska Theodoro Barbosa / Jerlianni Barbosa de Oliveira

Tema: Patrimônio
● Yatherson Lucas Teodoro e Bruno Lopes

Tema: Distribuidor

Você também pode gostar