0% found this document useful (0 votes)
30 views20 pages

Ds Mini Project Report 01

The document is a mini project report on a 'Student Database Management System' developed in C++ for managing student records efficiently using various data structures and object-oriented programming principles. It outlines the project's objectives, system design, implementation details, and testing procedures, demonstrating a solution that addresses common issues in educational institutions' record-keeping. Future enhancements include integrating a graphical user interface and advanced analytics capabilities.

Uploaded by

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

Ds Mini Project Report 01

The document is a mini project report on a 'Student Database Management System' developed in C++ for managing student records efficiently using various data structures and object-oriented programming principles. It outlines the project's objectives, system design, implementation details, and testing procedures, demonstrating a solution that addresses common issues in educational institutions' record-keeping. Future enhancements include integrating a graphical user interface and advanced analytics capabilities.

Uploaded by

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

A

Mini Project Report

Data Structures Laboratory


on

“Student Database Management System”

Submitted to

Department of Computer Engineering


Vidya Niketan College of Engineering, Bota

Submitted By

name Roll no
1. 342

2. 347

3. 348
Year: 2025-26 (Sem-I)

INDEX

Sr. No. Title of the Content Page No.

1 Certificate

2 Acknowledgement

3 Index

4 Abstract

5 Objective of the Project

6 Tools and Technologies Used

7 Problem Statement

8 System Design and Architecture

9 Data Structures Used

10 Algorithm and Flowcharts

11 Implementation (Code Snippets & Explanation)

12 Sample Input and Output

13 Testing and Validation

14 Conclusion

15 Future Enhancements

16 References
Department of Computer Engineering
Vidya Niketan College of Engineering, Bota

CERTIFICATE
This is to certify that the mini project entitled
“Student Database Management System” has
been successfully completed and
submitted by:
in partial fulfillment of the requirements for
the
Data Structures Laboratory, for the academic
year 2025–26 (Semester – I). The project work
has been carried out under the guidance of
Walke A B.
We hereby certify that this mini project is
original and has not been submitted elsewhere
for any academic purpose.

Guide:
Walke A B, Dept. of Computer Engineering
HOD:

Bhagwat O V, Dept. of Computer Engineering

Principal:
Dr. P A Phatangare
ACKNOWLEDGEMENT
We are deeply grateful to our guide, Walke A B, for
her invaluable guidance, suggestions and encouragement
throughout the course of our project work. Her support has been
instrumental in helping us develop this application on a topic
that combines data structures .

We also extend our sincere thanks to the staff and faculty of


VNCOE for providing the necessary resources, infrastructure
and an environment conducive to learning and implementation.

Special appreciation goes to our fellow team members -


(Team Member names) for their dedication,
collaboration and enthusiasm which turned our vision into
reality.

Finally, we acknowledge with gratitude our families and friends


for their patience, understanding and moral support throughout
this project.

Date:
Team: (Team Member names)
Abstract
In today’s information-driven era, efficient management of
student records is crucial for educational institutions. This
project presents a console-based Student Database Management
System developed using C++ that simulates core database
operations without relying on external relational systems.
Instead, it harnesses fundamental data structures such as arrays,
linked lists, binary search trees and hash tables to store, retrieve,
update and delete student records including name, roll number,
marks . Object-oriented programming principles—
encapsulation, inheritance and polymorphism—are applied to
modularize system functionalities and support multiple user
roles Admin, Teacher, Student with appropriate access controls.
Persistent storage is achieved through file handling
mechanisms, and efficient searching and sorting algorithms
hashing, binary search, quick sort ensure high performance
when managing large volumes of data. Security features include
role-based login, input validation and basic password hashing
to prevent unauthorized access. The resulting system offers an
efficient, reliable and scalable alternative to traditional manual
or database-driven student record systems. It demonstrates how
data structures and OOP concepts can be leveraged to build a
mini database system tailored for educational use, thereby
offering institutions a lightweight, self-contained solution for
student data management.
Project Objectives

1. To design and implement a modular student database


management system in C++ that can store, retrieve,
update, and delete student records including Name, Roll
Number, Marks, Course

2. To employ fundamental data structures arrays, linked lists,


binary search trees, hash tables in order to achieve efficient
data insertion, deletion, search and sorting operations.

3. To design a role-based access control mechanism so that


each user-type Admin, Teacher, Student gets appropriate
permissions ensuring data security and privacy.

4. To implement efficient searching hashing or binary search


and sorting quick sort algorithms in the system to ensure
fast and reliable performance with larger student datasets.

5. To validate input and incorporate basic password‐hashing


mechanisms to ensure unauthorized access is prevented
and the system remains secure.

Tools & Technologies Used

 Programming Language: C++ — for implementing the core


application logic using object-oriented programming
classes, inheritance, polymorphism.

 Data Structures & Algorithms: Arrays, Linked Lists, Hash


Tables, Sorting Algorithms (Quick Sort, Merge Sort),
Searching Techniques (Binary Search, Hashing).
 File Handling: C++ file I/O for persistent storage of
student records in text files across program executions.

 Documentation Tools: Use of document editors (e.g.,


Microsoft Word or Google Docs) for preparing project
report, index, abstract, acknowledgement and certificate.

Problem Statement

 Many educational institutes still rely on manual or


basic systems to manage student records, which
often leads to data redundancy, slow lookup,
inconsistent updates and weak access control.
This project aims to develop a self-contained system
in C++ using data structures arrays, linked lists, BSTs,
hash tables and OOP principles to store, retrieve,
update and delete student records efficiently, while
providing role-based access Teacher, Student and
persistent storage via file handling — thus
overcoming the drawbacks of manual systems and
providing a fast, reliable, secure student database
solution.

 System Design and architecture


 
 Presentation Layer: The console interface where roles
Teacher / Student log in and select operations.
 Logic / Business Layer: Modules like Authentication,
Record Management, Data Structure Handler, Sorting &
Searching Logic.
 Data Layer: In-memory data structures arrays, linked lists,
BST, hash table + file persistence for data storage  Data
Flow: User → Presentation → Logic → Data Storage →
Back.
 Security & Roles: Role-based checks occur in Logic layer
before accessing Data layer.
 Data Structure used:
 Arrays - storing a collection of student records if you know
approximate size and fast direct access by index.
 Linked Lists -Useful for dynamic addition and deletion of
student records without large shifts in memory.
 Binary Search Tree -Ideal for organized search of records
 Hash Table-Excellent for very fast search, insert and delete
operations locating a student by roll number or name.
Algorithm
Algorithm StudentDatabaseSystem
Begin
Loop
Display Menu:
1. Add Student Record
2. Display All Records
3. Search Student
4. Delete Student
5. Exit
Input choice
Switch(choice)
Case 1: // Add Student
Prompt Roll No, Name, Course, Marks
Open file “students.txt” in append mode
Write record: rollNo, name, course, marks
Close file
Print “Record added successfully”
Break
Case 2: // Display All
Open file “students.txt” in read mode
If file not found then
Print “No records found”
Else
While (read each line from file) do
Print line
End While
End If
Close file
Break
Case 3: // Search Student
Prompt roll number to search
Open file “students.txt” in read mode
If file not found then
Print “No records found”
Else
found ← false
While (read each line from file) do
Extract roll no from line
If roll no == input roll then
Print “Record found:” and the line
found ← true
Break loop
End If
End While
If found == false then
Print “Student not found”
End If
End If
Close file
Break
Case 4: // Delete Student
Prompt roll number to delete
Open “students.txt” in read mode
Open “temp.txt” in write mode
If read-file not found then
Print “No records found”
Else
deleted ← false
While (read each line from read-file) do
Extract roll no from the line
If roll no != input roll then
Write line to temp file
Else
deleted ← true
End If
End While
Close both files
Remove file “students.txt”
Rename “temp.txt” to “students.txt”
If deleted == true then
Print “Record deleted successfully”
Else
Print “Roll number not found”
End If
End If
Break Case 5:
Print “Exiting…”
Exit loop Default:
Print “Invalid choice! Please try again.”
End Switch
End Loop
End


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

// Student node struct


Student {
int roll;
string name;
float marks;
Student* next;
};

// Hash table size


const int SIZE = 10;

// Hash table (array of linked lists)


Student* table[SIZE];

// Hash Function → O(1) int


hashFunction(int key) {
return key % SIZE;
}

// Insert record → O(1) average


void insertStudent() {
Student* s = new Student();
cout << "\nEnter Roll No: ";
cin >> s->roll;
cin.ignore(); cout <<
"Enter Name: ";
getline(cin, s->name);
cout << "Enter Marks: ";
cin >> s->marks;
s->next = NULL;

int index = hashFunction(s->roll);

// Insert at beginning s-
>next = table[index];
table[index] = s;

cout << "\n Student added successfully!\n";


}

// Search using hashing → O(1) average


void searchStudent() {
int roll;
cout << "\nEnter Roll No to Search: ";
cin >> roll;

int index = hashFunction(roll);


Student* temp = table[index];

while (temp != NULL) { if (temp->roll ==


roll) { cout << "\n Record Found:\n";
cout << "Roll: " << temp->roll << "\n";
cout << "Name: " << temp->name << "\n";
cout << "Marks: " << temp->marks << "\n";
return;
}
temp = temp->next;
}

cout << "\n Student not found!\n";


}

// Display all records void


displayAll() {
cout << "\n------ HASH TABLE ------\n";

for (int i = 0; i < SIZE; i++) {


cout << "Index " << i << ": ";
Student* temp = table[i];

if (temp == NULL) {
cout << "EMPTY\n";
continue;
}

while (temp != NULL) { cout << "[Roll:


" << temp->roll << ", Name: " << temp-
>name << ", Marks: " << temp->marks
<< "] -> "; temp = temp->next;
}
cout << "NULL\n";
}
}

// Delete record void


deleteStudent() {
int roll;
cout << "\nEnter Roll No to Delete: ";
cin >> roll;

int index = hashFunction(roll);


Student* temp = table[index];
Student* prev = NULL;

while (temp != NULL) { if


(temp->roll == roll) { if (prev
== NULL) { table[index] =
temp->next;
} else {
prev->next = temp->next;
}
delete temp;
cout << "\n Record Deleted!\n";
return;
}
prev = temp;
temp = temp->next;
}

cout << "\n Roll No not found!\n";


}

int main() { for (int i = 0; i


< SIZE; i++)
table[i] = NULL;

int choice;
do {
cout << "\n===== HASH TABLE MENU =====\n";
cout << "1. Insert Student\n"; cout << "2. Search
Student\n"; cout << "3. Display All\n"; cout <<
"4. Delete Student\n";
cout << "5. Exit\n";
cout << "Enter choice: ";
cin >> choice;

switch (choice) { case 1:


insertStudent(); break; case 2:
searchStudent(); break; case 3:
displayAll(); break; case 4:
deleteStudent(); break; case 5: cout <<
"\nExiting...\n"; break;
default: cout << "\nInvalid choice!\n";
}
} while (choice != 5);

return 0;
}

 Sample Input

====== Student Database Management System ======

1. Add Student Record

2. Display All Records

3. Search Student

4. Delete Student

5. Exit

Enter your choice: 1

Enter Roll No: 101

Enter Name: John Doe

Enter Course: Computer Science

Enter Marks: 85.5

Student record added successfully!

====== Student Database Management System ======

1. Add Student Record

2. Display All Records

3. Search Student

4. Delete Student 5. Exit

Enter your choice: 1

Enter Roll No: 102


Enter Name: Jane Smith

Enter Course: Information Technology

Enter Marks: 90.0

Student record added successfully!

====== Student Database Management System ======

1. Add Student Record

2. Display All Records

3. Search Student

4. Delete Student

5. Exit

Enter your choice: 2


Sample Output

--- All Student Records ---


101,John Doe,Computer Science,85.5
102,Jane Smith,Information
Technology,90.0

====== Student Database


Management System ======
1. Add Student Record
2. Display All Records
3. Search Student
4. Delete Student
5. Exit
Enter your choice: 3
Enter Roll No to Search: 101

Record Found:
101,John Doe,Computer Science,85.5

====== Student Database


Management System ======
1. Add Student Record
2. Display All Records
3. Search Student
4. Delete Student 5. Exit
Enter your choice: 4

Enter Roll No to Delete: 102

Record deleted successfully!

====== Student Database


Management System ======
1. Add Student Record
2. Display All Records
3. Search Student
4. Delete Student 5. Exit
Enter your choice: 2

--- All Student Records ---


101,John Doe,Computer Science,85.5

====== Student Database


Management System ======
1. Add Student Record
2. Display All Records
3. Search Student
4. Delete Student
5. Exit
Enter your choice: 5

Exiting... Thank you!

 Testing
• Execute the program with different operations
Add, Display, Search, Delete to check whether
each works correctly.
• Try valid inputs adding a student record and
invalid or edge inputs searching for a nonexistent
roll number, deleting from an empty list.
• Confirm the outputs match expectations record
appears after addition, “Student not found”
appears when appropriate).

 Validation
• Ensure the system meets the requirements:
storing student data roll number, name, course,
marks searching by roll number, deleting records,
displaying records.
• Check that the system is fit for purpose: users
(Admin/Teacher/Student roles) get correct
access; the console-interface is intuitive; file
storage works so records persist.
 Conclusion
This project has successfully developed
consolebased Student Database Management
System in C++ that uses core data structures
(arrays, linked lists, trees, hash tables). It meets
the objectives of record addition, retrieval,
deletion, display and persistent storage. The
system delivers a lightweight, reliable solution for
student record management.
 Future Enhancement
 Integrate a graphical user interface or
webbased front end to make the system
more user-friendly and accessible.
 Enable mobile or cloud access, so data and
operations can be used remotely and on
multiple devices.
 Add advanced search, sorting and filtering
capabilities
 Employ machine-learning or predictive
analytics to identify at-risk students,
forecast outcomes, or personalise learning
paths

 Refrences
 Student Data Management in C++ —
GeeksforGeeks. GeeksforGeeks
 C++ Program to Store Information of a
Student in a Structure” — Programiz.
Programiz
 Student Database Management System in
C++(Project PDF) — Sathyabama
University. SIST Sathyabama
 Student Management System Using C++ —
Scribd document. Scribd
 Student-Management-System-with-Data-
Structures” — GitHub repository

You might also like