Está en la página 1de 42

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

FACULTAD DE ESTUDIOS SUPERIORES


CUAUTITLAN”

“DOCUMENTACION DEL SISTEMA ALnet”

LICENCIATURA EN INFORMATICA.

ALEN ISAI MENDOZA HERNANDEZ.

MATERIA: PROGRAMACION III

PROFESORA: LUIS ROMERO

GRUPO: 1303

1
Índice:

Dedicatorias 3
Nombre de la aplicación/sistema. 4
Historia de la aplicación/sistema. 4
Descripción de la aplicación. 5
Isotipo del sistema 5
Librerías utilizadas para el desarrollo del
sistema 6
Herramientas utilizadas en el desarrollo del
sistema. 9
Estructura del sistema. 10

Listado de funcionalidades: 11
1.- Acceso al usuario. 11
2.-Administrar almacén 12
3.- Vista previa al almacén. 19
4.- Generar reporte. 19
5.- Administrar proveedores. 20
6.- Administrar usuarios. 27
7.-Inicio 34
8.- Salir 34
Diseños previos del sistema. 35
Modelo base para la creación del sistema. 36
Bosquejos. 37
Referencias y apoyos. 41

2
DEDICATORIAS:

Le agradezco enormemente a mi mentor, maestro Gerson Mendoza Hernandez


por haberme orientado y ayudado en el proceso de desarrollo de este sistema
tanto mental, como prácticamente, dándome clases exhaustivas de bases de
datos, manejo de tablas, modelado de tablas, CRUD en mysql, clases de java,
uso de java forms, y uso de avanzado de herramientas de java, clases de manejo
de JTables de java, como crear conexiones en netbeans con mysql y
prácticamente todo lo que se desde primer semestre. Le agradezco enormemente
y seria una mentira decir que quiero ser como tú, porque la verdad yo quiero ser
mejor.

Y también a mi profesora de Programación III Barbará Buendía por haberme


enseñado a usar eclipse, IDE que me enseño las bases de java de una manera
robusta no jalando forms en una ventana, ella me abrió los ojos a pensar en
grande en la programación y es un ejemplo a seguir, lamentablemente nos
abandono recién iniciado el curso, sin embargo lo que me enseño me dejo
marcado por esa razón el código fuente del sistema ALnet está desarrollado bajo
los estatutos que Barbará nos dio, Todas las clases, objetos y métodos en ingles y
con nombres nemónicos, sin terminar en números y demás cosas que nos exigía
en el curso.

Este sistema está dedicado totalmente a mi sobrino que esta por nacer:
Allen Jafet Mendoza Rodríguez.

3
Nombre de la aplicación/sistema:

ALnet.
Es un acrónimo de las palabras almacén (AL) y red (net), Alnet significa almacén
en red, dado que está pensado para ser un sistema que esté conectado en
diferentes plataformas y funcione en conjunto como una red de telaraña

O bien el hecho de juntar mi nombre ALen con 3 de los más grandes creadores de
la historia que me motivan en diferentes aspectos de la vida, Da ViNci, Einstein y
Tesla.

Historia de la aplicación/sistema:

“Si no soy capaz de crear algo que ya existe nunca seré capaz de crear algo nuevo”.

ALnet fue desarrollo por una tarea que surgió en inicio del semestre, la cual era
pensar en la creación de un sistema para cumplir con las necesidades de un
cliente real, entonces pensé en la empresa “Publicidad Pino” que se dedica a la
impresión y diseño de material para publicidad móvil y estática, en la que pude
laborar como practicante cuando asistía a la preparatoria, y entonces recordé la
mala organización que esta tiene y su almacén que no contaba con ningún tipo de
registro digital, todo era a papel y en recepción, no se tenía un control y a veces
ocurrían misteriosas perdidas de material (“SE LO ROBABAN ME CONSTA”),
entonces porque no ayudarle a solucionar sus problemas con una herramienta
sencilla, agradable y fácil de usar; exacto con sistema basado en sus necesidades
y sus requisitos, que les ofrezca solución a sus problemas de administración,
automatizando su almacén y mejorando el control dentro de “Publicidad Pino” así
nació ALnet únicamente como una idea.

Sin embargo al no ser capaz de desarrollar esa idea totalmente me acerque al


mejor maestro del mundo “Mi hermano mayor” pidiendo orientación para
desarrollar esta idea que tenía en mente, y así con los pocos conocimientos que
tenía en POO en java, comencé la abstracción del sistema, ya con los requisitos y
las funciones que este tenía que llevar todo estaba en mi cabeza solo faltaba
sacarlo y expresarlo gráficamente, después de semanas de estudiar POO
motivado por una ambición de poder y conocimiento y múltiples regaños por parte
de mi mentor logre desarrollar esa idea y así nació ALnet Software & Design que
aun sigue en fase beta, aun no está concluido pero muy pronto ALnet estará en el
mercado.

4
Descripción de la aplicación:

ALnet es un sistema administrativo y de toma de decisiones que sirve para


administrar las entradas salidas de materiales y generar reportes según sea la
elección del usuario; Utiliza la matriz de eventos-entidades CRUD (Crear, Leer,
Actualizar, Eliminar);

Fig. 1.0 Isotipo de ALnet

(Tomado de mundo Terra por falta de tiempo).

Fig. 1.1 Sistema “ALnet” personalizado para Publicidad Pino.

5
Librerías utilizadas para el desarrollo del sistema:

java.awt.Toolkit;

La utilice para mandar llamar dos de sus métodos que mas me fueron de ayuda.

1.- setLocation(); selecciona la posición del frame donde quieres que salga
2.- setVisible(); selecciona si un objeto es visible o no
3.- getDefaultToolkit(); pone el objeto en valores por defecto
4.- getImage(); devuelve una imagen
5.-getClass(); devuelve la clase en tiempo de ejecución;
6.- getResource(); devuelve un recurso

java.awt.print.PrinterException;

Su función en el sistema es crear una excepción si se cancela la impresión de una


tabla o un error en la conexión con la impresora.

java.sql.*;

Una de las librerías más importantes con ella pude realizar todas las acciones de
la matriz CRUD desde mi sistema a mi gestor de base de datos.

Los objetos y métodos más relevantes fueron:

1.-Connection: crea la conexión con la base de datos del sistema.


2.-Statement: envía una sentencia SQL y devuelve el resultado
3.- PreparedStatement: Sirve para almacenar una sentencia sql y
precompilarla, para poder utilizarla varias veces;
4.-Resultset: Una tabla de datos que representan un conjunto de resultados
de base de datos, que normalmente se genera mediante la ejecución de
una declaración que consulta la base de datos
5.- createStatement(); crea un nuevo objeto Statement
6.- executeQuery(); ejecuta una acción de un Statement y devuelve un
ResultSet
7.- executeUpdate(); ejecuta un Statement y no devuelve nada sierve para
insert, delete, update.

6
java.text.MessageFormat;

Con esta librería pude poner el Header y el Footer al formato que se imprime de
cada tabla, son los siguientes objetos:

1.-headerFormat : mensaje de la cabecera del formato a imprimir


2.- footerFormat : mensaje del pie de página del formato a imprimir

java.text.SimpleDateFormat;

Con ella logre poner la fecha en el sistema, a través de strings que sacan la fecha
desde la computadora.

javax.swing.JOptionPane;

Una de las librerías de gran apoyo con ella logre mandar un mensaje en pantalla
cuando el usuario interactuaba con el sistema desde mensajes de bienvenido a
alertas.

El principal método que utilice fue: showMessageDialog();

javax.swing.JTable;

Le debo mí vida a JTable con ella exprese mis tablas de base de datos
gráficamente y con un diseño accesible los principales objetos y métodos que
utilice fueron:

1.- DefaultTableModel: crea una tabla recibe los parámetros para columnas
y las filas se generan según lo modifiquemos.
2.- addRow(); añade las filas a la tabla que tengamos con los valores que
le enviemos.
3.- setModel(); Establece el modelo de datos de la tabla para ser utilizada
en otra tabla
4.- getColumnModel(); Devuelve el TableColumnModel que contiene toda la
información de la columna de esta tabla.
5.- getColumn(); Devuelve el TableColumn objeto para la columna en la
tabla cuyo identificador es igual al identificador.
6.- print(); imprime la tabla según el formato que le demos.
7.- getValueAt(); Devuelve el valor de la celda en la fila y la columna.

7
java.sql.DriverManager;

su función en el sistema es cargar las clases de controladores referencia en la


"jdbc.drivers" propiedad del sistema

Su método principal es el getConnection(); que realiza la conexión del sistema a


la base de datos.

java.sql.Connection;

Crea la conexión con la base de datos para enviarle, sentencias SQL se ejecutan
y los resultados se devuelven en el contexto de una conexión.

java.awt.Color

Me sirvió para cambiar el fondo y color a ciertos objetos.

jcMousePanel.jar

Nos crea un objeto denominado jMousePanel que no es otra cosa que un panel
transparente donde podemos encimar objetos por así (decirlo), sobre él lo utilice
para poner todos los fondos del sistema y unas imágenes.

No menciona mucho las librerías de java Forms porque me pareció


irrelevante.

8
Herramientas utilizadas para el desarrollo del sistema.

El IDE de desarrollo de Oracle basado en lenguaje java P.O.O en el que se


programo el sistema, (interfaz sencilla y muy cómoda de usar).

Adobe Ilustrator: Software de diseño empleado para el diseño de la interfaz e


imágenes vectoriales.

AppServ: Gestor de base de datos en el que se modelo la base de datos del


sistema.

Utilizado para la conexión sistema-base de datos, sus drivers son indispensables.

Command Line (MySQL/CMD): En él se creó la base de datos y todos sus


componentes (tablas) uno por uno, y en CMD se exporto e importo la base de
datos.

9
Estructura del sistema.

El sistema se encuentra organizado de la siguiente manera:

1) Paquete:
i) Clase.

DataBaseConecction:

Conexión.

Paquete que contiene la clase que crea la conexión base de datos-Sistema, envía
una conexión.

MainMenu:

LoadingSystem.
LoginAccesSystem.
MainMenu.
ReturnToMainMenu.

Paquete que contiene las principales ventanas del sistema, así como la clase que
permite regresar al menú.

Materials:

MaterialsMenu.

Paquete que contiene la ventana de materiales y todos sus componentes.

Providers:

ProvidersMenu.

Paquete que contiene la ventana de provedores y todos sus componentes.

User:

UserMenu.

Paquete que contiene la ventana de usuarios y todos sus componentes.

Images:

Paquete que contiene las imágenes utilizadas para la interfaz del sistema.

10
Lista de funcionalidades.
1.- Acceso al sistema, por medio de un usuario y contraseña:

El usuario podrá acceder si y solo si tiene una cuenta, llámese auxiliar,


administrador, gerente etc. Al ingresar su password se le dará acceso al sistema
en caso contrario el sistema le será inútil ya que las cuentas solo se pueden añadir
desde el mismo sistema.

Fig. 1.2 Ventana de Acceso al usuario. Fig. 1.3 Selección de usuario.

Fig. 1.4 Ingreso de la contraseña. Fig. 1.5 Acceso al sistema.

11
2.- Administrar almacén:

En esta opción los registros se muestran en una tabla diseñada con una interfaz
agradable al usuario, y con un click en cualquiera de ellos se nos mostrara la
información de una manera más adecuada para su manipulación.

El usuario podrá realizar las diferentes acciones de la matriz de eventos CRUD e


imprimir la tabla si le es necesario siendo totalmente manipulable y está diseñada
contra errores de llenar campos equivocadamente (fig. 1.6).

Fig. 1.6 Ventana de Administrar almacén.

La tabla es llenada con los registros que se tienen de cada material, organizado
por su número de ID, mismo que le es asignado por el usuario, también podemos
observar como varios campos y botones no están disponibles en primera instancia
(fig. 1.6).

12
Fig. 1.7 Búsqueda de registros en el sistema.

Al realizar una búsqueda al momento de teclear una letra que pertenezca al


nombre completo de algún producto nos muestras las posibles opciones en la
tabla igualmente en el ID (fig. 1.7).

Fig. 1.8 Click sobre un registro.

Al dar click sobre algún registro este cambia de color a azul dando a entender así
al usuario que este es el registro que se está utilizando actualmente, también
observamos como al dar click en un registro los campos que estaban inaccesibles
en la fig. 1.6 se activan mostrando así la información del registro seleccionado y
activando las opciones de modificar y eliminar (fig. 1.8).

Para realizar la acción de modificar solo es necesario editar los campos de texto
deseados, seleccionar la categoría, asignar valores a cada campo y dar click en el
botón modificar, sin embargo si se añaden valores no correspondientes a los
definidos en la base de datos nos mandara un error en pantalla y no modificara
nada evitando así errores por parte del usuario (fig. 1.9 – 2.4.).

13
Fig. 1.9 Seleccionando registro a modificar.

Fig. 2.0 Modificando valores del registro.

14
Fig. 2.1 Presionando el botón de modificar para realizar la acción.

Fig. 2.2 Botón presionado.

Fig. 2.3 Registro modificado

15
Fig. 2.4 Ingresando Valores no admitidos y respuesta

Para añadir un registro nuevo es necesario presionar el botón nuevo luego, los
campos de texto se vaciaran dejando así al usuario añadir la información
correspondiente una vez llenados todos los campos Y haber dado click en el
botón guardar se añadirá el nuevo registro a la tabla, sin embargo si se añaden
valores no correspondientes a los definidos en la base de datos o no se llenan
todos los campos nos mandara un error en pantalla y no se guardara el registro
(fig. 2.5 – 2.9).

Fig. 2.5 Click en el botón nuevo.

Fig. 2.6 Llenado de todos los campos.

16
Fig. 2.7 Click en el botón de guardar y registro guardado.

Fig. 2.8 Error al llenar los campos.

17
Fig. 2.9 Error valores no aceptados.

Para eliminar un registro solo es necesario presionar el botón eliminar y listo esta
acción no tiene vuelta atrás por lo que es una opción condicional (fig. 3.0 -3.1).

Fig. 3.0 Confirmación de eliminar registro.

Fig. 3.1 Registro eliminado (presiono si).

Imprimir la tabla únicamente es necesario presionar el botón con el icono de la


impresora y nos mandara a las propiedades de nuestra impresora para ajustar la
impresión del documento a nuestro gusto (fig. 3.2).

Fig. 3.2 Imprimiendo tabla.

18
3.- Vista previa al almacén:

Esta opción aun esta en desarrollo por lo que únicamente nos manda un mensaje
en pantalla (fig. 3.3).

Fig. 3.3 Vista previa al almacén.

4.- Generar reporte:

Esta opción aun esta en desarrollo por lo que únicamente nos manda un mensaje
en pantalla.

Esta opción aun esta en desarrollo por lo que únicamente nos manda un mensaje
en pantalla (fig. 3.4).

Fig. 3.4 Generar reporte.

19
5.- Administrar proveedores:

En esta opción los registros se muestran en una tabla diseñada con una interfaz
agradable al usuario, y con un click en cualquiera de ellos se nos mostrara la
información de una manera más adecuada para su manipulación.

El usuario podrá realizar las diferentes acciones de la matriz de eventos CRUD e


imprimir la tabla si se es necesario siendo totalmente manipulable y está diseñada
contra errores de llenar campos equivocadamente.

Fig.3.6 Ventana de administrar proveedores.

La tabla se llena con los registros que se tienen de cada proveedor, organizado
pos su número de ID que le es asignado por el usuario también podemos observar
como varios campos y botones no están disponibles en primera instancia (fig. 3.6).

Al realizar una búsqueda al momento de teclear una letra que pertenezca al


nombre de la empresa de algún proveedor nos muestras las posibles opciones en
la tabla (fig. 3.7).

20
Fig. 3.7 Búsqueda de proveedores.

Al dar click sobre algún registro este cambia de color a azul dando a entender así
al usuario que este es el registro que se está utilizando actualmente, también
observamos como al dar click en un registro los campos que estaban inaccesibles
en la fig. 3.7 se activan mostrando así la información del registro seleccionado y
activando las opciones de modificar y eliminar (fig. 3.8).

Fig. 3.8 Click en los registros.

21
Para realizar las accione de modificar solo es necesario editar los campos de texto
deseados, asignar valores a cada campo y dar click en el botón modificar, sin
embargo si se añaden valores no correspondientes a los definidos en la base de
datos nos mandara un error en pantalla y no modificara nada evitando así errores
por parte del usuario (fig. 3.9 – 4.3).

Fig. 3.9 Seleccionando registro a modificar.

Fig. 4.0 Modificando valores del registro.


22
Fig. 4.1 Presionando el botón de modificar para realizar la acción.

Fig. 4.2 Registro modificado

Fig. 4.3 Ingresando Valores no admitidos y respuesta

23
Para añadir un nuevo registro es necesario presionar el botón nuevo luego, los
campos de texto se vaciaran dejando así al usuario añadir la información
correspondiente una vez llenados todos los campos Y haber dado click en el
botón guardar se añadirá el nuevo registro a la tabla, sin embargo si se añaden
valores no correspondientes a los definidos en la base de datos o no se llenan
todos los campos nos mandara un error en pantalla y no se guardara el registro
(fig. 4.4 – 4.8).

Fig. 4.4 Click en el botón nuevo.

Fig. 4.5 Llenado de todos los campos.

24
Fig. 4.6 Click en el botón de guardar y registro guardado.

Fig. 4.7 Error al llenar los campos.

Fig. 4.8 Error valores no aceptados.

25
Para eliminar un registro solo es necesario presionar el botón eliminar y listo esta
acción no tiene vuelta atrás por lo que es una opción condicional (fig. 4.9 -5.1).

Fig. 4.9 Confirmación de eliminar registro.

Fig. 5.0 Registro eliminado (presiono si).

Para Imprimir la tabla únicamente es necesario presionar el botón con el icono de


la impresora y nos mandara a las propiedades de nuestra impresora para ajustar
la impresión del documento a nuestro gusto (fig. 5.1).

Fig. 5.1 Imprimiendo tabla.

26
6.- Administrar usuarios:

En esta opción los registros se muestran en una tabla diseñada con una interfaz
agradable al usuario, y con un click en cualquiera de ellos se nos mostrara la
información de una manera más adecuada para su manipulación.

El usuario podrá realizar las diferentes acciones de la matriz de eventos CRUD e


imprimir la tabla si se es necesario siendo totalmente manipulable y está diseñada
contra errores de llenar campos equivocadamente.

Fig.5.2 Ventana de administrar usuarios.

La tabla se llena con los registros que se tienen de cada proveedor, organizado
pos su número de ID que le es asignado por el usuario también podemos observar
como varios campos y botones no están disponibles en primera instancia (fig. 5.2).

Al realizar una búsqueda al momento de teclear una letra que pertenezca al


nombre de la empresa de algún proveedor nos muestras las posibles opciones en
la tabla (fig. 5.3).

Fig. 5.3 Búsqueda de usuarios.

27
Al dar click sobre algún registro este cambia de color a azul dando a entender así
al usuario que este es el registro que se está utilizando actualmente, también
observamos como al dar click en un registro los campos que estaban inaccesibles
en la fig. 5.3 se activan mostrando así la información del registro seleccionado y
activando las opciones de modificar y eliminar (fig. 5.4).

Fig. 5.4 Click en los registros.

Para realizar las accione de modificar solo es necesario editar los campos de texto
deseados, asignar valores a cada campo y dar click en el botón modificar, sin
embargo si se añaden valores no correspondientes a los definidos en la base de
datos nos mandara un error en pantalla y no modificara nada evitando así errores
por parte del usuario (fig. 5.5 – 5.9).

Fig. 5.5 Seleccionando registro a modificar.

28
Fig. 5.6 Modificando valores del registro.

Fig. 5.7 Presionando el botón de modificar para realizar la acción.

29
Fig. 5.8 Registro modificado

Fig. 5.9 Ingresando Valores no admitidos y respuesta

30
Para añadir un nuevo registro es necesario presionar el botón nuevo luego, los
campos de texto se vaciaran dejando así al usuario añadir la información
correspondiente una vez llenados todos los campos Y haber dado click en el
botón guardar se añadirá el nuevo registro a la tabla, sin embargo si se añaden
valores no correspondientes a los definidos en la base de datos o no se llenan
todos los campos nos mandara un error en pantalla y no se guardara el registro
(fig. 6.0 – 6.4).

Fig. 6.0 Click en el botón nuevo.

Fig. 6.1 Llenado de todos los campos.

31
Fig. 6.2 Click en el botón de guardar y registro guardado.

Fig. 6.3 Error al llenar los campos.

Fig. 6.4 Error valores no aceptados.

32
Para eliminar un registro solo es necesario presionar el botón eliminar y listo esta
acción no tiene vuelta atrás por lo que es una opción condicional (fig. 6.5 – 6.7).

Fig. 6.5 Confirmación de eliminar registro.

Fig. 6.6 Registro eliminado (presiono si).

Para Imprimir la tabla únicamente es necesario presionar el botón con el icono de


la impresora y nos mandara a las propiedades de nuestra impresora para ajustar
la impresión del documento a nuestro gusto (fig. 6.7).

Fig. 6.7 Imprimiendo tabla.


33
7.- inicio:

Esta acción fue realizada para poder regresar al menú inicio desde cualquier otra
ventana. Es representada por el icono (ver fig. 6.8).

Fig. 6.8 icono de inicio.

8.- Salir:

Esta acción fue realizada para poder salir del sistema desde ventana. Es
representada por el icono (ver fig. 6.9).

Fig. 6.9 icono de salir.

34
Diseños previos del sistema.

El diseño de interfaz paso por varios cambios y modificaciones.

La imágenes presentadas son diseños de la ventana de Acceso al usuario,


pantalla de carga, y menú principal respectivamente,

Fig. 7.0 Pre-diseño Acceso al usuario.

Fig. 7.1 pre-diseño Pantalla de carga.

Fig. 7.2 pre-diseño Menú principal.

35
Modelo base para la creación del sistema.

Sistema de ventas.

En el sistema contara con los siguientes módulos:

Clientes.

Acciones que se pueden realizar:

Agregar, borrar, consultar, buscar, guardar, editar.

Consultas:

Acciones que se pueden realizar:

Consultar, enlistar.

Empleados

Acciones que se pueden realizar:

Agregar, borrar, consultar, editar, guardar.

Facturas.

Acciones que se pueden realizar:

Expedir, consultar, agregar, borrar.

Productos.

Acciones que se pueden realizar:

Agregar, borrar, consultar, guardar, editar.

Proveedores.

Acciones que se pueden realizar:

Agregar, borrar, consultar, editar, guardar.

Ventas.

Acciones que se pueden realizar:

Vender, consultar. Facturar.

Usuarios

Acciones que se pueden realizar:

Agregar, borrar, consultar, editar, guardar.

Fue el modelo base la abstracción práctica para crear un sistema básico de ventas
separando las acciones en módulos (clases) e idealizando sus métodos.

36
Bosquejos.

Esta sección solo muestra cómo es que se desarrollo la abstracción grafica del
sistema a nivel cabeza-mano-papel.

Fig. 7.3 Bosquejo general de las funciones del menú principal.

Basado en el diseño previo de la fig. 7.2 empecé la creación del sistema


separándolo en módulos y reconociendo sus métodos o acciones que podrá
realizar cada modulo.

Una de las partes más complicadas ya que se me ocurrían muchas acciones para
el sistema.

37
Bosquejo general de la creacion de la base de datos para el acceso del usuario,
modelado y abstraccion de la tabla (fig. 7.4).

Fig. 7.4 Abstracción de las tablas de la base de datos.

38
Notas de la sintaxis de cómo crear una base de datos en MySQL (AppServ), no se
aprecia muy bien (fig. 7.5).

Fig. 7.5 Sintaxis MySQL.

Desde cómo crear una base de datos, CRUD, y otras cosas.

39
Diseños previos y modelado de tablas, se muestran los bosquejos de la interfaz
para la vista previa del almacén generando medidas para poder calcular el espacio
disponible y asignar acciones a esta ventana (fig. 7.6-f ).

Fig. 7.6 Ventana de Vista previa bosquejo.

Fig. 7.7Acciones a realizar en la ventana de vista previa bosquejo.

40
Referencias y apoyos.

El principal apoyo me fue brindado por parte de mi mentor, la sintaxis que


desconocía y los forms que no sabía que existían me fueron brindados por mi
mentor, sin embargo también me apoye de las siguientes referencias:

1.- De mi mentor: Gerson Mathiel Mendoza Hernandez.

2.- Libro: JAVA 2 Incluye swing, threads, programación en red, JavaBeans,


Servlets

Autor: JORGE SANCHEZ (www.jorgesanchez) año 2004.

Publicación web.

3.- De youtube.

4.- De la pagina jcMouse.

5.- Y también de los amados JavaDocs (presionando ctrl+F1).

Es necesario mencionar que gracias a las clases de estructuras de datos del


semestre pasado me fue mucho mas fácil la creación del sistema aunque la
herramienta de aquel entonces fue C y la consola la estructura de datos son
modelos universales, ejercicios que realice (fig. 7.8).

41
Fig. 7.8 Ejercicio de archivos en C (algo similar al manejo de base de datos).

42

También podría gustarte