Entrega de Projeto (em C)
BOB’s PIZZARIA (Controle para Entrega de Pizzas)
– Criacao em 21/10/2018;
– Entrega final via Canvas: 03/12/2018 (Segunda-Feira), até as 19:00;
– A entrega do trabalho podera valor ate 1,0 em media final (ate completar nota 5)
Observações gerais:
– Esse documento poderá ser atualizado sem aviso prévio, para melhora do conteúdo, conforme dúvidas surgidas;
– Grupos de até 4 (quatro) pessoas; (Caso tenha mais, os últimos da ordem da lista serão desconsiderados);
– Não será permitida cópias entre trabalhos; (caso haja suspeita de copias, ambos ou mais serão penalizados com nota zero)
– Entrega em arquivo texto (extensão .c), e caso necessário juntamente com bibliotecas e outros arquivos necessários para que o programa possa ser compilado no Dev-c++ padrão utilizado pela faculdade ou pela ide Codeblocks;
– Identificar no trabalho os nomes completos dos integrantes, com RA, em ordem alfabética;
– Este trabalho NÃO ESTA na composição de média da disciplina, sendo um trabalho extra;
– Caso alguns dos alunos não esteja devidamente matriculado no seu devido curso, o professor não poderá divulgar as notas do trabalho para nenhum dos alunos do grupo até aprovação do coordenador;
Observações sobre o trabalho:
– Trabalhar com estruturas e arquivos vistos em sala de aula;
– Conter menu principal para a chamada das funcionalidades;
– Fazer as funcionalidades por meio de funções;
– Você pode inserir/alterar as estruturas dos arquivos conforme necessidade para facilitar alguns pontos em programação;
– Entrega será via CANVAS, porém no dia da entrega, os alunos deverão fazer a apresentação do mesmo;
Entrega final deverá conter:
– Arquivo(s) C, identificando em comentário a identificação do grupo com nome completo e RA, em ordem alfabética, no arquivo que contem a função MAIN.;
– O mesmo deve estar devidamente comentado e indentado, sendo necessário entregar quaisquer bibliotecas extras parar que seja feita a compilação do projeto.
Para a postagem no EAD:
Compactado em formato zip, caso tenha mais de um arquivo, e em um arquivo único o arquivo não deve ser compactado.
Cenário:
A empresa MASTER-PIZZA’S ENTREGAS RAPIDAS LTDA, que atua no ramo de vendas de pizzas para Jundiaí e região e está automatizando o pedido de pizzas de seus clientes. Para isso Bob, dono da pizzaria, já trabalha da seguinte maneira:
Bob possui 15 tipos de pizzas, sendo elas doces e salgadas. Como segue sempre a preparação pelo cardápio, os ingredientes possuem uma ordem e quantidade. As mesmas também possuem os tamanhos Média, Grande e Gigante. Todas pizzas por padrão possuem a massa com o tamanho escolhido pelo cliente e massa de tomate. Atualmente, a tabela de produtos de Bob possui as seguintes pizzas:
Cod |
Tipo |
Nome da Pizza |
Ingredientes |
Vr Custo Padrão |
Vr Venda Tam Médio |
Vr Venda Tam.Grande |
Vr Venda Tam Gigante |
01 |
Salgada |
ALHO E ÓLEO |
Alho frito picado, parmesão ralado e azeitonas |
22,90 |
|||
02 |
Salgada |
ALLICI |
Alicci importado, rodelas de tomate, parmesão e azeitonas |
28,90 |
|||
03 |
Salgada |
ATUM |
Atum, cebola e azeitona |
22,90 |
|||
04 |
Salgada |
BACON |
Bacon coberto com muzzarela e azeitonas |
26,90 |
|||
05 |
Salgada |
BERINJELA |
Berinjela, cobertura com muzzarela, manjericão e parmesão |
23,90 |
|||
06 |
Salgada |
CAIPIRA |
Frango desfiado, coberto com catupiry e milho verde e azeitonas |
26,90 |
|||
07 |
Salgada |
CALABRESA |
Linguiça calabresa, cebola e azeitonas |
19,90 |
|||
08 |
Salgada |
CINCO QUEIJOS |
Muzzarela, parmesão, catupiry, gorgonzola e provolone |
29,90 |
|||
09 |
Salgada |
ESCAROLA |
Escarola refogada, muzzarela e azeitonas |
24,90 |
|||
10 |
Salgada |
EXECUTIVA |
Milho Verde, catupiry e azeitonas |
22,90 |
|||
11 |
Salgada |
PERUANA |
Atum, cebola, muzzarela e azeitonas |
26,90 |
|||
12 |
Salgada |
PALMITO |
Palmito com muzzarela e azeitonas |
26,90 |
|||
13 |
Doce |
BANANA |
Banana fatiada com, cobertura com leite condensado e canela em pó |
21,90 |
|||
14 |
Doce |
BRIGADEIRO |
Chocolate, leite condensado e chocolate granulado |
23,90 |
|||
15 |
Doce |
PRESTIGIO |
Chocolate coberta com côco |
23,90 |
A maioria dos clientes de Bob são atendidos por telefone. Como Bob já possui experiências anteriores em atendimento de pizzaria, ele gostaria que o atendimento funcionasse da seguinte maneira: para facilitar a identificação, Bob pede ao cliente que passe o número de telefone fixo e caso o cliente já esteja cadastrado, Bob verifica as ultimas pizzas pedidas e as indica outros sabores. Caso o cliente não tenha cadastro, Bob cadastra o cliente com os seguintes dados: CODIGO (automático do sistema), TELEFONE FIXO (com DDD e NÚMERO), TELEFONE CELULAR (com DDD e NÚMERO), NOME DO CLIENTE, ENDEREÇO, NUMERO, COMPLEMENTO, BAIRRO, CIDADE, UF e CEP.
Depois de encontrado ou cadastrado o cliente, BOB solicita ao cliente qual a(s) pizza(s) escolhida(s), juntamente com o(s) tamanho(s), a qual o sistema deve gerar um pedido (contendo NÚMERO DO PEDIDO, DATA DO PEDIDO, HORA, CLIENTE e os ITENS (pizza(s)) que o pedido contém)
Além do VALOR TOTAL que deve fornecer ao cliente, o mesmo precisa saber se o cliente irá precisar de troco para que o motoboy leve o dinheiro contado ao cliente (O sistema faz a conta de quanto de troco o motoboy precisa levar para o cliente). O sistema também deve fazer uma previsão de quanto tempo a(s) pizza(s) será(ão) entregue(s). Em média, o tempo de espera é de 50 minutos após o pedido ser feito, independente da quantidade de pizzas.
Observação: A pizzaria não trabalha com vendas de bebidas (refrigerantes, sucos e cervejas), pois Bob possui também outra empresa de bebidas, a qual os clientes possuem descontos especiais na compra de pizzas;
Os valores das pizzas são calculados com base no Valor Padrão de Custo, sendo:
Tamanho Médio para Venda: 15% a mais do Valor Padrão de Custo;
Tamanho Grande para Venda: 25% a mais do Valor Padrão de Custo;
Tamanho Gigante para Venda: 35% a mais do Valor Padrão de Custo;
Esses valores de custo devem ser apresentados em tempo de execução pelo programa, pois tem sempre essa porcentagem fixa a partir do Valor Padrão de Custo.
Para futura implementação, baseado em coordenadas geográficas, o sistema irá calcular a distancia entre a pizzaria e o local que o cliente se encontra e terá melhor precisão do tempo de entrega, baseando-se também pelo trafego de veículos. (Não será implementado nessa primeira versão)
Bob precisa fazer a implementação de um sistema em sua pizzaria e para isso, contratou você para que desenvolva o sistema, tendo as seguintes funcionalidades:
– Cadastro e manutenção dos clientes* que estarão fazendo os pedidos de pizzas:
Estruturas de arquivos sugeridos para cadastros dos clientes:
Arquivo: Clientes (CODIGO (automático do sistema) do tipo inteiro, TELEFONE FIXO (com DDD e NÚMERO) do tipo char[], TELEFONE CELULAR (com DDD e NÚMERO) do tipo char[], NOME DO CLIENTE do tipo char[], ENDEREÇO do tipo char[], NUMERO do tipo char[], COMPLEMENTO do tipo char[], BAIRRO do tipo char[], CIDADE do tipo char[], UF do tipo char[] e CEP do tipo char[])
– Cadastro e manutenção das pizzas* que a Pizzaria prepara. Um fato importante é que a pizzaria está em expansão, devendo Bob aumentar a quantidade de sabores para melhor atender seus clientes.
Estruturas de arquivos sugeridos para cadastros de pizzas:
Arquivo: Pizzas (CODIGO (automático do sistema) do tipo inteiro, TIPO_PIZZA do tipo char[], DATA_CRIACAO do tipo estrutura, DATA_INATIVACAO do tipo estrutura, NOME_PIZZA do tipo char[], INGREDIENTES do tipo char[], VALOR_CUSTO do tipo float)
– Movimentação dos Pedidos* dos clientes, onde serão controlados os pedidos que os clientes estão fazendo.
Estruturas de arquivos sugeridos para a movimentação dos Pedidos:
Arquivo: Pedido (CODIGO_PEDIDO do tipo inteiro (automático do sistema), DATA do tipo estrutura, HORA do tipo estrutura, COD_CLIENTE do tipo inteiro, TOTAL_PEDIDO do tipo float (automático somando todos os SUB-TOTAIS)
Arquivo: ItensPedido (CODIGO_PEDIDO do tipo inteiro (mesmo que o do Pedido que está relacionado, ITEM do tipo inteiro (automático sendo auto-numeração), CODIGO_PIZZA do tipo inteiro, TAMANHO do tipo char, QUANTIDADE do tipo float, VALOR_UNITARIO do tipo float, SUB_TOTAL do tipo float (calculado pelo sistema, sendo QUANTIDADE * VALOR_UNITARIO)
Modelo Sugerido (Não é obrigatório utilizar o modelo abaixo):
Detalhamentos de funcionalidades:
– Um cliente pode fazer pedidos de até ½ sabor por pizza (do mesmo tamanho), não sendo possível dividir em mais de 2 partes uma única pizza. Fazendo esse tipo de pedido, será cobrado o maior valor da pizza escolhido;
– Depois de escolhida a pizza, não há possibilidade de alterar o pedido. Caso o cliente insista em fazer a alteração, é necessário fazer o cancelamento do pedido por completo e gerar um novo pedido para o cliente. O funcionário que estará atendendo o mesmo deverá deixar o cliente ciente de que o horário de entrega também irá ser alterado, pois irá ser colocado ao final da fila, sendo considerado um novo pedido.
– Cadastro e manutenção das Clientes*: Necessário implementar as rotinas de inclusão, alteração, consulta e exclusão dos mesmos; As consultas devem ser feitas pelo códigos (Código do cliente) e pelo número de telefone fixo; As exclusões não podem acontecer caso o cliente já tenha feito algum pedido;
– Cadastro e manutenção de Pizzas*: Necessário implementar as rotinas de inclusão, alteração, consulta e exclusão dos mesmos; Para a exclusão de uma pizza é somente necessário preencher o campo DATA_INATIVACAO (exclusão lógica). Nas consultas de pizzas, caso o registro contenha este campo preenchido, é necessário não aparecer nas consultas. (exclusão lógica). Consultas devem ser feitos pelo código; As pizzas do cardápio já devem estar previamente cadastradas através de uma rotina (função para fazer a inserção das pizzas padrão).
– Movimentação de Pedidos*: Necessário implementar as rotinas de inclusão, consulta (pelo CODIGO_PEDIDO), e exclusão. Nos pedidos, o sistema deve calcular o troco do cliente caso necessário, o tempo previsto para entrega, total do pedido do cliente.
Os resultados esperados que a o Bob deseja são:
– Relatório de clientes, com todos os dados cadastrais de clientes;
– Relatório de clientes, com CODIGO, NOME e quantidade de clientes cadastrados; (Parametrizado por período de data inicio e data fim do cadastro);
– Relatório das pizzas, com todos os dados cadastrais da pizza, incluindo o calculo dos valores vendas (médio, grande e gigante);
– Relatório de pedidos entre um período, com CODIGO_PEDIDO, DATA, CLIENTE E TOTAL DO PEDIDO, contendo um total geral no fim do relatório; (Parametrizado por data inicial e final do pedido);
– Qual a pizza que possui maior receita (incluindo todos os tamanhos);
– Qual a pizza que possui menor receita (incluindo todos os tamanhos);
Tabela de pontuação de funcionalidades do sistema (Pontuação somente é divulgada no dia da apresentação):
Item |
Categoria |
Funcionalidade |
Pontuação |
01 |
Gerais |
||
01 |
Menu principal e sub-menus separados por cadastros e funcionalidades (inclusão, alteração, consulta e exclusão) |
||
02 |
Cadastros e Manutenções |
||
02 |
02.01 |
Clientes (toda manutenção do cliente) |
|
03 |
02.02 |
Pizzas (toda manutenção de pizzas) |
|
03 |
Movimentação |
||
04 |
03.01 |
Movimentação de Pedidos |
|
04 |
Funcionalidades |
||
05 |
04.01 |
Na manutenção do cliente, verificação da exclusão do cliente referente a pedidos já efetuados |
|
06 |
04.02 |
Rotina para inclusão automática das pizzas padrões |
|
07 |
04.03 |
Na movimentação de pedidos, inclusão automática do número do pedido e a da data atual e hora atual automática do sistema |
|
08 |
04.04 |
Na movimentação de pedidos, calculo do troco do cliente |
|
09 |
04.05 |
Na movimentação de pedidos, previsão do tempo necessário para entrega da pizza |
|
05 |
Relatórios |
||
10 |
05.01 |
Relatório de clientes, com todos os dados cadastrais de clientes; |
|
11 |
05.02 |
Relatório de clientes, com CODIGO, NOME e quantidade de clientes cadastrados; (Parametrizado por período de data inicio e data fim do cadastro); |
|
12 |
05.03 |
Relatório das pizzas, com todos os dados cadastrais da pizza, incluindo o calculo dos valores vendas (médio, grande e gigante); |
|
13 |
05.04 |
Relatório de pedidos entre um período, com CODIGO_PEDIDO, DATA, CLIENTE E TOTAL DO PEDIDO, contendo um total geral no fim do relatório; (Parametrizado por data inicial e final do pedido); |
|
14 |
05.05 |
Qual a pizza que possui maior receita (incluindo todos os tamanhos); |
|
15 |
05.06 |
Qual a pizza que possui menor receita (incluindo todos os tamanhos); |
.