0% found this document useful (0 votes)
34 views30 pages

Project Report

Uploaded by

deepamsaini000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views30 pages

Project Report

Uploaded by

deepamsaini000
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 30

Summer Training Report

On
Data Structures and Algorithms

Submitted in partial fulfilment of requirements for the award of the


Degree of
Bachelor of Technology
In
Information Technology

Submitted By
Deepam Praveen Kumar
(01711503121) (06511503121)

Under the guidance of

Dr. Surinder Kaur


Ms. Nisha Malhotra
Dr. Ajay Dureja
Ms. Akanksha

Information Technology
Bharati Vidyapeeth’s College of Engineering, New Delhi – 110063, INDIA

August 2023
CANDIDATE’S DECLARATION

It is hereby certified that the work which is being presented in the B. Tech Industrial/In-house
training Report entitled “University Management System using C++” in partial fulfilment of
the requirements for the award of the degree of Bachelor of Technology and submitted in the
Department of Information Technology of BHARATI VIDYAPEETH’S COLLEGE OF
ENGINEERING, New Delhi (Affiliated to Guru Gobind Singh Indraprastha University,
Delhi) is an authentic record of our own work carried out during a period from July – August
2023 under the guidance of Dr. Surinder Kaur, Ms. Nisha Malhotra, Dr. Ajay Dureja, Ms.
Akanksha

The matter presented in the B. Tech Industrial/In-house training Report has not been submitted by
me for the award of any other degree of this or any other Institute.

Student Name: Deepam Praveen Kumar


Enrollment No: 01711503121 06511503121

This is to certify that the above statement made by the candidate is correct to the best of my knowledge. He/She/They
are permitted to appear in the External Industrial/In-house training Examination.

Trainer Name: Dr. Surinder Kaur, Ms. Nisha Malhotra, Dr. Ajay Dureja, Ms. Akanksha

The B. Tech Industrial/In-house training Viva-Voce Examination of Deepam(01711503121),


Praveen Kumar(06511503121) has been held on 23 August 2023

Industrial/In-house training coordinator (Signature of External Examiner)


LIST OF CONTENTS

S.No. Topics

1 Introduction

2 Objectives

3 Methodology

4 Project Implementation

5 Result

6
Discussion
7
Data Structure Used
8
Conclusion
9
Future Enhancements
10
References
Introduction:
University System is one of the most common and the first application implemented in
any higher educational organization.

In University, a large amount of data is processed and the results are used in running an
organization. The University management system maintains the list of colleges and their
different streams along with the examination and result department. There are menus
and sub menus in the output of the project which has given this project an organized
look.

To maintain the record of colleges, students, examination and result, the university
management department prepares the record for each department, showing the total
number of teachers and students. It also keeps track of any modification necessary
related to students and teachers, and produces regular reports for the organization giving
the total information required.

The main goal of the project is to obtain the complete and correct information. Because
University management department of an organization maintains a record of:

 The Teachers
 The Students
 The Examination & Result
To do that, the department:
 Prepares the record for each department, showing the total number of student
and teachers.
 Keeps track of any modification necessary related to the students and teachers.
 Produces regular reports for the Organization giving the total information
required.

Management needs to know details like department – number of teachers, their


department, the degree courses run by them. Management also needs to know the
same information about the students.

Objectives

“UNIVERSITY MANAGEMNT SYSTEM” maintains detailed records of all the


Colleges and Students as well as and the Examination and the Result department.

The University management system should contain following process like:

 Maintaining data of student like Name, Roll Number, Course, Marks.

 Maintaining data of teacher like Teacher id, Name, Subject.

 Maintaining Exam schedule like Subject code, Course, Subject Name, Date of
Examination, Time of Examination.
Methodology

PROJECT IMPLEMENTATION
Source Code

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

class Student
{
public:
int rollNumber;
string name;

string course;
int marks;
Student* next;
};

class Teacher
{
public:
int id;
string name;
string subject;
Teacher* next;
};

class ExamSchedule
{
public:
string subjectCode;
string course;
string subject;
string date;
string time;
ExamSchedule* next;
};

class UniversityManagementSystem
{
private:
Student* studentList;
Teacher* teacherList;
ExamSchedule* examScheduleList;

public:
UniversityManagementSystem()
{
studentList = nullptr;
teacherList = nullptr;
examScheduleList = nullptr;
}

void insertStudent(int rollNumber, const std::string& name, const


std::string& course, int marks)
{
Student* newStudent = new Student;
newStudent->rollNumber = rollNumber;
newStudent->name = name;
newStudent->course = course;
newStudent->marks = marks;
newStudent->next = nullptr;

if (!studentList) {
studentList = newStudent;
} else {
Student* temp = studentList;
while (temp->next) {
temp = temp->next;
}
temp->next = newStudent;
}

cout << "Student " << name << " added successfully.\n";
}

void deleteStudent(int rollNumber)


{
if (!studentList) {
std::cout << "No students found.\n";
return;
}
Student* prev = nullptr;
Student* current = studentList;
while (current && current->rollNumber != rollNumber) {
prev = current;
current = current->next;
}

if (!current) {
std::cout << "Student with Roll Number " << rollNumber << " not
found.\n";
return;
}

if (!prev) {
// The student to be deleted is the first one
studentList = current->next;
} else {
prev->next = current->next;
}

delete current;
cout << "Student with Roll Number " << rollNumber << " deleted
successfully.\n";
}

void showStudents()
{
if (!studentList) {
std::cout << "No students found.\n";
} else {
std::cout << "Student List:\n";
Student* temp = studentList;
cout<<"Roll No."<<" "<<"name"<<" "<<"course"<<"
"<<"Marks"<<endl;
while (temp) {
cout << temp->rollNumber << " "<<temp->name <<" "<<
temp->course<<" "<<temp->marks<<endl; ;

temp = temp->next;
}
}
}

void insertTeacher(int id, const std::string& name, const std::string&


subject)
{
Teacher* newTeacher = new Teacher;
newTeacher->id = id;
newTeacher->name = name;
newTeacher->subject = subject;
newTeacher->next = nullptr;

if (!teacherList) {
teacherList = newTeacher;
} else {
Teacher* temp = teacherList;
while (temp->next) {
temp = temp->next;
}
temp->next = newTeacher;
}
cout << "Teacher " << name << " added successfully.\n";
}

void deleteTeacher(int id)


{
if (!teacherList) {
cout << "No teachers found.\n";
return;
}

Teacher* prev = nullptr;


Teacher* current = teacherList;

// Search for the teacher with the given ID


while (current && current->id != id) {
prev = current;
current = current->next;
}

if (!current) {
cout << "Teacher with ID " << id << " not found.\n";
return;
}

if (!prev) {
// The teacher to be deleted is the first one
teacherList = current->next;
} else {
prev->next = current->next;
}

delete current;
cout << "Teacher with ID " << id << " deleted successfully.\n";
}

void showTeachers()
{
if (!teacherList) {
cout << "No teachers found.\n";
} else {
std::cout << "Teacher List:\n";
Teacher* temp = teacherList;
while (temp) {
std::cout << "ID: " << temp->id << "\n";
std::cout << "Name: " << temp->name << "\n";
std::cout << "Subject: " << temp->subject << "\n\n";
temp = temp->next;
}
}
}

void insertExamSchedule(const std::string& subjectCode, const


std::string& course, const std::string& subject, const std::string& date,
const std::string& time)
{
ExamSchedule* newSchedule = new ExamSchedule;
newSchedule->subjectCode = subjectCode;
newSchedule->course = course;
newSchedule->subject = subject;
newSchedule->date = date;
newSchedule->time = time;
newSchedule->next = nullptr;

if (!examScheduleList) {
examScheduleList = newSchedule;
} else {
ExamSchedule* temp = examScheduleList;
while (temp->next) {
temp = temp->next;
}
temp->next = newSchedule;
}

cout << "Exam schedule for " << subject << " added successfully.\n";
}

void deleteExamSchedule(const std::string& subjectCode)


{
if (!examScheduleList) {
cout << "No exam schedules found.\n";
return;
}

ExamSchedule* prev = nullptr;


ExamSchedule* current = examScheduleList;

// Search for the exam schedule with the given subject code
while (current && current->subjectCode != subjectCode) {
prev = current;
current = current->next;
}

if (!current) {
cout << "Exam schedule with Subject Code " << subjectCode << " not
found.\n";
return;
}

if (!prev) {
// The exam schedule to be deleted is the first one
examScheduleList = current->next;
} else {
prev->next = current->next;
}

delete current;
cout << "Exam schedule with Subject Code " << subjectCode << "
deleted successfully.\n";
}

void showExamSchedule()
{
if (!examScheduleList) {
cout << "No exam schedules found.\n";
} else {
cout << "Exam Schedule List:\n";
ExamSchedule* temp = examScheduleList;
while (temp) {
cout << "Subject Code: " << temp->subjectCode << "\n";
cout << "Course: " << temp->course << "\n";
cout << "Subject: " << temp->subject << "\n";
cout << "Date: " << temp->date << "\n";
cout << "Time: " << temp->time << "\n\n";
temp = temp->next;
}
}
}

void sortStudentsByRollNumber()
{
if (!studentList || !studentList->next) {
// No need to sort if there are 0 or 1 students
return;
}

bool swapped;
do {
swapped = false;
Student* prev = nullptr;
Student* current = studentList;
while (current->next) {
Student* nextStudent = current->next;
if (current->rollNumber > nextStudent->rollNumber) {
// Swap current student with the next student
if (!prev) {
// Updating the head of the list
studentList = nextStudent;
} else {
prev->next = nextStudent;
}
current->next = nextStudent->next;
nextStudent->next = current;
prev = nextStudent;
swapped = true;
} else {
prev = current;
current = current->next;
}
}
} while (swapped);

std::cout << "Students sorted by Roll Number.\n";


}

void sortTeachersById()
{
if (!teacherList || !teacherList->next) {
// No need to sort if there are 0 or 1 teachers
return;
}

bool swapped;
do {
swapped = false;
Teacher* prev = nullptr;
Teacher* current = teacherList;

while (current->next) {
Teacher* nextTeacher = current->next;
if (current->id > nextTeacher->id) {
// Swap current teacher with the next teacher
if (!prev) {
// Updating the head of the list
teacherList = nextTeacher;
} else {
prev->next = nextTeacher;
}
current->next = nextTeacher->next;
nextTeacher->next = current;
prev = nextTeacher;
swapped = true;
} else {
prev = current;
current = current->next;
}
}
} while (swapped);

std::cout << "Teachers sorted by ID.\n";


}
~UniversityManagementSystem()
{
Student* studentPtr = studentList;
while (studentPtr) {
Student* temp = studentPtr;
studentPtr = studentPtr->next;
delete temp;
}

// Delete the linked list of teachers


Teacher* teacherPtr = teacherList;
while (teacherPtr) {
Teacher* temp = teacherPtr;
teacherPtr = teacherPtr->next;
delete temp;
}

// Delete the linked list of exam schedules


ExamSchedule* examSchedulePtr = examScheduleList;
while (examSchedulePtr) {
ExamSchedule* temp = examSchedulePtr;
examSchedulePtr = examSchedulePtr->next;
delete temp;
}

}
};

int main()
{
UniversityManagementSystem ums;

int choice;
while (true) {
cout << "University Management System\n";
cout << "1. Insert Student\n";
cout << "2. Delete Student\n";
cout << "3. Show Students\n";
cout << "4. Insert Teacher\n";
cout << "5. Delete Teacher\n";
cout << "6. Show Teachers\n";
cout << "7. Insert Exam Schedule\n";
cout << "8. Delete Exam Schedule\n";
cout << "9. Show Exam Schedule\n";
cout << "10. Sort Students\n";
cout << "11. Sort Teachers\n";
cout << "12. Exit\n";
cout << "Enter your choice: ";
cin >> choice;

switch (choice) {
case 1: {
int rollNumber, marks;
string name, course;
cout << "Enter Roll Number: ";
cin >> rollNumber;
cout << "Enter Name: ";
cin.ignore(); // Clear newline from previous input
getline(std::cin, name);
cout << "Enter Course: ";
getline(std::cin, course);
cout << "Enter Marks: ";
cin >> marks;
ums.insertStudent(rollNumber, name, course, marks);
break;
}
case 2: {
int rollNumber;
cout << "Enter Roll Number to delete: ";
cin >> rollNumber;
ums.deleteStudent(rollNumber);
break;
}
case 3:
ums.showStudents();
break;
case 4: {
int id;
string name, subject;
cout << "Enter ID: ";
cin >> id;
cout << "Enter Name: ";
cin.ignore();
getline(std::cin, name);
cout << "Enter Subject: ";
getline(std::cin, subject);
ums.insertTeacher(id, name, subject);
break;
}
case 5: {
int id;
cout << "Enter ID to delete: ";
cin >> id;
ums.deleteTeacher(id);
break;
}
case 6:
ums.showTeachers();
break;
case 7: {
string subjectCode, course, subject, date, time;
cout << "Enter Subject Code: ";
cin.ignore();
getline(std::cin, subjectCode);
cout << "Enter Course: ";
getline(std::cin, course);
cout << "Enter Subject: ";
getline(std::cin, subject);
cout << "Enter Date: ";
getline(std::cin, date);
cout << "Enter Time: ";
getline(std::cin, time);
ums.insertExamSchedule(subjectCode, course, subject, date, time);
break;
}
case 8: {
string subjectCode;
cout << "Enter Subject Code to delete: ";
cin.ignore();
getline(std::cin, subjectCode);
ums.deleteExamSchedule(subjectCode);
break;
}
case 9:
ums.showExamSchedule();
break;
case 10:
ums.sortStudentsByRollNumber();
break;
case 11:
ums.sortTeachersById();
break;
case 12:
cout << "Exiting...\n";
return 0;
default:
cout << "Invalid choice.\n";
}
}

return 0;
}

Output

RESULTS AND DISCUSSION

Now as seen University Management System can easily manage data of Student,
Teacher, Examination Schedule. Now let’s reason why it so important and convenient
As we know that today is the world of computers and it has entered in the each and
every phase of everyday life. Computer plays an important role in day-to-day work.
The use of computers in the field of management of information is well known to us. The
use of computers in the university management system provides following benefits over
manual system

1.) Availability

It gives us that information which was not provided by the manual system.

2.) Timeliness

Provides information (output) in less time.

3.) Accuracy

Using computer, we will get the information more accurate rather than the manually
calculated and manual records information.

4.) Completeness

Computer never gives us incomplete information. We will always get the complete and
full information using the computer.

5.) Meaningful and action oriented


Whatever the work we will provide the computer to do, computer works on only
that particular work. It means computer always do a meaningful and action oriented
work for the user.

6.) Commensurate

Whatever the format (output) is designed for a particular program by the


computer should be in such a manner that co-relates with the format of other
information groups.

“A University Management System handles all information necessary for handling a


college and student.” This system must develop the paperwork necessary for teacher and
the students. The system must maintains files on individual teacher and student and
examination record, provide up to date the information, print outputs on information
related to the University.

The University management system processes data related with activities of students
and teachers. So university management system is very important for a university.
Needless to say, careful planning and suitable backup measures are absolutely necessary
when automating these activities. During the selection process, it is worthwhile to
review our present universities policies.

Improve benefits over before talking the whole questions of automating the process.

A good university management system will process input data faster and reduce clerical
time, while:

 Assuring management control in making certain that output is correct.


 Generally useful reports at little or no incremental cost.
Data Structure Used

Linked list and Sorting is the main data structure and algorithm used in this project
to complete university management system.

Linked List - A linked list is a linear data structure, in which the elements are not stored
at contiguous memory locations. The elements in a linked list are linked using pointers
as shown in the below image:

In this program, a singly linked list is used to store data for students, teachers, and exam
schedules. A singly linked list is a data structure in which each element (node) contains
a value and a reference (a pointer) to the next element in the sequence. It allows you to
traverse the list in one direction, from the head (start) of the list to the tail (end).
The classes ‘Student’, ‘Teacher’, and ‘ExamSchedule’ represent the nodes of the linked
lists, and each node contains data relevant to students, teachers, or exam schedules,
along with a `next` pointer to the next node in the list.
Node structure for each linked list :-
 Student Linked List Node (‘Student’ class):
• Data members: rollNumber, name, course, marks
• Pointer member: next (points to the next student node)

 Teacher Linked List Node (‘Teacher’ class):


• Data members: id, name, subject
• Pointer member: next (points to the next teacher node)

 Exam Schedule Linked List Node ( ‘ExamSchedule’ class):


• Data members: subjectCode, course, subject, date, time
• Pointer member: next (points to the next exam schedule node)

Sorting

Sorting refers to rearrangement of a given array or list of elements according to a


comparison operator on the elements. The comparison operator is used to decide the
new order of elements in the respective data structure.

When we have a large amount of data, it can be difficult to deal with it, especially when
it is arranged randomly. When this happens, sorting that data becomes crucial. It is
necessary to sort data in order to make searching easier.

The sorting algorithm is important in Computer Science because it reduces the


complexity of a problem. There is a wide range of applications for these algorithms,
including searching algorithms, database algorithms, divide and conquer methods,
and data structure algorithms.
For Example: The below list of characters is sorted in increasing order of their ASCII
values. That is, the character with a lesser ASCII value will be placed first than the
character with a higher ASCII value.
CONCLUSION
Overall, University Management System project is basically written with C++ language
using data structures and algorithms. Its future scope lies in the fact that it can be used
in conjunction with other programs of the university for the future development of
University Management System. You can add new features and components into this
proposed software to make it a even better one.
This project shows how easy it is to use and manage the data for university using data
structures and algorithms using C++.

Future Prospects

The future applications of this UNIVERSITY MANAGEMENT SYSTEM are:

I) This overall project is basically written in function and can be used in


conjunction with other program, for future development for UNIVERSITY
system.
II) We have provided many data function through which any one can know about
any STUDENT/TEACHER/EXAM giving STUDENT/TEACHER/EXAM code
or number.
III) The project is using the modern trend OOPs and linked list data structure that
gives a better design to the software, which help in maintaining code in terms
of reusability, modifiability, etc. These attributes a quit wanting in today’s
complex software scenario. OOPs giving a better designs objective taken this
problem and provide better design objective.
IV) This software is design with OOPs and linked list data structure so we chosen
C++ language, which provide all features which will be needed in future. This
software is having sounding economic aspect with the motion of controlling
the local market.
V) Cost of our project is comparatively low.

REFERENCES
 Geeksforgeeks.com
 Tutorialpoint.com
 Javatpoint.com
 Codingninjas.com

You might also like