A console-based Car Workshop Management System developed in C++ as a 1st Semester Computer Programming (CSC 113) Final Group Project at Bahria University.
The project simulates the core operations of an automobile workshop, including vehicle and customer records, mechanic management, spare-parts inventory, job cards, job-status tracking, and invoice generation. Data is stored using text files so that records can persist between program executions.
| Detail | Information |
|---|---|
| Project | Car Workshop Management System |
| Course | Computer Programming (CSC 113) |
| Semester | 1st Semester |
| Project Type | Final Group Project |
| University | Bahria University |
| Programming Language | C++ |
| Interface | Console / CLI |
| Storage | Text File Persistence |
| Developers | Muhammad Azhar & Syed Shaheer Ali |
The Car Workshop Management System is designed to provide a simple computerized solution for managing common workshop activities.
Instead of maintaining workshop information manually, the program organizes records into separate functional modules. Users can add, display, search, and manage workshop data through a menu-driven console interface.
The system also loads previously saved records when the program starts and saves changes to text files during operation.
-
Vehicle Management
- Add vehicle records
- Display all registered vehicles
- Search vehicles using license plate numbers
-
Customer Management
- Store customer information
- Maintain vehicle information alongside customer records
- Search customer records by name
-
Mechanic Management
- Add mechanic information
- Record mechanic specialization
- Store assigned jobs
- Display mechanic records
-
Spare Parts Inventory
- Add spare parts
- Track part IDs
- Track available quantities
- Store price per unit
- Search parts using their IDs
-
Job Card Management
- Create job cards for vehicles
- Record reported issues
- Assign mechanics
- Store labor and parts costs
- Track job status
- View pending jobs
- Update jobs between In Progress and Completed
-
Billing & Invoice Generation
- Generate an invoice using the vehicle ID
- Display labor cost
- Display parts cost
- Calculate the total workshop bill
-
File Persistence
- Automatically save records to text files
- Load existing records when the application starts
- Maintain data across multiple program executions
Handles registration and management of workshop vehicles.
Operations:
- Add Vehicle
- Display All Vehicles
- Search Vehicle by License Plate
Stores customer details together with their vehicle information.
Operations:
- Add Customer Information
- Display Customer Records
- Search Customer by Name
Maintains information about workshop mechanics and their assignments.
Operations:
- Add Mechanic Information
- Display All Mechanics
Provides basic inventory management for workshop spare parts.
Operations:
- Add Spare Part
- Display Inventory
- Search Part by ID
Records repair jobs and their current status.
Operations:
- Create Job Card
- Display Job Cards
- Search Job by Vehicle ID
- View Pending Jobs
- Update Job Status
Generates a simple invoice from the selected vehicle's job record.
The invoice includes:
- Vehicle ID
- Reported Issue
- Assigned Mechanic
- Parts Cost
- Labor Cost
- Total Amount
This project was developed around fundamental programming concepts covered during the first semester.
- Variables and data types
- Input/output using
cinandcout - Conditional statements
- Loops
- Functions
- Arrays
- Strings
The system uses custom struct types to represent major entities such as:
vehiclecustomermechanicspare_partsjobcard
Nested structures are also used, such as storing a vehicle inside the customer structure.
The project uses C++ file streams to provide persistent storage:
ofstreamfor writing recordsifstreamfor reading records
Separate text files are used for different categories of data, including vehicles, customers, mechanics, inventory, and job cards.
The program performs record searches using sequential traversal and a bool found pattern.
A main menu and module-specific menus provide navigation through the system using conditional statements and a do-while loop.
Records are loaded when the program starts and saved after relevant operations, allowing information to remain available between executions.
The application uses text files for persistent storage:
vehicles.txt
customers.txt
mechanics.txt
inventory.txt
jobcard.txt
These files are created and updated by the program as records are added or modified.
Car-Workshop-Management-System/
│
├── Workshop_Management_System.cpp
├── vehicles.txt
├── customers.txt
├── mechanics.txt
├── inventory.txt
├── jobcard.txt
└── README.md
The
.txtfiles are generated/used by the program for persistent data storage.
A C++ compiler such as G++ is required.
g++ Workshop_Management_System.cpp -o workshopLinux / macOS / Git Bash:
./workshopWindows:
workshop.exeThe application starts by loading previously saved records and then displays the main menu:
1. Vehicle Module
2. Customer Module
3. Mechanic Module
4. Spare Parts Module
5. Job Card Module
6. Billing & Invoice
0. Exit
Users can enter the corresponding option to access each module.
This project provided practical experience in applying introductory C++ concepts to a complete multi-module program.
Through the project, we practiced:
- Designing structures for real-world entities
- Breaking a larger application into functions and modules
- Managing records with arrays
- Implementing search functionality
- Working with nested structures
- Reading and writing files
- Building menu-driven applications
- Maintaining persistent data
- Combining multiple programming concepts into one functional system
As a 1st Semester Computer Programming project, the system intentionally uses fundamental C++ concepts rather than advanced software architecture.
Current limitations include:
- Fixed-size arrays with a maximum of 100 records per category
- Text-file storage rather than a database
- Console-based interface
- Basic input validation
- Simple search mechanisms
- No authentication or user roles
- No GUI or web interface
These limitations also reflect the project's focus on demonstrating foundational programming concepts.
Possible extensions for a future version include:
- Database integration
- Graphical User Interface (GUI)
- Improved input validation
- Unique IDs for all entities
- Automatic inventory stock updates
- More advanced customer and vehicle relationships
- Detailed reporting and analytics
- Authentication and role-based access
- Improved billing and invoice management
- Object-Oriented Programming architecture
Computer Science Student — Bahria University
Computer Science Student — Bahria University
This project was collaboratively developed as part of our 1st Semester Computer Programming Final Group Project.
Note: This project was developed for educational purposes to demonstrate fundamental C++ programming concepts and their application to a practical problem domain.