Class XII YEAR Project
Class XII YEAR Project
PROJECT REPORT PARTICULARS OF THE STUDENT NAME:- Rohan Jacob And Sanjay Negi ROLL NO:- 1 & 10 CLASS:- XII-A PARTICULARS OF THE SUPERVISOR NAME:-Mrs Sunanda Maam 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 maam 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
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 students 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.
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
Information Model
Data Design
DESIGN
Architectural Design
Procedural design
Code Programme Integrated & Validated Software T Module
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
MAIN MENU
1) INPUT/REGISTER
NEW USER
EXISTING USER
11
2) EXIT
ADD NAME
CHOOSE RECORD
DELETE RECORD
Data Dictionary
S.no 1)2)3)4)5)Name Student Record Where used As a key field in Description Integer 4 bytes and char 30 characters 50 characters Integer 2 bytes Integer or float of 2 bytes Integer 4 bytes and char 30 characters
Name of student Attribute of student Record Roll No of the student Marks scored in 5 subjects Class Result Attribute of student Record Attribute of student Record Attribute of student Record
calculate() void
SHOWDATA.DAT file
S.NO Field Name
1)-
p_marks,c_marks,e_marks, int m_marks & cs_marks roll no name show_tabular int char int
2)3)4)-
Procedure/Function Description
S.NO Function Name 1)void calculate( ) 2)void getdata( ) 3)4)5)6)7)8)9)10)11)12)13)14)Description Function to calculate grade Function to accept data from user void showdata( ) Function to show data on screen void_showtabular( ) Function to display tabular format marks retrollno( ) Function to return roll no void write_student Writes the record in binary file void display_all( ) Reads records from binary file void display_sp(int) accept roll no and read record from binary file void modiy_student(int) accept roll no and update record of binary file void delete_student(int) accept roll no and delete selected record from binary file void class_result( ) display all records in tabular format from binary file void result( ) display result menu void intro( ) void entry_menu( ) display welcome screen display entry menu on screen
//*************************************************************** *
class student { int rollno; char name[50]; int p_marks, c_marks, m_marks, e_marks, cs_marks; float per; char grade; void calculate(); public: //function to calculate grade
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 write_student();
void display_all(); //read all records from binary file void display_sp(int); from binary file //accept rollno and read record //accept rollno and update
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(); void intro(); //display result menu //display welcome screen //display entry menu on screen
void entry_menu();
//*************************************************************** *
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; }
//*************************************************************** *
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();
//*************************************************************** *
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))) {
//*************************************************************** *
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(); }
//*************************************************************** *
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(); }
//*************************************************************** *
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(); }
//*************************************************************** *
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 Grade"<<endl; Name P C M E CS %age
//*************************************************************** *
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 : ";
//*************************************************************** *
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(); }
//*************************************************************** *
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; default: cout<<"\a"; entry_menu(); } }