Dúvida sobre exercício de manipulação de arquivos.

28/07/2021

4

C++

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:
o LISTAGEM SETOR 1 – VIP.txt
o LISTAGEM SETOR 2 – Verde.txt
o LISTAGEM SETOR 3 – Amarela.txt
o 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).
O detalhamento das funções seguem abaixo: os parâmetros pedidos na lista não
necessariamente serão os únicos a ser recebidos pelas funções, o vetor dinâmico sempre
deverá ser enviado a primeira posição do ponteiro. As funções dos programas e definição de
estruturas deverão estar na biblioteca. (Arquivo .c separado associado ao arquivo .h (header).

Sendo que o programa deve ter:
Menu com if e for_break;
Compra: função separada;
Devolução: função que recebe como parâmetro o setor e retorna 0 (não concluido) ou 1 (concluido
com sucesso);
Listagem: dentro da main();
Relatórios dentro da main();
Ordem crescente e decrescente chama função com parâmetro 1 ou 2 para crescente ou decrescente
Maior e menor: função chama a função crescente e retorna o maior ou menor valor;
setor Amarelo vetor dinâmico ( utiliza ponteiro);

Alguém tem alguma ideia de como eu consigo fazer isso?
Seria eternamente grato.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar