Вы находитесь на странице: 1из 13

Pontificia Universidad Católica de Valparaíso

Facultad de Ingeniería
Escuela de Ingeniería Informática

INFORME PROYECTO PARTE A

“Planificación de Votantes-Locales de Sufragio para elecciones”

Integrantes: Ivonne Ramírez Fuster

Cristián Bascuñán López

1
Índice

Paginas

1……………………………………………………………………………….……………portada

2………………………………………………………………………………………………índice

3……………………………………………………………………….……Dominio del Problema

4…………………………………………………………………………………………….Análisis

5…………………………………………………………………………………..………….Diseño

6…………………………………………………………….…….Esquemas de estructura de datos

7………………………………………………………...…………………….….Diagrama de flujo

8………………………………………………………………………………….Diagrama de flujo

9……………………………………………………………………………….…Diagrama de flujo

10……………………………………………………………………..…..Tabla de Gantt del grupo

11…………………………………………...………………..Tabla de Gantt de Cristian Bascuñán

12……………………………………………………...………..Tabla de Gantt de Ivonne Ramírez

13………………………………………………………………………………………..Conclusión

2
Dominio del Problema

En el informe se presentará y analizará el problema de una planificación de Votantes-Locales de Sufragio para


elecciones en la quinta región. Para un mejor entendimiento del problema se decidió dividir la región en provincias
y éstas en comuna, y determinar así los locales de votación que serán a su vez divididos en locales de votación para
Hombres y Locales de votación para Mujeres.
Se considerará que cada local de votación consta de 10 salas aproximadamente las cuales contendrán 2 mesas cada
una y en cada mesa se podrán registrar como máximo 300 personas, lo que da un total de 6000 personas por local de
votación.
Para asignar a cada persona un local y número de registro, se necesitará: nombre completo, sexo, dirección y rut.
Se utilizará el programa para asignar solamente el local de votación para cada persona registrada, suponiendo que
cada persona conociendo su número de registro en su local designado encontrará su sala y mesa respectiva.

3
Análisis

Para la solución al problema se utilizarán las técnicas y conocimientos adquiridos en clases de Estructuras de
Programación, aplicando listas, matrices, estructuras, etc.
Se utilizarán 3 estructuras estáticas, 2 de ellas serán arreglos, en donde el primero de ellos será de provincias y en
cada una de sus celdas contendrá un puntero apuntando al segundo arreglo de comunas, que en cada una de sus
celdas habrá un puntero que apuntará a una matriz de 2X15, tercera estructura estática, que dividirá los locales de
votación de esta comuna , en locales Masculinos y Femeninos, y en cada una de sus celdas habrá un puntero
apuntando a la cabeza de una estructura dinámica que será una lista, y en cada nodo de esta lista se almacenarán los
datos de cada votante.

4
Diseño

El problema será resuelto con un programa implementado en lenguaje de programación C, en cual constará primero
con un MENÚ INICIAL, en donde se mostrarán cinco opciones de las cuales el usuario deberá elegir una. Estas
cinco opciones serán:
1. Registrar nuevo votante
2. Buscar votante
3. Eliminar votante
4. Eliminar local de votación
5. Salir.
Luego de elegir cualquiera de estas primeras 4 opciones se mostrarán por pantalla una tabla que le asignará a cada
provincia, comuna y local un número determinado que servirá como identificación de éstas, y así al ingresar
provincia, comuna o local se ingresará el número que este tiene asignado.
Al elegir la primera opción “Registrar nuevo votante” el programa pedirá los siguientes datos: provincia, luego
comuna, y finalmente sexo. Con estos datos asignará un local y pedirá nombre completo, rut y dirección, así podrá
asignar un número de registro.
La segunda opción “Buscar votante”, pedirá por pantalla el rut y comuna de la persona buscada. En base a lo
ingresado mostrará los datos por pantalla de la persona si existe registro, de lo contrario dirá que tal persona no se
encuentra registrada.
La tercera opción “Eliminar votante” se pedirá por pantalla el rut y comuna de la persona a eliminar. Mostrará los
datos de la persona, si no existe persona registrada con ese rut avisará que no se encuentra registrada tal persona; en
el caso de que se encuentre el registro mostrará por pantalla los datos y preguntará si realmente se desea eliminar el
registro.
La cuarta opción “Eliminar local de votación” se solicitará por pantalla ingresar provincia, comuna y local a
eliminar. El programa volverá a preguntar si está seguro de eliminar dicho local, luego a cada votante registrado se
le asignará un nuevo local, de esta manera éste quedará eliminado.
La última opción “salir” es simplemente para salir del programa.

5
Estructura general de organización de los elementos (estructuras de datos).

Provincia Locales
Comuna

2° Nivel de Anidación

1° Nivel de Anidación

Votantes

Head

Struct
Nombre
Rut
Direccion
N° de Registro

3° Nivel de Anidación

6
Agregar – en el último nivel de anidación
Menú Principal:
1. Registrar nuevo votante
2. Buscar votante
Menú Principal 3. Eliminar votante
4. Eliminar local de votación
5. Salir.

If 1

Provincias:
1.- Provincia 1
Printf (“Menú Provincias”) 2.- Provincia 2
Printf (“Input Provincia”) 3.- Provincia 3
4.- Provincia 4
Scanf (“%d”, provincia) 5.- Provincia 5
Etc...

Comunas:
Printf (“Menú Comunas”) 1.- Comuna 1
Printf (“Input Comuna”) 2.- Comuna 2
3.- Comuna 3
Scanf (“%d”, comuna) Etc...

Printf (“Menú Sexo”) Sexo:


1.- Masculino
Printf (“Input Sexo”) 2.- Femenino
Scanf (“%d”, &sexo)

Printf (“Local %d”, local )


Printf (“Input Nombre”)
Gets (nombre)
Printf (“Input Dirección”)
Gets (direccion)
Printf (“Input Rut”)
Scanf (“%d”, rut)

Printf (“N° NO
IF Printf (“Rut
de Registro
no Válido” )
%d”, reg )

7
Buscar – en el ultimo nivel de anidación
Menú Principal:
1. Registrar nuevo votante
2. Buscar votante
Menú Principal 3. Eliminar votante
4. Eliminar local de votación
5. Salir.

If 2

Provincias:
1.- Provincia 1
Printf (“Menú Provincias”) 2.- Provincia 2
Printf (“Input Provincia”) 3.- Provincia 3
4.- Provincia 4
Scanf (“%d”, provincia) 5.- Provincia 5
Etc...

Comunas:
Printf (“Menú Comunas”) 1.- Comuna 1
Printf (“Input Comuna”) 2.- Comuna 2
3.- Comuna 3
Scanf (“%d”, comuna) Etc...

Printf (“Menú Sexo”) Sexo:


1.- Masculino
Printf (“Input Sexo”) 2.- Femenino
Scanf (“%d”, &sexo)

Printf (“Input Rut”)


Scanf (“%d”, rut)

IF NO Printf (“Rut
no Válido” )

Puts (nombre)
Puts (direccion)
Printf (“N° de Registro %d”, reg)
Printf (“Local %d”, local )

8
Eliminación – en el segundo nivel de anidación
Menú Principal:
Menú Principal 1. Registrar nuevo votante
2. Buscar votante
3. Eliminar votante
4. Eliminar local de votación
5. Salir.

If 4

Provincias:
1.- Provincia 1
Printf (“Menú Provincias”) 2.- Provincia 2
Printf (“Input Provincia”) 3.- Provincia 3
4.- Provincia 4
Scanf (“%d”, provincia) 5.- Provincia 5
Etc...

Comunas:
Printf (“Menú Comunas”) 1.- Comuna 1
Printf (“Input Comuna”) 2.- Comuna 2
3.- Comuna 3
Scanf (“%d”, comuna) Etc...

Printf (“Menú Sexo”) Sexo:


1.- Masculino
Printf (“Input Sexo”) 2.- Femenino
Scanf (“%d”, &sexo)

Printf (“Input Local”)


Scanf (“%d”, local)

aux = lugar [local][sexo]


lugar [local][sexo] = -1

If lugar [local][sexo] == NULL


NO

lugar [local][sexo] = aux


local == 15

local ++

NO
If local < 15

9
Tablas Gantt grupo

Abril
Dias 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Formacion de grupo
Eleccion de tema
Registrar el grupo
Análisis del problema
Definición de estructuras
Niveles de anidación
Diseño del programa
Conclusiones
Escritura del informe
Entrega de informe parte A
inicio de código
implementar estructuras y anidado
ingresar provincias
ingresar comunas
menú inicial
menú básico(incluido en 4 opciones de menu)
menú registrar votante
validación de rut ingresado
ingresar nodo a la lista
menú eliminar votante
crear función eliminar
menú eliminar local
asignar local a votantes
menú buscar votante
depuración de código
correccion
realización de auto y coevaluaciones
entrega de código y auto/coevaluaciones

10
Tabla Gantt de Cristian Bascuñán

Abril
Dias 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Formacion de grupo
Eleccion de tema
Registrar el grupo
Análisis del problema
Definición de estructuras
Niveles de anidación
Diseño del programa
Conclusiones
Escritura del informe
Entrega de informe parte A
inicio de código
implementar estructuras y anidado
ingresar provincias
ingresar comunas
menú inicial
menú básico(incluido en 4 opciones de menu)
menú registrar votante
validación de rut ingresado
ingresar nodo a la lista
menú eliminar votante
crear función eliminar
menú eliminar local
asignar local a votantes
menú buscar votante
depuración de código
correccion
realización de auto y coevaluaciones
entrega de código y auto/coevaluaciones

11
Tabla Gantt Ivonne Ramírez

Abril
Dias 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Formacion de grupo
Eleccion de tema
Registrar el grupo
Análisis del problema
Definición de estructuras
Niveles de anidación
Diseño del programa
Conclusiones
Escritura del informe
Entrega de informe parte A
inicio de código
implementar estructuras y anidado
ingresar provincias
ingresar comunas
menú inicial
menú básico(incluido en 4 opciones de menu)
menú registrar votante
validación de rut ingresado
ingresar nodo a la lista
menú eliminar votante
crear función eliminar
menú eliminar local
asignar local a votantes
menú buscar votante
depuración de código
correccion
realización de auto y coevaluaciones
entrega de código y auto/coevaluaciones

12
Conclusión

Al cabo de este informe se han trabajado los puntos importantes para abordar y solucionar el problema, en primer
lugar se definió el problema analizando su contexto y determinando cuales serán nuestros elementos útiles a la hora
de la solución. Luego se analizo la posible distribución de estructuras de datos anidadas entre sí cumpliendo los
requisitos pedidos. También se trabajo en el diseño del programa donde decidimos los diferentes menús que
contendrá el problema y donde también se crearon diagramas de flujos para clarificar y visualizar el funcionamiento
del programa, se implemento también un esquema que explica de forma más clara la anidación de las estructuras que
se han elegido. Se ha implementado una tabla Gantt para la distribución de tareas dentro del grupo definiendo cada
una de ellas, su plazo y quien será el encargado de realizarla. Luego de esto estamos en condiciones, por lo tanto, de
comenzar a trabajar en el código en lenguaje C.

13

Вам также может понравиться