Projecto de Laboratório de Computadores 2016-2017

Propaganda
Projecto de Laboratório de Computadores
2016-2017
Hélder P. Oliveira, Luís Torgo, Rogério Reis
DCC@FCUP
1
Introdução
O objetivo deste projeto é o desenvolvimento de um sistema de controlo de um
supermercado, incluindo gestão de stocks, listas de utilizadores, listas de compras, bem como estatisticas relativamente a cada utilizador do supermercado,
tendo por base 2 programas em separado (Servidor e Clientes).
Através dos programas a desenvolver, deverá permitir a gestão de vários
utilizadores, com funcionalidades diferentes, incluíndo o gestor do supermercado
e os vários clientes que podem gerir as suas listas de compras e estatísticas
relacionadas com as compras efetuadas.
O primeiro dos programas é o Servidor (supermercado). Este programa
gere todo o serviço de stocks, contas de utilizadores e acesso a estatisticas individuais e globais.
O segundo programa que deverá ser construído é o Cliente (clientes). Este
programa é executado por cada utilizador para iniciar a sua sessão, e aceder às
funcionalidades como clientes do supermercado.
2
Modo de Funcionamento do Sistema
Todo o sistema deverá ser executado num só computador, podendo ter vários
utilizadores logados ao sistema (gestores e clientes). E devem ser garantidos os
seguintes requisitos:
• Um produto só poderá ser comprado caso exista em stock;
• Não pode haver stock negativo no armazem;
• O cliente deverá ser alertado adequadamente caso o seu saldo não permita
fazer uma determinada compra;
• O sistema deve lidar de forma adequada com a concorrência entre dois
ou mais utilizadores (p.ex. tentarem comprar "ao mesmo" tempo um
produto);
1
2.1
Login
Em cada um dos programas existirá um menu de login para entrada no sistema.
Cada utilizador poderá aceder ao sistema se possuir um login e password.
NOTA: para o programa Servidor, admita que já existe um utilizador gestor
do sistema.
Após a validação do utilizador em cada um dos programas, aparecerá um menu
com as funcionalidades do sistema.
$ SUPServidor
**Menu**
1) Criar Novo Utilizador
2) Gerir Stocks
3) Ver Estatisticas
4) Logout
$ SUPCliente
**Menu**
1) Gerir Saldo
2) Gerir Lista de Compras
3) Ver Estatisticas
4) Logout
2.2
Funcionalidades Servidor
O Servidor apresenta as seguinte funcionalidades:
• Criar Novo Utilizador
• Gerir Stocks
• Ver Estatísticas
• Logout
2.2.1
Criar novo utilizador
Nesta funcionalidade, deverá ser pedido o Nome, contato, username e password
do utilizador.
2.2.2
Gerir Stocks
Nesta funcionalidade, o gestor do supermercado poderá incluir um novo produto,
especificando o codigo (que deverá ser sequencial), descrição, quantidade, custo
(compra) por unidade e o preço (venda) por unidade. Poderá também alterar
a quantidade, custo e preço de um produto existente, bem como eliminar um
produto do sistema.
2
2.2.3
Ver Estatísticas
Nesta funcionalidade, o gestor do supermercado poderá ver estatisticas relacionadas com os produtos e clientes, como por exemplo:
• Quantidade de produtos vendidos no total;
• Quantidade vendida de um determinado produto;
• Lucro de um determinado produto;
• Analisar os produtos comprados por um determinado cliente;
• ...
2.2.4
Logout
Sair do Sistema.
2.3
Funcionalidades Cliente
O Cliente apresenta as seguinte funcionalidades:
• Gerir Saldo
• Gerir Listas de Compras
• Ver Estatísticas
• Logout
2.3.1
Gerir Saldo
Nesta funcionalidade, o cliente poderá consultar o seu saldo e acrescentar saldo
à sua conta.
2.3.2
Gerir Listas de Compras
Nesta funcionalidade, poderá criar uma lista de compras baseada nos produtos
existentes no supermercado e fazer a compra da mesma.
2.3.3
Ver Estatísticas
Nesta funcionalidade, o cliente poderá ver estatisticas relacionadas com as suas
compras, como por exemplo:
• Quantidade total de produtos comprados;
• Quantidade comprada de um determinado produto;
• Valor total gasto num determinado produto;
• ...
3
2.3.4
Logout
Sair do Sistema.
3
O Que É Preciso Entregar
A entrega do trabalho deverá ser feita via email para o docente da aula respetiva.
A entrega deverá ser um ficheiro em formato ZIP com o nome (primeiro e último)
dos membros do grupo de trabalho, p.ex. "JoanaRamosCarlosSilva.ZIP".
O ficheiro ZIP deverá conter:
1. Os executáveis dos programas servidor e cliente
2. O código fonte, bem como qualquer dependência necessária para a compliação dos dois programas.
3. Um ficheiro "README" com instruções sobre como obter os executáveis
bem como qualquer outra informação que achem útil sobre a execução
dos programas. Este ficheiro deverá começar com a identificação clara dos
constituintes do grupo (primeiro E último nomes, email, e no mecanográfico)
4
4
Critérios de Avaliação
Os critérios de sucesso para um bom trabalho são:
1. O programa implementa a especificação definida.
2. O programa compila.
3. O programa funciona como esperado.
4. O código fonte está bem documentado.
5. O ficheiro de "README" juntamente com o material de apoio estão completos.
1: Medíocre
Implementação A maioria das
especificações
não estão implementadas, ou
estão de forma
incorreta.
O
programa produz
muitos resultados
inesperados.
O
programa
não
compila. O código
fonte é difícil de
ler.
Documentação A documentação
não é clara. A
maioria do material de apoio é irrelevante ou impreciso.
2: Suficiente
Algumas especificações fundamentais não estão implementadas. O
programa produz
alguns resultados
inesperados, mas
geralmente corretos. O programa
compila mas com
muitos ‘warnings’.
O código fonte é
claro em algumas
secções e difícil de
ler noutras.
A documentação é
pouco clara em algum dos seus pontos.
Algum do
material de apoio
é impreciso ou irrelevante.
5
3: Bom
A maioria de especificações estão
implementadas.
O
programa
funciona
corretamente,
com
poucos resultados
inesperados.
O
programa
compila com poucos
‘warnings’.
O
código fonte está
bem organizado.
4: Excelente
Todas as especificações
estão
implementadas.
O
programa
funciona
como
esperado em todos os casos. O
programa compila
sem
erros
ou
‘warnings’.
O
código fonte é
claro, fácil de ler
e bem organizado.
A documentação é
maioritariamente
clara e relevante.
A quantidade de
material de apoio
é correta, e as
pequenas imprecisões que contém
não
interferem
com a utilização
do trabalho.
A documentação
é clara, precisa
e relevante.
O
material de apoio
contém muita informação, correta
e com detalhes.
5
5.1
Prazos e Outras Informações Úteis
Prazo de Entrega
Os trabalhos deverão ser entregues por email para o docente da turma associada ao grupo de trabalho, fazendo através de um ficheiro ZIP até ao final da
penultima semana de aulas (14 de maio de 2017).
5.2
Entrega dos Trabalhos
Durante as aulas da última semana, ou seja depois da entrega por email do
trabalho, cada grupo irá defender junto do respetivo professor, o seu trabalho.
Esta defesa passará por responder às questões que o professor entender relativamente ao trabalho entregue, bem como pela demostração, nos computadores
da sala de aulas, da execução do trabalho, na presença do professor.
5.3
Grupos de Trabalho
Os trabalhos deverão ser feitos em grupos de dois elementos. A definição dos
grupos deverá ser feita na aula da semana do dia 27 de março de 2017 em
conjunto com o professor.
5.4
Tecnologias
O trabalho deverá ser realizado na linguagem de programação C. Será valorizada
a implementação da funcionalidades não descritas neste documento.
5.5
Fraudes
Os trabalhos devem ser feitos pelos membros do grupo. O código dos trabalhos
entregues será verificado por software de deteção de cópias. Os alunos poderão
ser chamados a defender o seu trabalho e explicar partes do mesmo.
6
Download