//*********************************************************
// PROJECT SCHOOL FEE ENQUIRY
//**********************************************************
//**********************************************************
// INCLUDED HEADER FILES
//**********************************************************
#include<iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <dos.h>
#include <iomanip.h>
int i,j,li,lp,rec,valid;
void help();
//*********************************************************
// GLOBAL VARIABLE DECLARATIONS
//*********************************************************
//int i,j,li,lp;
char ch,choice;
//*********************************************************
// THIS CLASS DRAWS LINES, BOXES, ETC.
//**********************************************************
class DRAW
{
public :
void LINE_HOR(int, int, int, char) ;
void LINE_VER(int, int, int, char) ;
void BOX(int,int,int,int,char) ;
} ;
//**********************************************************
// THIS CLASS CONTROLS ALL THE FUNCTIONS RELATED TO FEES
//**********************************************************
class FEE
{
private :
int Class ;
float tuition, ac, science, computer, activity ;
void DISPLAY(int) ;
void MODIFY_RECORD(int, float, float, float, float, float) ;
public :
void ADDITION(void) ;
void MODIFICATION(void) ;
void FEE_SLIP(void) ;
void LIST(void) ;
void HELP(void);
}fee ;
//**********************************************************
// MAIN MENU FUNCTION
//**********************************************************
void mainmenu()
{ clrscr();
textcolor(WHITE);
for(li=30;li<=50;li++)
{
textcolor(WHITE);
gotoxy(li,14);
delay(30);
printf("*");
}
for(li=50;li>=30;li--)
{
textcolor(WHITE);
gotoxy(li,30);
delay(30);
printf("*");
}
for(lp=15;lp<30;lp++)
{
gotoxy(30,lp);
delay(100);
printf("|");
}
for(lp=29;lp>=15;lp--)
{
gotoxy(50,lp);
delay(100);
printf("|");
}
gotoxy(15,10);
textcolor(LIGHTGRAY);
cprintf("Press the corresponding Keys for the desired action");
gotoxy(35,16);
textcolor(BROWN);
cprintf("F: FEE SLIP");
gotoxy(35,19);
textcolor(LIGHTMAGENTA);
cprintf("M: MODIFY");
gotoxy(35,22);
textcolor(LIGHTBLUE);
cprintf("L: LIST");
gotoxy(35,25);
textcolor(LIGHTRED);
cprintf("H: HELP");
gotoxy(35,28);
textcolor(GREEN);
cprintf("Q: QUIT");
choice=getch();
ch=toupper(choice);
switch(ch)
{
case'F':fee.FEE_SLIP();
break;
case'M':fee.MODIFICATION();
break;
case'L':fee.LIST();
break;
case'H':fee.HELP();
break;
case'Q':exit(0);
break;
default:gotoxy(33,40);
cout<<"
Illegal Choice
Press any key to return to Main Menu";
getch();
mainmenu();
}
} //Main Menu Function End
//**********************************************************
// FUNCTION TO DRAW HORIZONTAL LINE
//**********************************************************
void DRAW :: LINE_HOR(int column1, int column2, int row, char c)
{
for ( column1; column1<=column2; column1++ )
{
gotoxy(column1,row) ;
cout <<c ;
}
}
//**********************************************************
// FUNCTION TO DRAW VERTICAL LINE
//**********************************************************
void DRAW :: LINE_VER(int row1, int row2, int column, char c)
{
for ( row1; row1<=row2; row1++ )
{
gotoxy(column,row1) ;
cout <<c ;
}
}
//**********************************************************
// FUNCTION TO DRAW BOX LINE
//**********************************************************
void DRAW :: BOX(int column1, int row1, int column2, int row2, char c)
{
char ch=218 ;
char c1, c2, c3, c4 ;
char l1=196, l2=179 ;
if (c == ch)
{
c1=218 ;
c2=191 ;
c3=192 ;
c4=217 ;
l1 = 196 ;
l2 = 179 ;
}
else
{
c1=c ;
c2=c ;
c3=c ;
c4=c ;
l1 = c ;
l2 = c ;
}
gotoxy(column1,row1) ;
cout <<c1 ;
gotoxy(column2,row1) ;
cout <<c2 ;
gotoxy(column1,row2) ;
cout <<c3 ;
gotoxy(column2,row2) ;
cout <<c4 ;
column1++ ;
column2-- ;
LINE_HOR(column1,column2,row1,l1) ;
LINE_HOR(column1,column2,row2,l1) ;
column1-- ;
column2++ ;
row1++ ;
row2-- ;
LINE_VER(row1,row2,column1,l2) ;
LINE_VER(row1,row2,column2,l2) ;
}
//**********************************************************
// FUNCTION TO ADD FEE STRUCTURE IN FEE FILE
//**********************************************************
void FEE :: ADDITION(void)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
if (!file.fail())
return ;
file.close() ;
file.open("FEE.DAT", ios::app) ;
for (int i=1; i<=12; i++)
{
Class = i ;
tuition = 0.0 ;
ac = 0.0 ;
science = 0.0 ;
computer= 0.0 ;
activity= 0.0 ;
file.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
MODIFY_RECORD(12,450,50,60,60,50) ;
MODIFY_RECORD(11,450,50,60,60,50) ;
MODIFY_RECORD(10,350,50,30,60,50) ;
MODIFY_RECORD(9,350,50,20,60,50) ;
MODIFY_RECORD(8,300,50,20,40,50) ;
MODIFY_RECORD(7,300,50,20,40,50) ;
MODIFY_RECORD(6,300,50,20,40,50) ;
MODIFY_RECORD(5,250,50,0,40,40) ;
MODIFY_RECORD(4,250,50,0,40,40) ;
MODIFY_RECORD(3,250,50,0,40,40) ;
MODIFY_RECORD(2,250,50,0,40,40) ;
MODIFY_RECORD(1,250,50,0,40,40) ;
}
//**********************************************************
// FUNCTION TO DISPLAY TOTAL FEE AS LIST
//**********************************************************
void FEE :: LIST()
{
clrscr() ;
DRAW d ;
textcolor(MAGENTA);
d.BOX(1,2,80,24,218) ;
gotoxy(27,3) ;
cout <<"TOTAL FEES FOR THE CLASSES" ;
d.LINE_HOR(2,79,4,196) ;
gotoxy(5,5) ;
cout <<"CLASS TOTAL FEES" ;
d.LINE_HOR(2,79,6,196) ;
d.LINE_HOR(2,79,22,196) ;
float total ;
int row=8 ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
{
total = tuition + ac + science + computer + activity ;
gotoxy(6,row) ;
cout <<Class ;
gotoxy(23,row) ;
cout <<total ;
row++ ;
}
file.close() ;
gotoxy(5,23) ;
cout <<"Press any key to continue............." ;
getch() ;
mainmenu();
}
//**********************************************************
// FUNCTION TO DISPLAY THE RECORD FOR THE GIVEN CLASS
//**********************************************************
void FEE :: DISPLAY(int tclass)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
{
if (Class == tclass)
{
gotoxy(5,5) ;
cout <<"Class : " <<Class ;
gotoxy(5,7) ;
cout <<"~~~~~~~~~~~~" ;
gotoxy(5,8) ;
cout <<"Tution Fee : " <<tuition ;
gotoxy(5,9) ;
cout <<"Annual charges Fee : " <<ac ;
gotoxy(5,10) ;
cout <<"Science Fee : " <<science ;
gotoxy(5,11) ;
cout <<"Computer Fee: " <<computer ;
gotoxy(5,12) ;
cout <<"Activity Fee : " <<activity ;
break ;
}
}
file.close() ;
}
//**********************************************************
// FUNCTION TO MODIFY THE FEE RECORD FOR THE GIVEN DATA
//**********************************************************
void FEE :: MODIFY_RECORD(int tclass, float ttution, float tac, float
tscience, float tcomputer, float tactivity)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
fstream temp ;
temp.open("temp.dat", ios::out) ;
file.seekg(0,ios::beg) ;
while (!file.eof())
{
file.read((char *) this, sizeof(FEE)) ;
if (file.eof())
break ;
if (tclass == Class)
{
Class = tclass ;
tuition = ttution ;
ac = tac ;
science = tscience ;
computer= tcomputer ;
activity= tactivity ;
temp.write((char *) this, sizeof(FEE)) ;
}
else
temp.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
temp.close() ;
file.open("FEE.DAT", ios::out) ;
temp.open("temp.dat", ios::in) ;
temp.seekg(0,ios::beg) ;
while (!temp.eof())
{
temp.read((char *) this, sizeof(FEE)) ;
if (temp.eof())
break ;
file.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
temp.close() ;
}
//**********************************************************
// FUNCTION TO GIVE DATA TO MODIFY THE FEE RECORD
//**********************************************************
void FEE :: MODIFICATION(void)
{
clrscr() ;
textcolor(WHITE);
char ch, t1[10] ;
int valid=0, t=0, tclass=0 ;
float t2=0 ;
do
{
valid = 1 ;
gotoxy(5,25) ; clreol() ;
cout <<"Press <ENTER> for EXIT" ;
gotoxy(5,5) ; clreol() ;
cout <<"Enter Class for the Modification of the Fee Structure : " ;
gets(t1) ;
t = atoi(t1) ;
tclass = t ;
if (strlen(t1) == 0)
return ;
if (tclass < 1 || tclass > 12)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
clrscr() ;
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
DISPLAY(tclass) ;
gotoxy(5,25) ; clreol() ;
do
{
gotoxy(5,15) ; clreol() ;
cout <<"Do you want to modify the fee structure (y/n) : " ;
ch = getche() ;
if (ch == '0')
return ;
ch = toupper(ch) ;
} while (ch != 'N' && ch != 'Y') ;
if (ch == 'N')
mainmenu();
float ttution=0.0, tac=0.0, tscience=0.0, tcomputer=0.0, tactivity=0.0
;
gotoxy(5,13) ; clreol() ;
gotoxy(5,17) ;
cout <<"Tuition Fee : " ;
gotoxy(5,18) ;
cout <<"Annual Charges Fee : " ;
gotoxy(5,19) ;
cout <<"Science Fee : " ;
gotoxy(5,20) ;
cout <<"Computer Fee : " ;
gotoxy(5,21) ;
cout <<"Activity Fee : " ;
int modified = 5 ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
if (Class == tclass)
break ;
file.close() ;
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter TUITION FEE or Press <ENTER> for no change" ;
gotoxy(19,17) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
ttution = t2 ;
if (t1[0] == '0')
return;
if (strlen(t1) == 0)
break ;
if (ttution > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
ttution = tuition ;
gotoxy(20,17) ;
cout <<ttution ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter ANNUAL CHARGES fee or Press <ENTER> for no change" ;
gotoxy(26,18) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tac = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tac > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tac = ac ;
gotoxy(26,18) ;
cout <<tac ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter SCIENCE FEES or Press <ENTER> for no change" ;
gotoxy(19,19) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tscience = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tscience > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tscience = science ;
gotoxy(19,19) ;
cout <<tscience ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter COMPUTER FEES or Press <ENTER> for no change" ;
gotoxy(19,20) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tcomputer = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tcomputer > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tcomputer = computer ;
gotoxy(19,20) ;
cout <<tcomputer ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter ACTIVITY FEES or Press <ENTER> for no change" ;
gotoxy(19,21) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tactivity = t2 ;
if (t1[0] == '0')
return;
if (strlen(t1) == 0)
break;
if (tactivity > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tactivity = activity ;
gotoxy(19,21) ;
cout <<tactivity ;
}
if (!modified)
mainmenu();
gotoxy(5,27) ; clreol() ;
do
{
gotoxy(5,25) ; clreol() ;
cout <<"Do you want to save (y/n) : " ;
ch = getche() ;
if (ch == '0')
return ;
ch = toupper(ch) ;
} while (ch != 'N' && ch != 'Y') ;
if (ch == 'N')
return ;
MODIFY_RECORD(tclass,ttution,tac,tscience,tcomputer,tactivity);
gotoxy(5,27) ;
cout <<"7Record Modified" ;
gotoxy(5,29) ;
cout <<"Press any key to continue..........." ;
getch() ;
mainmenu();
}
//**********************************************************
// FUNCTION TO DISPLAY THE FEE SLIP FOR THE CLASS
//**********************************************************
void FEE :: FEE_SLIP(void)
{
clrscr() ;
textcolor(RED);
char ch, t1[10] ;
int valid=0, t=0, tclass=0 ;
do
{
valid = 1 ;
gotoxy(5,25) ; clreol() ;
cout <<"Press <ENTER> for EXIT" ;
gotoxy(5,5) ; clreol() ;
cout <<"Enter Class to see the Fee Structure : " ;
gets(t1) ;
t = atoi(t1) ;
tclass = t ;
if (strlen(t1) == 0)
return ;
if (tclass < 1 || tclass > 12)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
char name[26] ;
do
{
gotoxy(5,25) ; clreol() ;
cout <<"ENTER NAME OF THE STUDENT" ;
valid = 1 ;
gotoxy(5,7) ; clreol() ;
cout <<"Name : " ;
gets(name) ;
if (strlen(name) < 1 || strlen(name) > 25)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"
NAME SHOULD NOT BE GREATER THAN 25" ;
getch() ;
}
} while (!valid) ;
clrscr() ;
DRAW d ;
d.BOX(20,2,61,24,987) ;
gotoxy(24,3) ;
cout <<" CARMEL CONVENT SCHOOL " ;
int d1, m1, y1 ;
struct date dt;
getdate(&dt);
d1 = dt.da_day ;
m1 = dt.da_mon ;
y1 = dt.da_year ;
gotoxy(45,4) ;
cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;
d.LINE_HOR(21,60,5,196) ;
gotoxy(22,6) ;
cout <<"NAME : " <<name ;
gotoxy(22,7) ;
cout <<"CLASS : " <<tclass ;
d.LINE_HOR(21,60,8,196) ;
gotoxy(21,9) ;
cout <<" PARTICULARS AMOUNT" ;
d.LINE_HOR(21,60,10,196) ;
d.LINE_HOR(21,60,22,196) ;
d.LINE_HOR(46,60,20,196) ;
gotoxy(25,21) ;
cout <<"TOTAL" ;
gotoxy(54,23) ;
cout <<"CASHIER" ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
if (Class == tclass)
break ;
file.close() ;
float total=0.0 ;
gotoxy(23,12) ;
cout <<"Tuition fees " <<setprecision(2) <<tuition ;
total = total+tuition ;
gotoxy(23,13) ;
cout <<"Annual charges fees " <<setprecision(2) <<ac ;
total = total+ac ;
gotoxy(23,14) ;
cout <<"Science fees " <<setprecision(2) <<science ;
total = total+science ;
gotoxy(23,15) ;
cout <<"Computer fees " <<setprecision(2) <<computer ;
total = total+computer ;
gotoxy(23,16) ;
cout <<"Activity fees " <<setprecision(2) <<activity ;
total = total+activity ;
d.LINE_VER(9,21,46,179) ;
char tt[15] ;
sprintf(tt,"%f",total) ;
gotoxy(49,21) ;
cout <<tt ;
gotoxy(33,40);
cout<<"
Press any key to return to the main menu........";
getch() ;
mainmenu();
}
void FEE::HELP()
{ clrscr();
textcolor(WHITE);
cout<<"
This is a fee structure program";
cout<<"
It can be used to : ";
cout<<"
1. View the fee slip of a student of a class";
cout<<"
2. Modify the fee structure of the school";
cout<<"
3. View the fee structure of the school in the form of a
list";
cout<<"
The menu functions are described as follows";
cout<<"
1. FEE SLIP: This function displays the fee slip for a
given
student";
cout<<"
from the class entered by the user. ";
cout<<"
2. MODIFY: This function modifies the fee structure for
a
give class.";
cout<<"
The user can change the fees for various
fields
";
cout<<"
3. LIST: This function displays the list of total fees
for all the";
cout<<"
classes in the school ";
cout<<"
If you encounter any problems, just press ctrl+break. You
will
get out ";
cout<<"
of the program.";
getch();
cout<<"
Press any key to continue...........";
getch();
mainmenu();
}
//**********************************************************
// MAIN FUNCTION TO CREATE MENU AND CALL OTHER FUNCTIONS
//**********************************************************
void main()
{
FEE fee;
fee.ADDITION();
clrscr();
textcolor(MAGENTA);
for(i=10;i<71;i++)
{
textcolor(MAGENTA);
gotoxy(i,15);
delay(30);
printf("/");
}
for(i=70;i>=10;i--)
{
gotoxy(i,22);
delay(30);
printf("\");
}
for(j=16;j<=21;j++)
{
gotoxy(10,j);
delay(100);
printf("-");
}
for(j=21;j>=16;j--)
{
gotoxy(70,j);
delay(100);
printf("-");
}
gotoxy(16,17);
textcolor(BLINK + MAGENTA);
cprintf(" Welcome To Aanchal's Fee Structure System");
gotoxy(12,20);
cprintf("Designed and Coded By Special Technologies (C) 2005-2006");
gotoxy(36,28);
textcolor(LIGHTGREEN);
cprintf("Coded By");
gotoxy(24,34);
textcolor(3);
cprintf("Aanchal Saxena XII 'B'");
gotoxy(44,48);
textcolor(WHITE);
cprintf("Press Any Key To ..........Continue");
getch();
mainmenu();
}
// PROJECT SCHOOL FEE ENQUIRY
//**********************************************************
//**********************************************************
// INCLUDED HEADER FILES
//**********************************************************
#include<iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <dos.h>
#include <iomanip.h>
int i,j,li,lp,rec,valid;
void help();
//*********************************************************
// GLOBAL VARIABLE DECLARATIONS
//*********************************************************
//int i,j,li,lp;
char ch,choice;
//*********************************************************
// THIS CLASS DRAWS LINES, BOXES, ETC.
//**********************************************************
class DRAW
{
public :
void LINE_HOR(int, int, int, char) ;
void LINE_VER(int, int, int, char) ;
void BOX(int,int,int,int,char) ;
} ;
//**********************************************************
// THIS CLASS CONTROLS ALL THE FUNCTIONS RELATED TO FEES
//**********************************************************
class FEE
{
private :
int Class ;
float tuition, ac, science, computer, activity ;
void DISPLAY(int) ;
void MODIFY_RECORD(int, float, float, float, float, float) ;
public :
void ADDITION(void) ;
void MODIFICATION(void) ;
void FEE_SLIP(void) ;
void LIST(void) ;
void HELP(void);
}fee ;
//**********************************************************
// MAIN MENU FUNCTION
//**********************************************************
void mainmenu()
{ clrscr();
textcolor(WHITE);
for(li=30;li<=50;li++)
{
textcolor(WHITE);
gotoxy(li,14);
delay(30);
printf("*");
}
for(li=50;li>=30;li--)
{
textcolor(WHITE);
gotoxy(li,30);
delay(30);
printf("*");
}
for(lp=15;lp<30;lp++)
{
gotoxy(30,lp);
delay(100);
printf("|");
}
for(lp=29;lp>=15;lp--)
{
gotoxy(50,lp);
delay(100);
printf("|");
}
gotoxy(15,10);
textcolor(LIGHTGRAY);
cprintf("Press the corresponding Keys for the desired action");
gotoxy(35,16);
textcolor(BROWN);
cprintf("F: FEE SLIP");
gotoxy(35,19);
textcolor(LIGHTMAGENTA);
cprintf("M: MODIFY");
gotoxy(35,22);
textcolor(LIGHTBLUE);
cprintf("L: LIST");
gotoxy(35,25);
textcolor(LIGHTRED);
cprintf("H: HELP");
gotoxy(35,28);
textcolor(GREEN);
cprintf("Q: QUIT");
choice=getch();
ch=toupper(choice);
switch(ch)
{
case'F':fee.FEE_SLIP();
break;
case'M':fee.MODIFICATION();
break;
case'L':fee.LIST();
break;
case'H':fee.HELP();
break;
case'Q':exit(0);
break;
default:gotoxy(33,40);
cout<<"
Illegal Choice
Press any key to return to Main Menu";
getch();
mainmenu();
}
} //Main Menu Function End
//**********************************************************
// FUNCTION TO DRAW HORIZONTAL LINE
//**********************************************************
void DRAW :: LINE_HOR(int column1, int column2, int row, char c)
{
for ( column1; column1<=column2; column1++ )
{
gotoxy(column1,row) ;
cout <<c ;
}
}
//**********************************************************
// FUNCTION TO DRAW VERTICAL LINE
//**********************************************************
void DRAW :: LINE_VER(int row1, int row2, int column, char c)
{
for ( row1; row1<=row2; row1++ )
{
gotoxy(column,row1) ;
cout <<c ;
}
}
//**********************************************************
// FUNCTION TO DRAW BOX LINE
//**********************************************************
void DRAW :: BOX(int column1, int row1, int column2, int row2, char c)
{
char ch=218 ;
char c1, c2, c3, c4 ;
char l1=196, l2=179 ;
if (c == ch)
{
c1=218 ;
c2=191 ;
c3=192 ;
c4=217 ;
l1 = 196 ;
l2 = 179 ;
}
else
{
c1=c ;
c2=c ;
c3=c ;
c4=c ;
l1 = c ;
l2 = c ;
}
gotoxy(column1,row1) ;
cout <<c1 ;
gotoxy(column2,row1) ;
cout <<c2 ;
gotoxy(column1,row2) ;
cout <<c3 ;
gotoxy(column2,row2) ;
cout <<c4 ;
column1++ ;
column2-- ;
LINE_HOR(column1,column2,row1,l1) ;
LINE_HOR(column1,column2,row2,l1) ;
column1-- ;
column2++ ;
row1++ ;
row2-- ;
LINE_VER(row1,row2,column1,l2) ;
LINE_VER(row1,row2,column2,l2) ;
}
//**********************************************************
// FUNCTION TO ADD FEE STRUCTURE IN FEE FILE
//**********************************************************
void FEE :: ADDITION(void)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
if (!file.fail())
return ;
file.close() ;
file.open("FEE.DAT", ios::app) ;
for (int i=1; i<=12; i++)
{
Class = i ;
tuition = 0.0 ;
ac = 0.0 ;
science = 0.0 ;
computer= 0.0 ;
activity= 0.0 ;
file.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
MODIFY_RECORD(12,450,50,60,60,50) ;
MODIFY_RECORD(11,450,50,60,60,50) ;
MODIFY_RECORD(10,350,50,30,60,50) ;
MODIFY_RECORD(9,350,50,20,60,50) ;
MODIFY_RECORD(8,300,50,20,40,50) ;
MODIFY_RECORD(7,300,50,20,40,50) ;
MODIFY_RECORD(6,300,50,20,40,50) ;
MODIFY_RECORD(5,250,50,0,40,40) ;
MODIFY_RECORD(4,250,50,0,40,40) ;
MODIFY_RECORD(3,250,50,0,40,40) ;
MODIFY_RECORD(2,250,50,0,40,40) ;
MODIFY_RECORD(1,250,50,0,40,40) ;
}
//**********************************************************
// FUNCTION TO DISPLAY TOTAL FEE AS LIST
//**********************************************************
void FEE :: LIST()
{
clrscr() ;
DRAW d ;
textcolor(MAGENTA);
d.BOX(1,2,80,24,218) ;
gotoxy(27,3) ;
cout <<"TOTAL FEES FOR THE CLASSES" ;
d.LINE_HOR(2,79,4,196) ;
gotoxy(5,5) ;
cout <<"CLASS TOTAL FEES" ;
d.LINE_HOR(2,79,6,196) ;
d.LINE_HOR(2,79,22,196) ;
float total ;
int row=8 ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
{
total = tuition + ac + science + computer + activity ;
gotoxy(6,row) ;
cout <<Class ;
gotoxy(23,row) ;
cout <<total ;
row++ ;
}
file.close() ;
gotoxy(5,23) ;
cout <<"Press any key to continue............." ;
getch() ;
mainmenu();
}
//**********************************************************
// FUNCTION TO DISPLAY THE RECORD FOR THE GIVEN CLASS
//**********************************************************
void FEE :: DISPLAY(int tclass)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
{
if (Class == tclass)
{
gotoxy(5,5) ;
cout <<"Class : " <<Class ;
gotoxy(5,7) ;
cout <<"~~~~~~~~~~~~" ;
gotoxy(5,8) ;
cout <<"Tution Fee : " <<tuition ;
gotoxy(5,9) ;
cout <<"Annual charges Fee : " <<ac ;
gotoxy(5,10) ;
cout <<"Science Fee : " <<science ;
gotoxy(5,11) ;
cout <<"Computer Fee: " <<computer ;
gotoxy(5,12) ;
cout <<"Activity Fee : " <<activity ;
break ;
}
}
file.close() ;
}
//**********************************************************
// FUNCTION TO MODIFY THE FEE RECORD FOR THE GIVEN DATA
//**********************************************************
void FEE :: MODIFY_RECORD(int tclass, float ttution, float tac, float
tscience, float tcomputer, float tactivity)
{
fstream file ;
file.open("FEE.DAT", ios::in) ;
fstream temp ;
temp.open("temp.dat", ios::out) ;
file.seekg(0,ios::beg) ;
while (!file.eof())
{
file.read((char *) this, sizeof(FEE)) ;
if (file.eof())
break ;
if (tclass == Class)
{
Class = tclass ;
tuition = ttution ;
ac = tac ;
science = tscience ;
computer= tcomputer ;
activity= tactivity ;
temp.write((char *) this, sizeof(FEE)) ;
}
else
temp.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
temp.close() ;
file.open("FEE.DAT", ios::out) ;
temp.open("temp.dat", ios::in) ;
temp.seekg(0,ios::beg) ;
while (!temp.eof())
{
temp.read((char *) this, sizeof(FEE)) ;
if (temp.eof())
break ;
file.write((char *) this, sizeof(FEE)) ;
}
file.close() ;
temp.close() ;
}
//**********************************************************
// FUNCTION TO GIVE DATA TO MODIFY THE FEE RECORD
//**********************************************************
void FEE :: MODIFICATION(void)
{
clrscr() ;
textcolor(WHITE);
char ch, t1[10] ;
int valid=0, t=0, tclass=0 ;
float t2=0 ;
do
{
valid = 1 ;
gotoxy(5,25) ; clreol() ;
cout <<"Press <ENTER> for EXIT" ;
gotoxy(5,5) ; clreol() ;
cout <<"Enter Class for the Modification of the Fee Structure : " ;
gets(t1) ;
t = atoi(t1) ;
tclass = t ;
if (strlen(t1) == 0)
return ;
if (tclass < 1 || tclass > 12)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
clrscr() ;
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
DISPLAY(tclass) ;
gotoxy(5,25) ; clreol() ;
do
{
gotoxy(5,15) ; clreol() ;
cout <<"Do you want to modify the fee structure (y/n) : " ;
ch = getche() ;
if (ch == '0')
return ;
ch = toupper(ch) ;
} while (ch != 'N' && ch != 'Y') ;
if (ch == 'N')
mainmenu();
float ttution=0.0, tac=0.0, tscience=0.0, tcomputer=0.0, tactivity=0.0
;
gotoxy(5,13) ; clreol() ;
gotoxy(5,17) ;
cout <<"Tuition Fee : " ;
gotoxy(5,18) ;
cout <<"Annual Charges Fee : " ;
gotoxy(5,19) ;
cout <<"Science Fee : " ;
gotoxy(5,20) ;
cout <<"Computer Fee : " ;
gotoxy(5,21) ;
cout <<"Activity Fee : " ;
int modified = 5 ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
if (Class == tclass)
break ;
file.close() ;
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter TUITION FEE or Press <ENTER> for no change" ;
gotoxy(19,17) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
ttution = t2 ;
if (t1[0] == '0')
return;
if (strlen(t1) == 0)
break ;
if (ttution > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
ttution = tuition ;
gotoxy(20,17) ;
cout <<ttution ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter ANNUAL CHARGES fee or Press <ENTER> for no change" ;
gotoxy(26,18) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tac = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tac > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tac = ac ;
gotoxy(26,18) ;
cout <<tac ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter SCIENCE FEES or Press <ENTER> for no change" ;
gotoxy(19,19) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tscience = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tscience > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tscience = science ;
gotoxy(19,19) ;
cout <<tscience ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter COMPUTER FEES or Press <ENTER> for no change" ;
gotoxy(19,20) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tcomputer = t2 ;
if (t1[0] == '0')
return ;
if (strlen(t1) == 0)
break ;
if (tcomputer > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tcomputer = computer ;
gotoxy(19,20) ;
cout <<tcomputer ;
}
do
{
valid = 1 ;
gotoxy(5,27) ; clreol() ;
cout <<"Enter ACTIVITY FEES or Press <ENTER> for no change" ;
gotoxy(19,21) ; clreol() ;
gets(t1) ;
t2 = atof(t1) ;
tactivity = t2 ;
if (t1[0] == '0')
return;
if (strlen(t1) == 0)
break;
if (tactivity > 1000)
{
valid = 0 ;
gotoxy(5,27) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
if (strlen(t1) == 0)
{
modified-- ;
tactivity = activity ;
gotoxy(19,21) ;
cout <<tactivity ;
}
if (!modified)
mainmenu();
gotoxy(5,27) ; clreol() ;
do
{
gotoxy(5,25) ; clreol() ;
cout <<"Do you want to save (y/n) : " ;
ch = getche() ;
if (ch == '0')
return ;
ch = toupper(ch) ;
} while (ch != 'N' && ch != 'Y') ;
if (ch == 'N')
return ;
MODIFY_RECORD(tclass,ttution,tac,tscience,tcomputer,tactivity);
gotoxy(5,27) ;
cout <<"7Record Modified" ;
gotoxy(5,29) ;
cout <<"Press any key to continue..........." ;
getch() ;
mainmenu();
}
//**********************************************************
// FUNCTION TO DISPLAY THE FEE SLIP FOR THE CLASS
//**********************************************************
void FEE :: FEE_SLIP(void)
{
clrscr() ;
textcolor(RED);
char ch, t1[10] ;
int valid=0, t=0, tclass=0 ;
do
{
valid = 1 ;
gotoxy(5,25) ; clreol() ;
cout <<"Press <ENTER> for EXIT" ;
gotoxy(5,5) ; clreol() ;
cout <<"Enter Class to see the Fee Structure : " ;
gets(t1) ;
t = atoi(t1) ;
tclass = t ;
if (strlen(t1) == 0)
return ;
if (tclass < 1 || tclass > 12)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"7Enter correctly" ;
getch() ;
}
} while (!valid) ;
char name[26] ;
do
{
gotoxy(5,25) ; clreol() ;
cout <<"ENTER NAME OF THE STUDENT" ;
valid = 1 ;
gotoxy(5,7) ; clreol() ;
cout <<"Name : " ;
gets(name) ;
if (strlen(name) < 1 || strlen(name) > 25)
{
valid = 0 ;
gotoxy(5,25) ; clreol() ;
cout <<"
NAME SHOULD NOT BE GREATER THAN 25" ;
getch() ;
}
} while (!valid) ;
clrscr() ;
DRAW d ;
d.BOX(20,2,61,24,987) ;
gotoxy(24,3) ;
cout <<" CARMEL CONVENT SCHOOL " ;
int d1, m1, y1 ;
struct date dt;
getdate(&dt);
d1 = dt.da_day ;
m1 = dt.da_mon ;
y1 = dt.da_year ;
gotoxy(45,4) ;
cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;
d.LINE_HOR(21,60,5,196) ;
gotoxy(22,6) ;
cout <<"NAME : " <<name ;
gotoxy(22,7) ;
cout <<"CLASS : " <<tclass ;
d.LINE_HOR(21,60,8,196) ;
gotoxy(21,9) ;
cout <<" PARTICULARS AMOUNT" ;
d.LINE_HOR(21,60,10,196) ;
d.LINE_HOR(21,60,22,196) ;
d.LINE_HOR(46,60,20,196) ;
gotoxy(25,21) ;
cout <<"TOTAL" ;
gotoxy(54,23) ;
cout <<"CASHIER" ;
fstream file ;
file.open("FEE.DAT", ios::in) ;
while (file.read((char *) this, sizeof(FEE)))
if (Class == tclass)
break ;
file.close() ;
float total=0.0 ;
gotoxy(23,12) ;
cout <<"Tuition fees " <<setprecision(2) <<tuition ;
total = total+tuition ;
gotoxy(23,13) ;
cout <<"Annual charges fees " <<setprecision(2) <<ac ;
total = total+ac ;
gotoxy(23,14) ;
cout <<"Science fees " <<setprecision(2) <<science ;
total = total+science ;
gotoxy(23,15) ;
cout <<"Computer fees " <<setprecision(2) <<computer ;
total = total+computer ;
gotoxy(23,16) ;
cout <<"Activity fees " <<setprecision(2) <<activity ;
total = total+activity ;
d.LINE_VER(9,21,46,179) ;
char tt[15] ;
sprintf(tt,"%f",total) ;
gotoxy(49,21) ;
cout <<tt ;
gotoxy(33,40);
cout<<"
Press any key to return to the main menu........";
getch() ;
mainmenu();
}
void FEE::HELP()
{ clrscr();
textcolor(WHITE);
cout<<"
This is a fee structure program";
cout<<"
It can be used to : ";
cout<<"
1. View the fee slip of a student of a class";
cout<<"
2. Modify the fee structure of the school";
cout<<"
3. View the fee structure of the school in the form of a
list";
cout<<"
The menu functions are described as follows";
cout<<"
1. FEE SLIP: This function displays the fee slip for a
given
student";
cout<<"
from the class entered by the user. ";
cout<<"
2. MODIFY: This function modifies the fee structure for
a
give class.";
cout<<"
The user can change the fees for various
fields
";
cout<<"
3. LIST: This function displays the list of total fees
for all the";
cout<<"
classes in the school ";
cout<<"
If you encounter any problems, just press ctrl+break. You
will
get out ";
cout<<"
of the program.";
getch();
cout<<"
Press any key to continue...........";
getch();
mainmenu();
}
//**********************************************************
// MAIN FUNCTION TO CREATE MENU AND CALL OTHER FUNCTIONS
//**********************************************************
void main()
{
FEE fee;
fee.ADDITION();
clrscr();
textcolor(MAGENTA);
for(i=10;i<71;i++)
{
textcolor(MAGENTA);
gotoxy(i,15);
delay(30);
printf("/");
}
for(i=70;i>=10;i--)
{
gotoxy(i,22);
delay(30);
printf("\");
}
for(j=16;j<=21;j++)
{
gotoxy(10,j);
delay(100);
printf("-");
}
for(j=21;j>=16;j--)
{
gotoxy(70,j);
delay(100);
printf("-");
}
gotoxy(16,17);
textcolor(BLINK + MAGENTA);
cprintf(" Welcome To Aanchal's Fee Structure System");
gotoxy(12,20);
cprintf("Designed and Coded By Special Technologies (C) 2005-2006");
gotoxy(36,28);
textcolor(LIGHTGREEN);
cprintf("Coded By");
gotoxy(24,34);
textcolor(3);
cprintf("Aanchal Saxena XII 'B'");
gotoxy(44,48);
textcolor(WHITE);
cprintf("Press Any Key To ..........Continue");
getch();
mainmenu();
}