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

28/07/2021

0

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.
Arthur Moreira

Arthur Moreira

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar