C++ Project on Student Management

Submitted by Editor

Students Information System



#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

int menu(int,int,int,char a[25],char b[25],char c[25],char d[25],char e[25],char sl1[25],char sl2[25],char title[40],char under[2]);
void main_menu();

void student_menu();
void updown();
void mark_menu();
int records=0;

struct s_date
{
int dd,mm,yyyy;
};

//DEFINING OF Stuctures
struct student
{
char address[30];
char fname[30];
int redgno;
s_date dob;
char clas[5];
char name[20];
int sub1,sub2,sub3,sub4,sub5,total;
float avg,pre;
char div[10];
char st_code[10];
}s[10];


void message(int x,int y,int lines,char a[50],char b[50],char c[50],
			 char d[50],char e[50],char f[10],int back)
{
int l,i,j;
char f1[10];

l=strlen(a);
if(l>t_redg;
  s[i].redgno=t_redg;
  gotoxy(20,10);
  cout<<"Name          :";gotoxy(35,10);gets(s[i].name);
  gotoxy(20,12);
  cout<<"Address       :";gotoxy(35,12);gets(s[i].address);
  gotoxy(20,14);
  cout<<"Father's Name :";gotoxy(35,14);gets(s[i].fname);
  gotoxy(20,16);
  cout<<"Class         :";gotoxy(35,16);gets(s[i].clas);
  gotoxy(20,18);
  cout<<"Date Of Birth :DD MM YYYY";gotoxy(35,18);
  cin>>s[i].dob.dd>>s[i].dob.mm>>s[i].dob.yyyy;

  sa:
  clrscr();
  gotoxy(20,2);
  cout<<"Student Data Entry Form";
  gotoxy(20,3);
  cout<<"=======================";
  gotoxy(10,7);
  cout<<"Enter The Stream Code:\n1.Science Stream\n2.Commerce Streame";
  gotoxy(32,7);
  cin>>st;
  switch(st)
   {
   case 1:strcpy(s[i].st_code,"Science");
   break;
   case 2:strcpy(s[i].st_code,"Commerce");
   break;
   default:cout<<"\n\t\t\tInvalid Type.\n\nDo you want to continue?(Y/N)...";
	   cin>>ch;
	   if (ch=='y'||ch=='Y')
	   {
	   clrscr();
	   goto sa;
	   }
	   else add();
   }

  clrscr();
  gotoxy(20,2);
  cout<<"Student Data Entry Form";
  gotoxy(20,3);
  cout<<"=======================";
  gotoxy(10,5);
  cout<<"Enter The Following Marks";
  gotoxy(10,10);
  cout<<"Sub1(Eng/Eng):";                                           //Sub 1
  gotoxy(30,10);
  cin>>s[i].sub1;
  gotoxy(10,12);
  cout<<"Sub2(Math/A/C):";                                          //Sub 2
  gotoxy(30,12);
  cin>>s[i].sub2;
  gotoxy(10,14);
  cout<<"Sub3(Phy/Eco):";					    //Sub 3
  gotoxy(30,14);
  cin>>s[i].sub3;
  gotoxy(10,16);
  cout<<"Sub4(Chem/B.st):";					     //Sub 4
  gotoxy(30,16);
  cin>>s[i].sub4;
  gotoxy(10,18);						     //Sub 5
  cout<<"Sub5(Bio/Comp):";
  gotoxy(30,18);
  cin>>s[i].sub5;
  s[i].total=s[i].sub1+s[i].sub2+s[i].sub3+s[i].sub4+s[i].sub5;
  if((s[i].sub1<33)||(s[i].sub2<33)||(s[i].sub3<33)||(s[i].sub4<33)||(s[i].sub5<33))
  strcpy(s[i].div,"Fail");
  else if(s[i].total>=375)
  strcpy(s[i].div,"Distintion");
  else if((s[i].total>=300)&&(s[i].total<375))
  strcpy(s[i].div,"First Class");
  else if((s[i].total>=250)&&(s[i].total<300))
  strcpy(s[i].div,"Second Class");
  else if(s[i].total<165)
  strcpy(s[i].div,"Fail");

  strcat(fn,s[i].name);
  strcat(fn,".txt");
  file.open(fn,ios::out);
   if(!file)
    {
    gotoxy(25,79);
    cout<<".";
    }
  file<<"                            Report Card Of "<>ch;
  }while(ch=='y'||ch=='Y');
  if(ch=='n'||ch=='N') student_menu();
 }

/******************************Function To Modify Marks**********************/
void mod()
 {
 int regno,flag=0,i;
 char ch;
 student te;
 clrscr();
 cout<<"\n\nEnter The Reg No to be modified:";
 cin>>regno;
 for(i=0;i<10;i++)
  {
  if(s[i].redgno==regno)
   {
   flag=1;
   cout<<"\nSubject 1    :"<>te.sub1;
    s[i].sub1=te.sub1;
    }
   cout<<"\nSubject  2  :"<>te.sub2;
    s[i].sub2=te.sub2;
    }
   cout<<"\nSubject 3   :"<>te.sub3;
    s[i].sub3=te.sub3;
    }
   cout<<"\nSubject 4   :"<>te.sub4;
    s[i].sub4=te.sub4;
    }
   cout<<"\nSubject 5   :"<>te.sub5;
    s[i].sub5=te.sub5;
    }
   }
  }
  if(flag==0) cout<<"Invalid Reg No!";
 }

/****************************Function To View Help***************************/
void help()
{
//clrscr();
textcolor(WHITE);
message(12,8,6,"This Software is designed for aiding schools in",
	       "keeping report of students and their information.",
	       "This software is a interactive menu driven program.",
	       "This program will create a file with students name ",
	       "with his or her report","OK",LIGHTGRAY);
gotoxy(15,14);
textcolor(WHITE);
textbackground(LIGHTGRAY);
cputs("    Keys:-Up,-Down,Enter-Selecting,Esc-To Exit.");
getch();
textcolor(BLACK);
main_menu();
}

/************************Function To Show Credits****************************/
void updown()
{
int i;
textcolor(GREEN);
for (i=25;i>10;i--)
{
delay(180);
clrscr();
gotoxy(30,i);
cputs("PROGRAMERS");
gotoxy(30,i+2);
cputs("Navi");

gotoxy(30,5+i);
cputs("               ");
}
delay(800);
clrscr();
for (i=25;i>10;i--)
{
delay(180);
clrscr();
gotoxy(30,i);
cputs("Special Effects By");
gotoxy(30,2+i);
cputs("Navi");
gotoxy(30,3+i);
cputs("Simran");
gotoxy(30,4+i);
cputs("              ");
}
delay(800);
clrscr();
for (i=25;i>10;i--)
{
delay(180);
clrscr();
gotoxy(30,i);
cputs("Special Thanks To");
gotoxy(30,2+i);
cputs("Nannu");
gotoxy(30,3+i);
cputs("cbse-sample-papers.blogspot.com");
gotoxy(30,4+i);
cputs("              ");
}
delay(800);
clrscr();
for (i=25;i>10;i--)
{
delay(180);
clrscr();
gotoxy(30,i);
cputs("Developed At");
gotoxy(30,2+i);
cputs("www.Navi.com");
gotoxy(30,4+i);
cputs("              ");
}
delay(800);
clrscr();
for (i=25;i>10;i--)
{
delay(180);
clrscr();
textcolor(RED+BLINK);
gotoxy(10,i);
cputs("                      WARNING!!");
textcolor(BLUE);
gotoxy(10,1+i);
cputs("        This program is protected by copyright laws");
gotoxy(10,2+i);
cputs("                and International Treaties");
gotoxy(10,4+i);
cputs("Illigal Copying or reproduction of this software is punishable ");
gotoxy(10,5+i);
cputs("               and is against the protocol    ");
}
delay(3000);
}

/*****************************Draws a box*****************************/
void box(int x,int y,int width,int height)
 {
 int i,j;
 //Clear the space.
 for(j=y;jlengthest) lengthest=strlen(item[i]);
  }
 if(strlen(title)>lengthest) lengthest=strlen(title);
 box(x,y-1,lengthest+1,num+3);

 x++;
 textbackground(default_back);textcolor(default_fore);
 gotoxy(x,y);cputs(title);
 y = y + 2;

 //Print the first menu with the first item sellected.
 textbackground(sel_back_color);textcolor(sel_text_color);
 gotoxy(x,y);cputs(a);
 textbackground(back_color);textcolor(text_color);
 //Then print the rest as default.
 for(i=1;i49)||(key==27))
   text(x,y+sel-1,1,item[sel-1]);

  switch(key)
   {
   case 72: //UP
    //Note that 'sel' starts at 1 and not 0.
    if(sel==1) text(x,y+num-1,0,item[num-1]);
    else text(x,y+sel-2,0,item[sel-2]);

    if(sel==1) sel=num;
    else sel--;

    break;
   case 80: //DOWN
    if(sel==num) text(x,y,0,item[0]);
    else text(x,y+sel,0,item[sel]);

    if(sel==num) sel=1;
    else sel++;

   break;
   //Number selections.
   case '1':
    text(x,y,0,item[0]);
    sel=1;
    goto end;
   case '2':
    text(x,y+1,0,item[1]);
    sel=2;
    goto end;
   case '3':
    if(num>=3)
     {
     text(x,y+2,0,item[2]);
     sel=3;
     goto end;
     }
    else break;
   case '4':
    if(num>=4)
     {
     text(x,y+3,0,item[3]);
     sel=4;
     goto end;
     }
    else break;
   case '5':
    if(num>=5)
     {
     text(x,y+4,0,item[4]);
     sel=5;
     goto end;
     }
    else break;
   case '6':
    if(num>=6)
     {
     text(x,y+5,0,item[5]);
     sel=6;
     goto end;
     }
    else break;
   case '7':
    if(num>=7)
     {
     text(x,y+6,0,item[6]);
     sel=7;
     goto end;
     }
    else break;
   case '8':
    if(num==8)
     {
     text(x,y+7,0,item[7]);
     sel=8;
     goto end;
     }
    else break;

   case 27:sel=0; goto end; //Escape Button.
   default:break;
   }

  }

 end:
 textbackground(default_back);textcolor(default_fore);
 return sel;
 }

/*********************************Menus*************************************/
/********************************Menu To View Marks**************************/
void view()
 {
 int opt,i,reg,flag=0;
 char n[20],ch;
 view:
 opt=menu(1,5,5,"1.View All","2.Search Reg No","3.Show Failers","4.Read From File"
	       ,"5.Back","[","]", "Dispay Menu","=");
 switch(opt)
  {
  case 1:				//Show All Marks
  for(i=0;i<10;i++)
   {
   clrscr();
   if(s[i].redgno!=NULL)
    {
    cout<<"                            Report Card Of "<>reg;
  for(i=0;i<10;i++)
   {
   if(s[i].redgno==reg)
    {
    cout<<"			    Report Card Of "<>ch;
  }
 while(ch=='y'||ch=='Y');
 main_menu();
 }

/*********************************Main Menu**********************************/
void main_menu()
{
textbackground(16);
textcolor(LIGHTGRAY);
char ch1;
do{
clrscr();

ch1=menu(1,4,4,"1. Students Details","2. Modify Students","3. Help","4. Exit"
		,""," [","]","Student Report Maker","=");
switch(ch1)
{
case 1:clrscr();                       //Student Menu
       student_menu();
       break;
case 2:clrscr();                       //Marks Menu
       mark_menu();
       break;
case 3:help();
       break;
case 4:clrscr();			//Exit
       updown();
       exit(0);
       break;
case 6:clrscr();                        //Exit
//       updown();
//       man();
//       exit(0);
       break;
default:cout<<"\n\nWorng Choice!!";
}
}while(ch1==4);
}

/**********************************Marks Menu********************************/
void mark_menu()
{
textbackground(BLACK);
textcolor(WHITE);
int t_redg,i,opt,flag=0;
char ch='y',na[20];
do
{
clrscr();
gotoxy(1,25);
cout<<"Press Esc to Quit";
opt=menu(1,5,3,"1.Modify Student","2.Remove Student","3.Back",
	       "",""," [","] "," Menu","=");
switch(opt)
{
case 1:	clrscr();				//Modify Student
	mod();
	getch();
	mark_menu();
	break;
case 2:	clrscr();				//Delete Student
	cout<<"Which Student Do you want to Delete\nEnter Reg No:";
	cin>>t_redg;
	for(i=0;i<10;i++)
	 {
	 if(s[i].redgno==t_redg)
	  {
	  strcat(na,s[i].name);
	  strcat(na,".txt");
	  if(remove(na)) cout<<"The Record of "<>ch;
}while(ch=='y'||ch=='Y');
if(ch=='n'||ch=='N')
main_menu();
}

/******************************Main Function*********************************/
void main()
{
clrscr();
main_menu();
getch();
}

/************************************End*************************************/


Add Your Comment - Guidelines
You can express your opinion or reaction in the form below!

100 characters required

0 Comments:

Be the first one to comment!

You may also want to see:
QUOTE OF THE DAY
Life isn't about finding yourself. Life is about creating yourself. - George Bernard Shaw
April 19th, 2024 - Friday
background

Sign in to continue