Click here to Skip to main content
15,890,845 members
Please Sign up or sign in to vote.
1.00/5 (3 votes)
See more:
C++
//      PROJECT COMPUTER QUIZ
/	INCLUDED HEADER FILES
#include <iostream.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <fstream.h>
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
//	CLASS NAME : lines
//	DETAILS    : IT CONTROLS FUNCTIONS RELATED TO DRAW
//                   LINES, BOXES, ETC.
class lines
{
public :
		void line_hor (int, int, int, char) ;
		void line_ver (int, int, int, char) ;
		void box (int,int,int,int,char) ;
} ;
//	CLASS NAME : menu
//	DETAILS    : IT CONTROLS OVER ALL FUNCTIONING OF PROJECT
class menu
{
public :
		void main_menu(void) ;
		char *sub_menu(void) ;
		void start(void) ;
private :
		void edit_menu(void) ;
} ;
	CLASS NAME : quiz
//	DETAILS    : IT CONTROLS OVER ALL THE FUNCTIONS
//                   RELATED TO QUIZ
class quiz
{
public :
		void play(char filename[13]) ;
		void add(char filename[13]) ;
		void deletion(char filename[13]) ;
		void modify(char filename[13]) ;
private :
		void delete_record(char filename[13], int) ;
		void modify_record(char filename[13], int) ;
		void display_score(char name[20], int, int) ;
		int  recordno(char filename[13], int) ;
		int  record_count(char filename[13]) ;
		int  found_record(char filename[13], int) ;
		void display_record(char filename[13], int) ;
		int  ques_no ;
		char ques[60] ;
		char ans1[50] ;
		char ans2[50] ;
		char ans3[50] ;
		char sol ;
} ;
//	CLASS NAME    : lines
//	FUNCTION NAME : line_hor
//	DETAILS       : IT ACCEPTS THE ROWS AND COLUMNS AND
//				 DRAW THE HORIZONTAL LINE
void lines :: line_hor(int column1, int column2, int row, char c)
{
   for ( column1; column1<=column2; column1++ )
   {
      gotoxy(column1,row) ;
      cout <<c ;
   }
}
//	CLASS NAME    : lines
//	FUNCTION NAME : line_ver
//	DETAILS       : IT ACCEPTS THE ROWS AND COLUMNS AND
//				 DRAW THE VERTICAL LINE
void lines :: line_ver(int row1, int row2, int column, char c)
{
   for ( row1; row1<=row2; row1++ )
   {
      gotoxy(column,row1) ;
      cout <<c ;
   }
//	CLASS NAME    : lines
//	FUNCTION NAME : box
//	DETAILS       : IT ACCEPTS THE ROWS AND COLUMNS AND
//				 DRAW THE BOX
void lines :: 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) ;
}
//	CLASS NAME    : menu
//	FUNCTION NAME : start
//	DETAILS       : IT CREATES THE OPENING SCREEN
void menu :: start(void)
{
   lines line ;
   textmode(C40) ;
   clrscr() ;
   textbackground(LIGHTCYAN);
   textcolor(BLACK) ;
   clrscr() ;
   gotoxy(8,12) ;
   cout <<"C O M P U T E R" ;
   gotoxy(25,12) ;
   cout <<"Q U I Z" ;
   line.box(4,10,36,14,219) ;
   gotoxy(5,21);
   cout<<"MADE BY :";
   gotoxy(5,22);
   cout<<"Author & Her Team";
   line.box(2,19,40,24,219);
   gotoxy(4,10);
   getch() ;
   textbackground(BLACK) ;
   textcolor(LIGHTGRAY) ;
   clrscr() ;
}
//	CLASS NAME    : menu
//	FUNCTION NAME : main_menu
//	DETAILS       : IT CREATES THE MAIN MENU TO CONTROL
//                   ALL THE FUNCTIONS
void menu :: main_menu(void)
{   lines line ;
   textmode(C40) ;
   clrscr ;
   int valid ;
   int n = 4 ;
   int x = 14 ;
   char ch1, ch2 ;
   char chr1=219, chr=175 ;
   do
   {
	line.box (1,1,39,25,219) ;
	line.line_hor(9,31,6,196) ;
	line.box (8,3,32,20,218) ;
	char c1=24, c2=25 ;
	gotoxy(3,24) ;
	cout <<c1 ;
	cout <<c2 ;
	cout <<"=Move <enter>=Select <esc>=Exit" ;
	gotoxy(13,5) ;
	cout <<chr1 ;
	textbackground(WHITE) ;
	textcolor(BLACK) ;
	gotoxy(14,5) ;
	cprintf("Q U I Z ") ;
	textbackground(BLACK) ;
	textcolor(LIGHTGRAY) ;
	gotoxy(14,8) ;
	cout <<"OPTIONS" ;
	gotoxy(14,9) ;
	cout <<"-------" ;
	gotoxy(14,11) ;
	cout <<"PLAY" ;
	gotoxy(14,12) ;
	cout <<"ADD QUESTIONS" ;
	gotoxy(14,13) ;
	cout <<"EDIT" ;
	gotoxy(14,14) ;
	cout <<"QUIT" ;
	gotoxy(10,x) ;
	cout <<chr ;
	gotoxy(13,5) ;
	do
	{
	  do
	   {
	    do
	     {
		ch1 = getch() ;
		if ( ch1 == 27 )
			{
			 textmode(C80) ;
			 clrscr() ;
			 exit(0) ;
			 }
			} while (( ch1 != 0 ) && ( ch1 != 13 )) ;
			if ( ch1 != 13 )
			{
			 do
			  {
			   ch2 = getch() ;
			   if ( ch2 == 27 )
					{
						textmode(C80) ;
						clrscr() ;
						exit(0) ;
					}
				} while (( ch2 != 72 ) && ( ch2 != 80 )	&& ( ch2 != 13 )) ;
			}
		} while ((( ch1 != 0 ) || (( ch2 != 72 ) && ( ch2 != 80 ))) && (( ch1 != 13 ) && ( ch2 != 13 ))) ;
		if (( ch1 == 0 ) && ( ch2 == 80 ))
		{
			gotoxy(10,x) ;
			cout <<" " ;
			if (n == 4)
			{
				n = 1 ;
				x = x - 3 ;
			}
			else
			{
				n = n + 1 ;
				x = x + 1 ;
			}
			gotoxy(10,x) ;
			cout <<chr ;
			gotoxy(13,5) ;
			sound(200) ;
			delay(30) ;
			nosound() ;
		}
		if (( ch1 == 0 ) && ( ch2 == 72 ))
		{
			gotoxy(10,x) ;
			cout <<" " ;
			if ( n == 1 )
			{
				n = 4 ;
				x = x + 3 ;
			}
			else
			{
				n = n - 1 ;
				x = x - 1 ;
			}
			gotoxy(10,x) ;
			cout <<chr ;
			gotoxy(13,5) ;
			sound(200) ;
			delay(30) ;
			nosound() ;
		}
	} while (( ch1 != 13 ) && ( ch2 != 13 )) ;
	if (n == 1)
	{
		char filename[13] ;
		strcpy(filename,sub_menu()) ;
		if (strcmp(filename,"null"))
		{
			quiz q ;
			q.play(filename) ;
			clrscr() ;
		}
	}
	if (n == 2)
	{
		char filename[13] ;
		strcpy(filename,sub_menu()) ;
		if (strcmp(filename,"null"))
		{
			textmode(C80) ;
			clrscr() ;
			quiz q ;
			q.add(filename) ;
			textmode(C40) ;
			clrscr() ;
		}
	}
	if (n == 3)
		edit_menu() ;
   } while ( n != 4 ) ;
   textmode(C80) ;
   clrscr() ;
}
//	CLASS NAME    : menu
//	FUNCTION NAME : edit_menu
//	DETAILS       : IT CREATES THE EDIT MAIN MENU
void menu :: edit_menu(void)
{
   lines line ;
   int valid ;
   static int n = 3 ;
   static int x = 19 ;
   char ch1, ch2 ;
   char chr1=219, chr=175 ;
   do
   {
	line.box(19,14,31,20,218) ;
	gotoxy(21,15) ;
	cout <<chr1 ;
	textbackground(WHITE) ;
	textcolor(BLACK) ;
	gotoxy(22,15) ;
	cprintf("E D I T ") ;
	textbackground(BLACK) ;
	textcolor(LIGHTGRAY) ;
	gotoxy(23,17) ;
	cout <<"DELETE" ;
	gotoxy(23,18) ;
	cout <<"MODIFY" ;
	gotoxy(23,19) ;
	cout <<"RETURN" ;
	gotoxy(20,x) ;
	cout <<chr ;
	gotoxy(21,15) ;
	do
	{
		do
		{
			do
			{
				ch1 = getch() ;
				if ( ch1 == 27 )
				{
					gotoxy(1,15) ; clreol() ;
					gotoxy(1,17) ; clreol() ;
					gotoxy(1,18) ; clreol() ;
					gotoxy(1,19) ; clreol() ;
					gotoxy(1,20) ; clreol() ;
					gotoxy(19,14) ; clreol() ;
					return ;
				}
			} while (( ch1 != 0 ) && ( ch1 != 13 )) ;
			if ( ch1 != 13 )
			{
				do
				{
					ch2 = getch() ;
					if ( ch2 == 27 )
					{
						gotoxy(1,15) ; clreol() ;
						gotoxy(1,17) ; clreol() ;
						gotoxy(1,18) ; clreol() ;
						gotoxy(1,19) ; clreol() ;
						gotoxy(1,20) ; clreol() ;
						gotoxy(19,14) ; clreol() ;
						return ;
					}
				} while (( ch2 != 72 ) && ( ch2 != 80 )	&& ( ch2 != 13 )) ;
			}
		} while ((( ch1 != 0 ) || (( ch2 != 72 ) && ( ch2 != 80 ))) && (( ch1 != 13 ) && ( ch2 != 13 ))) ;
		if (( ch1 == 0 ) && ( ch2 == 80 ))
		{
			gotoxy(20,x) ;
			cout <<" " ;
			if (n == 3)
			{
				n = 1 ;
				x = x - 2 ;
			}
			else
			{
				n = n + 1 ;
				x = x + 1 ;
			}
			gotoxy(20,x) ;
			cout <<chr ;
			gotoxy(21,15) ;
			sound(200) ;
			delay(30) ;
			nosound() ;
		}
		if (( ch1 == 0 ) && ( ch2 == 72 ))
		{
			gotoxy(20,x) ;
			cout <<" " ;
			if ( n == 1 )
			{
				n = 3 ;
				x = x + 2 ;
			}
			else
			{
				n = n - 1 ;
				x = x - 1 ;
			}
			gotoxy(20,x) ;
			cout <<chr ;
			gotoxy(21,15) ;
			sound(200) ;
			delay(30) ;
			nosound() ;
		}
	} while (( ch1 != 13 ) && ( ch2 != 13 )) ;
	if (n == 1)
	{
		char filename[13] ;
		strcpy(filename,sub_menu()) ;
		if (strcmp(filename,"null"))
		{
			textmode(C80) ;
			clrscr() ;
			quiz q ;
			q.deletion(filename) ;
			textmode(C40) ;
			clrscr() ;
			return ;
		}
		clrscr() ;
		return ;
	}
	else
	if (n == 2)
	{
		char filename[13] ;
		strcpy(filename,sub_menu()) ;
		if (strcmp(filename,"null"))
		{
			textmode(C80) ;
			clrscr() ;
			quiz q ;
			q.modify(filename) ;
			textmode(C40) ;
			clrscr() ;
			return ;
		}
		clrscr() ;
		return ;
	}
   } while ( n != 3 ) ;
   gotoxy(1,15) ; clreol() ;
   gotoxy(1,17) ; clreol() ;
   gotoxy(1,18) ; clreol() ;
   gotoxy(1,19) ; clreol() ;
   gotoxy(1,20) ; clreol() ;
   gotoxy(19,14) ; clreol() ;
}
//	CLASS NAME    : menu
//	FUNCTION NAME : sub_menu
//	DETAILS       : IT CREATES THE SUB MAIN MENU AND
//                   RETURN FILE NAME
char *menu :: sub_menu(void)
{
   lines line ;
   clrscr() ;
   int valid ;
   static int n = 1 ;
   static int x = 10 ;
   char ch1, ch2 ;
   char chr1=219, chr=175 ;
   line.box(1,1,39,25,219) ;
   line.line_hor(2,38,23,196) ;
   char c1=24, c2=25 ;
   gotoxy(3,24) ;
   cout <<c1 ;
   cout <<c2 ;
   cout <<"=Move <enter>=Select <esc>=Exit" ;
   gotoxy(13,6) ;
   cout <<chr1 ;
   textbackground(WHITE) ;
   textcolor(BLACK) ;
   gotoxy(14,6) ;
   cprintf("S U B - M E N U ") ;
   textbackground(BLACK) ;
   textcolor(LIGHTGRAY) ;
   line.box(11,5,31,7,218) ;
   gotoxy(14,10) ;
   cout <<"COMPUTERS" ;
   gotoxy(14,12) ;
   cout <<"MATHEMATICS" ;
   gotoxy(14,14) ;
   cout <<"SCIENCE" ;
   gotoxy(14,16) ;
   cout <<"GENERAL" ;
   gotoxy(14,18) ;
   cout <<"RETURN" ;
   gotoxy(12,x) ;
   cout <<chr ;
   gotoxy(13,6) ;
   do
   {
	do
	{
		do
		{
			ch1 = getch() ;
			if ( ch1 == 27 )
			{
				clrscr() ;
				return("null") ;
			}
		} while (( ch1 != 0 ) && ( ch1 != 13 )) ;
		if ( ch1 != 13 )
		{
			do
			{
				ch2 = getch() ;
				if ( ch2 == 27 )
				{
					clrscr() ;
					return("null") ;
				}
			} while (( ch2 != 72 ) && ( ch2 != 80 )	&& ( ch2 != 13 )) ;
		}
	} while ((( ch1 != 0 ) || (( ch2 != 72 ) && ( ch2 != 80 ))) && (( ch1 != 13 ) && ( ch2 != 13 ))) ;
	if (( ch1 == 0 ) && ( ch2 == 80 ))
	{
		gotoxy(12,x) ;
		cout <<" " ;
		if (n == 5)
		{
			n = 1 ;
			x = x - 8 ;
		}
		else
		{
			n = n + 1 ;
			x = x + 2 ;
		}
		gotoxy(12,x) ;
		cout <<chr ;
		gotoxy(13,6) ;
		sound(200) ;
		delay(30) ;
		nosound() ;
	}
	if (( ch1 == 0 ) && ( ch2 == 72 ))
	{
		gotoxy(12,x) ;
		cout <<" " ;
		if ( n == 1 )
		{
			n = 5 ;
			x = x + 8 ;
		}
		else
		{
			n = n - 1 ;
			x = x - 2 ;
		}
		gotoxy(12,x) ;
		cout <<chr ;
		gotoxy(13,6) ;
		sound(200) ;
		delay(30) ;
		nosound() ;
	}
   } while (( ch1 != 13 ) && ( ch2 != 13 )) ;
   clrscr() ;
   if (n == 1)
	return("computer.dat") ;
   else
   if (n == 2)
	return("maths.dat") ;
   else
   if (n == 3)
	return("science.dat") ;
   else
   if (n == 4)
	return("general.dat") ;
   return("null") ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : record_count
//	DETAILS       : IT RETURNS THE NO. OF RECORD IN THE
//                   GIVEN FILE
int  quiz :: record_count(char filename[13])
{
   fstream file ;
   file.open(filename, ios::in) ;
   file.seekg(0,ios::beg) ;
   int t=0 ;
   while (file.read((char *) this, sizeof(quiz)))
	t++ ;
   file.close() ;
   return t ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : add
//	DETAILS       : IT ADDS THE RECORDS IN THE GIVEN FILE
void quiz :: add(char filename[13])
{
   lines line ;
   int valid ;
   int t_ques_no ;
   t_ques_no = record_count(filename) ;
   t_ques_no++ ;
   if (t_ques_no == 1)
   {
	ques_no = t_ques_no ;
	strcpy(ques,"abc") ;
	strcpy(ans1,"-") ;
	strcpy(ans2,"-") ;
	strcpy(ans3,"-") ;
	sol = '0' ;
	fstream file ;
	file.open(filename, ios::out | ios::app ) ;
	file.write((char *) this, sizeof(quiz)) ;
	file.close() ;
	delete_record(filename,t_ques_no) ;
   }
   char ch ;
   do
   {
	clrscr() ;
	line.box(1,1,79,23,218) ;
	gotoxy(3,5) ;
	cout <<"question # " <<t_ques_no ;
	gotoxy(3,8) ;
	cout <<"question : " ;
	gotoxy(3,10) ;
	cout <<"answer 1 : " ;
	gotoxy(3,12) ;
	cout <<"answer 2 : " ;
	gotoxy(3,14) ;
	cout <<"answer 3 : " ;
	gotoxy(3,16) ;
	cout <<"solution : " ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(72,25) ;
		cout <<"<0>=EXIT" ;
		gotoxy(3,25) ;
		cout <<"ENTER QUESTION" ;
		gotoxy(14,8) ;
		gets(ques) ;
		strupr(ques) ;
		if (ques[0] == '0')
			return ;
		if (strlen(ques) > 159 || strlen(ques) == 0)
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(1,24) ;
			cout <<"LENGTH SHOULD NOT BE BLANK OR GREATER THAN 159" ;
			gotoxy(1,25) ;
			cout <<"Press any key to continue..." ;
			getch() ;
			gotoxy(1,24) ;	clreol() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(14,8) ; clreol() ;
		}
	} while ( !valid ) ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(72,25) ;
		cout <<"<0>=EXIT" ;
		gotoxy(3,25) ;
		cout <<"ENTER ANSWER FOR THE QUESTION" ;
		gotoxy(14,10) ;
		gets(ans1) ;
		strupr(ans1) ;
		if (ans1[0] == '0')
			return ;
		if (strlen(ans1) > 49)
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(1,24) ;
			cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
			gotoxy(1,25) ;
			cout <<"Press any key to continue..." ;
			getch() ;
			gotoxy(1,24) ;	clreol() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(14,10) ; clreol() ;
		}
	} while ( !valid ) ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(72,25) ;
		cout <<"<0>=EXIT" ;
		gotoxy(3,25) ;
		cout <<"ENTER ANSWER FOR THE QUESTION" ;
		gotoxy(14,12) ;
		gets(ans2) ;
		strupr(ans2) ;
		if (ans2[0] == '0')
			return ;
		if (strlen(ans2) > 49)
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(1,24) ;
			cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
			gotoxy(1,25) ;
			cout <<"Press any key to continue..." ;
			getch() ;
			gotoxy(1,24) ;	clreol() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(14,12) ; clreol() ;
		}
	} while ( !valid ) ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(72,25) ;
		cout <<"<0>=EXIT" ;
		gotoxy(3,25) ;
		cout <<"ENTER ANSWER FOR THE QUESTION" ;
		gotoxy(14,14) ;
		gets(ans3) ;
		strupr(ans3) ;
		if (ans3[0] == '0')
			return ;
		if (strlen(ans3) > 49)
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(1,24) ;
			cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
			gotoxy(1,25) ;
			cout <<"Press any key to continue..." ;
			getch() ;
			gotoxy(1,24) ;	clreol() ;
			gotoxy(1,25) ;	clreol() ;
			gotoxy(14,14) ; clreol() ;
		}
	} while ( !valid ) ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(72,25) ;
		cout <<"<0>=EXIT" ;
		gotoxy(3,25) ;
		cout <<"ENTER CORRECT SOLUTION FOR THE QUESTION (1/2/3)" ;
		gotoxy(14,16) ;
		sol = getche() ;
		if (sol == '0')
			return ;
		if (sol != '1' && sol != '2' && sol != '3')
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(14,16) ; clreol() ;
		}
	} while ( !valid ) ;
	gotoxy(1,25) ;	clreol() ;
	gotoxy(1,24) ;  clreol() ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,19) ;
	cout <<"Do you want to save the record (y/n) : " ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(42,19) ;
		ch = getche() ;
		ch = toupper(ch) ;
		if (ch == '0')
			return ;
		if (ch != 'Y' && ch != 'N')
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(42,19) ; clreol() ;
		}
	} while ( !valid ) ;
	if (ch == 'Y')
	{
		ques_no = t_ques_no ;
		fstream file ;
		file.open(filename, ios::app ) ;
		file.write((char *) this, sizeof(quiz)) ;
		file.close() ;
		t_ques_no++ ;
	}
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,21) ;
	cout <<"Do you want to add more questions (y/n) : " ;
	do
	{
		line.box(1,1,79,23,218) ;
		valid = 1 ;
		gotoxy(45,21) ;
		ch = getche() ;
		ch = toupper(ch) ;
		if (ch == '0')
			return ;
		if (ch != 'Y' && ch != 'N')
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(45,21) ; clreol() ;
		}
	} while ( !valid ) ;
   } while (ch == 'Y’);
//	CLASS NAME    : quiz
//	FUNCTION NAME : found_record
//	DETAILS       : IT SEARCH THE GIVEN RECORDS IN THE
//                   GIVEN FILE AND RETURN 0 IF NOT FOUND
int  quiz :: found_record(char filename[13], int t_ques_no)
{
   fstream file ;
   file.open(filename, ios::in) ;
   file.seekg(0,ios::beg) ;
   int found=0 ;
   while (file.read((char *) this, sizeof(quiz)))
   {
	if (t_ques_no == ques_no)
	{
		found++ ;
		break ;
	}
   }
   file.close() ;
   return found ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : display_record
//	DETAILS       : IT DISPLAY THE RECORD FOR THE GIVEN
//                   QUESTION NO. FROM THE GIVEN FILE
void quiz :: display_record(char filename[13], int t_ques_no)
{
   fstream file ;
   file.open(filename, ios::in) ;
   file.seekg(0,ios::beg) ;
   while (file.read((char *) this, sizeof(quiz)))
   {
	if (t_ques_no == ques_no)
	{
		gotoxy(3,3) ;
		cout <<"question # " <<t_ques_no ;
		gotoxy(3,7) ;
		cout <<"question : " <<ques ;
		gotoxy(3,8) ;
		cout <<"answer 1 : " <<ans1 ;
		gotoxy(3,9) ;
		cout <<"answer 2 : " <<ans2 ;
		gotoxy(3,10) ;
		cout <<"answer 3 : " <<ans3 ;
		break ;
	}
   }
   file.close() ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : delete_record
//	DETAILS       : IT DELETE THE RECORD FOR THE GIVEN
//                      QUESTION NO. FROM THE GIVEN FILE
void quiz :: delete_record(char filename[13], int t_ques_no)
{
   fstream file ;
   file.open(filename, ios::in) ;
   fstream temp ;
   temp.open("temp.dat", ios::out) ;
   file.seekg(0,ios::beg) ;
   while (!file.eof())
   {
	file.read((char *) this, sizeof(quiz)) ;
	if ( file.eof() )
		break ;
	if (ques_no != t_ques_no)
		temp.write((char *) this, sizeof(quiz)) ;
   }
   file.close() ;
   temp.close() ;
   file.open(filename, ios::out) ;
   temp.open("temp.dat", ios::in) ;
   temp.seekg(0,ios::beg) ;
   t_ques_no = 1 ;
   while (!temp.eof())
   {
	temp.read((char *) this, sizeof(quiz)) ;
	ques_no = t_ques_no ;
	if (temp.eof())
		break ;
	file.write((char *) this, sizeof(quiz)) ;
	t_ques_no++ ;
   }
   file.close() ;
   temp.close() ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : deletion
//	DETAILS       : IT GIVE THE QUESTION NO. TO DELETE
//                   RECORD FROM THE GIVEN FILE
void quiz :: deletion(char filename[13])
{   lines line ;
   clrscr() ;
   int valid ;
   int t_ques_no=0, t;
   char t1_ques_no[5] ;
   char ch ;
   line.box(1,1,79,23,218) ;
   gotoxy(72,25) ;
   cout <<"<0>=EXIT" ;
   gotoxy(3,3) ;
   cout <<"Enter question no. to be deleted : " ;
   do
   {
	gotoxy(38,3) ;
	gets(t1_ques_no) ;
   } while (strlen(t1_ques_no) == 0) ;
   t = atoi(t1_ques_no) ;
   t_ques_no = t ;
   if (t1_ques_no[0] == '0')
	return ;
   if (!found_record(filename,t_ques_no))
   {
	sound(500) ;
	delay(100) ;
	nosound() ;
	gotoxy(3,15) ;
	cout <<"question not found" ;
	line.line_hor(1,79,24,196) ;
	gotoxy(1,25) ;
	cout <<"Press any key to continue..." ;
	getch() ;
	return ;
   }
   clrscr() ;
   line.box(1,1,79,23,218) ;
   display_record(filename,t_ques_no) ;
   gotoxy(3,12) ;
   cout <<"Do you want to delete this Record (y/n) : " ;
   do
   {
	valid = 1 ;
	gotoxy(45,12) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(45,10) ; clreol() ;
	}
   } while (!valid ) ;
   if (ch == 'N')
	return ;
   gotoxy(1,25) ;
   cout <<"Wait..." ;
   delete_record(filename,t_ques_no) ;
   clrscr() ;
   sound(500) ;
   delay(100) ;
   nosound() ;
   gotoxy(3,14) ;
   cout <<"Record Deleted" ;
   line.line_hor(1,79,24,196) ;
   gotoxy(1,25) ;
   cout <<"Press any key to continue...." ;
   getch() ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : modify_record
//	DETAILS       : IT MODIFY THE RECORD FOR THE GIVEN
//                      QUESTION NO. FROM THE GIVEN FILE
void quiz :: modify_record(char filename[13], int t_ques_no)
{
   lines line ;
   int valid, modified=0 ;
   char ch ;
   line.line_hor(2,78,12,196) ;
   line.box(1,1,79,23,218) ;
   gotoxy(3,14) ;
   cout <<"QUESTION # " <<t_ques_no ;
   gotoxy(3,16) ;
   cout <<"QUESTION : " ;
   gotoxy(3,17) ;
   cout <<"ANSWER 1 : " ;
   gotoxy(3,18) ;
   cout <<"ANSWER 2 : " ;
   gotoxy(3,19) ;
   cout <<"ANSWER 3 : " ;
   gotoxy(3,20) ;
   cout <<"SOLUTION : " ;
   gotoxy(1,25) ;	clreol() ;
   line.line_hor(1,79,23,196) ;
   gotoxy(14,16) ;
   cout <<"Change (y/n)  " ;
   do
   {
	line.box(1,1,79,23,218) ;
	valid = 1 ;
	gotoxy(28,16) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(28,16) ; clreol() ;
	}
   } while (!valid) ;
   valid = 0 ;
   while (!valid && ch == 'Y')
   {
	line.box(1,1,79,23,218) ;
	modified = 1 ;
	valid = 1 ;
	gotoxy(14,16) ; clreol() ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,25) ;
	cout <<"ENTER QUESTION" ;
	gotoxy(14,16) ;
	gets(ques) ;
	strupr(ques) ;
	if (ques[0] == '0')
		return ;
	if (strlen(ques) >159 || strlen(ques) == 0)
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(1,24) ;
		cout <<"LENGTH SHOULD NOT BLANK OR GREATER THAN 159" ;
		gotoxy(1,25) ;
		cout <<"Press any key to continue..." ;
		getch() ;
		gotoxy(1,24) ;	clreol() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(14,16) ; clreol() ;
	}
   }
   gotoxy(1,25) ;	clreol() ;
   gotoxy(14,17) ;
   cout <<"Change (y/n)  " ;
   do
   {
	line.box(1,1,79,23,218) ;
	valid = 1 ;
	gotoxy(28,17) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(28,17) ; clreol() ;
	}
   } while (!valid) ;
   valid = 0 ;
   while (!valid && ch == 'Y')
   {
	line.box(1,1,79,23,218) ;
	modified = 1 ;
	valid = 1 ;
	gotoxy(13,17) ; clreol() ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,25) ;
	cout <<"ENTER ANSWER FOR THE QUESTION" ;
	gotoxy(14,17) ;
	gets(ans1) ;
	strupr(ans1) ;
	if (ans1[0] == '0')
		return ;
	if (strlen(ans1) > 49)
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(1,24) ;
		cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
		gotoxy(1,25) ;
		cout <<"Press any key to continue..." ;
		getch() ;
		gotoxy(1,24) ;	clreol() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(14,17) ; clreol() ;
	}
   }
   gotoxy(1,25) ;	clreol() ;
   gotoxy(14,18) ;
   cout <<"Change (y/n)  " ;
   do
   {
	line.box(1,1,79,23,218) ;
	valid = 1 ;
	gotoxy(28,18) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(28,18) ; clreol() ;
	}
   } while (!valid) ;
   valid = 0 ;
   while (!valid && ch == 'Y')
   {
	line.box(1,1,79,23,218) ;
	modified = 1 ;
	valid = 1 ;
	gotoxy(14,18) ; clreol() ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,25) ;
	cout <<"ENTER ANSWER FOR THE QUESTION" ;
	gotoxy(14,18) ;
	gets(ans2) ;
	strupr(ans2) ;
	if (ans2[0] == '0')
		return ;
	if (strlen(ans2) > 49)
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(1,24) ;
		cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
		gotoxy(1,25) ;
		cout <<"Press any key to continue..." ;
		getch() ;
		gotoxy(1,24) ;	clreol() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(14,18) ; clreol() ;
	}
   }
   gotoxy(1,25) ;	clreol() ;
   gotoxy(14,19) ;
   cout <<"Change (y/n)  " ;
   do
   {
	line.box(1,1,79,23,218) ;
	valid = 1 ;
	gotoxy(28,19) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(28,19) ; clreol() ;
	}
   } while (!valid) ;
   valid = 0 ;
   while (!valid && ch == 'Y')
   {
	line.box(1,1,79,23,218) ;
	modified = 1 ;
	valid = 1 ;
	gotoxy(14,19) ; clreol() ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,25) ;
	cout <<"ENTER ANSWER FOR THE QUESTION" ;
	gotoxy(14,19) ;
	gets(ans3) ;
	strupr(ans3) ;
	if (ans3[0] == '0')
		return ;
	if (strlen(ans3) > 49)
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(1,24) ;
		cout <<"LENGTH SHOULD NOT GREATER THAN 49" ;
		gotoxy(1,25) ;
		cout <<"Press any key to continue..." ;
		getch() ;
		gotoxy(1,24) ;	clreol() ;
		gotoxy(1,25) ;	clreol() ;
		gotoxy(14,19) ; clreol() ;
	}
   }
   if (!modified)
	return ;
   do
   {
	line.box(1,1,79,23,218) ;
	gotoxy(1,25) ;	clreol() ;
	valid = 1 ;
	gotoxy(72,25) ;
	cout <<"<0>=EXIT" ;
	gotoxy(3,25) ;
	cout <<"ENTER CORRECT SOLUTION FOR THE QUESTION (1/2/3)" ;
	gotoxy(14,20) ;
	sol = getche() ;
	if (sol == '0')
		return ;
	if (sol != '1' && sol != '2' && sol != '3')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(14,20) ; clreol() ;
	}
   } while (!valid) ;
   gotoxy(1,25) ; clreol() ;
   gotoxy(1,24) ; clreol() ;
   gotoxy(1,22) ;
   cout <<"Do you want to save the record (y/n)  : " ;
   do
   {
	line.box(1,1,79,23,218) ;
	valid = 1 ;
	gotoxy(41,22) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(41,22) ; clreol() ;
	}
   } while ( !valid ) ;
   if (ch == 'N')
	return ;
   fstream file ;
   file.open(filename, ios::out | ios::ate) ;
   int recno ;
   recno = t_ques_no ;
   int location ;
   location = (recno-1) * sizeof(quiz) ;
   file.seekp(location) ;
   file.write((char *) this, sizeof(quiz)) ;
   file.close() ;
   clrscr() ;
   sound(500) ;
   delay(100) ;
   nosound() ;
   gotoxy(1,14) ;
   cout <<"Record Modified" ;
   line.line_hor(1,79,24,196) ;
   gotoxy(1,25) ;
   cout <<"Press any key to continue..." ;
   getch() ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : modify
//	DETAILS       : IT GIVE THE QUESTION NO. TO MODIFY
//                      RECORD FROM THE GIVEN FILE
void quiz :: modify(char filename[13])
{
   lines line ;
   clrscr() ;
   int valid ;
   int t_ques_no=0, t;
   char t1_ques_no[5] ;
   char ch ;
   line.box(1,1,79,23,218) ;
   gotoxy(72,25) ;
   cout <<"<0>=EXIT" ;
   gotoxy(3,3) ;
   cout <<"Enter question no. to be modify  : " ;
   do
   {
	gotoxy(38,3) ;
	gets(t1_ques_no) ;
   } while (strlen(t1_ques_no) == 0) ;
   t = atoi(t1_ques_no) ;
   t_ques_no = t ;
   if (t1_ques_no[0] == '0')
	return ;
   if (!found_record(filename,t_ques_no))
   {
	sound(500) ;
	delay(100) ;
	nosound() ;
	gotoxy(3,15) ;
	cout <<"question not found" ;
	line.line_hor(2,78,24,196) ;
	gotoxy(1,25) ;
	cout <<"Press any key to continue..." ;
	getch() ;
	return ;
   }
   clrscr() ;
   display_record(filename,t_ques_no) ;
   gotoxy(3,12) ;
   cout <<"Do you want to modify this Record (y/n) : " ;
   do
   {
	valid = 1 ;
	gotoxy(45,12) ;
	ch = getche() ;
	ch = toupper(ch) ;
	if (ch != 'Y' && ch != 'N')
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(45,10) ; clreol() ;
	}
   } while (!valid ) ;
   if (ch == 'N')
	return ;
   modify_record(filename,t_ques_no) ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : display_score
//	DETAILS       : IT DISPLAY THE SCORE FOR THE GIVEN
//                      PLAYER'S NAME
void quiz :: display_score(char name[20], int played, int correct)
{
   clrscr() ;
   lines line ;
   line.box(1,1,39,25,218) ;
   line.box(2,2,38,24,219) ;
   textbackground(WHITE) ;
   textcolor(BLACK+BLINK) ;
   gotoxy(5,4) ;
   cprintf("                               ") ;
   gotoxy(9,4) ;
   cprintf("S C O R E   B O A R D") ;
   textbackground(BLACK) ;
   textcolor(LIGHTGRAY) ;
   gotoxy(5,7) ;
   cout <<"Player's Name : " <<name ;
   gotoxy(5,9) ;
   cout <<"questions Attempted : " <<played ;
   gotoxy(5,11) ;
   cout <<"Correct answer      : " <<correct ;
   gotoxy(5,13) ;
   cout <<"Wrong answer        : " <<played-correct ;
   int score ;
   score = correct * 10 ;
   gotoxy(5,16) ;
   cout <<"Score  : " <<score ;
   int tplayed ;
   tplayed = played * 10 ;
   float percentage ;
   percentage = ((score*100)/tplayed) ;
   gotoxy(5,18) ;
   cout <<"Percentage : " <<percentage ;
   getch() ;
}
//	CLASS NAME    : quiz
//	FUNCTION NAME : play
//	DETAILS       : IT CREATES SCREEN FOR PLAYING QUIZ
//                      TO THE PLAYER FOR THE GIVEN FILE NAME
//                      AND KEEP SCORE.
void quiz :: play(char filename[13])
{
   clrscr() ;
   int valid ;
   lines line ;
   char name[20] ;
   gotoxy(3,3) ;
   cout <<"Enter your name : " ;
   do
   {
	line.box(1,1,39,25,219) ;
	valid = 1 ;
	gotoxy(30,24) ;
	cout <<"<0>=EXIT" ;
	gotoxy(21,3) ;
	gets(name) ;
	strupr(name) ;
	if (name[0] == '0')
		return ;
	if (strlen(name) > 18)
	{
		valid = 0 ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(30,24) ;
		cout <<"        " ;
		gotoxy(3,23) ;
		cout <<"LENGTH SHOULD NOT GREATER THAN 18" ;
		gotoxy(3,24) ;
		cout <<"Press any key to continue..." ;
		getch() ;
		gotoxy(3,23) ;
		cout <<"                                  " ;
		gotoxy(3,24) ;
		cout <<"                             " ;
		gotoxy(21,3) ;
		cout <<"                  " ;
	}
   } while ( !valid ) ;
   char t_sol, ch ;
   int  correct=0, played=0 ;
   fstream file ;
   file.open(filename,ios::in) ;
   file.seekg(0,ios::beg) ;
   while (file.read((char *) this, sizeof(quiz)))
   {
	clrscr() ;
	line.box(1,1,39,25,219) ;
	gotoxy(25,3) ;
	cout <<"SCORE:" <<correct*10 ;
	valid = 1 ;
	gotoxy(28,24) ;
	cout <<"<esc>=Exit" ;
	gotoxy(3,4) ;
	cout <<"question # " <<ques_no ;
	gotoxy(3,6) ;
	cout <<"question : " <<ques ;
	gotoxy(3,10) ;
	cout <<"answer 1 : " <<ans1 ;
	gotoxy(3,11) ;
	cout <<"answer 2 : " <<ans2 ;
	gotoxy(3,12) ;
	cout <<"answer 3 : " <<ans3 ;
	gotoxy(3,14) ;
	cout <<"Enter correct solution : " ;
	int i=0, j=0, time=10 ;
	do
	{
		valid = 1 ;
		gotoxy(3,21) ;
		cout <<"Time : " <<time ;
		gotoxy(28,12) ;
		do
		{
			delay(1) ;
			i++ ;
			j++ ;
			if (j == 600)
			{
				j = 0 ;
				time-- ;
				gotoxy(11,21) ;
				cout <<" " ;
				gotoxy(10,21) ;
				cout <<time ;
				gotoxy(28,14) ;
			}
		} while (!kbhit() && i<6000) ;
		if (i >= 6000)
		{
			played++ ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(13,16) ;
			cout <<"Sorry Time up!" ;
			gotoxy(1,1) ;
			getch() ;
			if (played)
				display_score(name,played,correct) ;
			return ;
		}
		gotoxy(3,21) ;
		cout <<"             " ;
		gotoxy(28,12) ;
		t_sol = getche() ;
		if (t_sol == 27)
		{
			if (played)
				display_score(name,played,correct) ;
			return ;
		}
		if (t_sol != '1' && t_sol != '2' && t_sol != '3')
		{
			valid = 0 ;
			sound(500) ;
			delay(100) ;
			nosound() ;
			gotoxy(28,12) ;
			cout <<"  " ;
		}
	} while (!valid) ;
	played++ ;
	if (t_sol != sol)
	{
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(14,16) ;
		cout <<"wrong answer" ;
		gotoxy(13,17) ;
		cout <<"Correct answer : " <<sol ;
		gotoxy(1,1) ;
		ch = getch() ;
		gotoxy(14,15) ;
		cout <<"            " ;
		gotoxy(13,16) ;
		cout <<"                    " ;
		gotoxy(3,24) ;
		cout <<"                                    " ;
	}
	else
	{
		correct++ ;
		sound(500) ;
		delay(100) ;
		nosound() ;
		gotoxy(16,16) ;
		cout <<"GOOD ! CORRECT ANSWER" ;
		gotoxy(25,3) ;
		cout <<"SCORE:" <<correct*10 ;
		gotoxy(1,1) ;
		ch = getch() ;
	}
	if (ch == 27)
	{
		display_score(name,played,correct) ;
		return ;
	}
   }
   gotoxy(3,22) ;
   cout <<"No more questions available" ;
   getch() ;
   if (!played)
	return ;
   display_score(name,played,correct) ;
}
//	FUNCTION NAME : main
//	DETAILS       : IT CALLS THE START FUNCTION AND
//                   MENU FUNCTION.
void main(void)
{
   menu m ;
   m.start() ;
   m.main_menu() ;
}
//                  END OF PROJECT

[edit]Code block added - OriginalGriff[/edit]

What I have tried:

i try to put } but it does not work still showing me error
Posted
Updated 2-Dec-16 4:55am
v2
Comments
Jochen Arndt 24-Nov-16 8:28am    
Do you expect that anyone here is trying to locate line 1581 in this large unformatted code dump?

Please edit your question so that only the lines with errors and a few preceeding ones are shown together with the exact error messages.

Use the green "Improve question" link to do that.
To format code enclose it in <pre> tags or use the code formatting option above the edit window.
KarstenK 24-Nov-16 8:56am    
What about showing the concrete and full error message? Maybe it help to think or Google about it :-O
vivek payal 2-Dec-16 9:11am    
thanks for the suggestion .
vivek payal 2-Dec-16 9:50am    
i have correct this mistake but still showing me error ..
void quiz :: display_record(char filename[13], int t_ques_no)
{ <-------in this line identifier 'found_record ' cannot have a type qualifier
fstream file ;
file.open(filename, ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(quiz)))
{
if (t_ques_no == ques_no)
{

Double click the error message - it usually takes you to the line.
If you can't do that, open your code in a text editor and try pressing CTRL+G - that very often brings up a "goto line" box which lest you move immediately to a specific line number, in this case 86. Looking around that line, and it's obvious:
C++
void lines :: line_ver(int row1, int row2, int column, char c)
{
   for ( row1; row1<=row2; row1++ )
   {
      gotoxy(column,row1) ;
      cout <<c ;
   }
//	CLASS NAME    : lines
//	FUNCTION NAME : box
//	DETAILS       : IT ACCEPTS THE ROWS AND COLUMNS AND
//				 DRAW THE BOX
void lines :: box(int column1, int row1, int column2, int row2, char c)
{   char ch=218 ;
   char c1, c2, c3, c4 ;
   char l1=196, l2=179 ;
Where is the closing bracket for line_ver?
 
Share this answer
 
Thanks to Griff for formatting the code.

There is a missing '}' around (probably before) line 86:
C++
void lines :: line_ver(int row1, int row2, int column, char c)
{
   for ( row1; row1<=row2; row1++ )
   {
      gotoxy(column,row1) ;
      cout <<c ;
   }
// -> This is missing in your code
}
//	CLASS NAME    : lines

The error in line 1581 should be also gone now (assuming that ist was about a missing closing '}').

Tip:
Most code editors allow collapsing blocks (often indicated by a '-' symbol on the left). Use this feature when available and you got errors about missing parentheses to find them quickly.
 
Share this answer
 
Comments
vivek payal 2-Dec-16 9:50am    
i have correct this mistake but still showing me error ..
void quiz :: display_record(char filename[13], int t_ques_no)
{ <-------in this line identifier 'found_record ' cannot have a type qualifier
fstream file ;
file.open(filename, ios::in) ;
file.seekg(0,ios::beg) ;
while (file.read((char *) this, sizeof(quiz)))
{
if (t_ques_no == ques_no)
{
Jochen Arndt 2-Dec-16 10:15am    
found_record() or display_record()?

Anyway, in your original code from the question there seems to be another closing '}' missing at the end of add() after

while (ch == 'Y’);

There is also a wrong single quote in the above line.
vivek payal 2-Dec-16 10:49am    
no in do while loop after closing the bracket condition is mentioned
Jochen Arndt 2-Dec-16 13:42pm    
When an error is reported with a line number, the real error is in that line or in a line before the mentioned one.
Especially with missing closing braces, the real error can be many lines before before the compiler runs "out of sync". This is for these kind of errors typically the next function or even the last line of the file.

However, I (and all others here) don't have the actual code. But you have. So read your code carefully and try to find the error source.
Or put your functions into different files. That makes it much simpler to locate such errors.
Also

C++
	} while ( !valid ) ;
   } while (ch == 'Y’);

// <-- Here there is also a missing {

//	CLASS NAME    : quiz
//	FUNCTION NAME : found_record


When you have an error, the problem is usually before or at the point the error is reported by the compiler. If you would improve your code formatting by adding blank lines between functions and avoid writing function that are way too long (and with too many indentation levels), it would be much easier to find that kind of errors.

By the way, that code is poorly written as it does not follows most accepted rules of good coding practice. Here are some problems:

    - Lot of hard coded constants everywhere.
    - Missing parameter names in function declaration.
    - Inconsistant indentation.
    - Inconsistant and discutable use of white space.
    - Very long functions with multiple responsabilities.
    - ....

Reading books on writing solid code might be a good idea...
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900