1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Procurar e salvar em arrays

Estou criando uma programinha que recebe nome do eleitor, nome e numero do candidato e os votos (foi criado uma struct para eleitor, candidato e para os votos). Preciso, no momento da eleição, receber os votos apenas dos eleitores que estão cadastrados e guardar os votos no array "votos", mas meu código só deixa armazenar se for inserido na mesma ordem de cadastro dos eleitores.

```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Urna_eletronica
{
    //Programa Urna eletronica
    //Estrutura de dados
    //Autor: 
    //Data: 28/03/2015
    class Program
    {
        //Criando uma estrutura eleitores
        public struct eleitores
        {
            public string nome;
            public int titulo_eleitoral;
            public string data_nasc;
        }

        //Criando uma estrutura canditados
        public struct candidatos
        {
            public string nome;
            public int nro_candidato;
        }

        //Criando uma estrutura urna
        public struct urna
        {
            public string nome_eleitor;
            public int nro_candidato;
        }
        static void Main(string[] args)
        {
            int tam = 3;
            //Instanciando as structs com vetor definido
            candidatos[] candidatos = new candidatos[tam];
            eleitores[] eleitores = new eleitores[tam];
            urna[] urna = new urna[tam];

            //Variaveis
            int opcao, i = 0;
            int cont = 0;

            //Menu principal
            Console.WriteLine("   URNA ELETRONICA");
            Console.WriteLine("- - - - - - - - - - -");
            do
            {
                Console.WriteLine("Escolha uma opcao: ");
                Console.WriteLine();
                Console.WriteLine("1: Cadastro de Candidado");
                Console.WriteLine("2: Cadastro de Eleitor");
                Console.WriteLine("3: Votar");
                //Opcao 4 apenas para testar as inserções
                Console.WriteLine("4: Ver");
                Console.WriteLine("0: Sair");
                //Lendo a opcao
                Console.WriteLine();
                Console.Write("Opcao: ");
                opcao = Convert.ToInt16(Console.ReadLine());
                Console.Clear();

                switch (opcao)
                {
                    case 1:
                        for (i = 0; i < tam; i++)
                        {
                            Console.WriteLine("Cadastro de Candidatos");
                            Console.WriteLine();
                            Console.Write("Nome do candidato: ");
                            candidatos[i].nome = Console.ReadLine();
                            Console.Write("Numero do candidato: ");
                            candidatos[i].nro_candidato = Convert.ToInt16(Console.ReadLine());
                            Console.Clear();
                        }
                        break;
                    case 2:
                        for ( i = 0; i < tam; i++)
                        {
                            Console.WriteLine("Cadastro de Eleitores");
                            Console.WriteLine();
                            Console.Write("Nome do eleitor: ");
                            eleitores[i].nome = Console.ReadLine();
                            Console.Write("Titulo eleitoral: ");
                            eleitores[i].titulo_eleitoral = Convert.ToInt16(Console.ReadLine());
                            Console.Write("Data de nascimento(DD/MM/AAAA): ");
                            eleitores[i].data_nasc = Console.ReadLine();

                            Console.Clear();
                        }
                        break;
                    case 3:
                        {
                            string eleitor;
                            int voto;

                            for (i = 0; i < tam; i++)
                            {
                                Console.Write("Nome do eleitor: ");
                                eleitor = Console.ReadLine();
                                Console.Write("Numero do candidato: ");
                                voto = Convert.ToInt16(Console.ReadLine());
                                Console.Clear();

                                        if (eleitor != eleitores[i].nome)
                                        {
                                            i++;
                                        }
                                        else
                                        {
                                            cont = cont + 1;
                                        }
                                    {
                                        if (cont == 1)
                                        {
                                            urna[i].nome_eleitor = eleitor;
                                            urna[i].nro_candidato = voto;
                                        }
                                        else
                                            Console.Write("Usuario duplicado");
                                        cont = 0;
                                    }
                            }
                            break;
                        }
                    case 4: // será retirada
                        for (i = 0; i < tam; i++ )
                        {
                            Console.WriteLine(urna[i].nome_eleitor);
                        }
                            break;
                }
            } while (opcao != 0);
            Console.WriteLine("Finalizando o serviço");
            Console.ReadKey();
            }
    }
}
  • Tá faltando código ai cara, posta todo o seu código, onde você declara o array eleitores, o array urna etc. Pelo o que to percebendo você está comparando o eleitor digitado com o eleitor na posição 1 do array, depois com a posição 2 e por ai vai... não deve fazer isso, deve percorrer todo o array eleitores e verificar se o nome digitado existe(pode ser com um for it)

    Guilherme Topanotti   06 de abr de 2015
  • Adicionei na pergunta

    Chayenne   06 de abr de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags c# ou faça a sua própria pergunta.