Report Card Making: A Project Report On

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 34

A Project Report On

REPORT CARD MAKING

Computer Science Investigatory Project


AISSE 2015-2016

Submitted By
MITUL M PATEL
Class : XII
Under the Guidance of
Mr. SANJAY
PARMAR PGT
(Computer Science)

Department of Computer
Science.
Department of Computer Science

CERTIFICATE

This is to certify that MITUL M PATEL


Of Class XII has prepared the report on the Project
entitled Report Card Making. The report is the
result of his efforts & endeavors. The report is
found worthy of acceptance as final project report
for the subject Computer Science of Class
XII. He has prepared the report under my guidance.

(Mr. SANJAY PARMAR)


PGT (Computer Science)
Department of Computer
Science.
Department of Computer Science

ceRTiFicaTe

The project report entitled

Report Card Making,


Submitted by MITUL PATEL of Class XII for
the CBSE Senior Secondary Examination class
XII of Computer Science has been examined.

SIGNATURE OF EXAMINER
DECLARATION

I hereby declare that the project work


entitled Report Card Making,
submitted to Department of
Computer Science, is prepared by
me. All the coding are result of my personal
efforts.

MITUL PATEL

Class XII
ACKNOWLEDGEMENT

I would like to express a deep sense of thanks & gratitude to my


project guide Mr. Sanjay Parmar Sir for guiding me immensely through
the course of the project. He always evinced keen interest in my work.
His constructive advice & constant motivation have been responsible for
the successful completion of this project.

My sincere thanks goes to Shri !!!!!!!!!!, Our principal sir, for his
co-ordination in extending every possible support for the completion of
this project.

I also thanks to my parents for their motivation & support. I must


thanks to my classmates for their timely help & support for compilation
of this project.

Last but not the least, I would like to thank all those who had
helped directly or indirectly towards the completion of this project.

MITUL PATEL
Class: XII
CONTENTS

1. HEADER FILES USED. . . . . . . . . . . . . . . . .

2. FILES GENERATED. . . . . . . . . . . . . . . . . . .

3. WORKING DESCRIPTION. . . . . . . . . . . . .

4. CODING. . . . . . . . . .. . . . . . . . . . . . . . . . .

5. OUTPUT SCREENS. . . . . . . . . . . . . . . . . . .
6. CONCLUSION. . . . . . . . . . . . . . . . . . . . . .
....
7. BIBLIOGRAPHY. . . . . . . . . . . . . . . . . . . . .
....
HEADER FILES USED

1. FSTREAM.H for file handling, cin and cout


2.PROCESS.H for exit() function
3. CONIO.H for clrscr()
and getch() functions
4.STDIO.H for standard I/O operations
5. STRING.H for string handling
6. MATH.Hfor doing mathematical
operations
FILES GENERATED

DATA FILES
Report.DAT

PROGRAM FILE
Report Card Making.CPP

OBJECT FILE
Report.OBJ

EXECUTION FILE
Report.EXE
WORKING DESCRIPTION

This program consists of EIGHT


options as follows

1. TO MAKE REPORT CARD


2. TO APPEND NAMES
3. SORT NAMES
4. TO SEARCH A NAME
5. TO UPDATE GRADE
6. VIEW REPORT CARD
7. LIST OF FAILURES
8. MAIN MANU
HARDWARE AND SOFTWARE
SPECIFICATION
Hardware Requirement
Pentium (III-IV) Processor
64/128 MB of RAM
20/40 GB HDD
3 FDD
CD Rom Drive
Mouse, Keyboard & Printer
VGA/SVGA

Software Requirement
Windows XP/ 2007
Borland C++ / Turbo C++/ VC 4.5

Platform :- (Windows XP)


Operating system Win-xp was chosen as the platform for
developing the project. The choice was because of the
following features provided by it:-
Multitasking
Graphic User Interface
User Friendly
ADVANTAGES OF USING C++
Several advantages of using C++ are:-

Data Abstraction & Encapsulation.


Data modularity.
Reusability & transitive.
Polymorphism.
Inheritance.

OPERATING INSTRUCTION
This program has been stored in file Program File:
officemg.cpp
Data File : empdl.dat
To compile and run this program:-
First go to the directory that contain it.
(CD\project\OFFICEMG.CPPs )
Open Turbo C++
Now open the file progress card and press Ctrl+f9

to compile and run it.


Now the welcome screen appears.

process as per your choice


CODING

//Report Card Making


#include<fstream.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<string.h>
#include<iomanip.h>

ofstream r;
ifstream t;

void credits();
void menu1();
void menu2();
void menu3();
void terms();

class xii
{
public:
int roll;
char na[20];
int m1,m2,m3,m4,m5;
char g[10];
int t;
int p;
void input()
{
gotoxy(1,5);
cout<<"\tENTER ROLL NUMBER OF THE STUDENT :";
cin>>roll;
cout<<"\tENTER NAME OF THE STUDENT :";
gets(na);
cout<<"\n\n\tENTER MARKS OF THE 5 SUBJECTS OUT OF 100";
cout<<"\n";
cout<<"\tENTER MARKS IN ENGLISH:";
cin>>m1;
cout<<"\n";
cout<<"\tENTER MARKS IN MATHS:";
cin>>m2;
cout<<"\n";
cout<<"\tENTER MARKS IN PHYSICS:";
cin>>m3;
cout<<"\n";
cout<<"\tENTER MARKS IN CHEMISTRY:";
cin>>m4;
cout<<"\n";
cout<<"\tENTER MARKS IN COMPUTER:";
cin>>m5;
cout<<"\n";
cleardevice();
t=m1+m2+m3+m4+m5;
p=t/5;
gotoxy(1,1);
}

void output()
{
cout<<"\n";
cout<<" "<<roll<<"\t"<<" "<<na<<setw(10)<<"\t";
cout<<" "<<m1<<","<<m2<<","<<m3<<","<<m4<<","<<m5<<"\t";
cout<<" "<<p<<"%"<<"\t"<<"\t"<<" "<<g<<"\n";
cout<<"\t";
}
}s[30];

int i,n;
void writes()
{
clrscr();
cleardevice();
cout<<"\n";
cout<<"\tENTER THE NUMBER OF RECORDS TO BE CREATED :";
cin>>n;
cleardevice();
for(i=0;i<n ;i++)
{
s[i].input();
if(s[i].p>=95)
strcpy(s[i].g,"A1");
if(s[i].p>=90 && s[i].p<=95)
strcpy(s[i].g,"A2");
if(s[i].p>=80 && s[i].p<=90)
strcpy(s[i].g,"B1");
if(s[i].p>=70 &&s[i].p<=80)
strcpy(s[i].g,"B2");
if(s[i].p>=60 &&s[i].p<=70)
strcpy(s[i].g,"C1");
if(s[i].p>=50 && s[i].p<=60)
strcpy(s[i].g,"C2");
if(s[i].p>=40&&s[i].p<=50)
strcpy(s[i].g,"D,1");
if(s[i].p<=40)
strcpy(s[i].g,"D2");
r.write((char*)&s[i],sizeof(s[i]));
}
}

void append()
{
clrscr();
cleardevice();
cout<<"\n";
int k;
cout<<"\t\t\t*-----------*"<<"\n";
cout<<"\t\t\t| APPENDING |"<<"\n";
cout<<"\t\t\t*-----------*"<<"\n"<<"\n";
cout<<"\tENTER THE NUMBER OF RECORDS TO BE APPENDED :";
cin>>k;
for(i=0;i<k ;i++)
{
s[i].input();
if(s[i].p>=95)
strcpy(s[i].g,"A1");
if(s[i].p>=90&&s[i].p<=95)
strcpy(s[i].g,"A2");
if(s[i].p>=80&&s[i].p<=90)
strcpy(s[i].g,"B1");
if(s[i].p>=70&&s[i].p<=80)
strcpy(s[i].g,"B2");
if(s[i].p>=60&&s[i].p<=70)
strcpy(s[i].g,"C1");
if(s[i].p>=50&&s[i].p<=60)
strcpy(s[i].g,"C2");
if(s[i].p>=40&&s[i].p<=50)
strcpy(s[i].g,"D1");
if(s[i].p<=40)
strcpy(s[i].g,"D2");
r.write((char*)&s[i],sizeof(s[i]));
}
getch();
n+=k;
}

void search()
{
clrscr();
cleardevice();
char name[20];
int flag=0;
cout<<"\n";
cout<<"\t\t\t*-----------*"<<"\n";
cout<<"\t\t\t| SEARCHING |"<<"\n";
cout<<"\t\t\t*-----------*"<<"\n"<<"\n";

step:
cout<<"\n\tENTER THE NAME TO BE SEARCHED :";
gets(name);
cout<<"\n";
cout<<"ROLL NAME MARKS PERCENTAGE
GRADE"<<"\n";
for(i=0;i<n;i++)
{
t.read((char *) &s[i],sizeof(s[i]));
if(strcmp(name,s[i].na)==0)
{
flag=1;
s[i].output();
break;
}
}
if(flag==0)
{
cleardevice();
cout<<"\tSORRY\n";
cout<<"\tTHE NAME DOES NOT EXIST.\n";
}
getch();
}

void update()
{
clrscr();
cleardevice();
cout<<"\t\t\t*--------------*"<<"\n";
cout<<"\t\t\t| UPDATED LIST |"<<"\n";
cout<<"\t\t\t*--------------*"<<"\n"<<"\n";
cout<<"ROLL NAME MARKS PERCENTAGE
GRADE"<<"\n";
cout<<"-----------------------------------------------------------"<<"\n";
for(i=0;i<n;i++)
{
if(s[i].p<=40.0)
s[i].t=s[i].t+(s[i].t/10);
s[i].p=s[i].t/5.0;
if(s[i].p>=50.0&&s[i].p<=60.0)
strcpy(s[i].g,"C2");
if(s[i].p>=40.0&&s[i].p<=50.0)
strcpy(s[i].g,"D1");
if(s[i].p<=40.0)
strcpy(s[i].g,"Failed");
r.write((char*)&s[i],sizeof(s[i]));
s[i].output();
}
getch();
}

void sort()
{
clrscr();
cleardevice();
xii tp;
cout<<"\t\t\t*-------------*"<<"\n";
cout<<"\t\t\t| SORTED LIST |"<<"\n";
cout<<"\t\t\t*-------------*"<<"\n"<<"\n";
cout<<"ROLL NAME MARKS PERCENTAGE
GRADE"<<"\n";
cout<<"---------------------------------------------------------"<<"\n";
for(i=0;i<n;i++)
{
t.read((char *) &s[i],sizeof(s[i]));
for(i=0;i<n-1;i++)
{ for(int j=i+1;j<n;j++)
{ if(strcmp(s[i].na,s[j].na)>0)
{ tp=s[i];
s[i]=s[j];
s[j]=tp;
}
}
}
for(i=0;i<n ;i++)
s[i].output();
}
getch();
}

void failed()
{
cleardevice();
cout<<"\t**----------------------------------------------------------**"<<"\n";
cout<<"\t|| THE LIST OF STUDENTS WHO FAILED IN MORE THAN
ONE SUBJECT ||"<<"\n";
cout<<"\t**----------------------------------------------------------**\n\n";
cout<<"ROLL NAME MARKS PERCENTAGE
GRADE"<<"\n";
cout<<"-------------------------------------------------------"<<"\n";
for(i=0;i<n;i++)
{
int c=0;
t.read((char *) &s[i],sizeof(s[i]));
if (s[i].m1<=40)
c++;
if (s[i].m2<=40)
c++;
if (s[i].m3<=40)
c++;
if (s[i].m4<=40)
c++;
if (s[i].m5<=40)
c++;
if(c>=2)
{
s[i].output();
}
}

getch();
}

void reads()
{
clrscr();
cleardevice();
cout<<"\n";
cout<<"\t**------------------------------------------------**"<<"\n";
cout<<"\t|| THE REPORT CARD OF STUDENTS OF CLASS XII-B2
||"<<"\n";
cout<<"\t**------------------------------------------------**"<<"\n"<<"\n";
cout<<"ROLL NAME MARKS PERCENTAGE
GRADE"<<"\n";
cout<<"--------------------------------------------------------"<<"\n";
for(i=0;i<n;i++)
{
t.read((char *) &s[i],sizeof(s[i]));
s[i].output();
}
getch();
}

void terms()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"\\turboc3\\bgi");
errorcode = graphresult();
if (errorcode !=grOk) /* an error code occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch;
exit(1); /* terminate with an error code */
}
char chc;
rectangle(1,1,getmaxx(),getmaxy());
settextstyle(GOTHIC_FONT,VERT_DIR,5);
settextjustify(LEFT_TEXT,CENTER_TEXT); //Was actually-
settextjustify(LEFT_TEXT,CENTER_TEXT,5);
outtextxy(50,240,"REPORT CARD");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,5);
outtextxy(240,50,"SELECT A TERM");
outtextxy(240,90,"OF YOUR CHOICE.");
outtextxy(240,105," ......................................");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,4);
setbkcolor(BLACK);
outtextxy(300,170,"1.Ist TERM");
outtextxy(300,220,"2.IInd TERM");
outtextxy(300,270,"3.IIIrd TERM");
outtextxy(300,320,"4.EXIT");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,3);
outtextxy(400,400,"ENTER CHOICE");
chc=getch();
switch(chc)
{
case '1':cleardevice();
menu1();
break;
case '2':cleardevice();
menu2();
break;
case '3':cleardevice();
menu3();
break;
case '4':cleardevice();
credits();
exit(0);
default :clrscr();
cleardevice();
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
outtextxy(220,210,"WRONG CHOICE !");
outtextxy(170,270,"PLEASE TRY AGAIN.");
sleep(2);
cleardevice();
terms();
}
closegraph();
}

void credits()
{
cleardevice();
setbkcolor(4);
gotoxy(33,6);
cout<<"-:Created By:-";

for(int i=70;i>28;i--)
{
gotoxy(i,8);
cout<<"Mitul Patel"<<endl;
delay(70);
}
for(i=70;i>28;i--)
{
gotoxy(i,10);
cout<<"mtlptl5@gmail.com"<<endl;
delay(70);
}
gotoxy(28,25);
cout<<"Press any key to exit...";
getch();
exit(0);
}

/
***********************************menu1***********************
*************/
void menu1()
{
cleardevice();
char ch;
back:
settextstyle(GOTHIC_FONT,VERT_DIR,5);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(50,240,"REPORT CARD");
settextstyle(SANS_SERIF_FONT,VERT_DIR,4);
setbkcolor(BLACK);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(110,240,"Ist TERM");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,4);
outtextxy(290,50,"1.MAKE REPORT CARD");
outtextxy(290,90,"2.APPEND NAMES");
outtextxy(290,130,"3.SORT NAMES");
outtextxy(290,170,"4.SEARCH A NAME");
outtextxy(290,210,"5.UPDATE GRADE");
outtextxy(290,250,"6.VIEW REPORT CARD");
outtextxy(290,290,"7.LIST OF FAILURES");
outtextxy(290,330,"8.MAIN MENU");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,3);

outtextxy(400,420,"ENTER CHOICE");
ch=getch();

switch(ch)
{
case '1':
r.open("report_1");
writes();
r.close();
cleardevice();
goto back;

case '2':
r.open("report_1",ios::app|ios::out);
append();
r.close();
cleardevice();
goto back;
case '3':
t.open("report_1");
sort();
t.close();
cleardevice();
goto back;

case '4':
t.open("report_1");
search();
t.close();
cleardevice();
goto back;

case '5':
r.open("report_1",ios::end);
update();
r.close();
cleardevice();
goto back;

case '6':
t.open("report_1");
reads();

t.close();
cleardevice();
goto back;

case '7':
t.open("report_1");
failed();
t.close();
cleardevice();
goto back;

case '8':
closegraph();
terms();
default :clrscr();
cleardevice();
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
outtextxy(220,240,"WRONG CHOICE !");
outtextxy(190,280,"PLEASE TRY AGAIN.");
sleep(2);
cleardevice();
goto back;
}
}

/
***************************************menu2*******************
*************************/
void menu2()
{
cleardevice();
char ch;
back:
settextstyle(GOTHIC_FONT,VERT_DIR,5);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(50,240,"REPORT CARD");
settextstyle(SANS_SERIF_FONT,VERT_DIR,4);
setbkcolor(BLACK);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(110,240,"IInd TERM");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,4);
outtextxy(290,50,"1.MAKE REPORT CARD");
outtextxy(290,90,"2.APPEND NAMES");

outtextxy(290,130,"3.SORT NAMES");
outtextxy(290,170,"4.SEARCH A NAME");
outtextxy(290,210,"5.UPDATE GRADE");
outtextxy(290,250,"6.VIEW REPORT CARD");
outtextxy(290,290,"7.LIST OF FAILURES");
outtextxy(290,330,"8.MAIN MENU");
settextstyle(SANS_SERIF_FONT,HORIZ_DIR,3);
outtextxy(400,420,"ENTER CHOICE");
ch=getch();
switch(ch)
{
case '1':
r.open("report_2");
writes();
r.close();
cleardevice();
goto back;

case '2':
r.open("report_2",ios::app|ios::out);
append();
r.close();
cleardevice();
goto back;

case '3':
t.open("report_2");
sort();
t.close();
cleardevice();
goto back;

case '4':
t.open("report_2");
search();
t.close();
cleardevice();
goto back;

case '5':
r.open("report_2",ios::end);
update();

r.close();
cleardevice();
goto back;
case '6':
t.open("report_2");
reads();
t.close();
cleardevice();
goto back;

case '7':
t.open("report_2");
failed();
t.close();
cleardevice();
goto back;

case '8':
closegraph();
terms();

default :clrscr();
cleardevice();
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
outtextxy(220,240,"WRONG CHOICE !");
outtextxy(190,280,"PLEASE TRY AGAIN.");
sleep(2);
cleardevice();
goto back;
}
}

/
*********************************menu3*************************
*************/
void menu3()
{
cleardevice();
char ch;
back:
settextstyle(GOTHIC_FONT,VERT_DIR,5);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(50,240,"REPORT CARD");
settextstyle(SANS_SERIF_FONT,VERT_DIR,4);
setbkcolor(BLACK);
settextjustify(LEFT_TEXT,CENTER_TEXT);
outtextxy(110,240,"IIIrd TERM");
settextstyle(SANS_SERIF_FONT,0,4);
outtextxy(290,50,"1.MAKE REPORT CARD");
outtextxy(290,90,"2.APPEND NAMES");
outtextxy(290,130,"3.SORT NAMES");
outtextxy(290,170,"4.SEARCH A NAME");
outtextxy(290,210,"5.UPDATE GRADE");
outtextxy(290,250,"6.VIEW REPORT CARD");
outtextxy(290,290,"7.LIST OF FAILURES");
outtextxy(290,330,"8.MAIN MENU");
settextstyle(SANS_SERIF_FONT,0,3);
outtextxy(400,420,"ENTER CHOICE");
ch=getch();

switch(ch)
{
case '1':
r.open("report_3");
writes();
r.close();
cleardevice();
goto back;
case '2':
r.open("report_3",ios::app|ios::out);
append();
r.close();
cleardevice();
goto back;

case '3':
t.open("report_3");
sort();
t.close();
cleardevice();
goto back;
case '4':
t.open("report_3");
search();

t.close();
cleardevice();
goto back;

case '5':
r.open("report_3",ios::end);
update();
r.close();
cleardevice();
goto back;

case '6':
t.open("report_3");
reads();
t.close();
cleardevice();
goto back;

case '7':
t.open("report_3");
failed();
t.close();
cleardevice();
goto back;

case '8':
closegraph();
terms();

default :clrscr();
cleardevice();
settextstyle(TRIPLEX_FONT,HORIZ_DIR,5);
outtextxy(220,240,"WRONG CHOICE !");
outtextxy(190,280,"PLEASE TRY AGAIN.");
sleep(2);
cleardevice();
goto back;
}
}

/
**********************************main*************************
*************/
void main()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver,&gmode,"\\turboc3\\bgi");
errorcode = graphresult();
if (errorcode != grOk) /*an error occurred*/
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch;
exit(1); /* terminate with an error code */
}

settextstyle(SANS_SERIF_FONT,HORIZ_DIR,5);
rectangle(1,1,getmaxx(),getmaxy());
setbkcolor(9);
outtextxy(300,100,"A");
delay(2000);
outtextxy(200,170,"PROJECT ON");
delay(2000);
outtextxy(95,240,"REPORT CARD MAKING");
delay(2000);
for(int i=0;i<=360;i++)
{
ellipse(320,240,0,i,300,200);
delay(12);
}
closegraph();
terms();
}
OUTPUT

1. WELCOME SCREEN

2. CHOICE SCREEN
3. SELECT ED Ist TERM

4. TO MAKE REPORT CARD


5. TO APPEND NAMES

6. TO SORT NAMES

7. TO SEARCH A NAME
8. VIEW REPORT CARD

9. LIST OF FAILURES
10. EXIT SCREEN
BIBLIOGRAPHY

INTERNET

Computer Science Text Book


(By Sumita Arora for class XII)

Together with Computer Science


(Published by Rachna Sagar PVT LTD.)

Practicals & Projects In C++


(Published by Dhanpat Rai & CO.)

You might also like