proyecto para programacion y estructura

12
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

Upload: christian-torres

Post on 26-Jul-2015

77 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Proyecto para programacion y estructura

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

Page 2: Proyecto para programacion y estructura

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.

Page 3: Proyecto para programacion y estructura

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í.

Page 4: Proyecto para programacion y estructura

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

Page 5: Proyecto para programacion y estructura

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,

Page 6: Proyecto para programacion y estructura

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.

Page 7: Proyecto para programacion y estructura

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.

Page 8: Proyecto para programacion y estructura

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;

Page 9: Proyecto para programacion y estructura

}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;

Page 10: Proyecto para programacion y estructura

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ón

Galón

Litro Media

Botella

Funda

Page 11: Proyecto para programacion y estructura

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.

Page 12: Proyecto para programacion y estructura

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.