Shivnagar Vidya Prasarak Mandal’s
INSTITUTE OF TECHNOLOGY AND ENGINEERING
Malegaon (Bk.), Tal: Baramati, Dist: Pune, Pin: 413115.
DEPARTMENT OF COMPUTER ENGINEERING
A
MICRO POROJECT REPORT ON
Railway Management System
Under the Guidance of
(Prof.Jagdale P.R)
Submitted by
Mr.Aditya Subhash Kharade
Mr.Sarthak Mahavir Thaware
Mr.Prathmesh Dada Khandale
Mr.Shubham Pramod Lokhande
[Academic Year]
(2024-2025)
Shivnagar Vidya Prasarak Mandal’s
INSTITUTE OF TECHNOLOGY AND ENGINEERING
Malegaon (Bk.), Tal: Baramati, Dist: Pune, Pin: 413115.
DEPARTMENT OF COMPUTER ENGINEERING
CERTIFICATE
This is to certify that Micro Project work report entitled Railway Management System
submitted in partial fulfillment of required for the Diploma in Computer
Engineering by Maharashtra State Board of Technical Education Mumbai-51, as
a record of student own work carried out by them.
Submitted by
Mr.Aditya Subhash Kharade
Mr.Sarthak Mahavir Thaware
Mr.Prathmesh Dada Khandale
Mr.Shubham Pramod Lokhande
Prof. JAGDALE P.R. Prof. JAGDALE P.R . Dr.THOMBARE D.G.
(Guide) (H. O. D.) (Principal)
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
SVPM’s Institute of Technology & Engineering, Malegaon (Bk)
(Institute Code: - 0038)
Program Name and Code : Computer Engineering (CO3K)
Course Name and Code : Object Oriented Programming Using C++ (313304)
Academic Year : 2024-25
Semester : Third
A MICRO PROJECT
On
Raiway Management System
Submitted in winter 2024 Exam by the group of __4__students
Sr.
Enrollment
No Roll No. Name of student Seat No.
No.
.
Shubham Pramod lokhande 23210910213 166702
1 181/23
Prathmesh Dada Khandale 166713
2 178/23 23210910224
Sarthak Mahavir Thaware 23210910242 166728
3 217/23
4 179/23 Aditya Subhash Kharade 23210910218 166707
Project Guide
Prof. Jagdale P.R.
MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION
Certificate
This is to certify that Master /Ms Shubham , Prathmesh , Sarthak , Aditya Of Third
Semester of Diploma in Computer Engineering of Institute, SVPM’s Institute of Technology &
Engineering, Malegaon (Bk) (0038) has completed the Micro Project satisfactorily in the Subject of
Object Oriented Programming Using C++ (313304) for the Academic Year 2024-2025 as prescribed
in the curriculum.
Place: Malegaon (Bk) Enrollment No: 23210910213
23210910224
23210910242
23210910218
Date: Exam. Seat No: 166702
166713
166728
166707
Subject Teacher Head of the Department Principal
Seal of Institute
ANNEXURE II
EVALUATION SHEET FOR THE MICRO PROJECT
ACADEMIC YEAR: - 2024-25 NAME OF FACULTY: - PROF.JAGDALE
P.R.
PROGRAM: - COMPUTER ENGINEERING
COURSE: - OBJECT ORIENTED PROGRAMMING USING C++
COURSE CODE: - 313304 SEMESTER: - THIRD (CO3K)
TITLE OF THE PROJECT:-
CO’s Addressed by the Micro-Project:-
a) Write C++ programs using classes and objects.
b) Develop C++ programs using constructors.
c) Implement Inheritance in C++.
d) Implement Polymorphism in C++.
e) Develop C++ programs to perform file operations.
Major learning outcomes achieved by students by doing the Project:-
Practical outcomes:-
a) Describe the procedural and object oriented paradigm with concepts of streams, classes, functions,
data and objects.
b) Understand dynamic memory management techniques using pointers, constructors, destructors, etc
c) Describe the concept of function overloading, operator overloading, virtual functions and
polymorphism.
d) Classify inheritance with the understanding of early and late binding.
e) Demonstrate the use of various OOPs concepts with the help of programs.
Unit Outcomes in Cognitive Domain:-
a) Build a C++ program using different concepts of OOP’s.
b) Recall previous learned information.
Outcomes in Affective Domain:-
a) Students are able to type program without making syntax errors.
b) Students are able to participate in class discussions.
c) Students are able to listen to others with respects.
d) Students are able to co-operate in group activities. (Displays teamwork)
e) Students are able to apply ethical principles.
Comments / suggestions about team work / leadership / inter – personal
communication (if any):-
------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
Marks out
Marks out
of 04 for
of 06 for
performan Total
Sr performan
Student Name ce in Oral / out of
No ce in group
Presentati 10
activity
on (D5
(D5 Col.8)
Col.9)
Shubham Pramod lokhande
37
Prathmesh dada khandale
48
Sarthak mahavir thaware
64
Aditya subhash kharade
42
Name & Signature of Faculty
Prof. Jagdale P.R.
Chapter – A
What is OOP?
Object-Oriented Programming (OOP) is a programming paradigm that revolves
around the concept of objects. In OOP, everything is considered an object, and these
objects interact with each other to perform tasks. It’s a way of organizing and
structuring code that promotes modularity and reusability.
Why is OOP important?
OOP offers several benefits, such as code reusability, easier maintenance, and better
problem-solving. By breaking down complex systems into smaller, manageable
objects, OOP allows developers to create efficient and organized code.
Basic concepts of OOP
1. Object
2. Class
3. Data hiding
4. Data encapsulation
5. Inheritance
6. Polymorphism
7. Dynamic binding
8. Message passing
Applications of OOP
1. Real time systems
2. Simulation and modelling
3. CAD/CAM system
4. AI and expert systems and etc.
Railway Management System
A Railway Management System (RMS) is a comprehensive software platform used to
manage various aspects of railway operations. It helps ensure the smooth functioning of
the rail network by automating and optimizing key processes such as ticketing,
scheduling, train operations, maintenance, and resource management. The system is
designed to enhance operational efficiency, improve customer service, and reduce costs
for railway operators.
1. System Integration:
Integrating various subsystems (scheduling, ticketing, maintenance) into a unified
platform can be complex, especially in large, legacy railway networks.
2. Real-time Data Management:
Handling real-time data streams from trains, stations, and passengers to ensure
timely updates and responses can be technically challenging.
3. Cybersecurity Threats:
With the increasing use of digital platforms, railway systems become vulnerable to
cyber-attacks, requiring robust security measures to protect both operational data
and passenger information.
4. Infrastructure Upgrades:
Modernizing outdated infrastructure to support a more advanced railway
management system can be costly and time-consuming.
5. Weather and External Factors:
Railway systems are often affected by weather conditions, natural disasters, and
external events (such as strikes), which need to be managed dynamically within the
system.
Approach:
Select user type and input password.
In the given menu, select the basic operation and enter the details in the
operations like add, delete, search and update users.
After performing all the functions and operations, exit from the ATM system.
All the file operations are done in a file named accounts.txt, where the data is
written using ofstream mode and can be read using ifstream mode.
After this, the file must be closed using <filename>.close()
Here we have created a mini project of Rail wayusing C++.
So this mini project is going to consist of Railway
functionalities implimented using OOP concepts. The
functionalities are:
1)Add train: adding new train information.
2)view information: view the existing train information.
3)booking ticket :booking passenger ticket.
4)view booking:list of booking of ticket.
5)exit
To execute this program of ATM management system, we use
following basic concepts of OOP.
object:
Object are basic run time entities in object-oriented system when program is
executed, the objects interact by sending messages to one another.
class:
Collection of similar type of objects. Classes are user defined datatype.
switch case:
switch case is a control statement used for decision-making purposes.
It evaluates a given expression and executes statements based on the
evaluatedvalue.
while loop:
The while construct consists of a block of code and a condition/expression.
Thecondition/expression is evaluated, and if the condition/expression is tue, the
code within all of their following in the block is executed. This repeats ntil the
condition/expression becomes false.
if case:
If statement is the simplest decision-making statement. It is used to decide
whether a certain statement or block of statement will be executed or not based
on a certain type of condition.
Opening file :
It helps to open exist file as well as create new file if does not exist.
1) Using Constructor
2) Using Open function
Close() : This function used to close file if it is open.
Stream classes
ifstream:
It is used to read a stream of objects from a file.
ofstream:
It is used to write a stream of objects from a file.
fstream:
It is used for both reading & writing a stream of objects on a file.
Operator
Logical Operator : A logical operator is a symbol or word used to connect two or
more expressions such that the value of the compound expression produced depends
only on that of the original expressions and on the meaning of the operator.[1] Common
logical operators include AND, OR, and NOT.
Relational Operator : C++ Relational operators are used to compare two values or
expressions, and based on this comparison, it returns a boolean value
(either true or false) as the result. Generally false is represented as 0 and true is
represented as any non-zero value (mostly 1).
2. System Requirements:
2.1 Hardware Requirements:
Processor :- Intel Pentium 4 or Later or Compatible
Hard Disk :- 410GB or more.
RAM :- 1GB or more
Printer :- Any
Monitor :- SVGA Color Monitor (Touch Screen or Simple)
Pointing Device :- Touch Pad or Keys
2.2 Software Requirements:
Operating System :- Microsoft Windows XP or Later or Equivalent
Front End :- Visual Basic 6.0
Chapter – B
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Train {
public:
int trainNumber;
string trainName;
string source;
string destination;
int seatsAvailable;
void addTrain() {
cout << "Enter Train Number: ";
cin >> trainNumber;
cout << "Enter Train Name: ";
cin>>trainName;
cout << "Enter Source Station: ";
cin>>source;
cout << "Enter Destination Station: ";
cin>>destination;
cout << "Enter Number of Seats Available: ";
cin >> seatsAvailable;
// Save the train details to a file
ofstream file("trains.txt", ios::app);
file << trainNumber << " " << trainName << " " << source << " "
<< destination << " " << seatsAvailable << "\n";
file.close();
cout << "Train added successfully!\n";
}
void viewTrains() {
ifstream file("trains.txt");
if (!file)
{
cout << "No trains available.\n";
return;
}
cout << "\nAvailable Trains:\n";
cout << "Train Number | Train Name | Source | Destination | Seats Available\n";
cout << "--------------------------------------------------------------\n";
while (file >> trainNumber >> trainName >> source >> destination >> seatsAvailable)
{
cout << trainNumber << " | " << trainName << " | " << source << " | "
<< destination << " | " << seatsAvailable << "\n";
}
file.close();
}
};
class Booking {
public:
int bookingID;
int trainNumber;
string passengerName;
void bookTicket() {
cout << "Enter Train Number: ";
cin >> trainNumber;
cin.ignore();
cout << "Enter Passenger Name: ";
getline(cin, passengerName);
// Generate a unique booking ID
ifstream readBookings("bookings.txt");
int lastID = 0;
while (readBookings >> bookingID >> trainNumber >> passengerName) {
lastID = bookingID;
}
readBookings.close();
bookingID = lastID + 1;
// Save the booking details to a file
ofstream file("bookings.txt", ios::app);
file << bookingID << " " << trainNumber << " " << passengerName << "\n";
file.close();
cout << "Ticket booked successfully! Booking ID: " << bookingID << "\n";
}
void viewBookings() {
ifstream file("bookings.txt");
if (!file) {
cout << "No bookings available.\n";
return;
}
cout << "\nBooked Tickets:\n";
cout << "Booking ID | Train Number | Passenger Name\n";
cout << "-----------------------------------------\n";
while (file >> bookingID >> trainNumber >> passengerName) {
cout << bookingID << " | " << trainNumber << " | " << passengerName << "\n";
}
file.close();
}
};
void displayMenu() {
cout << "\nRailway Management System";
cout << "\n1. Add Train";
cout << "\n2. View Trains";
cout << "\n3. Book Ticket";
cout << "\n4. View Bookings";
cout << "\n5. Exit";
cout << "\nEnter your choice: ";
}
int main() {
Train train;
Booking booking;
int choice;
while (true) {
displayMenu();
cin >> choice;
switch (choice) {
case 1:
train.addTrain();
break;
case 2:
train.viewTrains();
break;
case 3:
booking.bookTicket();
break;
case 4:
booking.viewBookings();
break;
case 5:
cout << "Exiting the system. Goodbye!\n";
return 0;
default:
cout << "Invalid choice! Please try again.\n";
}
}
return 0;
OUTPUTS:
Contents to display
Choice no 1:train info
Choice no 2:view train info
Choice no:3 ticket booking
Choice 4:view booking
Choice 5:exit
Chapter – C
Conclusion
These 11 OOP micro project ideas provide a solid
foundation for beginners in Object-Oriented
Programming. As you work on these projects, you’ll
gain a deeper understanding of classes, objects,
encapsulation, and more. Remember that the key to
mastering OOP is practice and continuous learning. So,
choose a project that excites you, and start coding!
Happy programming!
Reference
https://github.com/
https://www.geeksforgeek
s.org/ https://chatgpt.com/