Skip to content

About

Full workshop management system in C++ — vehicles, customers, mechanics, inventory, job cards, and billing with file persistence

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Car Workshop Management System

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.

Project Information

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

Overview

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.

Features

  • 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

System Modules

1. Vehicle Module

Handles registration and management of workshop vehicles.

Operations:

  • Add Vehicle
  • Display All Vehicles
  • Search Vehicle by License Plate

2. Customer Module

Stores customer details together with their vehicle information.

Operations:

  • Add Customer Information
  • Display Customer Records
  • Search Customer by Name

3. Mechanic Module

Maintains information about workshop mechanics and their assignments.

Operations:

  • Add Mechanic Information
  • Display All Mechanics

4. Spare Parts Module

Provides basic inventory management for workshop spare parts.

Operations:

  • Add Spare Part
  • Display Inventory
  • Search Part by ID

5. Job Card Module

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

6. Billing & Invoice Module

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

Concepts Demonstrated

This project was developed around fundamental programming concepts covered during the first semester.

C++ Fundamentals

  • Variables and data types
  • Input/output using cin and cout
  • Conditional statements
  • Loops
  • Functions
  • Arrays
  • Strings

Structures

The system uses custom struct types to represent major entities such as:

  • vehicle
  • customer
  • mechanic
  • spare_parts
  • jobcard

Nested structures are also used, such as storing a vehicle inside the customer structure.

File Handling

The project uses C++ file streams to provide persistent storage:

  • ofstream for writing records
  • ifstream for reading records

Separate text files are used for different categories of data, including vehicles, customers, mechanics, inventory, and job cards.

Searching

The program performs record searches using sequential traversal and a bool found pattern.

Menu-Driven Programming

A main menu and module-specific menus provide navigation through the system using conditional statements and a do-while loop.

Data Persistence

Records are loaded when the program starts and saved after relevant operations, allowing information to remain available between executions.

Data Files

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.

Project Structure

Car-Workshop-Management-System/
│
├── Workshop_Management_System.cpp
├── vehicles.txt
├── customers.txt
├── mechanics.txt
├── inventory.txt
├── jobcard.txt
└── README.md

The .txt files are generated/used by the program for persistent data storage.

How to Compile and Run

Prerequisites

A C++ compiler such as G++ is required.

Compile

g++ Workshop_Management_System.cpp -o workshop

Run

Linux / macOS / Git Bash:

./workshop

Windows:

workshop.exe

Program Flow

The 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.

Learning Outcomes

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

Limitations

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.

Future Improvements

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

Developers

Muhammad Azhar

Computer Science Student — Bahria University

Syed Shaheer Ali

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.

About

Full workshop management system in C++ — vehicles, customers, mechanics, inventory, job cards, and billing with file persistence

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages