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-PRODUCTEper permetre l'actualització de la informació d'un producte existent. - Implementar la Funcionalitat d'Eliminació: Completa la secció
ELIMINAR-PRODUCTEper permetre l'eliminació d'un producte de l'inventari. - Implementar la Funcionalitat de Consulta: Completa la secció
CONSULTAR-PRODUCTEper permetre la consulta de la informació d'un producte específic. - Implementar la Funcionalitat de Llistat: Completa la secció
LLISTAR-PRODUCTESper 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
