Ir para conteúdo

POWERED BY:

Arquivado

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

dark_wolk

programa em C

Recommended Posts

Ai galera to fazendo um programa em C de eleicoes so com candidatos a prefeito...

 

naum consigo ver o erro, mas tem ora q o programa funciona e tem ora q naum...

 

naum sei o q pode estar acontecendo

 

ai esta o codigo

 

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

#define strCand "Candidatos.txt"
#define TAM 10000
#define MAX 100

struct eleitores
{
   char nome[MAX];
   char sexo[10];
   long int numeroTitulo;	 
};
struct eleitores Eleitor[];

struct candidatos
{
   char nomeCompleto[MAX];
   int numero;
   char sexo[10];
   int votos;			
};
struct candidatos Candidato[];

int vetorVotos[],qtdcand,qtdeleitores,qtdvotos;

void listaEleitores()//Lista os eleitores
{
	int cont;
	for(cont = 0;cont < qtdeleitores;cont++)
	{	 
		printf("Dados do %do. eleitor: \n",cont+1);
		printf("\n\tNome: %s\n",Eleitor[cont].nome);
		printf("\tSexo: %s\n",Eleitor[cont].sexo);
		printf("\tTitulo: %ld\n",Eleitor[cont].numeroTitulo);
	}
	getchar();
	getchar();
}
void cadastraCandidato()//Cadastra os candidatos
{
	 int cont;
	 
	 printf("Qtd. de Candidatos: ");
	 scanf("%d",&qtdcand);	  
	 
	 for(cont = 0;cont < qtdcand;cont++)
	 {
		printf("\tNome do do candidato : ");
		scanf("%s",Candidato[cont].nomeCompleto);
		printf("\tSexo: ");
		scanf("%s",Candidato[cont].sexo);
		printf("\tNumero: ");
		scanf("%d",&Candidato[cont].numero);
	 }
	 getchar();
	 getchar();
}

void listaCandidatos()//Lista os candidatos
{
	int cont;
	for(cont = 0;cont < qtdcand;cont++)
	{
		printf("\n\tNome: %s\n",Candidato[cont].nomeCompleto);
		printf("\tSexo: %s\n",Candidato[cont].sexo);
		printf("\tNumero: %d\n",Candidato[cont].numero);
	}
	getchar();
	getchar();
}
 
void realizaVotacao()//Guarda os votos
{
	int cont,opcao; 
	cont = 0;
	qtdvotos = 0;
	do{
		printf("\tNome: ");
		scanf("%s", Eleitor[cont].nome);
		printf("\tSexo: ");
		scanf("%s", Eleitor[cont].sexo);
		printf("\tTitulo: ");
		scanf("%ld",&Eleitor[cont].numeroTitulo);
		  
		if(Eleitor[cont].numeroTitulo == 0)
		break;
		  
		qtdeleitores++;
					   
		CORRIGE:				 
		printf("\nEntre com o numero do candidato: ");
		scanf("%d",&vetorVotos[cont]);
		printf("\t1 - CONFIRMA\n\t2 - CORRIGE\n\t3 - SAIR\n");
		scanf("%d",&opcao);
		if(opcao == 1){
		printf("Voto confirmado\n");
		cont++;qtdvotos++;}
		else if(opcao == 2)
		goto CORRIGE;
	}while(opcao != 3);
	
	getchar();
	getchar();
}

void contaVotos()//Conta os votos comparando com o vetor de votos
{
	int i,j;
	
	for(i = 0;i < qtdvotos;i++)
	{   
		for(j = 0;j < qtdvotos;j++)
		{	 
			  if(vetorVotos[j] == Candidato[i].numero)
			  {
				Candidato[i].votos++;		   
			  } 
		}				   
	}
}
void resultadoVotacao()//Mostra resultado da eleicao
{
	int t,maior,votos;
	contaVotos();
	maior = 0;
	votos = 0;
	for(t = 0;t < qtdcand;t++)
	{  
		  printf("Numero: %d\n",Candidato[t].numero);
		  printf("Prefeito: %s\n",Candidato[t].nomeCompleto);
		  printf("Sexo: %s\n",Candidato[t].sexo);
		  printf("Votos: %d\n\n", Candidato[t].votos);
		  if(Candidato[t].votos > maior)
		  {
			  maior = Candidato[t].numero;
			  votos = Candidato[t].votos;
		  }
	}
	printf("Vencedor -> %d\nVotos - > %d\n",maior,votos);
	getchar();
	getchar();
}
void abrirReadme()//Abrir o readme
{
	FILE *arquivo;
	char letra;
	arquivo = fopen("readme.txt", "r");
	if (arquivo == NULL) {
		printf("Erro ao tentar abrir o arquivo.\n");
	}
	while (!feof(arquivo)) {
		fscanf(arquivo, "%c", &letra);
		printf("%c", letra);
	}
	fclose(arquivo);
	getchar();
	getchar();
}	  
	 
void trataOpcao()//Mostra menu e verifica a escolha chamando cada funcao correspondente
{
	 int opcao;		   
	 do{
		  printf("\t\t	----URNA 2008----\n\
		  =======================================\n\
		  | 1 - Cadastrar candidatos\t\t|\n\
		  | 2 - Iniciar votacao\t\t\t|\n\
		  | 3 - Listar eleitores\t\t|\n\
		  | 4 - Listar candidatos\t\t|\n\
		  | 5 - Fechar votacao\t\t\t|\n\
		  | 6 - Abrir README\t\t\t|\n\
		  | 0 - Sair\t\t\t\t|\n\
		  =======================================\n");		   
		  printf("\nEntre com a opcao: ");
		  scanf("%d",&opcao);
		  
		  switch(opcao){
			 case 0:exit(0);break;		   
			 case 1:cadastraCandidato();break;
			 case 2:realizaVotacao();break;
			 case 3:listaEleitores();break;
			 case 4:listaCandidatos();break;
			 case 5:resultadoVotacao();break;
			 case 6:abrirReadme();break;
			 default:printf("\aOpcao invalida! Tente outra vez...\n");
		  }
	 }while(opcao != 0);
}

int main()
{	   
		trataOpcao();	 
		return 0;
}

por favor naum consigo ver o erro...

 

ou os erros...

 

socorroooooooo !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara tem oras q funciona e tem oras q naum...

 

na verdade o real problema eh q as vezes qdo se executa a eleicao o mesmo q eu tenha entrando com um certo numero de candidatos...

 

tem ora q sao mantidos e tem ora q naum...

 

ai mistura as coisas e aparace nome de eleitor como candidato qdo coloca pra listar os candidatos...

 

o interessante eh q qdo listo os eleitores tah td legal lah ...

 

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala pra mim a ordem das opções q você usa qnd da algum problema?

tipo oq você faz primeiro, cadastra, lista, tipo isso..

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

achu q eh a ordem q eu faco as coisas que ta dando problema...

 

primeiro cadastro os candidatos...

 

depois inicio a votacao...

 

cadastrando os eleitores e votando...

 

depois qdo termino... verifico os eleitores cadastrados tah beleza...

 

so q qdo verifico os candidatos da problema...

 

e pra fechar a votacao da problema tb

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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