class xii year project
DESCRIPTION
cbse class 12 Year ProjectTRANSCRIPT
ANALYSIS AND DESIGN OF STUDENT REPORT CARD MANAGEMENT SYSTEM
PROJECT REPORT
PARTICULARS OF THE STUDENT
NAME:- Rohan Jacob And Sanjay Negi
ROLL NO:- 1 & 10
CLASS:- XII-A
PARTICULARS OF THE SUPERVISOR
NAME:-Mr’s Sunanda Maa’m
DESIGNATION:-
CERTIFICATE
This is to certify that the project entitled “Student Report Card Management System”, which deals with Student marks and percentage in report card and to handle various other activities is submitted by Rohan Jacob And Sanjay Negi. This Project is a bonafide piece of work carried out with the consultation of supervisor.
Rohan Jacob And Sanjay Negi
Roll No:- 1 & 10
Class:-XII-A
ACKNOWLEDGEMENT
Firstly of all I would thank Sunanda maa’m for giving me a golden opportunity to exhibit by work in C++ Programming. It was a privilege to have been guided by her.
Secondly I would also thank to various people who supported me especially, Anirud Samala who helped me in my project. I also would thank my project partner, Sanjay Negi for cooperating with me and also helped me in our project.
Lastly, I would thank my parents for providing me with logical and essential ideas in the working of my project. Again a “Big” thanks to all with their constructive criticism and advice.
NAVI MUMBAI
CONTENTS
A:)- System Description at a Glance
B:)- Problem Description
:- Requirement Analysis
:- Hardware and Software Requirements
C:)- System Specification
:- System Design
:- Data Design
:- Architectural Design
:- Data Dictionary
D:)- File Design Structures
E:)-Procedure/Function Description
F:)-Program Source Code
SYSTEM DESCRIPTION AT A GLANCE
This program is divided in 2 categories:-
1:)- Class Result(Displays All students Marks, percentage and overall grade obtained in various subjects in Tabular Form)
2:)- Entry/Edit of a Particular Student Marks(which has further more classifications like modification, deleting, searching etc. a student’s record)
FILES:-
There are separate files for keeping the records of Student Marks:-
1:)- One file which stores or keeps marks in various subjects.
2:)- One file for edit or modifying the marks
3:)- A file for searching the student’s record.
Inputs are:-
1:)- Entering the Name, roll no and marks of the student in the provided subjects.
2:)- For modifying, deleting and searching for a student record.
Outputs are:-
1:)- Displays the entire student record in both tabular as well as in rows and column format.
2:)- Displays and calculates the precise and accurate marks, percentage, Overall grade in subjects which are Physics, Chemistry , Maths , English and Computer Science.
PROBLEM DESCRIPTION
We have studied the existing system in detail. The finding of our study yield various pieces of information which are described in the following manner:-
1:)- Name of the student.
2:)- Roll No of the student.
3:)- To store the marks in various Subjects.
Required Output of the System
The Computerized system generates the following reports as:-
1:)- The marks of all students or a particular student(depending upon the user choice).
2:)- Overall Grade and Percentage of the combined 5 subjects.
Hardware and Software Requirements
The volume of the information is to be handled about a lot many characters.
Since the source code of the Report card management system reads in Dos Box about 378:1
I would suggest a computer with about 200 MB Hard Disk about 7 to 14 RAM, a line or a dot matrix printer and preferable a laser printer is optimum. The availability of sophisticated programming tool is imperative and thus a C++ is a chosen program the system.
SYSTEM SPECIFICATIONS
SYSTEM DESIGN- The kernel of system engineering
The importance of software design can be stated with a single word quality. Design is the place where provides us with representation of software that can be accessed for quality.
System design sits at the technical kernel of the software engineering process and is applied regardless of the development paradigm that is used. Once software requirements have been analyzed and specified, the software design is first of three, technical activities-‘design’, ’code’ and ‘test’ , that are required to program the software.
The flow of information during technical phase of the software engineering process is illustrated in the figure at the next page
Functional Model Information Model
Behavioural Model
Data Design
DESIGN Architectural Design
Procedural design
Code
Programme Module
Integrated & Validated
Software T
Test
Data Design
Data design is the first of the three design activities that are conducted during system development. The impact of data structure on program structure and procedural complexity causes data design to have a profound influence in system quality.
All the objects by this system are listed below:-
1:)- getdata.dat
It contains information related to:-
a)- Name of the student.
b)- Student Roll No.
c)- Marks of 5 subjects.
2:)- showdata.dat
a)- Displays the Marks in The 5 subjects.
b)- Displays the Marks, Overall grade in Tabular form.
3:)- intro.dat & entry_menu.dat
Contains Information related to:-
a)- Main screen.
b)- Inputs regarding to the menu main screen.
ARCHITECTURAL DESIGN
ELSE
1) INPUT/REGISTER
NEW USER EXISTING USER
ADD NAME
CHOOSE RECORD
DELETE RECORD
MAIN MENU
ENTER YOUR CHOICE
1) OR 2)
2) EXIT
Data Dictionary
S.no Name Where used Description1)- Student Record As a key field in Integer 4 bytes
and char 30 characters
2)- Name of student
Attribute of student Record
50 characters
3)- Roll No of the student
Attribute of student Record
Integer 2 bytes
4)- Marks scored in 5 subjects
Attribute of student Record
Integer or float of 2 bytes
5)- Class Result Attribute of student Record
Integer 4 bytes and char 30 characters
File Design Structure
Master Record Lay-Out- GETDATA.DAT file
S.NO Field Name
Type Width Field Description
1)- name char 30 characters
Student name in the record
2)- roll no int 1 bytes Student roll no in the subject
3)- p_marks int 1 bytes Student marks in 1st
subject4)- c_marks int 1 bytes Student
marks in 2nd
subject5)- m_marks int 1 bytes Student
marks in 3rd
subject6)- e_marks int 1 bytes Student
marks in 4th
subject7)- cs_marks int 1 byte Student
marks in 5th
subject8)- calculate(
)void 4 bytes For the
Average grade
SHOWDATA.DAT file
S.NO
Field Name Type Width
Field Description
1)- p_marks,c_marks,e_marks,m_marks & cs_marks
int About 5 bytes
Displays the output of the student marks
2)- roll no int 2 bytes
Displays roll no of the student
3)- name char 30 charac-ters
Displays name of the student.
4)- show_tabular int 8 bytes
Displays all the record of the student in tabular form.
Procedure/Function Description
S.NO
Function Name Description
1)- void calculate( ) Function to calculate grade2)- void getdata( ) Function to accept data
from user3)- void showdata( ) Function to show data on
screen4)- void_showtabular( ) Function to display tabular
format marks5)- retrollno( ) Function to return roll no6)- void write_student Writes the record in binary
file7)- void display_all( ) Reads records from binary
file8)- void display_sp(int) accept roll no and read
record from binary file
9)- void modiy_student(int) accept roll no and update record of binary file
10)- void delete_student(int)
accept roll no and delete selected record from binary file
11)- void class_result( ) display all records in tabular format from binary file
12)- void result( ) display result menu
13)- void intro( ) display welcome screen
14)- void entry_menu( ) display entry menu on screen
Program Source Code Report~1.CPP
#include<fstream.h>
#include<iomanip.h>
#include<stdio.h>
#include<conio.h>
//***************************************************************
// CLASS USED IN PROJECT
//****************************************************************
class student
{
int rollno;
char name[50];
int p_marks, c_marks, m_marks, e_marks, cs_marks;
float per;
char grade;
void calculate(); //function to calculate grade
public:
void getdata(); //function to accept data from user
void showdata(); //function to show data on screen
void show_tabular();
int retrollno();
}; //class ends here
void student::calculate()
{
per=(p_marks+c_marks+m_marks+e_marks+cs_marks)/5.0;
if(per>=60)
grade='A';
else if(per>=50)
grade='B';
else if(per>=33)
grade='C';
else
grade='F';
}
void student::getdata()
{
cout<<"\nEnter The roll number of student ";
cin>>rollno;
cout<<"\n\nEnter The Name of student ";
gets(name);
cout<<"\nEnter The marks in physics out of 100 : ";
cin>>p_marks;
cout<<"\nEnter The marks in chemistry out of 100 : ";
cin>>c_marks;
cout<<"\nEnter The marks in maths out of 100 : ";
cin>>m_marks;
cout<<"\nEnter The marks in english out of 100 : ";
cin>>e_marks;
cout<<"\nEnter The marks in computer science out of 100 : ";
cin>>cs_marks;
calculate();
}
void student::showdata()
{
cout<<"\nRoll number of student : "<<rollno;
cout<<"\nName of student : "<<name;
cout<<"\nMarks in Physics : "<<p_marks;
cout<<"\nMarks in Chemistry : "<<c_marks;
cout<<"\nMarks in Maths : "<<m_marks;
cout<<"\nMarks in English : "<<e_marks;
cout<<"\nMarks in Computer Science :"<<cs_marks;
cout<<"\nPercentage of student is :"<<per;
cout<<"\nGrade of student is :"<<grade;
}
void student::show_tabular()
{
cout<<rollno<<setw(6)<<" "<<name<<setw(10)<<p_marks<<setw(4)<<c_marks<<setw(4)<<m_marks<<setw(4)
<<e_marks<<setw(4)<<cs_marks<<setw(6)<<per<<setw(6)<<" "<<grade<<endl;
}
int student::retrollno()
{
return rollno;
}
//***************************************************************
// function declaration
//****************************************************************
void write_student(); //write the record in binary file
void display_all(); //read all records from binary file
void display_sp(int); //accept rollno and read record from binary file
void modify_student(int); //accept rollno and update record of binary file
void delete_student(int); //accept rollno and delete selected records from binary file
void class_result(); //display all records in tabular format from binary file
void result(); //display result menu
void intro(); //display welcome screen
void entry_menu(); //display entry menu on screen
//***************************************************************
// THE MAIN FUNCTION OF PROGRAM
//****************************************************************
int main()
{
char ch;
cout.setf(ios::fixed|ios::showpoint);
cout<<setprecision(2); // program outputs decimal number to two decimal places
clrscr();
intro();
do
{
clrscr();
cout<<"\n\n\n\tMAIN MENU";
cout<<"\n\n\t01. RESULT MENU";
cout<<"\n\n\t02. ENTRY/EDIT MENU";
cout<<"\n\n\t03. EXIT";
cout<<"\n\n\tPlease Select Your Option (1-3) ";
cin>>ch;
clrscr();
switch(ch)
{
case '1': result();
break;
case '2': entry_menu();
break;
case '3':
break;
default :cout<<"\a";
}
}while(ch!='3');
return 0;
}
//***************************************************************
// function to write in file
//****************************************************************
void write_student()
{
student st;
ofstream outFile;
outFile.open("student.dat",ios::binary|ios::app);
st.getdata();
outFile.write((char *) &st, sizeof(student));
outFile.close();
cout<<"\n\nStudent record Has Been Created ";
cin.ignore();
getch();
}
//***************************************************************
// function to read all records from file
//****************************************************************
void display_all()
{
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
cout<<"\n\n\n\t\tDISPLAY ALL RECORD !!!\n\n";
while(inFile.read((char *) &st, sizeof(student)))
{
st.showdata();
cout<<"\n\n====================================\n";
}
inFile.close();
getch();
}
//***************************************************************
// function to read specific record from file
//****************************************************************
void display_sp(int n)
{
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
int flag=0;
while(inFile.read((char *) &st, sizeof(student)))
{
if(st.retrollno()==n)
{
st.showdata();
flag=1;
}
}
inFile.close();
if(flag==0)
cout<<"\n\nrecord not exist";
getch();
}
//***************************************************************
// function to modify record of file
//****************************************************************
void modify_student(int n)
{
int found=0;
student st;
fstream File;
File.open("student.dat",ios::binary|ios::in|ios::out);
if(!File)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
while(File.read((char *) &st, sizeof(student)) && found==0)
{
if(st.retrollno()==n)
{
st.showdata();
cout<<"\n\nPlease Enter The New Details of student"<<endl;
st.getdata();
int pos=(-1)*sizeof(st);
File.seekp(pos,ios::cur);
File.write((char *) &st, sizeof(student));
cout<<"\n\n\t Record Updated";
found=1;
}
}
File.close();
if(found==0)
cout<<"\n\n Record Not Found ";
getch();
}
//***************************************************************
// function to delete record of file
//****************************************************************
void delete_student(int n)
{
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
ofstream outFile;
outFile.open("Temp.dat",ios::out);
inFile.seekg(0,ios::beg);
while(inFile.read((char *) &st, sizeof(student)))
{
if(st.retrollno()!=n)
{
outFile.write((char *) &st, sizeof(student));
}
}
outFile.close();
inFile.close();
remove("student.dat");
rename("Temp.dat","student.dat");
cout<<"\n\n\tRecord Deleted ..";
getch();
}
//***************************************************************
// function to display all students grade report
//****************************************************************
void class_result()
{
student st;
ifstream inFile;
inFile.open("student.dat",ios::binary);
if(!inFile)
{
cout<<"File could not be open !! Press any Key...";
getch();
return;
}
cout<<"\n\n\t\tALL STUDENTS RESULT \n\n";
cout<<"==========================================================\n";
cout<<"R.No Name P C M E CS %age Grade"<<endl;
cout<<"==========================================================\n";
while(inFile.read((char *) &st, sizeof(student)))
{
st.show_tabular();
}
getch();
inFile.close();
}
//***************************************************************
// function to display result menu
//****************************************************************
void result()
{
char ch;
int rno;
cout<<"\n\n\n\tRESULT MENU";
cout<<"\n\n\n\t1. Class Result";
cout<<"\n\n\t2. Student Report Card";
cout<<"\n\n\t3. Back to Main Menu";
cout<<"\n\n\n\tEnter Choice (1/2/3)? ";
cin>>ch;
clrscr();
switch(ch)
{
case '1' :class_result(); break;
case '2' :cout<<"\n\n\tEnter Roll Number Of Student : ";
cin>>rno;
display_sp(rno); break;
case '3' :break;
default :cout<<"\a";
}
}
//***************************************************************
// INTRODUCTION FUNCTION
//****************************************************************
void intro()
{
cout<<"\n\n\n\t\t STUDENT";
cout<<"\n\n\t\tREPORT CARD";
cout<<"\n\n\t\t PROJECT";
cout<<"\n\n\n\tMADE BY : SULABH AGRAWAL";
cout<<"\n\tSCHOOL : CAMBRIDGE SCHOOL";
getch();
}
//***************************************************************
// ENTRY / EDIT MENU FUNCTION
//****************************************************************
void entry_menu()
{
char ch;
int num;
clrscr();
cout<<"\n\n\n\tENTRY MENU";
cout<<"\n\n\t1.CREATE STUDENT RECORD";
cout<<"\n\n\t2.DISPLAY ALL STUDENTS RECORDS";
cout<<"\n\n\t3.SEARCH STUDENT RECORD ";
cout<<"\n\n\t4.MODIFY STUDENT RECORD";
cout<<"\n\n\t5.DELETE STUDENT RECORD";
cout<<"\n\n\t6.BACK TO MAIN MENU";
cout<<"\n\n\tPlease Enter Your Choice (1-6) ";
cin>>ch;
clrscr();
switch(ch)
{
case '1': write_student(); break;
case '2': display_all(); break;
case '3': cout<<"\n\n\tPlease Enter The roll number "; cin>>num;
display_sp(num); break;
case '4': cout<<"\n\n\tPlease Enter The roll number "; cin>>num;
modify_student(num);break;
case '5': cout<<"\n\n\tPlease Enter The roll number "; cin>>num;
delete_student(num);break;
case '6': break;