C/Visual C - Ejercicio de eleciones

 
Vista:

Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:20:55
Hola! podriais ayudarme a hacer este ejercicio?es que lo tengo que entregar el viernes y no sé como hacerlo, tengo un poco de dudas.Os dejo el denunciado y lo que yevo hecho que ya no sé seguir. Por ejemplo dentro de la primera funcion no sé si tengo que reservar otra memoria para la tabla o ya esta todo, y dentro del switch no sé que poner dentro de cada case porque yo pondria lo de una funcion y no sé si estaria bien.Si alguien es tan amable de ayudarle se lo agradecere mucho.Cualquier ayuda me sirve.GRaCIAS y aqui os lo dejo.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:22:36
El programa ha de permitir que todas las personas que quieran votar se registren i despues puedan hacer su votacion. La aplicacion tambien ha de hacer automaticamente el recuento de votos.Supongamos que en unas eleciones cada mesa electoral dispone de una apliacion como la que estamos haciendo y que por tanto en cada caso el nombre de usuarios está fitado pero dependerá de la mesa elctoral.Seguir estas instruciones:
1)En este programa se necesita definir2 tipos de estructuras:
-una Usuari para guardar las dadas de los usuarios que se registran que tendrá que tener estos campos: nombre, apellidos, dni y voto.Las3primeras serviran para guardar la informacion de los usuarios y la ultimo para indicar si aquel usuario ha votado o no. Cuando declaramos una variable de tipo Usuari inicializaremos siempre el campo voto con 0 y se pondrá un1 cuando el usuario efectue la votacion.
-la otra la yamaremos VOTS que servirá para hacer el recuento. Esta estructura tendrá 5 campos:PSC, CIU, ERC, IC-V, PP (un campo para cadauno de los partidos con representacion parlamentaria).

2) La informacion de los usuarios se guardara en una tabla dinamica donde cada elemento será del tipo Usuari.Por tanto he de declarar un puntero de tipo Usuari que apuntará al primer elemento de la tabla que contenga toda la informacion de los usuarios. Llamarla USUARIS.

3)He de declarar un puntero de tipo VOTS que se yame VOTACIONS y hara falta que se asigne dinamicamente y inicializar a0 todos los campos al comenzar la aplicacion.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:23:47
4)Una vez iniciada la aplicacion, el primero que se ha de hacer es inicializar la votacion. Se pedira al usuario que indique el nombre de personas que hay en la correspondiente mesa electoral y una vez se sepa la cantidad maxima de personas que se pueden registrar se habrá de crear una tabla de tipo USUARI haciendo la correspondiente reserva de memoria (aqui es donde tendré que inicializar el puntero USUARIS).

5)Ara ha de salir por pantalla el menu principal con estas opciones:
1.Registrar un nuevo usuario
2. Hacer una votacion(solo podran hacerlo las personas que se hayan registrado)
3. Ver recuento
4.Salir
Este menu tiene que salir por pantalla cada vez que un usuario haga una acion y hasta que alguien selecione la opcion salir.

6) La opcion Registrar un nuevo usuario ha de permitir entrar todas las dadas del nuevo usuario y estas han de quedar guardadas a la tabla, al priemero espacio que este libre. A parte, cada vez que se introduzca un nuevo usuario hara falta de entrada inicializar a 0 el campo VOT. Al final ha de salir por pantalla un mensaje que diga que el usuario se ha de registar correctamente.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:24:28
7) La opcion haceruna votacion ha de permitir que una persona que esté ja registrada pueda votar. De entrada habrá que pedir el DNI de la persona que quiera votar y se habran de buscar las dadas de esta persona. Si la persona no está registrada ha de salir por pantalla un mensaje que diga "Antes de votar tienes que estar registrado".Si la persona ja está registrada han de salir por pantalla las dadas de esta persona y se ha de mirar si la persona ha votado ja o no. Si la persona ha votado ha de salir por pantalla el mensaje que diga "Ja has votado.Solo puedes votar una vez".Si la persona no ha votado el programa ha de preguntar a quien se quiere votar.Han de salir por pantalla las opciones:
1.PSC
2.CIU
3. ERC
4. IC-v
5.PP
Hace falta escanear la opcion escogida por el usuario i incrementar en 1 el campo correspondiente de VOTACIONS. Tendremos que canviar despues el valor del campo VOT de esta persona por un 1 para que no pueda votar otra vez.

8)La opcion ver recuento ha de permitir visualizar por pantalla la cantidad de votos que ha recibido cada partido hasta ese momento, es decir, las dadas que hay en cadauno de los campos de VOTACIONS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:25:05
9)La opcion Salir ha de preguntar al usuario si está seguro que quiere salir del programa y si se contesta que sí ha de salir de la aplicacion. Si el usuario contesta que no ha de volver a salir por pantalla el menu principal.

me dice las funciones que tengo que utilizar, es un ejericio interesante, tengo ganas de verlo hecho y probarlo, estas son las funciones:
USUARI*INICIALIZACION-VOTACION(VOID)
(ha de pedir el nombre de personas de la mesa electoral y crear la tabla, reservando la memoria necesaria).

VOID AFEGIR_USUARI(USUARI*,INT*)
(permitira añadir un nuevo usuario a la tabla USUARIS, recibira un puntero a un entero donde su contenido será la posicion en la que se encuentra dentro de la tabla el ultimo usuario que se ha registrado. Dentro de esta funcion se ha de actualizar este valor(incrementarlo en 1) una vez se haya añadido el nuevo usuario)

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:25:37
VOID MENU_VOTACIO(VOID)
(ha de mostrar por pantalla las opciones de la votacion)

INT BUSCAR-USUARI(USUARI*, CHAR*)
(funcion que recibe el apùntador al primer elemento de la tabla USUARIS y una cadena de caracteres(con un DNI). lo que hace es buscar en que posicion se encuentre el usuario que tiene ese DNI y la devuelve. Si no encuentra ninguna devuelve un -1.

VOID FER_VOTACIO(INT, VOTS*, USUARI*)
(se recibira un valor entero indicando que partido se vota (de acuerdo con las opciones que se indiquen al menu de votacion).esta funcion ha de actualizar los contenidos del puntero VOTACIONS. Tambien se recibe el puntero que apunta a la persona que hace la votacion. Tambien habra de poner un 1 al correspondiente campo vot de esa persona.
Observacion:como hay que mirar que la persona esté registrada y en caso de que lo esté asegurarse que no ha votado, se ppodria utilizar la funcion switch.
Observacion2:para optimizar el codigo de este procedimiento se ha de hacer llamadas al procedimiento BUSCAR_USUARI que se describe anteriormente).

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:26:11
VOIS VEURE_RECOMPTE(VOTS*)
(este procedimiento ha de mostrar por pantalla los contenidos del puntero VOTACIONS)

Yo creo que está bien explicado tod paso por paso, pero soy incapaza de acabarlo, no sé como hacerlo y el profesor va de rally y me hago un lio, haber si alguien tiene tiempo y me ayuda se lo agradecere mucho, tengo que entregarlo el viernes y tengo mas ejercicios para hacer pero con los demas ya me estoy apañando pero este me atasque.os dejo el codigo, me falta rellenar cosas q no sé que va en cada funcion exactamente.
Gracias de antelacion y saludos

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

typedef struct
{
char nom[100];
char cognoms[100];
int dni;
char vot;
}usuari;

typedef struct
{
int PSC;
int CIU;
int ERC;
int IC_V;
int PP;
}vots;

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:27:09
usuari* inicialitzacio_votacio(void)
{
vots *votacions;
int L, PSC=0, CIU=0, ERC=0, IC_V=0, PP,=0;

printf("Quantes persones hi han a la mesa electoral?: ");
scanf("%d", &L);

votacions= (vots*) malloc(L*sizeof(vots))

return votacions;
}

void menu_principal(void)
{
int opcio;
char resp;

do {
printf("MENU\n");
printf("1.-Registrar un nou usuari\n");
printf("2.-Fer una votacio\n");
printf("3.-Veure recompte\n");
printf("4.-Sortir\n");
printf("Tria una opcio: ");
opcio=getchar();
fflush(stdin);

switch(opcio)
{

case 1:

getch();
break;
case 2:
printf("
getch();
break;
case 3:
printf("
getch();
break;
case 4: printf("Estas segur que vols sortir del programa? S/N: ");
resp=getchar();
break;
default:
printf("Opcio incorrecta");
break;
}
} while(opcio!=4 || resp!='S' || resp!='s');
}


Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:27:52
void afegir_usuari(usuari*, int*)
{
usuari *usuaris;
int L;

usuaris=(usuari*)malloc(L*sizeof(usuari));

printf("Introdueix el teu nom: ");
scanf("%s", &usuaris->nom);
printf("Introdueix els teus cognoms: ");
scanf("%s", &usuaris->cognoms);
printf("Introdueix el teu DNI: ");
scanf("%d", &usuaris->dni);
printf("Introdueix el partit al qual votes: ");
scanf("%s", &usuaris->vot);
}
void menu_votacio(void)
{
int partit;

do {
printf("MENU\n");
printf("1.-PSC\n");
printf("2.-CIU\n");
printf("3.-ERC\n");
printf("4.-IC_V\n");
printf("5.-PP\n");
printf("6.-Sortir\n");
printf("Tria una opcio: ");
partit=getchar();
fflush(stdin);

switch(partit)
{

case 1:

getch();
break;
case 2:
printf("
getch();
break;
case 3:
printf("
getch();
break;
case 4:
break;
case 5:
break;
case 6:
break;
default:
printf("Opcio incorrecta");
break;
}
} while(partit!=6);
}

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:28:13
int buscar_usuari(usuari*, char*)
{

}

void fer_votacio(int, vots*, usuari*)
{

}

void veure_recompte(vots*)
{
int i, j;

for(i=0; i<L;i++){
j=1;
while(j<5 && vots[j]!=*votacions)
j=j+1;
if (vots[j]=*votacions[i])
vots[j]=vots[j]+1;
}
}

void main()
{
vots *votacions;
usuari *usuaris;
int opcio;

votacions=inicialitzacio_votacio();
free(votacions);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejercicio de eleciones

Publicado por nieves (11 intervenciones) el 24/11/2004 02:29:32
Lo siento por poner tantas cosas, es que no me dejaba ponerlo todo en uno solo, si alguien sabe hacerlo o me quiere ayudar que me lo diga y se lo envio x email si lo veis mas facil.Gracias si alguien me dedica su tiempo se lo agradecere mucho.Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar