SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Universidad Técnica de Manabí
Facultad de Ciencias Informáticas
Escuela de Ingeniería en Sistemas Informáticos
Proyecto de Investigación en el Aula:
Diseño y desarrollo de un Sistema Informático en lenguaje de
programación c++ para el control del inventario y la facturación de una
distribuidora de agua purificada envasada en el periodo mayo-
septiembre 2014.
Autor:
Zherdmant Cevallos Erick Joel
Asignaturas: Programación II y Estructura de Datos
Nivel: 2° “A”
Docente Guía: Ing. Christian Torres
Periodo:
Mayo 2014 – Septiembre 2014
Portoviejo – Manabí – Ecuador
I. Introducción:
En la actualidad la importancia del software en la vida cotidiana, ha
alcanzado niveles sorprendentes.
Hace varios años atrás, nadie se hubiera imaginado la importancia de los
celulares y las computadoras hoy en día. Desde el hecho de mantenernos
informados, hasta realizar tareas especializadas en la más diversas actividades
de una gran industria.
Todo esto posible, gracias a potentes hardware y por supuesto a grandes
software; que cada día ocupan mayor importancia en el ámbito de los
negocios. Es por esto que este pequeño proyecto está orientado hacia este
sector específicamente al sector de distribución de agua embotellada; con la
finalidad de implementar un sistema informático y aplicar los conocimientos
aprendidos en la materia de Programación II y Estructura de datos durante el
periodo mayo – septiembre 2014.
Este proyecto cuenta con una justificación, su respectivos objetivos, su marco
teórico en donde se explican algunos conceptos básicos de las materia
además de dar una noción de cómo está estructurado la programación; y por
supuesto la respectivas conclusiones y recomendaciones.
II. Justificación:
Para justificar este proyecto debemos recurrir a la importancia y a las
facilidades que presta la implementación en los negocio sistemas informáticos;
puesto que permite llevar de mejor manera la contabilidad y tener un mayor
control de las ventas realizadas, y lo que se tiene en stock; además; es uno de
los medios más eficientes al momento de ahorrar papel.
El proyecto se desarrollara en la plataforma Borland c++ 5.2; esto es para
darle aplicación y funcionamiento practico a los conocimientos que hemos
adquiridos durante nuestro proceso de formación en el segundo nivel de la
carrera de ingeniería en sistemas informáticos de la Facultad de Ciencias
Informáticas de la Universidad Técnica de Manabí.
III. Objetivos:
3.1. Objetivo General:
 Crear un Sistema Informático funcional, eficiente y eficaz en la
plataforma de desarrollo Borland c++ 5.2; que permita en control de
inventario y facturación de una distribuidora de agua purificada
envasada, aplicando los conocimientos adquiridos durante las clases
de Programación II y Estructura de Datos del 2º nivel de la Carrera de
Ingeniería en Sistemas Informáticos.
3.2. Objetivos Específicos:
 Aplicar conocimientos básicos adquiridos en la materia programación I
y complementarlos con los adquiridos en la materia programación II;
para mejorar la eficiencia y la eficacia del código implementado en el
sistema.
 Mejorar el rendimiento del sistema aplicando los conocimientos de la
materia de Estructura de Datos para una mejor utilización de memoria
en la ejecución del sistema.
 Diseñar un sistema informático cuya interfaz sea amigable con el
usuario, además de ser eficiente y eficaz
IV. Marco teórico
4.1. Plataforma de Desarrollo
El proyecto será desarrollado en el Compilador Borland 4.5 que utiliza la
plataforma c++, que es un lenguaje de programación diseñado a mediados
de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el
extender al exitoso lenguaje de programación C con mecanismos que
permitan la manipulación de objetos. En ese sentido, desde el punto de vista
de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se
sumó a los otros dos paradigmas que ya estaban admitidos (programación
estructurada y la programación orientada a objetos). Por esto se suele decir
que el C++ es un lenguaje de programación multiparadigma.
Actualmente existe un estándar, denominado ISO C++, al que se han adherido
la mayoría de los fabricantes de compiladores más modernos. Existen también
algunos intérpretes, tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de
poder crear nuevos tipos que se comporten como tipos fundamentales.
El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el
lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes
se había usado el nombre "C con clases". En C++, la expresión "C++" significa
"incremento de C" y se refiere a que C++ es una extensión de C.
4.1.1. Conocimientos a aplicar.
4.1.1.1. Programación orientada a objetos.
La programación orientada a objetos o POO (OOP según sus siglas en inglés)
es un paradigma de programación que usa los objetos en sus interacciones,
para diseñar aplicaciones y programas informáticos. Está basado en varias
técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo,
acoplamiento y encapsulamiento. Su uso se popularizó a principios de la
década de los años 1990. En la actualidad, existe una gran variedad de
lenguajes de programación que soportan la orientación a objetos.
La programación orientada a objetos es una forma de programar que trata de
encontrar una solución a estos problemas. Introduce nuevos conceptos, que
superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los
siguientes:
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciación es la lectura de estas definiciones y la creación de
un objeto a partir de ellas.
Herencia
(Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la
cual la clase D hereda en ella cada uno de los atributos y operaciones de C,
como si esos atributos y operaciones hubiesen sido definidos por la misma D.
Por lo tanto, puede usar los mismos métodos y variables públicas declaradas
en C. Los componentes registrados como "privados" (private) también se
heredan, pero como no pertenecen a la clase, se mantienen escondidos al
programador y sólo pueden ser accedidos a través de otros métodos públicos.
Esto es así para mantener hegemónico el ideal de POO.
Objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o
atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos
que consecuentemente reaccionan a eventos. Se corresponden con los
objetos reales del mundo que nos rodea, o con objetos internos del sistema
(del programa). Es una instancia a una clase.
Método
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se
desencadena tras la recepción de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un método puede producir
un cambio en las propiedades del objeto, o la generación de un "evento" con
un nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interacción del usuario con la
máquina, o un mensaje enviado por un objeto). El sistema maneja el evento
enviando el mensaje adecuado al objeto pertinente. También se puede definir
como evento la reacción que puede desencadenar un objeto; es decir, la
acción que genera.
Atributos
Características que tiene la clase
Mensaje
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus
métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de
objetos), que hace los datos visibles desde fuera del objeto y esto se define
como sus características predeterminadas, y cuyo valor puede ser alterado
por la ejecución de algún método.
Estado interno
Es una variable que se declara privada, que puede ser únicamente accedida
y alterada por un método del objeto, y que se utiliza para indicar distintas
situaciones posibles para el objeto (o clase de objetos). No es visible al
programador que maneja una instancia de la clase.
Componentes de un objeto
Atributos, identidad, relaciones y métodos.
4.1.2. Estructura de Datos
Es una forma de organizar un conjunto de datos elementales con el objetivo
de facilitar su manipulación. Un dato elemental es la mínima información que
se tiene en un sistema.
Una estructura de datos define la organización e interrelación de estos y un
conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones
básicas son:
 Alta, adicionar un nuevo valor a la estructura.
 Baja, borrar un valor de la estructura.
 Búsqueda, encontrar un determinado valor en la estructura para realizar
una operación con este valor, en forma secuencial o binario (siempre y
cuando los datos estén ordenados).
 Otras operaciones que se pueden realizar son:
 Ordenamiento, de los elementos pertenecientes a la estructura.
 Apareo, dadas dos estructuras originar una nueva ordenada y que
contenga a las apareadas.
 Cada estructura ofrece ventajas y desventajas en relación a la
simplicidad y eficiencia para la realización de cada operación. De esta
forma, la elección de la estructura de datos apropiada para cada
problema depende de factores como la frecuencia y el orden en que
se realiza cada operación sobre los datos.
4.2. Funciones del Sistema:
El Sistema contara con un menú, el cual tendrá las siguientes opciones:
 Inventario: Esta opción constara con cuatro opciones:
consultar, ingresar, modificar, borrar.
 Facturación: constara con una opción para consulta de
ventas realizadas, consulta de clientes, y una opción para la
facturación.
 Salir: Cierra la sesión y el sistema.
4.3. Seguridades:
El sistema constara al momento de iniciar con una pantalla para ingresar un
usuario y contraseña, dependiendo si es un administrador o no, puede
acceder a todas las opciones del menú o tendrá ciertas restricciones.
El usuario que no es administrador solo tendrá restricciones en la siguiente
opción:
 Inventario: solo podrá acceder a la opción consultar.
 Facturación. Queda restringida la opción consulta de ventas
realizadas.
4.4. Orientación del Sistema:
El sistema estará orientado a las operaciones que se realizan en una
distribuidora de agua, dentro de estas están la venta de agua purificada
envasa en sus diversas presentaciones: bidones, galones, botellas y fundas.
Todas estas ventas estarán registradas en un archivo en donde solo podrá
acceder aquel usuario que tenga la condición de administrador. Este registro
contara con la fecha de venta, el cliente que realizo la venta, y el monto de la
venta.
Se podrá ingresar mercadería al inventario, modificarla, borrarla, y consultarla.
También se registran todo los clientes que realicen una compra en un archivo
al cual solo podrá acceder el administrador. En este archivo se registrarán:
 Nombre
 Cedula
 Teléfono
 Correo
Para agregar un nuevo cliente se lo realizara a través de la facturación, en
donde se pedirá el número de cédula, el sistema buscará en el archivo y si no
la encuentra informara que es un nuevo cliente y pedirá el resto de
información.
4.5. Herramientas utilizadas
4.5.1. Estructuras de Datos.
En este sistema se utiliza, dos tipos de estructuras datos:
 Tres listas doblemente enlazadas cerradas;
 Un árbol binario.
Las listas doblemente enlazadas están estructuradas de la siguiente manera,
estas servirán para:
 Las lista de los clientes y empleados.
 Para almacenar los productos que se han adquirido.
 La última es la factura en sí, la cual formara los nodos del árbol
binario.
//**********************************************************
//*************************nodos personas*******************
//**********************************************************
typedef struct _Personas
{Persona *ListaP;
struct _Personas *sig,*ant;
}tpersona;
typedef tpersona *pnodoLDP;
typedef tpersona *ListaDP;
La cual servirá para manejar la información de los empleados y cliente de la
distribuidora; aplicando polimorfismo.
//**********************************************************
//************************nodos productos*******************
//**********************************************************
typedef struct _Producto
{long cod;
Producto *ListaPro;
int stock;
struct _Producto *sig,*ant;
}tproducto;
typedef tproducto *pnodoLDPRO;
typedef tproducto *ListaDPRO;
Esta estructura nos permitirá almacenar los datos de los productos que se
expenden en nuestra distribuidora; marca, contendido neto, precio y el stock.
//**********************************************************
//************************estructura detalles***************
//**********************************************************
typedef struct _Detalles
{int cant;
long codigo;
char *descripcion;
double puni;
double ppagar;
struct _Detalles *sig,*ant;
}tdetalles;
typedef tdetalles *pnodoDE;
typedef tdetalles *ListaDE;
//***********************************************************
//************************nodos factura**********************
//***********************************************************
typedef struct _Factura
{char *codigo;
char *cedula;
ListaDE *descrip;
double totalpagar;
char *estado;
struct _Factura *izq,*der;
}tfactura;
typedef tfactura *pnodoF;
typedef tfactura *ListaF;
Estas dos últimas estructuras, son para el manejo del registro de las ventas
realizadas en la distribuidora, la estructura detalles permitirá crear una lista
dinámica que almacenara los productos comprados en esa factura. La
estructura factura formara los nodos del árbol binario.
4.5.2. Clases y su derivación.
En este proyecto se instanciaron varias clases; todas ellas derivadas de una
sala clase abstracta denominada Producto. De esta se derivan las clases
Media, Litro, Galón, Bidón. Y tenemos un ultima derivación de la clase Media,
de la cual se desprende las clases Funda y Botella.
El esquema seria el siguiente:
En cuanto al manejo de estas clases, se emplean en varias de ellas el
polimorfismo, así como la abstracción de clases en la superclase Producto.
Otra característica empleada en estas es la herencia simple como lo
observamos en el esquema anterior.
Producto
BidónGalónLitro
Media
BotellaFunda
V. Conclusión
 Se concluye que el lenguaje de programación c++, es un
lenguaje muy versátil aunque anticuado; pero no se puede
negar su importancia dentro del software actual; ya que la
gran mayoría de ellos tienen como base la programación en
lenguaje c.
 Los conceptos aprendidos en este lenguaje, servirán como
base a futuro, pues estos mismos conceptos se aplican en
software de desarrollo más actuales tales como Java.
VI. Recomendación:
 Al ser uno de los lenguajes base para la ingeniería en sistemas
informáticos, se recomienda enseñar este lenguaje de
manera transversal con otros en donde se vean reflejados de
manera más concreta los concepto aprendido tales como: la
herencia y el polimorfismo.

Weitere ähnliche Inhalte

Was ist angesagt?

Poliformismo
PoliformismoPoliformismo
PoliformismoSa_Van
 
Recursividad
RecursividadRecursividad
Recursividadbetzy
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertosIrving Pazo
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONPANAFMX
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESmellcv
 
Cuello de botella de von neumann
Cuello de botella de von neumannCuello de botella de von neumann
Cuello de botella de von neumanncreatrios
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasyance1
 
Ejercicios avanzados en dinámica de sistemas juan martín garcía
Ejercicios avanzados en dinámica de sistemas   juan martín garcíaEjercicios avanzados en dinámica de sistemas   juan martín garcía
Ejercicios avanzados en dinámica de sistemas juan martín garcíaEmmanuelASessaregoDv
 
Ventajas y desventajas
Ventajas y desventajasVentajas y desventajas
Ventajas y desventajasOscar LS
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistemaIsrael Rey
 

Was ist angesagt? (20)

Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Poliformismo
PoliformismoPoliformismo
Poliformismo
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Programa de Pila Estática
Programa de Pila EstáticaPrograma de Pila Estática
Programa de Pila Estática
 
Recursividad
RecursividadRecursividad
Recursividad
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Algoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSONAlgoritmos DEKKER y PETERSON
Algoritmos DEKKER y PETERSON
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICES
 
Cuello de botella de von neumann
Cuello de botella de von neumannCuello de botella de von neumann
Cuello de botella de von neumann
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Ejemplo de Trigger en Mysql
Ejemplo de Trigger en MysqlEjemplo de Trigger en Mysql
Ejemplo de Trigger en Mysql
 
Ejercicios avanzados en dinámica de sistemas juan martín garcía
Ejercicios avanzados en dinámica de sistemas   juan martín garcíaEjercicios avanzados en dinámica de sistemas   juan martín garcía
Ejercicios avanzados en dinámica de sistemas juan martín garcía
 
Lectores y escritores
Lectores y escritoresLectores y escritores
Lectores y escritores
 
Ventajas y desventajas
Ventajas y desventajasVentajas y desventajas
Ventajas y desventajas
 
Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 

Ähnlich wie Proyecto para programacion y estructura

Diseño de Sistemas
Diseño de SistemasDiseño de Sistemas
Diseño de Sistemasjorgecaruci
 
TRABAJO INFORMÁTICA FINAL
TRABAJO INFORMÁTICA FINALTRABAJO INFORMÁTICA FINAL
TRABAJO INFORMÁTICA FINALAlee Jezias
 
TEMA 1: LENGUAJE DE PROGRAMACIÓN.
TEMA 1: LENGUAJE DE PROGRAMACIÓN. TEMA 1: LENGUAJE DE PROGRAMACIÓN.
TEMA 1: LENGUAJE DE PROGRAMACIÓN. ClaretCabello
 
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLO
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLOTrabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLO
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLOcarlitoweyson
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosLex Marin
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasIsidro Gonzalez
 
Elionor Herrera (Cumaná Estado Sucre)
Elionor Herrera (Cumaná Estado Sucre)Elionor Herrera (Cumaná Estado Sucre)
Elionor Herrera (Cumaná Estado Sucre)gtnuevastecnologias
 
Trabajo final de introduccion a la informatica
Trabajo final de introduccion a la informaticaTrabajo final de introduccion a la informatica
Trabajo final de introduccion a la informaticaYoselin17
 
Lenguajes de Programación
 Lenguajes de Programación Lenguajes de Programación
Lenguajes de ProgramaciónJuanRengel2
 
Fundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientosFundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientoslexiherrera
 
Actividad 1 de programacion
Actividad 1 de programacionActividad 1 de programacion
Actividad 1 de programacionkevinlugo11
 
Klenni pino Analisis y diseño de sistemas..
Klenni pino Analisis y diseño de sistemas..Klenni pino Analisis y diseño de sistemas..
Klenni pino Analisis y diseño de sistemas..Klenni Pino
 

Ähnlich wie Proyecto para programacion y estructura (20)

Diseño de Sistemas
Diseño de SistemasDiseño de Sistemas
Diseño de Sistemas
 
Poovb
PoovbPoovb
Poovb
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
TRABAJO INFORMÁTICA FINAL
TRABAJO INFORMÁTICA FINALTRABAJO INFORMÁTICA FINAL
TRABAJO INFORMÁTICA FINAL
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Diseño o.o
Diseño o.oDiseño o.o
Diseño o.o
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
TEMA 1: LENGUAJE DE PROGRAMACIÓN.
TEMA 1: LENGUAJE DE PROGRAMACIÓN. TEMA 1: LENGUAJE DE PROGRAMACIÓN.
TEMA 1: LENGUAJE DE PROGRAMACIÓN.
 
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLO
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLOTrabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLO
Trabajo final introduccion a la informatica CARLOS PAZ Y JOSE CARRILLO
 
Programacion visual
Programacion visualProgramacion visual
Programacion visual
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
 
Metodologías para el Diseño de Sistemas
Metodologías para el Diseño de SistemasMetodologías para el Diseño de Sistemas
Metodologías para el Diseño de Sistemas
 
Elionor Herrera (Cumaná Estado Sucre)
Elionor Herrera (Cumaná Estado Sucre)Elionor Herrera (Cumaná Estado Sucre)
Elionor Herrera (Cumaná Estado Sucre)
 
Programacion orientada a objetos Java
Programacion orientada a objetos JavaProgramacion orientada a objetos Java
Programacion orientada a objetos Java
 
Pdf glo
Pdf gloPdf glo
Pdf glo
 
Trabajo final de introduccion a la informatica
Trabajo final de introduccion a la informaticaTrabajo final de introduccion a la informatica
Trabajo final de introduccion a la informatica
 
Lenguajes de Programación
 Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
 
Fundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientosFundamentos y metodos de analisis de requerimientos
Fundamentos y metodos de analisis de requerimientos
 
Actividad 1 de programacion
Actividad 1 de programacionActividad 1 de programacion
Actividad 1 de programacion
 
Klenni pino Analisis y diseño de sistemas..
Klenni pino Analisis y diseño de sistemas..Klenni pino Analisis y diseño de sistemas..
Klenni pino Analisis y diseño de sistemas..
 

Kürzlich hochgeladen

TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptxolgakaterin
 

Kürzlich hochgeladen (20)

Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Ecosistemas Natural, Rural y urbano 2021.pptx
Ecosistemas Natural, Rural y urbano  2021.pptxEcosistemas Natural, Rural y urbano  2021.pptx
Ecosistemas Natural, Rural y urbano 2021.pptx
 

Proyecto para programacion y estructura

  • 1. Universidad Técnica de Manabí Facultad de Ciencias Informáticas Escuela de Ingeniería en Sistemas Informáticos Proyecto de Investigación en el Aula: Diseño y desarrollo de un Sistema Informático en lenguaje de programación c++ para el control del inventario y la facturación de una distribuidora de agua purificada envasada en el periodo mayo- septiembre 2014. Autor: Zherdmant Cevallos Erick Joel Asignaturas: Programación II y Estructura de Datos Nivel: 2° “A” Docente Guía: Ing. Christian Torres Periodo: Mayo 2014 – Septiembre 2014 Portoviejo – Manabí – Ecuador
  • 2. I. Introducción: En la actualidad la importancia del software en la vida cotidiana, ha alcanzado niveles sorprendentes. Hace varios años atrás, nadie se hubiera imaginado la importancia de los celulares y las computadoras hoy en día. Desde el hecho de mantenernos informados, hasta realizar tareas especializadas en la más diversas actividades de una gran industria. Todo esto posible, gracias a potentes hardware y por supuesto a grandes software; que cada día ocupan mayor importancia en el ámbito de los negocios. Es por esto que este pequeño proyecto está orientado hacia este sector específicamente al sector de distribución de agua embotellada; con la finalidad de implementar un sistema informático y aplicar los conocimientos aprendidos en la materia de Programación II y Estructura de datos durante el periodo mayo – septiembre 2014. Este proyecto cuenta con una justificación, su respectivos objetivos, su marco teórico en donde se explican algunos conceptos básicos de las materia además de dar una noción de cómo está estructurado la programación; y por supuesto la respectivas conclusiones y recomendaciones.
  • 3. II. Justificación: Para justificar este proyecto debemos recurrir a la importancia y a las facilidades que presta la implementación en los negocio sistemas informáticos; puesto que permite llevar de mejor manera la contabilidad y tener un mayor control de las ventas realizadas, y lo que se tiene en stock; además; es uno de los medios más eficientes al momento de ahorrar papel. El proyecto se desarrollara en la plataforma Borland c++ 5.2; esto es para darle aplicación y funcionamiento practico a los conocimientos que hemos adquiridos durante nuestro proceso de formación en el segundo nivel de la carrera de ingeniería en sistemas informáticos de la Facultad de Ciencias Informáticas de la Universidad Técnica de Manabí.
  • 4. III. Objetivos: 3.1. Objetivo General:  Crear un Sistema Informático funcional, eficiente y eficaz en la plataforma de desarrollo Borland c++ 5.2; que permita en control de inventario y facturación de una distribuidora de agua purificada envasada, aplicando los conocimientos adquiridos durante las clases de Programación II y Estructura de Datos del 2º nivel de la Carrera de Ingeniería en Sistemas Informáticos. 3.2. Objetivos Específicos:  Aplicar conocimientos básicos adquiridos en la materia programación I y complementarlos con los adquiridos en la materia programación II; para mejorar la eficiencia y la eficacia del código implementado en el sistema.  Mejorar el rendimiento del sistema aplicando los conocimientos de la materia de Estructura de Datos para una mejor utilización de memoria en la ejecución del sistema.  Diseñar un sistema informático cuya interfaz sea amigable con el usuario, además de ser eficiente y eficaz
  • 5. IV. Marco teórico 4.1. Plataforma de Desarrollo El proyecto será desarrollado en el Compilador Borland 4.5 que utiliza la plataforma c++, que es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido. Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT. Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales. El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C. 4.1.1. Conocimientos a aplicar. 4.1.1.1. Programación orientada a objetos. La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos. La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes: Clase Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas. Herencia (Por ejemplo, herencia de la clase C a la clase D) es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C,
  • 6. como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables públicas declaradas en C. Los componentes registrados como "privados" (private) también se heredan, pero como no pertenecen a la clase, se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Esto es así para mantener hegemónico el ideal de POO. Objeto Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa). Es una instancia a una clase. Método Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema. Evento Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera. Atributos Características que tiene la clase Mensaje Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Propiedad o atributo Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método. Estado interno Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
  • 7. Componentes de un objeto Atributos, identidad, relaciones y métodos. 4.1.2. Estructura de Datos Es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema. Una estructura de datos define la organización e interrelación de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:  Alta, adicionar un nuevo valor a la estructura.  Baja, borrar un valor de la estructura.  Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).  Otras operaciones que se pueden realizar son:  Ordenamiento, de los elementos pertenecientes a la estructura.  Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.  Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos. 4.2. Funciones del Sistema: El Sistema contara con un menú, el cual tendrá las siguientes opciones:  Inventario: Esta opción constara con cuatro opciones: consultar, ingresar, modificar, borrar.  Facturación: constara con una opción para consulta de ventas realizadas, consulta de clientes, y una opción para la facturación.  Salir: Cierra la sesión y el sistema. 4.3. Seguridades: El sistema constara al momento de iniciar con una pantalla para ingresar un usuario y contraseña, dependiendo si es un administrador o no, puede acceder a todas las opciones del menú o tendrá ciertas restricciones. El usuario que no es administrador solo tendrá restricciones en la siguiente opción:  Inventario: solo podrá acceder a la opción consultar.
  • 8.  Facturación. Queda restringida la opción consulta de ventas realizadas. 4.4. Orientación del Sistema: El sistema estará orientado a las operaciones que se realizan en una distribuidora de agua, dentro de estas están la venta de agua purificada envasa en sus diversas presentaciones: bidones, galones, botellas y fundas. Todas estas ventas estarán registradas en un archivo en donde solo podrá acceder aquel usuario que tenga la condición de administrador. Este registro contara con la fecha de venta, el cliente que realizo la venta, y el monto de la venta. Se podrá ingresar mercadería al inventario, modificarla, borrarla, y consultarla. También se registran todo los clientes que realicen una compra en un archivo al cual solo podrá acceder el administrador. En este archivo se registrarán:  Nombre  Cedula  Teléfono  Correo Para agregar un nuevo cliente se lo realizara a través de la facturación, en donde se pedirá el número de cédula, el sistema buscará en el archivo y si no la encuentra informara que es un nuevo cliente y pedirá el resto de información. 4.5. Herramientas utilizadas 4.5.1. Estructuras de Datos. En este sistema se utiliza, dos tipos de estructuras datos:  Tres listas doblemente enlazadas cerradas;  Un árbol binario. Las listas doblemente enlazadas están estructuradas de la siguiente manera, estas servirán para:  Las lista de los clientes y empleados.  Para almacenar los productos que se han adquirido.  La última es la factura en sí, la cual formara los nodos del árbol binario. //********************************************************** //*************************nodos personas******************* //********************************************************** typedef struct _Personas {Persona *ListaP; struct _Personas *sig,*ant;
  • 9. }tpersona; typedef tpersona *pnodoLDP; typedef tpersona *ListaDP; La cual servirá para manejar la información de los empleados y cliente de la distribuidora; aplicando polimorfismo. //********************************************************** //************************nodos productos******************* //********************************************************** typedef struct _Producto {long cod; Producto *ListaPro; int stock; struct _Producto *sig,*ant; }tproducto; typedef tproducto *pnodoLDPRO; typedef tproducto *ListaDPRO; Esta estructura nos permitirá almacenar los datos de los productos que se expenden en nuestra distribuidora; marca, contendido neto, precio y el stock. //********************************************************** //************************estructura detalles*************** //********************************************************** typedef struct _Detalles {int cant; long codigo; char *descripcion; double puni; double ppagar; struct _Detalles *sig,*ant; }tdetalles; typedef tdetalles *pnodoDE; typedef tdetalles *ListaDE; //*********************************************************** //************************nodos factura********************** //*********************************************************** typedef struct _Factura {char *codigo; char *cedula; ListaDE *descrip; double totalpagar; char *estado; struct _Factura *izq,*der; }tfactura; typedef tfactura *pnodoF; typedef tfactura *ListaF;
  • 10. Estas dos últimas estructuras, son para el manejo del registro de las ventas realizadas en la distribuidora, la estructura detalles permitirá crear una lista dinámica que almacenara los productos comprados en esa factura. La estructura factura formara los nodos del árbol binario. 4.5.2. Clases y su derivación. En este proyecto se instanciaron varias clases; todas ellas derivadas de una sala clase abstracta denominada Producto. De esta se derivan las clases Media, Litro, Galón, Bidón. Y tenemos un ultima derivación de la clase Media, de la cual se desprende las clases Funda y Botella. El esquema seria el siguiente: En cuanto al manejo de estas clases, se emplean en varias de ellas el polimorfismo, así como la abstracción de clases en la superclase Producto. Otra característica empleada en estas es la herencia simple como lo observamos en el esquema anterior. Producto BidónGalónLitro Media BotellaFunda
  • 11. V. Conclusión  Se concluye que el lenguaje de programación c++, es un lenguaje muy versátil aunque anticuado; pero no se puede negar su importancia dentro del software actual; ya que la gran mayoría de ellos tienen como base la programación en lenguaje c.  Los conceptos aprendidos en este lenguaje, servirán como base a futuro, pues estos mismos conceptos se aplican en software de desarrollo más actuales tales como Java.
  • 12. VI. Recomendación:  Al ser uno de los lenguajes base para la ingeniería en sistemas informáticos, se recomienda enseñar este lenguaje de manera transversal con otros en donde se vean reflejados de manera más concreta los concepto aprendido tales como: la herencia y el polimorfismo.