En aquest estudi de cas, desenvoluparem un sistema de gestió d'inventari utilitzant COBOL. Aquest projecte ens permetrà aplicar els coneixements adquirits al llarg del curs, des de la manipulació de dades fins a la gestió d'arxius i l'ús de subprogrames.
Objectius del Projecte
- Crear un sistema d'inventari bàsic que permeti afegir, actualitzar, eliminar i consultar productes.
- Utilitzar arxius seqüencials per emmagatzemar la informació dels productes.
- Implementar subprogrames per modularitzar el codi.
- Gestionar errors i assegurar la integritat de les dades.
Estructura del Sistema
El sistema de gestió d'inventari tindrà les següents funcionalitats:
- Afegir Producte: Permet afegir un nou producte a l'inventari.
- Actualitzar Producte: Permet actualitzar la informació d'un producte existent.
- Eliminar Producte: Permet eliminar un producte de l'inventari.
- Consultar Producte: Permet consultar la informació d'un producte específic.
- Llistar Productes: Mostra tots els productes de l'inventari.
Estructura de Dades
Cada producte tindrà els següents camps:
- Codi del Producte: Un identificador únic per a cada producte.
- Nom del Producte: El nom del producte.
- Quantitat: La quantitat disponible en l'inventari.
- Preu: El preu del producte.
Definició de la Dada en COBOL
01 PRODUCTE. 05 CODI-PRODUCTE PIC X(10). 05 NOM-PRODUCTE PIC X(30). 05 QUANTITAT PIC 9(5). 05 PREU PIC 9(5)V99.
Estructura del Programa
El programa principal es dividirà en diverses seccions per gestionar les diferents funcionalitats. Utilitzarem subprogrames per modularitzar el codi.
Programa Principal
IDENTIFICATION DIVISION. PROGRAM-ID. GESTIO-INVENTARI. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INVENTARI ASSIGN TO 'inventari.dat' ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD INVENTARI. 01 PRODUCTE-REGISTRE. 05 CODI-PRODUCTE PIC X(10). 05 NOM-PRODUCTE PIC X(30). 05 QUANTITAT PIC 9(5). 05 PREU PIC 9(5)V99. WORKING-STORAGE SECTION. 01 OPCIO-USUARI PIC 9. 01 FINALITZAR PIC X VALUE 'N'. PROCEDURE DIVISION. INICI. PERFORM MENU-PRINCIPAL PERFORM UNTIL FINALITZAR = 'S' DISPLAY 'Selecciona una opció:' ACCEPT OPCIO-USUARI EVALUATE OPCIO-USUARI WHEN 1 PERFORM AFEGIR-PRODUCTE WHEN 2 PERFORM ACTUALITZAR-PRODUCTE WHEN 3 PERFORM ELIMINAR-PRODUCTE WHEN 4 PERFORM CONSULTAR-PRODUCTE WHEN 5 PERFORM LLISTAR-PRODUCTES WHEN OTHER DISPLAY 'Opció no vàlida.' END-EVALUATE END-PERFORM STOP RUN. MENU-PRINCIPAL. DISPLAY '1. Afegir Producte' DISPLAY '2. Actualitzar Producte' DISPLAY '3. Eliminar Producte' DISPLAY '4. Consultar Producte' DISPLAY '5. Llistar Productes' DISPLAY '6. Sortir' DISPLAY 'Selecciona una opció:' ACCEPT OPCIO-USUARI IF OPCIO-USUARI = 6 MOVE 'S' TO FINALITZAR. AFEGIR-PRODUCTE. DISPLAY 'Introdueix el codi del producte:' ACCEPT CODI-PRODUCTE DISPLAY 'Introdueix el nom del producte:' ACCEPT NOM-PRODUCTE DISPLAY 'Introdueix la quantitat:' ACCEPT QUANTITAT DISPLAY 'Introdueix el preu:' ACCEPT PREU OPEN OUTPUT INVENTARI WRITE PRODUCTE-REGISTRE CLOSE INVENTARI DISPLAY 'Producte afegit correctament.' ACTUALITZAR-PRODUCTE. DISPLAY 'Funcionalitat no implementada encara.' ELIMINAR-PRODUCTE. DISPLAY 'Funcionalitat no implementada encara.' CONSULTAR-PRODUCTE. DISPLAY 'Funcionalitat no implementada encara.' LLISTAR-PRODUCTES. DISPLAY 'Funcionalitat no implementada encara.'
Exercicis Pràctics
- Implementar la Funcionalitat d'Actualització: Completa la secció
ACTUALITZAR-PRODUCTE
per permetre l'actualització de la informació d'un producte existent. - Implementar la Funcionalitat d'Eliminació: Completa la secció
ELIMINAR-PRODUCTE
per permetre l'eliminació d'un producte de l'inventari. - Implementar la Funcionalitat de Consulta: Completa la secció
CONSULTAR-PRODUCTE
per permetre la consulta de la informació d'un producte específic. - Implementar la Funcionalitat de Llistat: Completa la secció
LLISTAR-PRODUCTES
per mostrar tots els productes de l'inventari.
Solucions
Actualitzar Producte
ACTUALITZAR-PRODUCTE. DISPLAY 'Introdueix el codi del producte a actualitzar:' ACCEPT CODI-PRODUCTE OPEN I-O INVENTARI PERFORM UNTIL END-OF-FILE READ INVENTARI AT END MOVE 'S' TO END-OF-FILE NOT AT END IF CODI-PRODUCTE = CODI-PRODUCTE-REGISTRE DISPLAY 'Introdueix el nou nom del producte:' ACCEPT NOM-PRODUCTE DISPLAY 'Introdueix la nova quantitat:' ACCEPT QUANTITAT DISPLAY 'Introdueix el nou preu:' ACCEPT PREU REWRITE PRODUCTE-REGISTRE DISPLAY 'Producte actualitzat correctament.' END-IF END-PERFORM CLOSE INVENTARI.
Eliminar Producte
ELIMINAR-PRODUCTE. DISPLAY 'Introdueix el codi del producte a eliminar:' ACCEPT CODI-PRODUCTE OPEN I-O INVENTARI PERFORM UNTIL END-OF-FILE READ INVENTARI AT END MOVE 'S' TO END-OF-FILE NOT AT END IF CODI-PRODUCTE = CODI-PRODUCTE-REGISTRE DELETE INVENTARI DISPLAY 'Producte eliminat correctament.' END-IF END-PERFORM CLOSE INVENTARI.
Consultar Producte
CONSULTAR-PRODUCTE. DISPLAY 'Introdueix el codi del producte a consultar:' ACCEPT CODI-PRODUCTE OPEN INPUT INVENTARI PERFORM UNTIL END-OF-FILE READ INVENTARI AT END MOVE 'S' TO END-OF-FILE NOT AT END IF CODI-PRODUCTE = CODI-PRODUCTE-REGISTRE DISPLAY 'Nom del Producte: ' NOM-PRODUCTE DISPLAY 'Quantitat: ' QUANTITAT DISPLAY 'Preu: ' PREU END-IF END-PERFORM CLOSE INVENTARI.
Llistar Productes
LLISTAR-PRODUCTES. OPEN INPUT INVENTARI PERFORM UNTIL END-OF-FILE READ INVENTARI AT END MOVE 'S' TO END-OF-FILE NOT AT END DISPLAY 'Codi: ' CODI-PRODUCTE DISPLAY 'Nom: ' NOM-PRODUCTE DISPLAY 'Quantitat: ' QUANTITAT DISPLAY 'Preu: ' PREU END-PERFORM CLOSE INVENTARI.
Conclusió
Aquest estudi de cas ha demostrat com es pot utilitzar COBOL per desenvolupar un sistema de gestió d'inventari. Hem cobert la creació, actualització, eliminació, consulta i llistat de productes, utilitzant arxius seqüencials i subprogrames per modularitzar el codi. Aquest projecte proporciona una base sòlida per a la creació de sistemes més complexos i robustos en COBOL.
Curs de Programació COBOL
Mòdul 1: Introducció al COBOL
- Què és el COBOL?
- Història del COBOL
- Configuració de l'Entorn COBOL
- Estructura Bàsica d'un Programa COBOL
Mòdul 2: Sintaxi Bàsica del COBOL i Tipus de Dades
Mòdul 3: Estructures de Control
Mòdul 4: Treballant amb Dades
- Gestió d'Arxius en COBOL
- Processament d'Arxius Seqüencials
- Processament d'Arxius Indexats
- Processament d'Arxius Relatius
Mòdul 5: Gestió Avançada de Dades
Mòdul 6: Subprogrames i Programació Modular
Mòdul 7: Gestió d'Errors i Depuració
Mòdul 8: COBOL i Bases de Dades
Mòdul 9: Temes Avançats
- COBOL Orientat a Objectes
- COBOL i Serveis Web
- Optimització del Rendiment
- Millors Pràctiques en Programació COBOL