All pastes #890081 Raw Edit

PROJECT SCHOOL FEE ENQUIRY

public cpp v1 · immutable
#890081 ·published 2008-02-03 13:16 UTC
rendered paste body
//*********************************************************//	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, floattscience, 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 alist";	cout<<"The menu functions are described as follows";	cout<<"1. FEE SLIP:  This function displays the fee slip for a givenstudent";	cout<<"              from the class entered by the user. ";	cout<<"2. MODIFY:    This function modifies the fee structure for agive class.";	cout<<"              The user can change the fees for various fields";	cout<<"3. LIST:      This function displays the list of total feesfor all the";	cout<<"              classes in the school  ";	cout<<"If you encounter any problems, just press ctrl+break. You willget 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();}