Programa de registro de ingressos. - C/C#/C++ - Clube do Hardware
Programa de registro de ingressos.
Por Arthur Matola,
28 de julho em C/C#/C++
Arthur Matola
Arthur Matola 0
Preciso de ajuda com esse trabalho da faculdade, urgente.
Haverá um show na praça da Apoteose, no Rio de Janeiro. O público pagante poderá assistilo em quatro setores distintos.
Na área VIP, com 10 lugares, o preço do ingresso é de R$ 100,00. Na arquibancada verde ou amarela, com 20 lugares em cada uma delas, o preço do ingresso é de R$ 70,00. E na pista, com 30 lugares, o preço do ingresso é de R$ 50,00. Vale ressaltar que se o ingresso for para estudante o seu valor terá desconto de 50% e 25% para pessoas com 60 anos ou mais (idosos).
Especificações: • O sistema deverá conter um menu onde será exibido as opções, Compra, devolução, listagem de lugares vagos, "relatórios e estatísticas" e finalizar. Inicialmente o programa deverá fazer a leitura de quatro arquivos (1 para cada setor) com os seguintes nomes e salvos dentro da pasta do projeto:
LISTAGEM SETOR 1 – VIP.txt
LISTAGEM SETOR 2 – Verde.txt
LISTAGEM SETOR 3 – Amarela.txt
LISTAGEM SETOR 4 – Pista.txt
Utilizem exatamente esses nomes, pois utilizarei meus arquivos para a correção dos trabalhos.
1. Compra: Quando for dada a ordem de compra será solicitado ao usuário as seguintes informações: o setor (1- VIP, 2 - Verde, 3 - Amarela, 4 - Pista); o número de ingressos; quantos destes ingressos são para estudantes; quantos são para idosos, o nome do responsável pelos ingressos e a idade de cada pessoa que receberá o ingresso. O programa deverá verificar se o setor escolhido tem disponibilidade de ingressos. Caso não tenha, deverá enviar uma mensagem de que não há mais vagas neste setor, e refazer a solicitação novamente. Ingresso será uma estrutura com os campos:
• Lugar: número da cadeira;
• Idade: idade do usuário;
• Preço: preço do ingresso;
• Responsável: responsável pela compra dos ingressos.
Utilize um vetor do tipo Ingresso para cada setor, ou uma matriz do tipo Ingresso para armazenamento dos registros. Deverá ser alocado dinamicamente.
2. Devolução: A devolução será aceita apenas se o responsável pelos ingressos devolver todos os ingressos comprados simultaneamente. A consulta para a devolução será feita através do nome do responsável. 3. Listagem de lugares: Deverá ser escolhido o setor e este gera um diagrama do tipo:
************ LISTAGEM SETOR 1 - VIP **********
LUGAR IDADE PREÇO RESPONSÁVEL
1 25 300,00 Fabio
2 12 150,00 Fabio
3 60 75,00 Fabio
4 23 300,00 Caio
4. Relatórios e Estatísticas: Será exibido um novo menu com as opções: ordem crescente e decrescente das idades, maior e menor idade, saldo arrecadado, saldo devolvido, saldo por categoria.
• Ordem crescente e decrescente: exibe as idades em tal ordem (Todos os setores juntos);
• Menor e maior: exibe a maior idade e o responsável pela compra do ingresso
• Saldo arrecadado: valor total em caixa, excluindo o valor devolvido • Saldo devolvido: valor total que foi pedido devolução
• Saldo por categoria: deverá selecionar estudante idoso ou normal e exibir o saldo total
Deverá ser criado um arquivo com o nome "Relatorio e Estatisticas.txt" que salvará todos esses itens, mesmo que durante a execução do programa o usuário não solicite a exibição de algum deles.
5. Finalizar: Antes de sair do programa ele deverá salvar os arquivos dos setores de acordo com as mudanças (possíveis compra e devoluções)
Caso não queriam fazer o programa todo, podem me dar somente um conselho sobre como fazer a parte da devolução dos ingressos dar certo?
5 horas atrás, Arthur Matola disse:
Não pensei em escrever o programa todo.
Sobre a devolução, faça o simples: é um sistema contábil. Você tem UM show só. 80 ingressos apenas. E serão vendidos para alguém. Não vão sumir. E a devolução nem pode ser parcial. Então é muito simples. São 80 ingressos cuja titularidade pode mudar: ou estão para serem vendidos ou foram vendidos a algum responsável. E se forem devolvidos significa cancelar a compra toda então não precisa controlar nada.
Apenas crie uma classe ticket, uma classe responsável, uma classe Ingresso. Uma classe Venda pode fazer as duas coisas: vender ou receber. Os ingressos são aqueles 80 mesmo. Os responsáveis podem fazer o que? comprar ou devolver (depois de comprar). Um ticket pode fazer o que? ou está disponível ou pertence a alguém.
NÃO escreva o menu antes de fazer o programa. Só iria perder muito tempo. Leia os dados de arquivos ou gere na hora.
Qual o formato dos registros dos arquivos? É suposto que o programa possa ser reiniciado e assim ler o status dos ingressos a partir de arquivos para poder continuar de onde parou?
Os relatórios vão apenas para o arquivo de saída? Como se vai saber se o sistema funcionou? É preciso ter um registro de transações.
O enunciado não é assim muito bom.
Em resumo: escreva em torno dos dados. E amarre as coisas como num programa contábil: são só 80 ingressos e 1 único show. Nada pode sumir. Sem cambistas, sem ingressos falsos...