Ir ao conteúdo
  • Cadastre-se

Programa em C++


matheusnic

Posts recomendados

Tenho que entregar um programa que me diga qual candidato foi o mais votado,

O programa ja tem 6 arquivos .txt(candidatos, partidos, urna1, 2, 3, 4.)

Cada candidato tem seu numero e nas urnas o numero que mais se repete é o ganhador...

Eu ja li e exibi os 2 primeiros arquivos, li as urnas, mas só falta fazer algo que faça com que me diga qual o numero que mais se repete.

Programa:

#include <iostream>

#include <iomanip>

#include <fstream>

#include <strings.h>

using namespace std;

class teste

{

public:

int ct1;

int ct2;

int ct3;

struct bla

{

int numerocandidato;

string nomecandidato;

string siglapartido;

};

struct ble

{

string nomepartido;

string siglapartido;

};

struct urna1

{

int numerocandidato;

};

bla concorrentes[1000];

ble legenda[1000];

urna1 votos[1000];

void leituraa()

{

int numerocandidato;

string nomecandidato;

string siglapartido;

int vet1=0;

ifstream ler;

ler.open("candidatos.txt");

while(ler)

{

ler>>numerocandidato;

ler>>nomecandidato;

ler>>siglapartido;

concorrentes[vet1].numerocandidato=numerocandidato;

concorrentes[vet1].nomecandidato=nomecandidato;

concorrentes[vet1].siglapartido=siglapartido;

vet1++;

}

ler.close();

ct1=vet1;

}

void leiturab()

{

string nomepartido;

string siglapartido;

int vet2=0;

ifstream ler;

ler.open("legenda.txt");

while(ler)

{

ler>>siglapartido;

ler>>nomepartido;

legenda[vet2].nomepartido=nomepartido;

legenda[vet2].siglapartido=siglapartido;

vet2++;

}

ler.close();

ct2=vet2;

}

void leiturac()

{

int numerocandidato;

int vet3=0;

ifstream ler;

ler.open("urna1.txt");

while(ler)

{

ler>>numerocandidato;

votos[vet3].numerocandidato=numerocandidato;

vet3++;

}

ler.close();

ct3=vet3;

}

void show()

{

int cont1=0;

cout<<"lista de candidatos"<<endl;

for(cont1=0;cont1<ct1;cont1++)

{

cout<<concorrentes[cont1].numerocandidato<<" ";

cout<<concorrentes[cont1].nomecandidato<<" ";

cout<<concorrentes[cont1].siglapartido<<endl;

}

cout<<"legenda dos partidos"<<endl;

for(cont1=0;cont1<ct2;cont1++)

{

cout<<legenda[cont1].nomepartido<<" ";

cout<<legenda[cont1].siglapartido<<endl;

}

}

};

int main()

{

teste run;

run.leituraa();

run.leiturab();

run.leiturac();

run.show();

}

Link para o comentário
Compartilhar em outros sites

Estou com preguiça de digitar um código, então vai a descrição.

Primeiro tem que saber, o número dos candidatos é ordenado ou aleatório. Ou seja, existem o candidato 0,1,2,3 ou 25,28,33,67,etc.?

Se for o segundo caso aí você precisa criar uma matriz de "controle" com os códigos e qual será o número correspondente na matriz de contadores. Quando estiver lendo os arquivos você vê o código, procura o código na matriz de controle, e quando achar incrementa na matriz de contadores (na mesma posição encontrada). No final é só comparar os elementos da matriz de contadores e selecionar o maior, aí você vê qual o código correspondente àquela posição (candidato com código 37023, por exemplo).

O partido será irrelevante nisso tudo, devido às características específicas do problema.

Link para o comentário
Compartilhar em outros sites

Mai fácil ainda, daí não precisa da matriz de controle, cada posição na matriz de contadores vai corresponder a um candidato específico. Se você lê no arquivo que teve 1 voto para o candidato 20 você vai para o 20º elemento da matriz e soma +1.

ifstream file;
file.open("urna1.txt");//testa se foi aberta com sucesso, se não deu tenta várias vezes ou encerrawhile(file.eof()!=0){    file>>x;    cont[x-1]++;}file.close;

OBS: x-1 porque a contagem da matriz começa em 0.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!