Ir para conteúdo
J.Pedro_OR

Como fazer um comando dentro do case para reiniciar o switch

Recommended Posts

Eu preciso fazer o sistema de uma urna eletrônica para um trabalho, e eu utilizei a estrutura de switch para fazer o menu de candidatos, e quero que o eleitor tenha a oportunidade de confirmar ou corrigir depois de escolher seu candidato. O problema é que eu não sei como fazer o switch reiniciar para que o eleitor possa escolher outro case, sendo que ele já havia selecionado um. Que é o que o botão "corrigir" faz. Segue o código produzido até agora:


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

int main(void) {

  int confirmar, corrigir, candidato, titulo;
  int maeli, antonio, lissandro, branco, nulo;
  int condicaoverdade=1;

  printf("Digite seu núemro de eleitor:");
  scanf("%d", &titulo);

  printf("Candidatos para Presidente: \n");
  
  printf("Sra. Maeli Gente Boa nº17 \n");
  printf("Sr. Antônio do Brasil nº22 \n");
  printf("Dr. Lissandro Progresso nº31 \n");
  printf("Digite 1 para branco \n");
  printf("Digite o número de um candidato não existente para votar nulo \n");
  scanf("%i",&candidato);

  while(condicaoverdade){

    switch(candidato){

    case 17:
      printf("Sra. Maeli Gente Boa nº17 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        maeli++;
        break;
      }
      else if (confirmar == 'r'){
        condicaoverdade = 1;
      }
      break;

    case 22:
      printf("Sr. Antônio do Brasil nº22 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c'){
        condicaoverdade = 0;
        antonio++;
      }  
      else if (confirmar == 'r'){
        condicaoverdade = 1;
      }
      break;

    case 31:
      printf("Dr. Lissandro Progresso nº31 \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        lissandro++;
      }  
      else if (confirmar == 'r'){
      condicaoverdade = 1;
      }
      break;

    case 1:
      printf("branco \n");
      printf("aperte \"c\" para confirmar \n");
      printf("aperte \"r\" para corrigir \n");
      scanf("%i",&confirmar);
      if (confirmar == 'c' ){
        condicaoverdade = 0;
        branco++;
      }  
      else if (confirmar == 'r'){
      condicaoverdade = 1;
      }
      break;

    default:
    printf("nulo \n");
    printf("aperte \"c\" para confirmar \n");
    printf("aperte \"r\" para corrigir \n");
    scanf("%i",&confirmar);
    if (confirmar == 'c' ){
      condicaoverdade = 0;
      nulo++;
    }
    else if (confirmar == 'r'){
      condicaoverdade = 1;
    }
    break;
  
  }
  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 laumello12
      Galera ajudinha
      Como faço para consumir um web service pronto em um projeto. Preciso só que ele busque no web service e traga na web 
      HELP
    • Por ValérinhaSilva255
      Precisamos criar um teatro, onde utilizaremos os conceitos de uma matriz em C#. Esta matriz, deverá ter, no máximo, 150 lugares.

      O programa deverá reservar uma poltrona, cobrando para isso do usuário 40% do valor total do ingresso, que deverá ser informado na tela inicial do programa.

      Quando ocupada uma poltrona, o usuário poderá pagar 60% ou 100% do valor total (caso esteja ou não reservada anteriormente). No caso de desmarcação de reserva, deverá ser devolvido 50% do valor da reserva (portanto, 20% do valor total do ingresso).

      O programa poderá ocupar, reservar, liberar poltronas.
      Um espetáculo somente poderá acontecer se a arrecadação total for maior ou igual a 51% do valor total do teatro. 

      Quando o teatro for fechado, pede-se para que se informe:
      Total de Lugares reservados: XX
      Valor total das reservas: R$00,00
      Total de Lugares Ocupados: YY
      Valor total de Ocupantes: R$00,00
      Total de Lugares Livres: ZZ

      Mínimo para realização do Evento: R$999,99. Valor Total Arrecadado: R$989,00
      Se o valor arrecadado for MAIOR que 51% do mínimo para realização, deverá ACONTECER o espetáculo, caso contrário, mostrar quantos locais ainda precisariam ser ocupados, da seguinte forma: Precisaríamos de 10 lugares Ocupados ou 30 lugares reservados para que o espetáculo pudesse ocorrer.

      O visitante deverá ter o “mapa” de cadeiras a sua disposição.

      O visitante irá escolher sua posição informando fileira e cadeira desejada.
      EXEMPLO DE EXECUÇÃO
      PREÇO DO INGRESSO: R$100,00

      ***** ***** ****** Mapa do Teatro ***** ***** *****

      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

      ***** ***** ****** Mapa do Teatro ***** ***** *****

      O que você deseja fazer?
      [0] - Finalizar o programa
      [1] - Abrir Espetáculo
      [2] - Reservar uma poltrona
      [3] - Liberar poltrona reservada
      [4] - Vender poltrona
      [7] - Finalizar vendas
      [9] - Parciais do Espetáculo

      Resumo das Operações:
      0 - Finaliza o programa e retorna para o sistema operacional.
      1 - Libera a sala do teatro, para que o programa possa ser executado outras vezes, para outros espetáculos (Zera todas as variáveis).
      2 - Reservar poltrona (Cobrar 40% do valor do ingresso)
      3 - Liberar poltrona reservada (Devolve 20% do valor do ingresso)
      4 - Vender poltrona (Recebe valor integral do ingresso - 100%)
      7 - Finalizar vendas (listar todos os resultados)
      9 - Parciais (saber quanto esta pago em cada situação. Reservas, vendas, etc.) Pode ser solicitado a qualquer momento.
    • Por Fiori
      Eu, estou cursando SI, e estou no primeiro semestre, o professor passou uma lista de exercícios, consegue resolver todos mas quando cheguei nesse não consigo resolver.
      O exercício é esse:  "Entrar via teclado com o sexo de determinado usuário, aceitar somente “F” ou “M” como respostas válidas.".
      Independente se a resposta for "F", "f", "M", "m" ou qualquer outra o loop do Do se repete. Oque preciso fazer para acontecer o if?
      string genero; Console.Clear(); Console.WriteLine("Caso seja mulher, digite [F]."); Console.WriteLine("Caso seja homem, digite [M]."); genero = Console.ReadLine(); do { Console.WriteLine("Valor invalido."); Console.WriteLine("Digite [F] ou [M]."); genero = Console.ReadLine(); } while (genero != "F" || genero != "M"); if (genero == "F" || genero == "M") { Console.WriteLine("Esse valor foi aceito."); Console.ReadKey(); }
       
    • Por Jonathacsantos
      Boa tarde, sou novo na programação, comecei por conta própria e agora estou com um pequeno problema, meu programa depende de uma pasta criada pra executar um .exe que fica dentro de uma outra pasta, sendo que eu preciso que ele leia o .exe independente de onde ele fica instalado, vou mostrar uma parte do código para tentar explicar 
      private void AcessRemo_Click(object sender, EventArgs e) { foreach ( var process in Process.GetProcessesByName("TeamViewer")) { process.Kill(); } Process.Start("C:\\Teste\\suporteremoto.exe"); ele fecha um teamviewer em execução e executa uma versão especifica do teamviewer, sendo que nos meus testes funciona pq eu tenho essa pasta ai chamada teste, mas o programa instala em Program Files, sendo que se for 64, ele vai pra Program Files (x86), dai gostaria de fazer ele ler, tipo um [LocalPath] , mas não sei como , se alguem puder me ajudar ou me da uma luz eu agradeço muito.
    • Por lucasrodrigues
      Estou com esse problema ao tentar vincular uma tabela do MySql a um DataSet. Utilizo o MySqlConnector 8.0.13, MySql-For-VisualStudio 1.2.8.

×

Informação importante

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