Ir para conteúdo

Recommended Posts

Boa noite!!

 

Tenho um trabalho onde tenho que fazer o desenvolvimento de um algoritmo para uma bilheteria de um teatro e estou tendo uns problema com a consulta de assentos reservados, com a venda e o faturamento, por favor, poderiam me ajudar.

Obs.: A variável de tipo e porque vou ter que inserir está parte para perguntar o tipo e para ter o preço diferente para cada tipo.

 

Este é o código: 

 

#include <stdio.h>
#include <stdlib.h>

int CAD[20][25];
	int opcao,peca,t,m,g,sala;
	char data1[10];
	char data2[10];
	char data3[10];
	char horario1[6];
	char horario2[6];
	char horario3[6];
	char horario4[6];
	char horario5[6];
	char horario6[6];
	char sala1[40];
	char sala2[40];
	char sala3[40];
	int tipo;
	int inteiro=0;
	int meia=0;
	int gratis=0;
	int i;
	int j;

void CadastrarPeca(){
	printf("\nPeca 1: ");
	gets(sala1);
	printf("\nData: ");
	gets(data1);
	printf("\nHorario 1: ");
	gets(horario1);
	printf("\nHorario 2: ");
	gets(horario2);
	printf("\nPeca 2: ");
	gets(sala2);
	printf("\nData: ");
	gets(data2);
	printf("\nHorario 1: ");
	gets(horario3);
	printf("\nHorario 2: ");
	gets(horario4);
	printf("\nPeca 3: ");
	gets(sala3);
	printf("\nData: ");
	gets(data3);
	printf("\nHorario 1: ");
	gets(horario5);
	printf("\nHorario 2: ");
	gets(horario6);
	printf("\n\n");
	printf("Pecas cadastradas com sucesso.");
	printf("\n\n");
}

void ComprarIngresso(){
	printf("Escolha a peca: \n\n");
	printf("1 - %s\n", sala1);
	printf("2 - %s\n", sala2);
	printf("3 - %s\n\n", sala3);
	printf("Comando: ");
	scanf("%d", &peca);
	if(peca==1){
		printf("");
	}
	printf("\nFila: ");
	scanf("%d", &i);
	printf("\nAssento: ");
	scanf("%d", &j);
	printf("Qual tipo de ingresso: \n\n");
	printf("1 - Inteira\n");
	printf("2 - Meia\n");
	printf("3 - Crianças carentes\n\n");
	printf("Comando: ");
	scanf("%d", &tipo);
	switch(tipo){
		case 1:
			inteiro + 1;
			break;
		case 2:
			meia + 1;
			break;
		case 3:
			gratis + 1;
	}
	if(CAD[i][j]==0){
		CAD[i][j] = 1;
		printf("\n\nAssento reservado com sucesso!\n\n");
		printf("\nIngresso: \n");
		printf("Fileira: [%d] Assento: [%d]\n\n", i, j);
	}else{
		printf("\nAssento ocupado!\n\n");
	}
}

void CancelarIngresso(){
	printf("\nFila: ");
	scanf("%d", &i);
	printf("\nAssento: ");
	scanf("%d", &j);
	if(CAD[i][j]==1){
		CAD[i][j]=0;
		printf("\n\nReserva cancelada!\n\n");
	}else{
		printf("Nenhuma reserva para este assento.");
	}
}

void Faturar(){
}

int main(void){
	
	for(i = 0; i < 20; i++){
		for(j = 0; j < 25; j++){
			CAD[i][j]=0;
		}
	}
	
	do{
		printf("_________________________________________________________");
		printf("\n\n********** SEJA BEM-VINDO(A) AO TEATRO AURORA! **********\n\n");
		printf("_________________________________________________________");
		printf("\n\n");
		printf("1 - Cadastrar Peca\n");
		printf("2 - Comprar Ingressos\n");
		printf("3 - Cancelar Ingresso\n");
		printf("4 - Faturar\n");
		printf("5 - Encerrar o Sistema\n");
		printf("_________________________________________________________");
		printf("\n\n");
		printf("Comando: ");
		scanf("%d", &opcao);
		printf("\n\n");
		
		switch(opcao){
			case 1:
				CadastrarPeca();
				break;
			case 2:
				ComprarIngresso();
				break;
			case 3:
				CancelarIngresso();
				break;
			case 4:
				break;
		}
	}while(opcao!=5);
	
	system("pause");
	return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por matt.valenzza@gmail.com
      Preciso fazer uma lista duplamente encadeada para ela inserir os números, mostrando eles, localizar em qual posição eles estão e excluir. Eu fiz o código, mas preciso que os números mostrem o número atual, o anterior e o próximo. Que na hora de compilar, que ele mostre o numero anterior, o atual e o próximo em um pequeno menuzinho.
       
      Segue o código que eu criei até agora. 
       
       
       
       
      #include <stdio.h> struct Lista{ int num; struct Lista *prox; struct Lista *ant; }; struct Lista* criarNovoElemento(){ struct Lista *novo = NULL; novo = malloc(sizeof(struct Lista)); printf("Informe o numero..: "); scanf("%i", &(*novo).num); (*novo).prox = NULL; return novo; } inserir (struct Lista **a){ if (*a == NULL){ *a = criarNovoElemento(); } else{ struct Lista *aux; aux = *a; while( (*aux).prox != NULL){ aux = (*aux).prox; } (*aux).prox = criarNovoElemento(); } } mostrar(struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux; aux = *a; while( aux != NULL){ printf("\nAtual..: %i", (*aux).num); aux = (*aux).prox; } } printf("\n"); system("pause"); } localizar (struct Lista **a){ if (*a == NULL){ printf("\n....Cadastro vazio....\n"); } else{ int num = 0; int achei = 0; int cont = 0; printf("Informe o numero: "); scanf("%i", &num); struct Lista *aux; aux = *a; while( aux != NULL && achei == 0){ cont += 1; if ((*aux).num == num){ achei = 1; } aux = (*aux).prox; } if (achei == 1){ printf("\n.....Achei na posicao: %i.....\n", cont); } else{ printf("\n.....Nao Achei....\n"); } } printf("\n"); system("pause"); } excluir(struct Lista **a){ if (*a== NULL){ // verificar se existe algum elemento na lista printf("\n....Cadastro vazio....\n"); } else{ struct Lista *aux =*a; a= (**a).prox; free(aux); } printf("\n"); system("pause"); } main (){ struct Lista *inicio = NULL; int opcao = 0; while(opcao != 9){ system ("cls"); printf("\n[1] Inserir Elemento"); printf("\n[2] Mostrar Elemento"); printf("\n[3] Localizar Elemento"); printf("\n[4] Excluir "); printf("\n[9] Finalizar"); printf("\nInforme a opcao: "); scanf("%i", &opcao); switch(opcao){ case 1 : inserir(&inicio); break; case 2 : mostrar(&inicio); break; case 3 : localizar(&inicio); break; case 4 : excluir(&inicio); break; case 9 : printf("Programa finalizado"); } } }  
    • Por Raf4Killer
      #include<stdio.h> #include<stdlib.h> #include<string.h> //Biblioteca para usar a funçao strcmp #include<windows.h> #include<conio.h> #include<locale.h> #define P 50 #define N 2 struct elevador{ char pavimento[P] [50]; char *senha,*validarsenha; char nomepav[P] [50], nao; int andar,com,sem; }; static int linha; typedef struct elevador Televador; Televador pavimentos [P]; // salva os dados int indice; char x [P] [50]; int op,i,com; char *LerSenha(int); void cadastrar(); void nomes(); void senhas(); void validar(); void relatorio(); void nomepesquisa(); char pesquisaNomes[P]; int main(){ setlocale(LC_ALL,"portuguese"); indice = 0; do{ printf("\t\t****Menu****\n\n"); printf("1-Cadastar a quantidade de pavimento.\n"); printf("2-Cadastar os nomes dos pavimentos.\n"); printf("3-Cadastar senha.\n"); printf("4-Validar senha.\n"); printf("5-Relatório.\n"); printf("6-Finalizar.\n"); printf("Escolha uma das opções do menu: "); scanf("%d",&op); switch(op){ case 1: //pavimento. system("cls"); cadastrar(); break; case 2: //nome do pavimento. system("cls"); nomes(); break; case 3: //senha do pavimento. system("cls"); senhas(); printf("\n"); break; case 4: validar(); break; case 5: system("cls"); relatorio(); break; } }while(op != 6 ); system("PAUSE"); return 0; } char *LerSenha(int max){ int i; char *senha = (char *)malloc(sizeof(char) *max); while( (* (senha + i++) = getch()) != 13 && i < max) putchar ('*'); return senha; } Televador cadastro; void cadastrar(){ // tipo elevador cadastro : onde guarda os dados //guarda os dados. fflush(stdin); do{ printf("Informe a quantidade de pavimentos:"); scanf("%d",&cadastro.andar); if(cadastro.andar < N){ printf("A quantidade inválida.\n"); } }while(cadastro.andar < N); //onde está salvando os dados; pavimentos [indice] = cadastro; indice ++; } void nomes(){ fflush(stdin); for(i=0;i<cadastro.andar;i++){ printf("Digite o nome do pavimento (%d): ",i+1); //informa qual linha vai ler scanf("%s", &cadastro.nomepav[i]); pavimentos [indice] = cadastro; indice++; } } void senhas(){ fflush(stdin); printf("Qual o nome do pavimento você deseja ir:"); scanf("%s", &pesquisaNomes); for(i=0;i < cadastro.andar;i++){ if(strcmp(cadastro.nomepav[i], pesquisaNomes)==0){ printf("%s encontrado\n",cadastro.nomepav[i]); printf("Deseja inserir senha no pavimento (%d) ?\n", i+1); printf("(s)-sim\n"); printf("(n)-não\n"); scanf("%c",&cadastro.nao); if(cadastro.nao == 'n' ||cadastro.nao == 'N'){ printf("ok\n"); cadastro.sem = i; } else if(cadastro.nao == 's' || cadastro.nao == 'S'){ printf("Digite sua senha:"); cadastro.senha = LerSenha(6); cadastro.com = i; } } else{ printf("Nome não encontrado!\n"); } break; } } void validar(){ for(i=0;i<cadastro.andar;i++){ cadastro.validarsenha = cadastro.senha; } } void relatorio(){ printf("Pavimentos com senha é: %d\n",pavimentos[indice].com); printf("Pavimentos sem senha é: %d\n",pavimentos[indice].sem); printf("pavimentos cadastrados: %d\n",pavimentos[indice].andar); printf("nome dos pavimentos: %s\n",pavimentos[indice].nomepav); }  
    • Por ricardorstc
      E aí, pessoa tudo certo?
      Estou fazendo um programa que imita uma loja de informática com structs, alocação dinâmica e pilha em c e preciso da ajuda de vcs em algumas funções que não consegui fazer. Preciso que me ajudem fazer uma função para Editar um bloco especifico da pilha, outra função para Apagar um bloco especifico na pilha e uma função para Buscar valores a cima do informado pelo usuário, por exemplo: se o usuário digitar o preço 5, é pra mostrar os produtos com valores acima de 5. Vou mandar o código do que fiz aqui em baixo, mas a função excluir está errada, desconsiderem ela.

       
      #include <stdio.h> #include <stdlib.h> #include <ctype.h> typedef struct kabum {     char desc [30];     int cod;     float valor;     struct kabum *ant; } p; p *novo, *topo=NULL; int i=0; int quant; FILE *arquivo; int inserir () {     printf("\n\n    QUANTOS PRODUTOS QUER CADASTRAR?: ");     scanf("%d",&quant);     for (i=0; i<quant; i++)     {         novo=(p *) malloc (2*sizeof(p));         fflush(stdin);         printf("\n\n    PRODUTO: ");         gets(novo->desc);         printf("    CODIGO: ");         scanf("%d",&novo->cod);         printf("    VALOR: R$");         scanf("%f",&novo->valor);         novo->ant=NULL;         if(topo==NULL) //pilha vazia?         {             topo=novo;         }         else         {             novo->ant=topo;             topo=novo;         }     }     return (0); } int mostrar () {     p *tmp;     tmp=topo;     if (tmp==NULL)   //aqui ele testa p/ saber se a pilha está fazia     {         printf ("\n\n     PILHA VAZIA! INSIRA UM DADO E TENTE NOVAMENTE.\n");     }     else     {         while (tmp!=NULL)         {             printf("\n\n    PRODUTO: %s\n", tmp->desc);             printf("    CODIGO: %d\n",tmp->cod);             printf("    VALOR: R$%0.2f\n\n",tmp->valor);             tmp=tmp->ant;         }     }     return (0); } int deletar () {     char alerta;     p *extra;     extra = topo;     if (topo == NULL)     {         printf ("\n\n     PILHA VAZIA!\n");     }     else     {         printf("\n\n      TEM CERTEZA DE DESEJA EXCLUIR A PILHA? (S/N): ");         scanf("%c",&alerta);         alerta=tolower(alerta);         if (alerta=='s')         {             topo = topo -> ant;             free(extra);             printf("\n      PILHA DELETADA! \n");         }         if (alerta=='n')         {             printf("\n      PILHA NAO DELETADA! \n");         }         if (alerta!='s' && alerta!='n')         {             printf("\n\n      OPCAO INVALIDA\n");         }     }     return(0); } int salvar() {     p *tmp;     tmp=topo;     arquivo=fopen("text.txt","wb");     /*    if (tmp==NULL)         {             printf("\n\n    ERRO AO SALVAR, PILHA ESTA VAZIA. INSIRA UM DADO E TENTE NOVAMENTE! \n");         }*/     while (tmp!=NULL)     {         fprintf(arquivo,"\n\n     PRODUTO: %s \n",tmp->desc);         fprintf(arquivo,"     CODIGO: %d \n",tmp->cod);         fprintf(arquivo,"     VALOR: %f ",tmp->valor);         tmp=tmp->ant;     }     fclose(arquivo);     printf("\n\n    ARQUIVO SALVO COM SUCESSO!\n");     return 0; } int abrir() {     p *tmp;     tmp=topo;     arquivo=fopen("text.txt","rt");     if (arquivo == NULL)     {         printf("\n\n    NAO FOI POSSIVEL ABRIR O ARQUIVO. SALVE E TENTE NOVAMENTE! \n");     }     char frase [10000];     while (fgets(frase, 1000,arquivo)!=NULL)     {         printf("%s\n",frase);     }     fclose(arquivo);     return 0; } void sobre () {     printf("\n\n");     printf("    *================================ SOBRE ================================*\n");     printf("    |                                                                       |\n");     printf("    |PROGRAMA CRIADO UTILIZANDO ALOCACAO DINAMICA, STRUCTS E PONTEIROS, COMO|\n");     printf("    |FORMA DE AVALIACAO DA DISCIPLINA DE ESTRUTURA DE DADOS, DO PROFESSOR:  |\n");     printf("    |GUSTAVO QUIRINO E APRESENTADO EM SALA DE AULA, COM A FINALIDADE DE     |\n");     printf("    |OBTER UMA DAS NOTAS DA SEGUNDA UNIDADE.                                |\n");     printf("    |                                                                       |\n");     printf("    |                          IDENTIFICACAO                                |\n");     printf("    |                                                                       |\n");     printf("    |IFBA - CAMPUS BARREIRAS                                                |\n");     printf("    |TURMA: 732                                                             |\n");     printf("    |CURSO: INFORMATICA                                                     |\n");     printf("    |PROFESSOR: GUSTAVO QUIRINO                                             |\n");     printf("    |COMPONENTES: LUCAS GOMES, MATEUS SENE E RICARDO CARVALHO               |\n");     printf("    |                                                                       |\n");     printf("    =========================================================================\n"); } int main () {     char op_menu=0, op_menu_interno=0; /*variaveis zeradas pq pode ser que o programa seja exacutado mais de uma vez     por isso eu zerei todas, para não pegar os valores das vezes anteriores. A cada nova execução     todas são zeradas*/     do     {         printf("\n\n");         printf("    *======================= MENU PRINCIPAL =========================*\n");         printf("    |                                                                |\n");         printf("    |                                                                |\n");         printf("    |         A - INSERIR                   B - MOSTRAR              |\n");         printf("    |                                                                |\n");         printf("    |         C - DELETAR                   D - EDITAR               |\n");         printf("    |                                                                |\n");         printf("    |         E - BUSCAR                    F - SALVAR               |\n");         printf("    |                                                                |\n");         printf("    |         G - ABRIR                     H - SOBRE                |\n");         printf("    |                                                                |\n");         printf("    |                        S - SAIR                                |\n");         printf("    |                                                                |\n");         printf("    |                                                                |\n");         printf("    ==================================================================\n");         fflush(stdin);         printf("\n    Digite...: ");         scanf("%c", &op_menu);         op_menu=tolower(op_menu);         fflush(stdin); //limpa o buffer do teclado         switch(op_menu)         {         case 'a'  :             fflush(stdin);             system("cls"); //limpa a tela             inserir();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;             fflush(stdin);         case 'b':             system("cls");             mostrar();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;         case 'c':             fflush(stdin);             system("cls");             deletar();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;             fflush(stdin);         case 'd':             fflush(stdin);             system("cls");             printf("você digitou: 4");             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;             fflush(stdin);         case 'e':         case 'f':             fflush(stdin);             system("cls");             salvar();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;         case 'g':             fflush(stdin);             system("cls");             abrir();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;         case 'h':             system("cls");             sobre();             printf("\n");             do             {                 printf("    0 - Menu principal: ");                 scanf("%s",&op_menu_interno);             }             while (op_menu_interno!='0');             system("cls");             break;         case 's':             system("cls");             printf("\n");             printf("Finalizando programa...");             printf("\n");             exit(0);             break;         default:             system("cls");             printf("Codigo invalido! Digite novamente");             break;         }     }     while (op_menu!=5);     return (0); }  
    • Por carol676
      ola fiz esse exercicio roda em alguns compiladores e outros não pq? #include "stdio.h" #include "stdlib.h" #define L 7 #define C 6 int main(void) { int M[L][C]; int x,y,somaL,somaC; somaL = 0;somaC = 0; int soma; // entrando com os dados da matriz 7x6 via parametro printf("Digite ELEMENTO da:\n"); for(x=0;x<L;x++) { for(y=0;y<C;y++) { printf("linha %d, coluna %d da matriz: ",x,y); scanf("%d",&M[x][y]); } } //acumulando a soma da linha 5 e da coluna 3 for(x=0,y=0;x<L,y<C;x++,y++) { somaL = somaL + M[5][y]; somaC = somaC + M[x][3]; } soma = somaL + somaC; // mostrando o resultado da soma da linha + coluna específica L5+C3 printf("\nRESULTADO :\n"); printf("\n Soma dos Elementos da linha 5 e da coluna 3 = %d\n" ,soma); printf("\n\n"); system("pause"); }
    • Por arisuchan
      Estou validando os dados de um vetor de estruturas chamado avião. Como parâmetros, estou passando o vetor alocado com um número predefinido, um contador e a capacidade inicial do vetor. Dentro da função eu realizo um loop com uma variável i setada como zero até o valor da capacidade inicial e vou cadastrando os dados. Vejam que eu utilizo mais a frente uma variável j igualmente setada como zero para utilizar nas comparações.  O erro no código é que a validação das repetições não está acontecendo.
       
       
       
      void cadastrarDadosAvioes(Aviao *aviao, int *contaAviao, int *baseInicial){
          int opcao=0, i, j, flag=1;
          char auxNome[MAX], *result;
          strcpy(auxNome, "");
          
          
          FILE *arquivo;
          //acrescenta dodos ao final ou faz leitura/escrita de arquivo
          arquivo = fopen("avioes.txt", "ab");
          
          if(!arquivo){
              perror("Error ");
              exit(EXIT_FAILURE);
          }else{
          
              do{
                  
                  if(*contaAviao==10){
                      *baseInicial = (*contaAviao)*2;
                      aviao = (Aviao*)realloc(aviao, (*baseInicial)*sizeof(Aviao));
                  }
                  
                  printf("\n\n%d", *baseInicial);
                  
                  for(i=0;i<*baseInicial;i++){
                      if(stricmp((aviao+i)->codigoIdentificacao, "")==0){
                          do{
                              strcpy((aviao+i)->codigoIdentificacao, leValidaCodigoAviao("DIGITE O CODIGO DO AVIAO:", "\nCODIGO DIGITADO INVALIDO!\n"));
                              for(j=0;j<*baseInicial;j++){
                                  if((stricmp((aviao+i)->codigoIdentificacao, (aviao+j)->codigoIdentificacao))==0&&i!=j){
                                      flag=0;
                                      printf("\nCodigo ja existe!\n");
                                  }else{
                                      flag=1;
                                  }
                              }
                              
                          }while(!flag);
                          
                          do{
                              strcpy((aviao+i)->modeloAviao, leValidaTexto("DIGITE O MODELO DO AVIAO:", "\nMODELO NAO PODE SER VAZIO!\n"));
                              for(j=0;j<*baseInicial;j++){
                                  if((stricmp((aviao+i)->modeloAviao, (aviao+j)->modeloAviao))==0&&i!=j){
                                      flag=0;
                                      printf("\nEsse modelo já existe!\n");
                                  }else{
                                      flag=1;
                                  }
                              }
                          
                          }while(!flag);
                          
                          leValidaCapacidade("INFORME A CAPACIDADE DO AVIAO:", "\nCAPACIDADE INVALIDA!\n", &(aviao+i)->capacidade);
                          
                          do{
                              strcpy((aviao+i)->nomeCliente, leValidaTexto("DIGITE O NOME DO CLIENTE:", "\nNOME INVALIDO!\n"));
                              for(j=0;j<*baseInicial;j++){
                                  if((stricmp((aviao+i)->nomeCliente, (aviao+j)->nomeCliente))==0&&i!=j){
                                      flag=0;
                                      printf("\nEsse nome já existe!\n");
                                  }else{
                                      flag=1;
                                  }
                              }
                          
                          }while(!flag);
                          
                          do{
                              
                              strcpy((aviao+i)->nomePais, leValidaTexto("DIGITE O NOME DO PAIS:", "\nPAIS INVALIDO!\n"));
                              
                              if(verifica((aviao+i)->nomePais)==0){
                                  printf("\nEsse paises não está cadastrado!\n");
                                  flag=0;
                                  
                              }else{
                                  flag=1;
                              }
                              
                          }while(!flag);
                          
                          break;
                      }                
                  }
                  fwrite(&aviao[*contaAviao], sizeof(Aviao), 1, arquivo);
              
                  //atualiza contador
                  *contaAviao+=1;
                  
                  
                  printf("(1)- CADASTRAR OUTRO AVIAO\n");
                  printf("(2)- RETORNAR AO MENU\n\n");
                  scanf("%d", &opcao);
                  
                  if(opcao == 2){
                      fclose(arquivo);
                      getch();
                      return;
                  }
                  
              }while(opcao==1&&(*contaAviao<*baseInicial));
              
          }    
      }
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.