Boa tarde! Fiz um código de uma bilheteria de teatro, mas não consigo pensar em uma função para o reservar o ingresso, alguém poderia me ajudar, por favor.
#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>// Estrutura da Peça Teatral.typedefstruct peca
{unsignedlongint codigo;char nome[100];char data[10];char horario[5];unsignedlongint capacidade;float valor;struct peca* prox;}Peca;typedefstruct ingresso
{unsignedlongint codigo;char nome[100];char data[10];char horario[5];char tipo[20];float total;struct ingresso* prox;}Ingresso;// Declaração de funções da estrutura peça.Peca* inserir_pecas(Peca* primeiro);void listar_pecas(Peca* primeiro);Peca* excluir_pecas(Peca* primeiro);void alterar_pecas(Peca* primeiro);// Declaração de funções da estrutura ingresso.Ingresso* reservar_ingressos(Ingresso* segundo);void listar_ingressos(Ingresso* segundo);Ingresso* excluir_ingressos(Ingresso* segundo);
main(){// Declaração de variáveis.Peca*primeiro = NULL;Ingresso*segundo = NULL;int opcao;// Artifício para repetir o programa.while(opcao !=0){// Menu de Opções.
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t\t MENU DE OPÇÕES \t\t\t\t");
printf(" | ");
printf("\n\n");
printf("| 1 - Cadastrar peças |\n");
printf("| 2 - Listar peças |\n");
printf("| 3 - Alterar peças |\n");
printf("| 4 - Excluir peças |\n");
printf("| 5 - Reservar ingressos |\n");
printf("| 6 - Listar ingressos |\n");
printf("| 7 - Excluir ingressos |\n");
printf("| 0 - Finalizar sistema |\n\n");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
printf("Comando: ");
scanf("%d",&opcao);// Lendo a opção do menu
fflush(stdin);
opcao = getch();// Executando as funções de acordo com a opção escolhida.switch(opcao){case1:// Inserindo peças.
fflush(stdin);
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t CADASTRAR NOVA PEÇA \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
primeiro = inserir_pecas(primeiro);
getch();
system("cls");break;case2:// Listando peças.
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t PEÇAS CADASTRADAS \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
listar_pecas(primeiro);
getch();
system("cls");break;case3:// Alterando peças da lista.
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t ALTERAR PEÇAS CADASTRADAS \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
alterar_pecas(primeiro);
getch();
system("cls");break;case4:// Excluindo peças da lista.
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t EXCLUIR PEÇA CADASTRADA \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
primeiro = excluir_pecas(primeiro);
getch();
system("cls");break;case5:// Reservando ingressos.
fflush(stdin);
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t RESERVAR INGRESSO \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
segundo = reservar_ingressos(segundo);
getch();
system("cls");break;case6:// Listando ingressos.
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t INGRESSOS CADASTRADOS \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
listar_ingressos(segundo);
getch();
system("cls");break;case7:// Excluindo peças da lista.
system("cls");
printf("%c----------------------------------------------------------------------------%c\n",201,187);
printf(" | ");
printf("\t\t\t EXCLUIR INGRESSO CADASTRADO \t\t\t");
printf(" | ");
printf("%c----------------------------------------------------------------------------%c\n\n",200,188);
segundo = excluir_ingressos(segundo);
getch();
system("cls");break;case0:// Artifício para finalizar o programa.
opcao =0;break;default:// Artifício que previne a situação de um usuário qualquer, digitar uma opção inexistente no menu.
system("cls");break;}}}Peca* inserir_pecas (Peca*primeiro){Peca peca;Peca*atual = primeiro;char identificador ='F';// Lendo as informações da peça.
printf("Nome da peça: ");
fflush(stdin);
fgets(peca.nome,100, stdin);
printf("\n");
printf("Data: ");
fflush(stdin);
fgets(peca.data,10, stdin);
printf("\n");
printf("Horário: ");
fflush(stdin);
fgets(peca.horario,5, stdin);
printf("\n");
printf("Valor do ingresso: ");
scanf("%f",&peca.valor);
printf("\n");
printf("Capacidade: ");
scanf("%u",&peca.capacidade);
printf("\n");
printf("Código: ");
scanf("%u",&peca.codigo);
printf("\n");// Verificando se o cadastro já existe.for(atual=primeiro; atual!=NULL; atual=atual->prox){if(atual->codigo==peca.codigo){
identificador ='V';break;}}if(identificador!='V'&&(strlen(peca.nome)!=1&& strlen(peca.data)!=1)){// Alocando os espaços e guardando as informações da peça.Peca*NovaPeca=(Peca*) malloc (sizeof(Peca));
strcpy(NovaPeca->nome, peca.nome);
strcpy(NovaPeca->data, peca.data);
strcpy(NovaPeca->horario, peca.horario);NovaPeca->capacidade= peca.capacidade;NovaPeca->valor= peca.valor;NovaPeca->codigo= peca.codigo;NovaPeca->prox= primeiro;
printf(" Cadastro realizado com sucesso.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");returnNovaPeca;}else{
printf(" Cadastro inválido.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");
exit(0);}}void listar_pecas (Peca* primeiro){Peca* atual;// Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.// Imprimindo as peças da lista, e suas respectivas informações.for(atual= primeiro; atual!= NULL; atual= atual->prox){
printf("\nCódigo: ");
printf("%u", atual->codigo);
printf("\nPeça: ");
printf("%s", atual->nome);
printf("\nData: ");
printf("%s", atual->data);
printf("\nHorário: ");
printf("%s", atual->horario);
printf("\nCapacidade: ");
printf("%u", atual->capacidade);
printf("\nValor: ");
printf("%f", atual->valor);
printf("\n\n");}if(primeiro==NULL)
printf(" Nenhuma peça cadastrada.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");}Peca* excluir_pecas(Peca*primeiro){Peca*anterior= NULL;// Ponteiro para saber o elemento anterior ao elemento atual da lista.Peca*atual= primeiro;// Ponteiro para percorrer a lista sem perder o primeiro elemento da lista.unsignedlongint codigo=0;// Requisitando e lendo o código da peça a ser excluída.
printf("Código da peça: ");
fflush(stdin);
scanf("%u",&codigo);// Procurando a peça na lista.while(atual!= NULL && atual->codigo!=codigo){
anterior= atual;
atual= atual->prox;}// Mensagem caso a peça não seja encontrada.if(atual==NULL){
printf("\n Peça não encontrada.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");return primeiro;}// Excluindo a primeira peça da lista.if(anterior==NULL){
printf("\n Conteúdo excluído com sucesso.");
primeiro= atual->prox;// Excluindo uma peça do meio da lista.}else{
printf("\n Conteúdo excluído com sucesso.");
anterior->prox= atual->prox;}// Desalocando o espaço da memória.
free(atual);
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");return primeiro;}// Função para alterar peças.void alterar_pecas(Peca* primeiro){char nome_substituto[100], data_substituta[10], horario_substituto[5];unsignedlongint capacidade_substituta;float valor_substituto;unsignedlongint codigo;Peca* atual=primeiro;// Requisitando e lendo o código da peças a ser alterada.
printf("\nCódigo da peça: ");
fflush(stdin);
scanf("%u",&codigo);// Procurando a peça na lista.while(atual!= NULL && atual->codigo!=codigo){
atual= atual->prox;}// Alterando os dados da peça.if(atual!=NULL){
printf("\nNovo nome: ");
fflush(stdin);
fgets(nome_substituto,100, stdin);
strcpy(atual->nome,nome_substituto);
printf("\nNova data: ");
fflush(stdin);
fgets(data_substituta,10, stdin);
strcpy(atual->data,data_substituta);
printf("\nNovo horário: ");
fflush(stdin);
fgets(horario_substituto,5, stdin);
strcpy(atual->horario,horario_substituto);
printf("\nNova capacidade: ");
fflush(stdin);
scanf("%u",&capacidade_substituta);
atual->capacidade == capacidade_substituta;
printf("\nNovo valor: ");
fflush(stdin);
scanf("%f",&valor_substituto);
atual->valor == valor_substituto;
printf("\n");
printf("Dados alterados com sucesso.");}else{
printf("\nPeça não encontrada.");}
printf("\n\n\nPressione QUALQUER TECLA para voltar ao menu...");}void listar_ingressos (Ingresso* segundo){Ingresso* atual;// Ponteiro para percorrer a lista sem perder a referência do primeiro elemento da lista.// Imprimindo od ingressos da lista, e suas respectivas informações.for(atual= segundo; atual!= NULL; atual= atual->prox){
printf("\nCódigo: ");
printf("%u", atual->codigo);
printf("\nPeça: ");
printf("%s", atual->nome);
printf("\nData: ");
printf("%s", atual->data);
printf("\nHorário: ");
printf("%s", atual->horario);
printf("\nTipo: ");
printf("%s", atual->tipo);
printf("\nValor: ");
printf("%f", atual->total);
printf("\n\n");}if(segundo==NULL)
printf(" Nenhum ingresso cadastrado.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");}Ingresso* excluir_ingressos(Ingresso*segundo){Ingresso*anterior= NULL;// Ponteiro para saber o elemento anterior ao elemento atual da lista.Ingresso*atual= segundo;// Ponteiro para percorrer a lista sem perder o primeiro elemento da lista.unsignedlongint codigo=0;// Requisitando e lendo o código do ingresso a ser excluído.
printf("Código do ingresso: ");
fflush(stdin);
scanf("%u",&codigo);// Procurando o ingresso na lista.while(atual!= NULL && atual->codigo!=codigo){
anterior= atual;
atual= atual->prox;}// Mensagem caso o ingresso não seja encontrado.if(atual==NULL){
printf("\n Ingresso não encontrado.");
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");return segundo;}// Excluindo o primeiro ingresso da lista.if(anterior==NULL){
printf("\n Conteúdo excluído com sucesso.");
segundo= atual->prox;// Excluindo um ingresso do meio da lista.}else{
printf("\n Conteúdo excluído com sucesso.");
anterior->prox= atual->prox;}// Desalocando o espaço da memória.
free(atual);
printf("\n\n Pressione QUALQUER TECLA para voltar ao menu...");return segundo;}
Pergunta
The_Kings688
Boa tarde! Fiz um código de uma bilheteria de teatro, mas não consigo pensar em uma função para o reservar o ingresso, alguém poderia me ajudar, por favor.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.