Como fazer se faz codigo?...
O projecto a ser desenvolvido visa a aplicacao de conceitos de listas dinamicas,
neste caso para a implementacao de um programa que faca a gestao da cantina
da escola. O programa devera se chamar cantina, criado num ficheiro sob o
nome de cantina.c. O programa tera dois modulos o Gestao de clientes e Gestao
de vendas.
Menu Principal
1. Inserccao de produtos
2. Gestao de clientes
3. Gestao de vendas
4. Sair
1. Insercao de produtos: Esta opcao permite a inserc¸c˜ao inicial de todos os
produtos dispon´ıveis para venda.
2. Gestao de Clientes com:
(a) Pratileira: Esta opcao permite listar todos os produtos disponıveis
na pratileira bem como a quantidade e o preco;
(B) Compra de produtos: Ao seleccionar esta opcao o cliente pode escolher
o produto e a quantidade que pretende comprar sendo no final
imprimido1 a factura a pagar;
1considera-se pago a factura logo que se imprime a mesma ap´os efectuada a compra
1
© Premio Fregues do Mes: O cliente poder´a concorrer ao premio de
melhor cliente do mes.
Menu Gestao de Clientes
1 Pratileira
2 Compra de produtos
3 Premio Fregues do Mes
4 Menu Anterior
3. Gestao de Vendas com:
(a) Melhor produto: Ao pressionar na opcao 1 devera ser listado (no
ecran) todas as informacoes referente ao produto mais vendido.
(B) Total de vendas: Esta opcao vai permitir ao gestor saber qual o total
de vendas efectuadas durante o dia.
© Fregues do mes: Nesta opcao o gestor tem a lista dos tres clientes
premiados como Fregues do Mes da cantina com direito a dois
meses de lanche gratuito no valor de 50 euro.
Menu Gestao de vendas
1 Melhor produto
2 Total Vendas
3 Fregues do Mes
4 Menu Anterior
1.1 Funcionalidades
1. A primeira funcionalidade e a insercao de informacoes referentes aos produtos
desponıveis para venda. Para isso e necessario pedir ao utilizador(
gestor) que insira o nome do produto, quantidade disponıvel e o preco
unitario. Sem estes dados as outras funcionalidades nao deverao funcionar,
mostrando a respectiva mensagem de erro.
2. A primeira opcao do modulo Gestao de cliente e a Pratileiras. Antes de
qualquer operacao o utilizador podera ver o que existe na pratileira, isto
e, os produtos, juntamente com os codigos, as quantidades disponiveis e
os respectivos precos desses produtos.
3. Na segunda opcao, Compra de produtos, o cliente indica qual o codigo
do produto e a quantidade desejada. De seguida, devera ser indicado em
caso de disponıvel, o total a pagar, isto ´e imprimido o recibo. Em caso de
ausencia da quantidade solicitada ao utilizador e pedido que este escolha
novamente de acordo com a quantidade disponıvel.
4. Apos a compra de um determinado produto, somente depois e para compra
superiores a 10 euro (para outros casos deverao ser rejeitados ou desactivado
esta opcao), o utilizador podera concorrer ao premio Fregues do
Mes. Portanto, devera ser solicitado da parte do utilizador o seu numero,
2
nome e curso, guardardas para futuro sorteio. Ainda, apos a inserccao destes
dados, devera ser imprimido uma senha (numero xxxx). A realcar que para
os produtos que ja se esgotaram deverao ser automaticamente eliminados
da lista, na ultima compra efectuada.
5. Na opcao Melhor produto, o gestor podera ver o melhor produto do mes,
sendo este escolhido segundo o criterio de quantidade vendida e quantia
arrecadada2
6. O Fregues do Mes e escolhido tendo em conta a geracao de numeros
aleatorios3 que devera entre as senhas distribuıdas escolher tres clientes.
Por conseguinte, a cada cliente sorteado devera ser alterado o seu estado no
registo correspondente a este de forma que nao seja sorteado novamente.
2 Implementacao
A estrutura de dados que suporta a aplicacao encontra-se definida na seccao
Anexo. E exigido que os alunos que implementem as funcoes e procedimentos
que suportam as fucionalidades acima descritas.
Conv´em entretanto reiterar algumas informacoes adicionais.
• Para compararmos duas strings deveremos usar a funcao strcmp(x,y) que
retorna 0 caso os dois nomes forem iguais, 1 se x alfabeticamente maior
que y e -1 no caso de x ser alfabeticamente menor. Por isso os nomes que
pretendemos comparar deverao ser escritos sempre da mesma forma.
• Para gerar n´umeros aleat´orios o aluno pode utilizar a funcao rand de
acordo com o exemplo abaixo:
x = rand();//gera numeros aleat´orios
y = rand()%20;//gera numeros aleat´orios entre 0 e 20
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct Tproduto
{
char nomeprod[40];
int codigoprod;
int quantidade;
float preco;
struct Tproduto * prox;
}produto;typedef struct Tvendas
{
int numcliente;
int codigoprod;
int quantidade;
float totalpago;
struct Tvendas * prox;
}vendas;typedef struct Tpremio
{
int numsenha;
int numcliente;
char nome[30];
char curso[10];
struct Tpremio * prox;
}premio;
produto * pro;
vendas * ven;
premio * pre;Discussão (2)
Carregando comentários...