Proyecto Final TEORIA Algoritmo

UNIVERSIDAD AUTÓNOMA DE SANTO DOMINGO Primada de América ∙ Fundada el 28 de Octubre de 1538 Facultad de Ciencias ESCUEL

Views 105 Downloads 2 File size 345KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD AUTÓNOMA DE SANTO DOMINGO Primada de América ∙ Fundada el 28 de Octubre de 1538

Facultad de Ciencias ESCUELA DE INFORMATICA

Caso 4 Proyecto Final de la Materia Algoritmos Computacionales INF-322 Sección 01 Presentado por Grupo No.4: Integrantes Giolany Brito B. Wendy Morel Gisell Portorreal Rabel Rodriguez

CF-1869 93-9619 CB-7640 BH-6629

Instructora: M.A. Agustina De los Santos Rosario

Los conceptos emitidos en el presente proyecto son de la exclusiva responsabilidad de los/as sustentantes del mismo.

Santo Domingo, D. N. Diciembre 01 del 2010

1

ÍNDICE INTRODUCCIÓN...................................................................................................... i CAPITULO I: PLANTEAMIENTO DEL PROBLEMA................................................. 1 1.1 Descripción de la situación.................................................................................. 2 1.2 Describir la actividad principal de la empresa….................................................. 3 1.3 Posible solución a la situación............................................................................. 6 1.4 Identificación de las variables y sus tipos............................................................ 7 1.5 Alcance del proyecto ………………………………………………………………….. 8 CAPITULO II: MARCO CONCEPTUAL..................................................................... 9 2.1 Definición de conceptos utilizados en este proyecto .......................................... 10 2.1.1 Estructura de datos.......................................................................................... 11 2.1.2 Tipo de archivo utilizado................................................................................... 11 2.1.3 Estrategia para el diseño del algoritmo ……..................................................... 12 2.1.4 Objeto utilizado (Lista, Pilas, Filas, Árbol) ………............................................. 12 2.1.5 Método de ordenación y búsqueda.................................................................. 13 CAPITULO III: SOLUCIÓN DEL PROBLEMA…........................................................ 14 3.1 Análisis del problema........................................................................................... 15 3.2 Diseño del algoritmo............................................................................................. 15 3.3 Verificación del algoritmo...................................................................................... 20 3.4 Codificación del algoritmo y lenguaje de programación....................................... 25 3.5 Ejecución del programa........................................................................................ 30 3.6 Verificación del programa..................................................................................... 31 3.7 Programa de trabajo............................................................................................. 32 CAPITULO IV: PRESENTACIÓN DE LA APLICACIÓN ……………………................ 34 4.1 Pantalla principal y su descripción........................................................................ 35 4.2 Pantalla de captura de datos................................................................................ 36 4.3 Pantalla de despliegue de información................................................................. 37 4.4 Muestra de los archivos creados.......................................................................... 38 CAPITULO V: EXPERIENCIA ADQUIRIDA............................................................... 39 CONCLUSIÓN............................................................................................................ 40 REFERENCIAS BIBLIOGRÁFICAS........................................................................... 41

2

INTRODUCCION

El proyecto que vamos a presentar a continuación está basado en la automatización de una empresa la cual nos proponemos analizar con el fin de crear un software que contenga una base de datos en el cual se pueda tener mayor control sobre los datos del personal de dicha empresa. Para esto nos hemos basado en las diferentes técnicas usadas para el análisis y diseño de un algoritmo los cuales son: Planeación del proyecto, análisis del sistema de computación, evaluación y prueba del sistema para cumplir con los requerimientos necesarios de la empresa.

3

CAPITULO I PLANTEAMIENTO DEL PROBLEMA

4

* Descripción de la situación: Esta empresa atraviesa por una situación caótica Ya que han tenido que contratar más personal y el control de sus empleados se sale de las manos ya que tienen un sistema de archivo manual para el registro del personal.

* Describir la actividad principal de la empresa: Esta empresa se dedica a la compra y distribución de productos de ferreteros Consta de los siguientes departamentos compra, venta, contabilidad, administración, recursos humanos, entre otros.

Misión

Ser la empresa de distribución líder tanto en productos de consumo mayoritario como de venta al detalle.

Visión

Tenemos el compromiso de mejorar la calidad de vida del consumidor dominicano.

Valores 5

Somos una empresa que se asienta en unos sólidos valores

Organigrama de la empresa

6

*Posible solución a la situación Implementación de un sistema computarizado para almacenar y / o registrar los empleados de la empresa para de esta forma facilitar el acceso inmediato a todo y cada uno de sus empleados.

*Identificación de las variables y sus tipos Variables

Tipos

Código

Int

Nombre

Char

Dirección

Char

Sueldo

Float

*Alcance del proyecto

7

Con este proyecto lo que se pretende es crear un sistema para organizar los datos de los empleados y así poder lograr un pronto acceso a la base de datos del control del personal de la empresa.

*Estrategia para el diseño del algoritmo Pseudocódigos y algoritmos y pruebas de escritorio.

8

CAPITULO II MARCO CONCEPTUAL

*Definición de conceptos utilizados en este proyecto

Archivos:

También denominados ficheros (file); es una colección de información (datos relacionados entre sí), localizada o almacenada como una unidad en alguna parte de la computadora.

9

Archivo directo:

Se dice que un archivo es de acceso u organización directa cuando para acceder a un registro n cualquiera no se tiene que pasar por los n-1 registros anteriores. Los archivos directos tienen una gran ventaja (son mucho más rápidos) cuando se comparan con los archivos de acceso u organización secuencial estudiados en la.

Registros: Estructura de datos formada por uno o más elementos denominados "Campos" y estos pueden estar compuestos a su vez por "subcampos". Claves Se denomina a un campo especial del registro que sirve para identificarlo

Arreglos

10

Es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal). Búsqueda secuencial También se le conoce como búsqueda lineal. Supongamos una colección de registros organizados como una lista lineal. El algoritmo básico de búsqueda secuencial consiste en empezar al inicio de la lista e ir a través de cada registro hasta encontrar la llave indicada (k), o hasta al final de la lista.

Estáticos Casi todos los tipos de datos son estáticos, la excepción son los punteros. Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en memoria no puede variar durante la ejecución del programa. Es decir, una vez declarada una variable de un tipo determinado, a ésta se le asigna un trozo de memoria fijo, y este trozo no se podrá aumentar ni disminuir. Transformación de claves El método de transformación de clave consiste en transformar un numero de orden (clave) en direcciones de almacenamiento por medio de un algoritmo de conversión. Cuando las altas se realizan por método transformación de clave, la dirección donde introducir un determinado registro se conseguirá por la aplicación de la clave del algoritmo de conversión (HASH). Si encontramos que dicha dirección ya está ocupada, el nuevo registro deberá ir a la zona de sinónimos o de excedentes.

Colisiones

11

En informática, una colisión de hash es una situación que se produce cuando dos entradas distintas a una función de hash producen la misma salida.

*Estructura de datos La estructura de los datos utilizado en este programa es el estático ya que usamos arreglos, archivos y registro, aquí el tamaño de la memoria no puede variar.

*Tipo de archivo utilizado Archivo directo ya que podemos acceder al archivo directamente sin tener que recorrer todos los archivos.

* Objeto utilizado (Lista, Pilas, Filas, Árbol) En este utilizamos Lista

* Método de ordenación y búsqueda Utilizamos el método por transformación de clave.

12

CAPITULO III SOLUCIÓN DEL PROBLEMA

*Análisis del problema 13

Mediante el estudio del problema pudimos observar que nuestra empresa estudiada tenia la necesidad de una base de datos computarizada en la cual se puedan almacenar los datos de los empleados de una forma ordenada para así poder tener un acceso rápido a cada uno de los registros de la base de datos.

*Diseño del algoritmo CONNSULTA SECUENCIAL

14

Alias= open (Empleado.dat ) Red

R

V Alias= null

return

“El archivo no existe”

Siclo mientras no se encuentre el final del archivo

F Código de Empleado

Read Registro, alias R F While Not (alias)

Registro.c odigo=codi go F

“No se encontró el registro”

V

* Verificación del algoritmo

15

CLOS E ALIAS

Registro.codigo Registro.nombre Registro.departamento Registro.sueldo Registro.fijo Lectura del siguiente registro completo

Este programa se puede verificar atreves de una prueba de escritorio aplicando cada una de las condiciones a ejecutar en dicho algoritmo y comprobando que los datos insertados por el teclado son correctos.

* Codificación del algoritmo y lenguaje de programación /* DIRECTOS.CPP Rutinas de... 1.- Altas 2.- Consultas 3.- Modificaciones 4.- Bajas logicas 5.- Listado registros en un archivo binario relativo o de acceso directo Curso: "Algoritmo Computacionales" Instructor: Agustina de los Santos */ #include // Para el manejo de archivos #include // Para el manejo de cadenas #include // Para el manejo de clrscr #include // Para el manejo de cout #include // Para el uso de toupper struct tipo_registro {

// Campos: int codigo; char nombre[30];

16

// Codigo de Empleado // Nombre del Empleado

char departamento[15]; // Cantidad disponible en almacen float sueldo; char fijo ;

// Sueldo del Empleado // Estatus fijo o provisional? [S/N]

}; struct tipo_registro Registro; // Declaracion global de la variable // "Registro" de tipo struct tipo_registro FILE *alias; // Declaracion global de la variable "alias" (apuntador a un // archivo long int dir_fisica; // Declaracion global de la variable para calcular // la direccion fisica void ALTA_DIRECTA(void); // Declaracion global de la rutina de Altas void CONSULTA_DIRECTA(void); // Declaracion global de la rutina de Consultas void MODIFICACION_DIRECTA(void); // Declaracion global de la rutina de Modificaciones void BAJA_LOGICA_DIRECTA(void); // Declaracion global de la rutina de Baja Logica void LISTADO_SECUENCIAL(void); // Declaracion global de la rutina de Listado void main(void) { int op; do { clrscr(); cout