School Project Main
School Project Main
A
Project
OF
Dr. B. D. Diwan
Principal of
Govt. M. M. R. P. G. Collage
Champa (C.G)
CERTIFICATE
Prof. R. R. Sahu
H.O.D. of C.S
Govt. M. M. R. P. G. Collage
Champa (C.G)
CERTIFICATE
Signature of H.O.D.(C.S)
Prof. Mr. R. R. Sahu
DECLARATION
I further declare the work reported in the project has submitted and
project has full, for the record of any other degree of diploma in the
university during the presence in the college, they conduct and the
character was good. We wish them all the very best in future
"I am very glad to my subject teacher that have given me, a chance to
make this project and had suggested me to prepare the best of this
project. This successfully under the guideline of my subject teacher
“Mrs. Seema Dewangan & Mr. Vikas Rathore” who had helped me in
partial fulfilment of this project. In this successfully completed of this
project thank all my subject teacher"
thanks.
---------------------------
(Signature of Candidate)
CONTENTS
CHAPTER 7 : CODING
CHAPTER 9 : CONCLUSIONS
CHAPTER 10 : LIMITATION
CHAPTER 12 : GUIDANCE
1. Classes:
● The code defines several classes to model entities in a school
management system.
● Person class represents common attributes like name, age, phone
number, and address.
● Derived classes (Student, Teacher, Employee, Course) inherit from
Person, each with additional attributes specific to their roles.
3. User Interface:
● The program offers a menu-driven user interface, allowing users
to perform various actions within the system.
4. Data Management:
● Students, teachers, employees, and courses are stored in arrays
with specified limits.
● Methods are provided to interact with and manipulate this data.
5. File Operations:
● The system can save data to and load data from a file
("schooldata.txt").
CHAPTER - 2
SYSTEM REQUIREMENTS
HARDWARE AND SOFTWARE SPECIFICATIONS
HARDWARE REQUIREMENTS
● Ram : 4 GB
● Hard disk : 10 - 20 GB
● Mouse : 2 buttons
SOFTWARE REQUIREMENTS
C Programming Language:
1. Procedural Paradigm:
● C is a procedural programming language, emphasizing functions
and structured programming.
● The code is organized into functions, and the primary execution
starts from the main function.
1. Object-Oriented Paradigm:
● C++ extends C by introducing object-oriented programming (OOP)
concepts.
7. Modern Features:
● Modern C++ (C++11 and later) introduces features like lambda
expressions, smart pointers, and enhanced syntax for improved
readability and efficiency.
0-Level DFD:
1. Purpose:
1. Purpose:
2. Components:
E-R DAIGRAM
E-R DAIGRAM
CHAPTER - 6
FLOW CHART
FLOW CHART
CHAPTER - 7
CODING
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Person {
public:
string name;
int age;
string phoneno;
string address;
};
class Student : public Person {
public:
int studentid;
int rollNumber;
string classname;
};
class Teacher : public Person {
public:
int teacherid;
string subject;
};
class Course {
public:
string courseName;
int courseId;
};
class Employee : public Person {
public:
int empid;
int empsalary;
};
class SchoolManagementSystem {
private:
static const int MAX_STUDENTS = 100;
static const int MAX_TEACHERS = 100;
static const int MAX_EMPLOYEES = 100;
static const int MAX_COURSES = 100;
Student students[MAX_STUDENTS];
int studentCount;
Teacher teachers[MAX_TEACHERS];
int teacherCount;
Employee employees[MAX_EMPLOYEES];
int employeeCount;
Course courses[MAX_COURSES];
int courseCount;
public:
SchoolManagementSystem() : studentCount(0), teacherCount(0), courseCount(0),
employeeCount(0) {}
void displayMenu() {
cout <<"-------------------------------------"<< endl;
cout <<"School Management System Menu"<< endl;
cout <<"-------------------------------------"<< endl;
cout <<"1. Add Students"<< endl;
cout <<"2. Display Students"<< endl;
cout <<"3. Search Student"<< endl;
cout <<"4. Update Student"<< endl;
cout <<"5. Delete Student"<< endl;
cout <<"6. Add Teachers"<< endl;
cout <<"7. Display Teacher"<< endl;
cout <<"8. Add Employees"<< endl;
cout <<"9. Display Employees"<< endl;
cout <<"10. Add Courses"<< endl;
cout <<"11. Display courses"<< endl;
cout <<"12. Save School File"<< endl;
cout <<"13. Exit"<< endl;
cout <<"-------------------------------------"<< endl;
}
void addStudent() {
if (studentCount < 100) {
Student newStudent;
cout <<"Enter student name: ";
cin.ignore();
getline(cin, newStudent.name);
cout <<"Enter student roll number: ";
cin >> newStudent.rollNumber;
cout <<"Enter student id: ";
cin >> newStudent.studentid;
cout <<"Enter student age: ";
cin >> newStudent.age;
cout <<"Enter student Phone number: ";
cin >> newStudent.phoneno;
cout <<"Enter student class name: ";
cin.ignore();
getline(cin, newStudent.classname);
cout <<"Enter Student Address: ";
getline(cin, newStudent.address);
students[studentCount++] = newStudent;
cout <<"Student added successfully!"<< endl;
} else {
cout <<"Student limit reached. Cannot add more students."<< endl;
}
}
void displayStudents() {
if (studentCount == 0) {
cout <<"No students in the system."<< endl;
} else {
cout <<"-------------------------------------"<< endl;
cout <<"List of All Students"<< endl;
cout <<"-------------------------------------"<< endl;
return 0;
}
CHAPTER - 8
OUTPUT FORM
CHAPTER - 9
CONCLUSIONS
CONCLUSIONS
LIMITATION
LIMITATION
1. Code Reusability:
● You have similar input/output and data handling procedures
in multiple methods. Consider creating helper functions to
avoid redundancy and make the code more modular.
3. Error Handling:
● It's good to include error handling mechanisms, especially
when taking user input. For instance, you could check if the
input for age, IDs, or roll numbers is valid.
4. Code Comments:
● Consider adding comments to explain complex logic or to
provide an overview of the purpose of each method or class.
5. Magic Numbers:
● Instead of using magic numbers like 100 for the maximum
number of students, teachers, employees, and courses, you
could define them as constants at the beginning of your class.
6. Validation:
● Add validation checks for user inputs, such as ensuring that
IDs are unique, or certain fields are not empty.
7. Encapsulation:
● While your classes have attributes marked as public, which is
acceptable in this context, consider encapsulating them by
making them private and providing getter and setter
methods.
8. Security Concerns:
● The code doesn't address security concerns, such as input
sanitation and protection against potential exploits. Incorporate
security practices, especially if this system handles sensitive
information.
9. No Authentication or Authorization:
● The system doesn't include any form of authentication or
authorization. Consider adding user authentication and
authorization mechanisms to control access to different parts of
the system.
1. Database Integration:
● Consider transitioning to a database-driven approach for
storing and retrieving data. This will provide better scalability
and persistence.
3. Logging:
● Integrate logging to keep track of important events and
errors. This will aid in debugging and monitoring system
behavior.
8. Modularization:
9. Testing Automation:
GUIDANCE
GUIDANCE
This is to certify that "Hemant Kumar Sahu & Shivkumari Patel &
Durgeshwari" student of "P.G.D.C.A" in "Govt. M. M. R. P. G. College
Champa(C.G)" under "Shaheed Nand Kumar Patel University" had
worked under our organization as a project members during the 2023-
24.
We are undertaken and completed with the support of project
members in the project entitled "School Management System".
During they presence in the college, they conduct and character was
good. We wish they all the very best in future.
BIBLIOGRAPHY / REFFERENCE
BIBLIOGRAPHY / REFFERENCE
Adding references not only acknowledges the sources that helped you
but also provides transparency for others who may review or work on
the code. However, if the code is entirely your own creation without
direct reference to external materials, you can make that clear as well.