Professional Documents
Culture Documents
Profesor
4 Ciclo Analisis y Diseo de Algoritmos
INTRODUCCIN
Debido a las actuales polticas de Seguridad de la Empresa CLARO, un Usuario
debe tener la menor cantidad de acceso requerido a los Sistemas Informticos
para desempear sus labores.
Mediante este proyecto se propone instalar una solucin informtica que permita
a los usuarios realizar dichos requerimientos y ser atendidas eficazmente sin
contradecir las polticas de Seguridad, por tal motivo algunos requerimientos
podrn ser ATENDIDOS y otros RECHAZADOS.
2
4 Ciclo Analisis y Diseo de Algoritmos
OBJETIVO GENERAL:
Disear un Algoritmo que permita a los usuarios de la Empresa CLARO registrar sus diferentes
solicitudes de peticin de Accesos a los Sistemas y Recursos Informticos, luego enviarlas a
una cola de atencin para que finalmente estas sean Atendidas por el rea de Administracion y
Control de Accesos.
OBJETIVOS ESPECIFICOS:
3
4 Ciclo Analisis y Diseo de Algoritmos
MARCO TERICO
ESTRUCTURA DE DATOS
En programacin, una estructura de datos es una forma particular de organizar datos en una
computadora para que pueda ser utilizado de manera eficiente.
Las estructuras de datos se basan generalmente en la capacidad de un ordenador para
recuperar y almacenar datos en cualquier lugar de su memoria.
COLA (INFORMTICA)
La particularidad de una estructura de datos de cola es el hecho de que slo podemos acceder
al primer y al ltimo elemento de la estructura. As mismo, los elementos slo se pueden
eliminar por el principio y slo se pueden aadir por el final de la cola.
LISTAS ENLAZADAS
Una lista enlazada o estructura ligada, es una estructura lineal que almacena una coleccin de
elementos generalmente llamados nodos, en donde cada nodo puede almacenar datos y ligas a
otros nodos. De esta manera los nodos pueden localizarse en cualquier parte de la memoria,
utilizando la referencia que lo relaciona con otro nodo dentro de la estructura.
Las listas enlazadas permiten almacenar informacin en posiciones de memoria que no sean
contiguas; y se almacena en los elementos nodos. Estos nodos poseen dos campos uno para
almacenar la informacin o valor del elemento y otro para el enlace que determina la posicin
del siguiente elemento o nodo de la lista.
ORDENAMIENTO BUBBLESORT
BUSQUEDA SECUENCIAL
4
4 Ciclo Analisis y Diseo de Algoritmos
FUNCION RECURSIVA
Una funcin recursiva es aquella que se llama a s misma para resolverse.
Una funcin recursiva se resuelve con una llamada a s misma, cambiando el valor de un
parmetro en la llamada a la funcin. A travs de las sucesivas llamadas recursivas a la funcin
se van obteniendo valores que, computados, sirven para obtener el valor de la funcin llamada
originalmente.
El proceso de llamadas recursivas siempre tiene que acabar en una llamada a la funcin que se
resuelve de manera directa, sin necesidad de invocar de nuevo la funcin. Esto ser siempre
necesario, para que llegue un momento que se corten las llamadas reiterativas a la funcin y no
se entre en un bucle infinito de invocaciones.
5
4 Ciclo Analisis y Diseo de Algoritmos
Debido a la limitaciones de los accesos a los Sistemas informticos, los usuarios de CLARO
debern solicitar los accesos adicionales que requieran mediante una Solicitud, para ello se
requiere implementar un Algoritmo donde el usuario pueda registrar una Solicitud, Encolarla y
Luego pueda ser Atendida.
6
4 Ciclo Analisis y Diseo de Algoritmos
7
4 Ciclo Analisis y Diseo de Algoritmos
La Clase Nodo: Tendr 2 campos, 1 para guardar la Solicitud y otro para guardar la referencia
del siguiente Nodo de la Lista.
8
4 Ciclo Analisis y Diseo de Algoritmos
9
4 Ciclo Analisis y Diseo de Algoritmos
10
4 Ciclo Analisis y Diseo de Algoritmos
Algoritmos de bsqueda
11
4 Ciclo Analisis y Diseo de Algoritmos
12
4 Ciclo Analisis y Diseo de Algoritmos
Formatear salida
13
4 Ciclo Analisis y Diseo de Algoritmos
Listar colas
14
4 Ciclo Analisis y Diseo de Algoritmos
Para la VISTA crearemos 3 Clases:
Menu
Utils
Pso
La Clase Menu: En esta Clase se crearan las funciones que interactuaran con la VISTA.
Incluimos las libreras y clases necesarias.
15
4 Ciclo Analisis y Diseo de Algoritmos
Mtodo INICIAR: invoca al Men, luego solicita y valida el dato ingresado por el usuario,
dependiendo de qu valor coloco entrara en las diferentes opciones del switch.
16
4 Ciclo Analisis y Diseo de Algoritmos
El mtodo Registrar(): Este mtodo registra la solicitud ingresada por consola, tanto la
ListaSimple como la Cola utilizar este mtodo, y es posible debido a que la Cola es una
Herencia de la ListaSimple ya que manejan la misma estructura.
17
4 Ciclo Analisis y Diseo de Algoritmos
El mtodo Atender(): Desencola el 1er elemento de la Cola, y actualiza su estado y fecha de
atencin.
18
4 Ciclo Analisis y Diseo de Algoritmos
Mtodo Modificar(): Modifica una Solicitud en estado Registrado
19
4 Ciclo Analisis y Diseo de Algoritmos
20
4 Ciclo Analisis y Diseo de Algoritmos
El Mtodo SeleccionarOpcion(): sirve para imprimir lo que se mostrar en el Menu de la
Consola.
21
4 Ciclo Analisis y Diseo de Algoritmos
El Mtodo Encolar(): Sirve para Encolar una Solicitud Registrada
22
4 Ciclo Analisis y Diseo de Algoritmos
ListarxEstado(): Lista las solicitudes siempre y cuando su estado coincida con el filtro.
23
4 Ciclo Analisis y Diseo de Algoritmos
Listar (): Lista todas las solicitudes tanto de la lista como de la cola, el filtro se enva por
parmetro.
ordenar(): Muestra la lista de todas las solicitudes ordenada por el criterio indicado.
24
4 Ciclo Analisis y Diseo de Algoritmos
La Clase Utils: Esta clase no es necesaria instanciarla ya que sus mtodos son estticos, son
funciones adicionales de ayuda.
static const string currentDateTime(): esta funcin nos permite obtener la hora actual del PC.
static bool validarEntero(string x): esta funcin nos permite validar si el contenido dentro de
un string es entero.
25
4 Ciclo Analisis y Diseo de Algoritmos
static bool SetWindow(int Width, int Height): esta funcin nos permite redimensionar el
tamao de la consola.
26
4 Ciclo Analisis y Diseo de Algoritmos
static void Grabar(ListaSimple lst): Esta funcin guarda la informacin todos los registros en
archivo llamada Data.txt que se encuentra en la raz del programa.
27
4 Ciclo Analisis y Diseo de Algoritmos
static void Cargar(ListaSimple &lst, Cola &cola): Esta funcin carga la informacin del archivo
Data.txt y la enva a las instancias de las clases ListaSimple y Cola.
28
4 Ciclo Analisis y Diseo de Algoritmos
static int split(string **arr,string cadena,const char * separador): Esta funcin recibe un arreglo
como puntero y lo llena con los datos de una cadena separado por comas, retorna el Size del
arreglo, nos va a servir para la lectura lnea por lnea del Data.txt y separar sus valores por
comas.
29
4 Ciclo Analisis y Diseo de Algoritmos
La Clase pso: Esta Clase contiene el Mtodo Main el cual inicia el programa.
30