https://github.com/armanbhatia0100/cobol_employee_management_program
This COBOL program, EMPLOYEE-MANAGEMENT-PROGRAM, allows users to input employee data, store it in an external file, and then display a formatted table of employees with 10.5 or more years of service. It’s a simple demonstration of file I/O and data processing in COBOL.
https://github.com/armanbhatia0100/cobol_employee_management_program
cobol cobol-language cobol-programs db2 ibm jcl
Last synced: 3 months ago
JSON representation
This COBOL program, EMPLOYEE-MANAGEMENT-PROGRAM, allows users to input employee data, store it in an external file, and then display a formatted table of employees with 10.5 or more years of service. It’s a simple demonstration of file I/O and data processing in COBOL.
- Host: GitHub
- URL: https://github.com/armanbhatia0100/cobol_employee_management_program
- Owner: ArmanBhatia0100
- Created: 2025-03-31T04:20:02.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-31T04:23:16.000Z (3 months ago)
- Last Synced: 2025-03-31T05:24:57.180Z (3 months ago)
- Topics: cobol, cobol-language, cobol-programs, db2, ibm, jcl
- Language: COBOL
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Employee Management Program
## Overview
This COBOL program, `EMPLOYEE-MANAGEMENT-PROGRAM`, allows users to input employee data, store it in an external file, and then display a formatted table of employees with 10.5 or more years of service. It’s a simple demonstration of file I/O and data processing in COBOL.## Features
- Collects employee information interactively from the user:
- Employee ID (6 digits)
- Department Code (3 digits)
- First Name (up to 20 characters)
- Last Name (up to 20 characters)
- Years of Service (e.g., 20.5)
- Writes the data to `EMPLOYEE-FILE.txt`.
- Reads the file and displays a formatted table of employees with 10.5+ years of service.
- Includes a header and separator line for the output table.## Prerequisites
- A COBOL compiler (e.g., GnuCOBOL or IBM Enterprise COBOL).
- A compatible environment to run COBOL programs (e.g., Linux, Windows with GnuCOBOL, or a mainframe).
- Write permissions in the parent directory for creating `EMPLOYEE-FILE.txt`.## File Structure
### Output/Input File
- **`EMPLOYEE-FILE.txt`**
- Format: Line-sequential
- Record Structure:
- Employee ID (6 digits)
- Department Code (3 digits)
- First Name (20 chars, alphabetic)
- Last Name (20 chars, alphabetic)
- Years of Service (3 digits, 2 before decimal, 1 after, e.g., 20.5)
- Example:
```
123456123John Smith 015
789123456Jane Doe 012
```## Installation
1. Clone the repository:
```bash
git clone https://github.com/ArmanBhatia0100/employee-management-program.git
```
2. Ensure the program has access to the parent directory (or adjust the file path in the `FILE-CONTROL` section).
3. Compile the COBOL program:
```bash
cobc -x EMPLOYEE-MANAGEMENT-PROGRAM.cbl
```## Usage
1. Run the compiled program:
```bash
./EMPLOYEE-MANAGEMENT-PROGRAM
```
2. Follow the prompts to enter employee data:
- Input each field as requested (e.g., Employee ID, Department Code, etc.).
- Choose "Y" to continue adding employees or "N" to finish.
3. After input is complete, the program will display a table of employees with 10.5+ years of service.### Sample Interaction
```
WHAT IS THE EMPLOYEE-ID? ex(123456)
123456
WHAT IS DEP-CODE? ex(123)
123
WHAT IS THE FIRST NAME?
John
WHAT IS THE LAST NAME?
Smith
WHAT IS THE YEAR OF SERVICE? (ex: 20.5)
15.5
DO YOU WANT TO CONTINUE? Y/N
N
```
**Output:**
```
EMP-ID DEPT FIRST-NAME LAST-NAME SERVICE-YEAR
--------------------------------------------------------------------------------
123456 123 JohnSmith15.5
```## Program Structure
- **IDENTIFICATION DIVISION**: Defines the program name and metadata (author: Arman Bhatia, date: Feb 10, 2025).
- **ENVIRONMENT DIVISION**: Configures the employee file.
- **DATA DIVISION**: Defines file structure and working storage variables.
- **PROCEDURE DIVISION**: Main logic:
- `101-INITIALIZE-OUTPUT-FILE`: Opens the file for writing.
- `102-GET-INPUT-FROM-USER`: Collects and writes employee data.
- `103-CLOSE-OUTPUT-FILE`: Closes the output file.
- `201-INITIALIZE-INPUT-FILE`: Opens the file for reading.
- `210-PRINT-HEADER`: Displays the table header.
- `202-GET-RECORD-FROM-FILE`: Reads and displays qualifying records.
- `203-CLOSE-INPUT-FILE`: Closes the input file.## Limitations
- Displays only employees with 10.5+ years of service.
- No input validation (e.g., accepts invalid formats).
- Output formatting is basic and lacks consistent spacing.
- Overwrites `EMPLOYEE-FILE.txt` each run (no append mode).## Contributing
Feel free to fork this repository and submit pull requests for enhancements, such as:
- Adding input validation for numeric and alphabetic fields.
- Improving table formatting with better spacing.
- Supporting file append instead of overwrite.
- Including all employees in the output with a filter option.## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.## Contact
For questions or suggestions, open an issue or contact [[email protected]].