Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Licenciatura en informática.
Algoritmos Computacionales.
Sección W02
Tema de la tarea
Proyecto Final: Caso Word’s Train.
Sustentantes:
Randy Antonio Marmol Tavares
100457506
Eulise Mauricio Matías Martínez.
100472000
Profesor:
Francisco Acosta
INTRODUCCIÓN…………………………………………………………………………………
…………………1
CAPITULO I: PLANTEAMIENTO DEL
PROBLEMA………………………………………………….2
1.1 Descripción de la situación
…………………………………………………………………………3
1.2 Describir la actividad principal de la empresa……………………………………………….4
1.3 Posible solución a la
situación………………………………………………………………………5
1.4 Identificación de las variables y sus
tipos……………………………………………………..6
1.5 Alcance del
proyecto…………………………………………………………………………………….7
CAPITULO II: MARCO
CONCEPTUAl……………………………………………………………………..8
2.1 Definición de conceptos utilizados en este proyecto………………………………….9
2.1.1 Estructura de
datos…………………………………………………………………………………….10
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)
…………………………………………………..13
2.1.5 Método de ordenación y
búsqueda…………………………………………………………….14
CAPITULO III: SOLUCIÓN DEL PROBLEMA
……………………………………………………………15
3.1 Análisis del
problema……………………………………………………………………………………..16
3.2 Diseño del
algoritmo……………………………………………………………………………………….17
3.3 Verificación del
algoritmo………………………………………………………………………………..18
3.4 Codificación del algoritmo y lenguaje de programación………………………………..19
3.5 Ejecución del
programa…………………………………………………………………………………….20
3.6 Verificación del
programa………………………………………………………………………………..21
3.7 Programa de
trabajo…………………………………………………………………………………………22
CAPITULO IV: PRESENTACIÓN DE LA
APLICACIÓN…………………………………………………..23
4.1 Pantalla principal y su
descripción……………………………………………………………………24
4.2 Pantalla de captura de
datos…………………………………………………………………………….25
4.3 Pantalla de despliegue de
información……………………………………………………………..26
4.4 Muestra de los archivos
creados……………………………………………………………………….27
CAPITULO V: EXPERIENCIA ADQUIRIDA EN LA MATERIA Y EN EL
PROYECTO……………28
CONCLUSIÓN……………………………………………………………………………………
……………………….29
REFERENCIAS
BIBLIOGRÁFICAS……………………………………………………………………………….
30
Introducción
Dicho trabajo presenta todos los pasos dados para diseñar un algoritmo eficiente que
solucione el problema presentado en la empresa, desde el planteamiento del problema hasta
el algoritmo final para resolver el problema.
CAPITULO I: PLANTEAMIENTO DEL PROBLEMA
Catalogo y que cuando se añade un cliente inicialmente solo se añade la información conocida.
Los saldos actualizados, fecha de transacción y otra información referente al archivo de
almacén de datos de cliente se añadirán cuando el negocio ha avanzado. Los registros de
archivo maestro de clientes son copiados a un archivo de historia y purgados si el cliente no ha
comprado un artículo en los últimos cinco años. Un cliente puede ser conservado aunque no
haya hecho compras si ha pedido un catálogo.
1.2 Describir la actividad principal de la empresa
Word´s trains es una empresa dedicada a la venta de boletos de tren, la empresa ofrece una
amplia variedad de catálogos a los cuales los clientes pueden acceder y comprar. La empresa
trabaja de forma física y cada cliente puede ir a una de sus oficinas y adquirir dichos boletos. La
empresa también vende paquetes de viajes que los clientes pueden adquirir.
1.3 Posible solución a la situación
Creación de un sistema que ayude a mejorar la venta y la seguridad de la venta de servicio en la
empresa además ayuda a tener un control de venta y contabilidad exacta a tiempo récord.
1.4 Identificación de las variables y sus tipos
En el análisis y diseño de este algoritmo podemos identificar cuales tipos de variables podemos
usar para que nos ayuden a darle mejor solución al problema.
Entre las Variables mas comunes que vamos a utilizar están las variables de tipo cadena
(String), estas nos van a servir para almacenar todos los datos de tipo texto del programa como
los datos del clientes, o la información básica de los catálogos como nombre y descripción.
También Vamos a usar variables de tipo entrada y salida de información como son las ofstream
o ifstrem que nos van a servir para guardar datos en ficheros para luego visualizarlos.
Además vamos a guardar datos numéricos en variables tipo INT y Float para hacer cálculos
numéricos.
1.5 Alcance del proyecto
Este proyecto puede abarcar lo que es el catálogo, registro de cliente, transacciones del cliente,
selección de compras de boletas, operación de saldo y detalle del catalogo.
CAPITULO II: MARCO Conceptual
2.1 Definición de conceptos utilizados en este proyecto
Catálogo: Lista o relación ordenada con algún criterio de libros, documentos, monedas,
objetos en venta, etc., de una persona, empresa o institución, que generalmente contiene una
breve descripción del objeto relacionado y ciertos datos de interés.
Dirección: Línea imaginaria establecida entre dos puntos; en especial cuando indica
orientación o destino.
La estructura de datos que decidimos utilizar se basa en guardar los datos ingresados por el
usuario y guardarlos en arreglos que luego procedimos a guardar en archivos de textos para
ser consultados luego.
Nos ayudamos de pilas y colas para tratar de manera correcta con los datos ingresados y así
manejar todo de manera mas fácil.
2.1.2 Tipo de archivo utilizado
El tipo de archivo utilizado para diseñar de manera correcta este algoritmo fue el sistema de
ficheros ya que es un método sencillo que nos permitía manejar los datos de manera correcta
y sin muchas complicaciones, trabajamos con dos ficheros uno para guardar los datos de los
clientes y otro para guardar los datos de los catalogos
2.1.3 Estrategia para el diseño del algoritmo
Usar un algoritmo capaz de garantizar la ejecución rápida para poder ayudar al equipo a la hora
de ejecución, para eso creamos un algoritmo que sea simple y que a su vez cumpla con lo
demandado del cliente además que incluya una parte innovadora e intuitiva .
2.1.4 Objeto utilizado (Lista, Pilas, Filas, Árbol)
Dentro de los objetos utilizados las pilas fueron la mejor opción ya que permite manipular el
orden de los datos cosa que es muy conveniente para desplegar la información en un orden
especifico. Además las pilas a nivel de programación tienen una sintaxis mas cómoda y su
lógica es más fácil de entender que el de otro tipo de objetos.
Método de ordenación y búsqueda
Insertar elementos en un árbol binario de búsqueda tiene una complejidad O(log n). Entonces,
agregar n elementos a un árbol cualquiera da como resultado una complejidad O(n log n).
Además, recorrer los elementos del árbol en orden tiene complejidad O(n).
CAPITULO III: SOLUCIÓN DEL PROBLEMA
Análisis del problema.
Empresa World’s Tren Almacenar datos para la División de Catalogo. Cuando se añade un
cliente inicialmente solo se añade la información conocida. Los saldos actualizados, fecha de
transacción y otra información referente al archivo de almacén de datos de cliente se añadirán
cuando el negocio ha avanzado. Los registros de archivo maestro de clientes son copiados a un
archivo de historia y purgados si el cliente no ha comprado un artículo en los últimos cinco
años. Un cliente puede ser conservado aunque no haya hecho compras si ha pedido un
catalogo.
Idea general
1- Registrar clientes
3- Registrar Catálogos
Algoritmo especifico
1- Definir variables
7- Guardar catalogo
//ProyectoFinal.cpp
#include<iostream>
#include<windows.h>
#include <unistd.h>
#include<stdio.h>
#include <string>
#include <time.h>
#include<fstream>
//datos clientes
string Codigo;
string Rnc;
string Nombre;
string Apellidos;
string Direccion;
string Telefono;
string Correo;
int Opcion;
//datos catalogo
string NombreCatalogo;
string NombreArticulo;
float PrecioArticulo;
float Cantidad;
float Impuesto;
float Descuento;
void PantallaPrincipal(){
system("color 5B");
time ( &rawtime );
cout<<"\t\t\t----------------------------------\n";
cout<<"\t\t\t____________\n";
cout<<"\t\t\t¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n\n";
cout<<"\n\tP R E S I O N E C U A L Q U I E R T E C L A P A R A \n";
cout<<"\t\t\t [C O N T I N U A R] \n";
cout<<"\n\n\
t>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>$<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n";
system("pause>nul");
system("cls");
void DatosClientes(){
ofstream Guardar;
ifstream Mostrar;
ofstream GuardarCatalogo;
ifstream MostrarCatalogo;
GuardarCatalogo.open("Catalogo.txt",ios::app);
MostrarCatalogo.open("Catalogo.txt",ios::in);
Guardar.open("fichero.txt",ios::app);
Mostrar.open("fichero.txt",ios::in);
cout<<"\n\n... D A T O S D E L C L I E N T E...";
do{
cout<<"\n\n\n ** M E N U D E O P C I O N E S **";
system("cls");
if(Opcion==1){
cout<<"\n\n R E G I S T R A R C L I E N T E S ";
cout<<"\n2..Apellidos: ";cin>>Apellidos;
cout<<"\n3..RNC: ";cin>>Rnc;
cout<<"\n4..Codigo: ";cin>>Codigo;
cout<<"\n5..Direccion: ";cin>>Direccion;
cout<<"\n6..Te…
CAPITULO IV: PRESENTACIÓN DE LA APLICACIÓN
CONCLUSIÓN
El proyecto nos ayudó mucho a implementar todo ese conocimiento que fuimos adquiriendo a
lo largo del semestre, tanto así que pusimos en práctica lo que es trabajar con algoritmo eficaz
que nos ayuden a crear programas de manera profesional, además utilizamos lo que son los
métodos de búsquedas, que nos ayudaron a recolectar nuestros datos de manera mas concreta y
por último también implementamos la pila.
En conclusión, veo lo importante que es esta materia para la carrera de informática, nos ayuda a
tener una idea de cómo trabajar con nuestros programas y tener una mejor estructura de estos .