Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ON
Submitted by:
NAME:
REG NUMBER:
Submitted to the Symbiosis Centre for Distance Learning
struct expenses
{
char item[ 21 ];
float price;
int day;
int month;
int year;
} temp_expenses;
struct bill
{
float amount;
char contributor[ 50 ];
int day;
int month;
int year;
} temp_bill;
struct room
{
char room_no[ 21 ];
int capacity;
int day;
int month;
int year;
HOSTEL MANAGEMENT SYSTEM Page 4
} temp_room;
//DIALOG BOXES
void msgbox( char * title , char * message , int page );
int yes_no( char * message );
//COMMON FUNCTIONS
void draw_border( int x1 , int y1 , int x2 , int y2 , int type , int fore_ground_color , int
back_ground_color , int shadow , int page );
void draw_line( int type , int row , int from , int to , int fore_ground_color , int
back_ground_color , int page );
void fill_screen( int x1 , int y1 , int x2 , int y2 , int color , int page );
void display_string( char *string , int color , int back_ground_color , int hot_key_color , int
column, int row , int shadow , int page );
void modified_display_string( char * string );
void goto_xy( int x , int y , int page );
void dos_shell( void );
int does_room_number_exist( char * room_no );
int count_members_in_the_room( char * room_no );
HOSTEL MANAGEMENT SYSTEM Page 7
char * get_date_string( int day , int month , int year );
class key
{
private:
int ascii_code;
int scan_code;
public:
key()
{
ascii_code = scan_code = 99;
}
ascii_code = getch();
if( ascii_code == 0 )
{
scan_code = getch();
}
}
class text_box
{
private:
char text[ 50 ];
int current_size;
int current_position;
int from;
int length;
int row;
int skip;
int page;
key my_key;
public:
text_box() {}
text_box( int fr , int len , int ro , int page );
void initialize( int fr , int len , int ro , int page );
HOSTEL MANAGEMENT SYSTEM Page 10
int read( void );
void draw_textbox( int color = 11 , int back_ground_color = 1 );
current_size = 0;
strcpy( text , "" );
}
_setcursortype( _NORMALCURSOR );
result = read();
lost_focus();
return ( result );
}
return ( text );
}
while( repeat_loop )
{
draw_textbox( 15, 1 );
goto_xy( from + current_position + 1 , row , page );
my_key.read_key_stroke();
if( my_key.get_ascii_code() == 0 )
{
switch( my_key.get_scan_code() )
{
case 75: //left arrow
left_arrow();
break;
case 9://tab
return ( 2 );
case 13://enter
return ( 3 );
case 27: //esc
return ( 4 );
return ( 0 );
}
current_size--;
if( current_position == 0 )
{
return;
}
current_size--;
current_size++;
text[i] = my_key.get_ascii_code();
char far * v;
v = ( char far* ) vid_mem + 160 * ( row - 1 ) + 2 * ( from - 1 );
int i = skip;
*v = attrib;
v++;
}
i++;
v++;
j++;
}
}
class Date
{
private:
int day;
int month;
int year;
text_box textboxes[3];
int tab_counter;
public:
Date() {}
int got_focus( int direction );
void initialize( int from, int row );
void initialize_textboxes( void );
void set_date( int day , int month , int year );
void reset( void );
tab_counter = 0;
reset();
}
tab_counter = 0;
while( repeat_loop )
{
result = textboxes[ tab_counter ].got_focus();
switch( result )
{
case 1: //Shift tab
if( is_valid() )
{
if( tab_counter == 0 )
{
result = 1;
repeat_loop = 0;
}
else
{
tab_counter--;
}
}
HOSTEL MANAGEMENT SYSTEM Page 23
break;
case 2: //tab
if( is_valid() )
{
if( tab_counter == 2 )
{
result = 2;
repeat_loop = 0;
}
else
{
tab_counter++;
}
}
break;
case 3: //Enter
if( is_valid() )
{
result = 3;
repeat_loop = 0;
}
break;
case 4: //Escape
result = 4;
repeat_loop = 0;
break;
}
}
HOSTEL MANAGEMENT SYSTEM Page 24
return ( result );
}
day = temp_date.da_day;
month = temp_date.da_mon;
year = temp_date.da_year;
initialize_textboxes();
}
if( value < value_limits[ tab_counter ][ 0 ] || value > value_limits[ tab_counter ][1] )
{
display_error_message();
return ( 0 );
}
else
{
switch( tab_counter )
{
case 0:
day = value;
break;
case 1:
month = value;
HOSTEL MANAGEMENT SYSTEM Page 27
break;
case 2:
year = value;
break;
}
}
int leap = 0;
if( year % 4 == 0 )
{
leap = 1;
if( leap )
{
days_in_month[ 1 ] = 29;
}
ofstream out_file;
HOSTEL MANAGEMENT SYSTEM Page 29
out_file.open( filename , ios::trunc | ios::binary );
ifstream in_file;
in_file.open( "MEMBERS.DAT" , ios::in | ios::binary );
while( in_file )
{
record_no++;
in_file.close();
out_file.close();
}
HOSTEL MANAGEMENT SYSTEM Page 31
void write_expenses_report_to_file( char * filename )
{
int record_no = 0;
char temp_string[ 80 ];
float balance_amount = find_total_amount();
ofstream out_file;
out_file.open( filename , ios::trunc | ios::binary );
ifstream in_file;
in_file.open( expenses_file , ios::in | ios::binary );
while( in_file )
{
record_no++;
in_file.close();
out_file.close();
}
ifstream in_file;
in_file.open( "ROOMS.DAT" , ios::in | ios::binary );
while( in_file )
{
record_no++;
in_file.close();
out_file.close();
}
ofstream out_file;
out_file.open( filename , ios::trunc | ios::binary );
ifstream in_file;
in_file.open( "BILLS.DAT" , ios::in | ios::binary );
while( in_file )
{
record_no++;
in_file.close();
out_file.close();
}
void draw_border( int x1 , int y1 , int x2 , int y2 , int type , int fore_ground_color , int
back_ground_color , int shadow , int page )
{
char far * vid_mem = ( char far * ) 0XB8000000 ;
char far * v;
v = vid_mem + 160 * ( y2 - 1 ) + i * 2 ;
*v = arr[ 0 ];
v++;
*v = attrib;
}
v = vid_mem + 160 * i + ( x2 - 1 ) * 2 ;
*v = arr[ 1 ];
v++;
*v = attrib;
}
v = vid_mem + 160 * i + 2 * x2 + 2 ;
v++;
*v = 8;
}
}
HOSTEL MANAGEMENT SYSTEM Page 39
}
void draw_line( int type , int row , int from , int to , int fore_ground_color , int
back_ground_color , int page )
{
char far * vid_mem = ( char far * ) 0XB8000000 ;
char far * v;
v++;
*v = attrib;
}
}
void fill_screen( int x1 , int y1 , int x2 , int y2 , int color , int page )
{
char far * vid_mem = ( char far * ) 0XB8000000 ;
char far * v;
v++;
*v = attrib;
}
}
HOSTEL MANAGEMENT SYSTEM Page 41
}
i.h.ah = 0x05;
i.h.al = to;
i.h.ah = 0x02 ;
i.h.bh = page;
i.h.dh = ( y - 1 );
i.h.dl = ( x - 1 );
HOSTEL MANAGEMENT SYSTEM Page 42
int86( 0x10 , &i , &o );
}
*v = attrib1;
i++;
}
else
{
*v = string[ i ];
v++;
*v = attrib2;
}
i++;
j++;
}
v++;
*v = 112;
}
v++;
*v = 112;
}
}
fill_screen( 26 , 7 , 76 , 20 , 1 , 0 );
temp = searchpath("COMMAND.COM");
if( length == 0 )
{
return ( 0 );
}
return ( 1 );
}
return ( date_string );
}
while( file )
{
HOSTEL MANAGEMENT SYSTEM Page 49
if( strcmp( room_no , temp_room.room_no ) == 0 )
{
result = 1;
break;
}
file.read( (char *) &temp_room , sizeof( temp_room ) );
}
file.close();
return ( result );
}
while( file )
{
if( strcmp( room_no , temp_member.room_no ) == 0 )
{
count++;
}
file.read( (char *) &temp_member , sizeof( temp_member ) );
}
file.close();
return ( count );
HOSTEL MANAGEMENT SYSTEM Page 50
}
change_active_video_page( page );
key my_key;
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
while( repeat_loop )
{
HOSTEL MANAGEMENT SYSTEM Page 52
for ( int i = 0 ; i <= 1 ; i++ )
{
if( i == tab_counter )
{
display_string( buttons[ i ] , 15 , 1 , 14 , positions[ i ] , 15 ,
SHADOW , 1 );
}
else
{
display_string( buttons[ i ] , 15 , 2 , 14 , positions[ i ] , 15 ,
SHADOW , 1 );
}
}
my_key.read_key_stroke();
if( my_key.get_ascii_code() == 0 )
{
switch( my_key.get_scan_code() )
{
case 15: // Shift + tab
if( tab_counter == 0 )
{
tab_counter = 1;
}
else
{
tab_counter = 0;
}
break;
HOSTEL MANAGEMENT SYSTEM Page 53
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 27: // Esc
result = 1;
repeat_loop = 0;
break;
break;
Date my_date;
key my_key;
int tab_counter = 0;
int sex_status = 0;
int prev_tab = 0;
int repeat_loop = 1;
int skip = 0;
int result = 0;
int i;
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
name.draw_textbox();
address.draw_textbox();
phone.draw_textbox();
qualification.draw_textbox();
room_no.draw_textbox();
my_date.initialize(23 , 19);
while( repeat_loop )
{
result = 0;
switch( tab_counter )
{
case 7:
display_string( " &OK ", 15 , 2 , 14 , 53 , 8 , SHADOW , 1 );
break;
case 8:
display_string( " &RESET ", 15 , 2 , 14 , 53 , 11 , SHADOW ,
1 );
break;
case 9:
display_string( " &CANCEL ", 15 , 2 , 14 , 53 , 14 , SHADOW
, 1 );
break;
}
if( sex_status == 0 )
HOSTEL MANAGEMENT SYSTEM Page 57
{
display_string( "*", 0 , 7 , 4 , 21 , 10 , NO_SHADOW , 1 );
}
else
{
display_string( "*", 0 , 7 , 4 , 29 , 10 , NO_SHADOW , 1 );
}
switch( tab_counter)
{
case 0:
skip = 1;
result = name.got_focus();
break;
case 1:
skip = 1;
key temp_key;
int exit = 1;
_setcursortype( _NORMALCURSOR );
while( exit )
{
display_string( "SEX: ( )MALE ( )FEMALE", 0 , 7 , 4 , 14
, 10 , NO_SHADOW , 1 );
if( sex_status == 0 )
{
display_string( "*", 0 , 7 , 4 , 21 , 10 ,
NO_SHADOW , 1 );
goto_xy( 21 , 10 , 1 );
}
else
HOSTEL MANAGEMENT SYSTEM Page 58
{
display_string( "*", 0 , 7 , 4 , 29 , 10 ,
NO_SHADOW , 1 );
goto_xy( 29 , 10 , 1 );
}
temp_key.read_key_stroke();
//shift tab
if( temp_key.get_ascii_code() == 0 )
{
switch( temp_key.get_scan_code() )
{
case 15:
result = 1;
exit = 0;
break;
case 75: //left arrow
case 77: //right arrow
if( sex_status == 1 )
{
sex_status = 0;
}
else
{
sex_status = 1;
}
break;
}
}
else
HOSTEL MANAGEMENT SYSTEM Page 59
{
switch( temp_key.get_ascii_code() )
{
case 9: //tab
result = 2;
exit = 0;
break;
case 13://enter
result = 3;
exit = 0;
break;
case 27://esc
result = 4;
exit = 0;
break;
}
}
}
_setcursortype( _NOCURSOR );
break;
case 2:
skip = 1;
result = address.got_focus();
break;
case 3:
skip = 1;
result = phone.got_focus();
break;
case 4:
skip = 1;
result = qualification.got_focus();
HOSTEL MANAGEMENT SYSTEM Page 60
break;
case 5:
skip = 1;
if( prev_tab == 6 )
{
result = my_date.got_focus( REAR );
}
else
{
result = my_date.got_focus( FRONT );
}
break;
case 6:
skip = 1;
result = room_no.got_focus();
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
HOSTEL MANAGEMENT SYSTEM Page 61
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
//shift tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
prev_tab = tab_counter;
if( tab_counter == 0 )
{
tab_counter = 9;
}
else
{
tab_counter--;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
prev_tab = tab_counter;
HOSTEL MANAGEMENT SYSTEM Page 62
if( tab_counter == 9 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
temp_member.room_no[ 21 ] = '\0';
temp_member.day = my_date.get_day();
temp_member.month = my_date.get_month();
temp_member.year = my_date.get_year();
result = 1;
repeat_loop = 0;
break;
case 8: //reset
name.set_text("");
address.set_text("");
phone.set_text("");
qualification.set_text("");
room_no.set_text( temp_room.room_no );
name.draw_textbox();
address.draw_textbox();
phone.draw_textbox();
qualification.draw_textbox();
my_date.reset();
HOSTEL MANAGEMENT SYSTEM Page 65
break;
case 9: //cancel
repeat_loop = 0;
result = 0;
break;
}
break;
case 27: //escape
repeat_loop = 0;
result = 0;
break;
}
}
skip = 0;
}
change_active_video_page( 0 );
return ( result );
}
key my_key;
text_box rec_no( 39 , 15 , 11 , 1 );
HOSTEL MANAGEMENT SYSTEM Page 66
text_box name( 24 , 30 , 14 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
rec_no.set_text( "1" );
rec_no.draw_textbox();
find_member_record( 1 );
name.set_text( temp_member.name );
name.draw_textbox( 11 , 1 );
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 16 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 16 , SHADOW , 1 );
switch( tab_counter )
{
case 0:
skip = 1;
result = rec_no.got_focus();
break;
case 1:
display_string( " &OK ", 15 , 2 , 14 , 28 , 16 , SHADOW , 1 );
HOSTEL MANAGEMENT SYSTEM Page 67
break;
case 2:
display_string( " &CANCEL ", 15 , 2 , 14 , 42 , 16 ,
SHADOW , 1 );
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER AN EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
change_active_video_page( 0 );
return ( result );
}
text_box item_name(39, 14 , 10 , 1 );
text_box price(39 , 14 , 12 , 1 );
Date my_date;
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
my_date.initialize( 30 , 14 );
if( load_values == NO )
{
display_string( " ADD EXPENSES RECORD", 15 , 7 , 4 , 30 , 8 ,
NO_SHADOW , 1 );
}
else
{
display_string( " MODIFY EXPENSES RECORD ", 15 , 7 , 4 , 28 , 8 ,
NO_SHADOW , 1 );
item_name.set_text( temp_expenses.item );
price.set_text( float_to_string( temp_expenses.price ) );
my_date.set_date( temp_expenses.day , temp_expenses.month , temp_expenses.year
);
my_date.initialize_textboxes();
}
item_name.draw_textbox();
price.draw_textbox();
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 17 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 17 , SHADOW , 1 );
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
HOSTEL MANAGEMENT SYSTEM Page 75
break;
}
skip = 1;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
if( my_key.get_ascii_code() == 0 )
{
switch( my_key.get_scan_code() )
{
case 15: //shift tab
prev_tab = tab_counter;
if( tab_counter == 0 )
{
tab_counter = 4;
}
else
{
tab_counter--;
}
}
}
else
{
switch( my_key.get_ascii_code() )
{
HOSTEL MANAGEMENT SYSTEM Page 76
case 9: //tab
prev_tab = tab_counter;
if( tab_counter == 4 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
float Price;
HOSTEL MANAGEMENT SYSTEM Page 77
if( ! string_to_float( price.get_text() , &Price ) )
{
tab_counter = 1;
msgbox( " ERROR " , " PLEASE ENTER A
VALID VALUE FOR PRICE PER ITEM " , 2 );
break;
}
result = 1;
repeat_loop = 0;
break;
case 27: //escape
repeat_loop = 0;
result = 0;
break;
}
}
HOSTEL MANAGEMENT SYSTEM Page 78
skip = 0;
}
change_active_video_page( 0 );
return ( result );
}
key my_key;
text_box rec_no( 39 , 15 , 11 , 1 );
text_box name( 24 , 30 , 14 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
find_expenses_record( 1 );
HOSTEL MANAGEMENT SYSTEM Page 79
name.set_text( temp_expenses.item );
name.draw_textbox( 11 , 1 );
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 16 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 16 , SHADOW , 1 );
switch( tab_counter )
{
case 0:
skip = 1;
result = rec_no.got_focus();
break;
case 1:
display_string( " &OK ", 15 , 2 , 14 , 28 , 16 , SHADOW , 1 );
break;
case 2:
display_string( " &CANCEL ", 15 , 2 , 14 , 42 , 16 ,
SHADOW , 1 );
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
HOSTEL MANAGEMENT SYSTEM Page 80
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
switch( tab_counter )
{
case 0:
result = string_to_int( rec_no.get_text() , record_no );
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
HOSTEL MANAGEMENT SYSTEM Page 81
if( ! find_expenses_record( * record_no ) )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
else
{
name.set_text( temp_expenses.item);
name.draw_textbox( 11 , 1 );
tab_counter = 2;
}
break;
case 1:
tab_counter = 0;
break;
case 2:
tab_counter = 1;
break;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
switch( tab_counter )
{
case 0:
HOSTEL MANAGEMENT SYSTEM Page 82
result = string_to_int( rec_no.get_text() ,
record_no );
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER AN EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
int tab_counter = 0;
int prev_tab;
int repeat_loop = 1;
int temp;
key my_key;
Date my_date;
text_box amount( 37 , 9 , 9 , 1 );
text_box contributor( 37 , 9 , 11 , 1 );
text_box contributor_name( 24 , 29 , 14 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
my_date.initialize( 30 , 16 );
contributor.set_text("1");
find_member_record( 1 );
contributor_name.set_text( temp_member.name );
amount.draw_textbox();
contributor.draw_textbox();
contributor_name.draw_textbox( 11 , 1 );
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 15 );
break;
case 4: //Escape
my_key.set_values( 27 , 15 );
break;
}
skip = 1;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
switch( tab_counter )
{
case 0:
tab_counter = 4;
break;
case 1:
string_to_int( contributor.get_text() , &temp );
if( ! find_member_record( temp ) )
{
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
else
{
contributor_name.set_text( temp_member.name );
contributor_name.draw_textbox( 11 , 1 );
tab_counter = 0;
}
break;
case 2:
case 3:
case 4:
tab_counter--;
}
}
HOSTEL MANAGEMENT SYSTEM Page 89
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
prev_tab = tab_counter;
switch( tab_counter )
{
case 1:
string_to_int( contributor.get_text() ,
&temp );
if( ! find_member_record( temp ) )
{
msgbox( " ERROR " , " PLEASE
ENTER AN EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
else
{
contributor_name.set_text( temp_member.name
);
contributor_name.draw_textbox( 11 , 1 );
tab_counter = 2;
}
break;
case 0:
case 2:
case 3:
tab_counter++;
break;
HOSTEL MANAGEMENT SYSTEM Page 90
case 4:
tab_counter = 0;
break;
}
break;
float Amount;
if( ! string_to_float( amount.get_text() , &Amount ) )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER A
VALID VALUE FOR AMOUNT " , 2 );
break;
}
result = 1;
repeat_loop = 0;
break;
case 27: //escape
repeat_loop = 0;
result = 0;
break;
}
}
skip = 0;
}
change_active_video_page( 0 );
return ( result );
}
key my_key;
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
rec_no.set_text( "1" );
rec_no.draw_textbox();
find_bills_record( 1 );
name.set_text( temp_bill.contributor );
name.draw_textbox( 11 , 1 );
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 16 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 16 , SHADOW , 1 );
switch( tab_counter )
{
case 0:
skip = 1;
result = rec_no.got_focus();
break;
case 1:
HOSTEL MANAGEMENT SYSTEM Page 93
display_string( " &OK ", 15 , 2 , 14 , 28 , 16 , SHADOW , 1 );
break;
case 2:
display_string( " &CANCEL ", 15 , 2 , 14 , 42 , 16 ,
SHADOW , 1 );
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
HOSTEL MANAGEMENT SYSTEM Page 94
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
switch( tab_counter )
{
case 0:
result = string_to_int( rec_no.get_text() , record_no );
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER AN EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
key my_key;
Date my_date;
text_box room_no( 37 , 9 , 10 , 1 );
text_box capacity( 37 , 9 , 12 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
if( load_values == NO )
{
display_string( " ADD ROOM RECORD ", 15 , 7 , 4 , 33 , 8 , NO_SHADOW , 1
);
}
else
{
display_string( " MODIFY ROOM RECORD ", 15 , 7 , 4 , 32 , 8 ,
NO_SHADOW , 1 );
room_no.set_text( temp_room.room_no );
itoa( temp_room.capacity , temp_string , 10 );
capacity.set_text( temp_string );
my_date.set_date( temp_room.day , temp_room.month , temp_room.year );
my_date.initialize_textboxes();
}
my_date.initialize( 30 , 14 );
room_no.draw_textbox();
capacity.draw_textbox();
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 17 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 17 , SHADOW , 1 );
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 15 );
break;
case 4: //Escape
my_key.set_values( 27 , 15 );
break;
HOSTEL MANAGEMENT SYSTEM Page 101
}
skip = 1;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
prev_tab = tab_counter;
switch( tab_counter )
{
case 0:
tab_counter = 4;
break;
case 1:
case 2:
case 3:
case 4:
tab_counter--;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
HOSTEL MANAGEMENT SYSTEM Page 102
prev_tab = tab_counter;
switch( tab_counter )
{
case 0:
case 1:
case 2:
case 3:
tab_counter++;
break;
case 4:
tab_counter = 0;
break;
}
break;
result = 1;
repeat_loop = 0;
break;
case 27: //escape
repeat_loop = 0;
result = 0;
break;
}
}
skip = 0;
}
change_active_video_page( 0 );
return ( result );
}
key my_key;
text_box rec_no( 39 , 15 , 11 , 1 );
text_box room_no( 24 , 30 , 14 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
rec_no.set_text( "1" );
rec_no.draw_textbox();
find_room_record( 1 );
room_no.set_text( temp_room.room_no );
room_no.draw_textbox( 11 , 1 );
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 16 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 16 , SHADOW , 1 );
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
HOSTEL MANAGEMENT SYSTEM Page 106
break;
}
if( skip == 0 )
{
my_key.read_key_stroke();
}
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
switch( tab_counter )
{
case 0:
result = string_to_int( rec_no.get_text() , record_no );
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE ENTER AN
EXISTING VALUE FOR RECORD NUMBER " , 2 );
break;
}
if( ! result )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER AN EXISTING VALUE FOR RECORD NUMBER " , 2 );
HOSTEL MANAGEMENT SYSTEM Page 108
break;
}
key my_key;
text_box file_name( 39 , 15 , 12 , 1 );
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
file_name.set_text( expenses_file );
file_name.draw_textbox();
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 15 , SHADOW , 1 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 15 , SHADOW , 1 );
switch( tab_counter )
{
case 0:
skip = 1;
HOSTEL MANAGEMENT SYSTEM Page 111
result = file_name.got_focus();
break;
case 1:
display_string( " &OK ", 15 , 2 , 14 , 28 , 15 , SHADOW , 1 );
break;
case 2:
display_string( " &CANCEL ", 15 , 2 , 14 , 42 , 15 ,
SHADOW , 1 );
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
HOSTEL MANAGEMENT SYSTEM Page 112
{
my_key.read_key_stroke();
}
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
if( tab_counter == 0 )
{
tab_counter = 2;
}
else
{
tab_counter--;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
if( tab_counter == 2 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
case 13: //enter
HOSTEL MANAGEMENT SYSTEM Page 113
switch( tab_counter )
{
case 0:
case 1:
if( ! is_filename_valid( file_name.get_text() ) )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER A VALID FILE NAME FOR OUTPUT " , 2 );
break;
}
key my_key;
text_box file_name( 40 , 15 , 12 , 2 );
copy_video_page( 1 , 2 );
change_active_video_page( 2 );
file_name.set_text( "REPORT.TXT" );
file_name.draw_textbox();
while( repeat_loop )
{
display_string( " &OK ", 0 , 2 , 14 , 28 , 15 , SHADOW , 2 );
display_string( " &CANCEL ", 0 , 2 , 14 , 42 , 15 , SHADOW , 2 );
switch( tab_counter )
{
case 0:
skip = 1;
HOSTEL MANAGEMENT SYSTEM Page 115
result = file_name.got_focus();
break;
case 1:
display_string( " &OK ", 15 , 2 , 14 , 28 , 15 , SHADOW , 2 );
break;
case 2:
display_string( " &CANCEL ", 15 , 2 , 14 , 42 , 15 ,
SHADOW , 2 );
break;
}
switch( result )
{
case 1: //Shift tab
my_key.set_values( 0 , 15 );
break;
case 2: //tab
my_key.set_values( 9 , 15 );
break;
case 3: //Enter
my_key.set_values( 13 , 1 );
break;
case 4: //Escape
my_key.set_values( 27 , 1 );
break;
}
if( skip == 0 )
HOSTEL MANAGEMENT SYSTEM Page 116
{
my_key.read_key_stroke();
}
//Shift + Tab
if( my_key.get_ascii_code() == 0 && my_key.get_scan_code() == 15 )
{
if( tab_counter == 0 )
{
tab_counter = 2;
}
else
{
tab_counter--;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9: //tab
if( tab_counter == 2 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
case 13: //enter
HOSTEL MANAGEMENT SYSTEM Page 117
switch( tab_counter )
{
case 0:
case 1:
if( ! is_filename_valid( file_name.get_text() ) )
{
tab_counter = 0;
msgbox( " ERROR " , " PLEASE
ENTER A VALID FILE NAME FOR OUTPUT " , 3 );
break;
}
decimal = value;
mantessa = int( float( value - decimal ) * 100 );
ultoa( decimal , temp , 10 );
strcat( temp , "." );
itoa( mantessa , temp2 , 10 );
return ( temp );
}
HOSTEL MANAGEMENT SYSTEM Page 120
int string_to_float( char * string , float * value )
{
int length = strlen( string );
unsigned long decimal = 0;
int mantessa = 0;
i++;
int exit = 0;
int skip = 0;
int selected = 0;
int refresh = TRUE;
int result;
int record_no;
int i;
char ch;
while( !exit )
{
HOSTEL MANAGEMENT SYSTEM Page 123
if( refresh == TRUE )
{
switch( selected )
{
case 0:
modified_display_string( "ADD RECORD:*YOU CAN
ADD A NEW ROOM TO THE*ROOMS LIST**REMOVE RECORD:*YOU CAN
REMOVE AN EXISTING*ROOM FROM THE LIST*");
break;
case 1:
modified_display_string( "ADD RECORD:*YOU CAN
ADD A NEW MEMBER TO THE*REGISTERED MEMBERS LIST**REMOVE
RECORD:*YOU CAN REMOVE AN EXISTING*MEMBER FROM THE LIST*");
break;
case 2:
modified_display_string( "ADD RECORD:*YOU CAN RECORD
THE BILLS*THE MEMBERS PAY**REMOVE RECORD:*YOU CAN REMOVE THE
RECORDS OF THE*MONEY BILLS THAT MEMBERS HAVE*PREVIOUSLY
MADE*");
break;
case 3:
modified_display_string( "ADD RECORD:*YOU CAN CREATE
ENTRIES OF THE DAILY EXPENSES*AND CAN RECORD THEM**REMOVE
RECORD:*YOU CAN REMOVE THE ENTRIES OF THE EXPENSES*THAT HAVE
PREVIOUSLY BEEN RECORDED*");
break;
case 4:
modified_display_string( "MEMBERS:*YOU CAN VIEW A
REPORT WITH THE*DETAILS OF THE CURRENLY REGISTERED
MEMBERS**BILLS:*YOU CAN VIEW A REPORT OF THE MONEY BILLS*THAT
if( skip == 0 )
{
ch=getch();
}
skip = 0;
switch( ch )
{
case 72://up
case 75://left
refresh = TRUE;
if( selected > 0 )
{
selected--;
}
else
{
selected = 7;
}
break;
case 80: //down
case 77: //right
refresh = TRUE;
if( selected < 7 )
{
selected++;
HOSTEL MANAGEMENT SYSTEM Page 126
}
else
{
selected = 0;
}
break;
case 13:
switch( selected )
{
case 0:
switch( sub_menu( 6 ) )
{
case 0:
result = add_room_record_dialog_box( NO );
if( result == 1 )
{
struct room temp = temp_room;
if( does_room_number_exist( temp.room_no ) )
{
msgbox( " ERROR " , " A ROOM
ALREADY EXISTS WITH THAT NUMBER. " , 1 );
}
else
{
temp_room = temp;
write_room_record_to_file();
}
}
HOSTEL MANAGEMENT SYSTEM Page 127
break;
case 1:
if( count_room_records() > 0 )
{
result = read_room_record_dialog_box( &
record_no );
if( result == 1 )
{
find_room_record( record_no );
if( count_members_in_the_room(
temp_room.room_no ) == 0 )
{
remove_room_record( record_no
);
}
else
{
msgbox( " ERROR " , " CAN NOT
REMOVE ROOM. THE ROOM IS NOT EMPTY " , 1 );
}
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE ROOMS LIST " , 1 );
}
break;
case 2:
HOSTEL MANAGEMENT SYSTEM Page 128
if( count_room_records() > 0 )
{
result = read_room_record_dialog_box( &
record_no );
if( result == 1 )
{
result = add_room_record_dialog_box(
YES );
if( result == 1 )
{
modify_room_record( record_no
);
}
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE ROOMS LIST " , 1 );
}
break;
}
break;
case 1:
switch( sub_menu( 7 ) )
{
case 0:
if( count_room_records() == 0 )
{
result = add_member_record_dialog_box( NO );
if( result == 1 )
{
struct member temp = temp_member;
if( count_members_in_the_room(
temp_member.room_no ) > temp_room.capacity )
{
msgbox( " ERROR " , " THE
CAPACITY OF THE ROOM IS ALREADY REACHED " , 1 );
}
else
{
temp_member = temp;
write_member_record_to_file();
}
}
break;
case 1:
if( count_member_records() > 0 )
{
result = read_member_record_dialog_box( &
record_no );
if( result == 1 )
HOSTEL MANAGEMENT SYSTEM Page 130
{
remove_member_record( record_no );
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE MEMBERS LIST " , 1 );
}
break;
case 2:
if( count_member_records() > 0 )
{
result = read_member_record_dialog_box( &
record_no );
if( result == 1 )
{
result = add_member_record_dialog_box(
YES );
if( result == 1 )
{
modify_member_record(
record_no );
}
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE MEMBERS LIST " , 1 );
HOSTEL MANAGEMENT SYSTEM Page 131
}
break;
}
break;
case 2:
switch( sub_menu( 8 ) )
{
case 0:
result = add_bill_record_dialog_box( NO );
if( result == 1 )
{
write_bill_record_to_file();
}
break;
case 1:
if( count_bills_records() > 0 )
{
result = read_bills_record_dialog_box( &
record_no );
if( result == 1 )
{
remove_bills_record( record_no );
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE BILLS LIST " , 1 );
HOSTEL MANAGEMENT SYSTEM Page 132
}
break;
case 2:
if( count_bills_records() > 0 )
{
result = read_bills_record_dialog_box( &
record_no );
if( result == 1 )
{
result = add_bill_record_dialog_box(
YES );
if( result == 1 )
{
modify_bills_record( record_no );
}
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE BILLS LIST " , 1 );
}
break;
}
break;
case 3:
switch( sub_menu( 9 ) )
{
case 0:
result = add_expenses_record_dialog_box( NO );
HOSTEL MANAGEMENT SYSTEM Page 133
if( result == 1 )
{
write_expenses_record_to_file();
}
break;
case 1:
if( count_expenses_records() > 0 )
{
result = read_expenses_record_dialog_box( &
record_no );
if( result == 1 )
{
remove_expenses_record( record_no );
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE EXPENSES LIST " , 1 );
}
break;
case 2:
if( count_expenses_records() > 0 )
{
result = read_expenses_record_dialog_box( &
record_no );
if( result == 1 )
HOSTEL MANAGEMENT SYSTEM Page 134
{
result =
add_expenses_record_dialog_box( YES );
if( result == 1 )
{
modify_expenses_record(
record_no );
}
}
}
else
{
msgbox( " ERROR " , " THERE
ARE NO RECORDS IN THE EXPENSES LIST " , 1 );
}
break;
}
break;
case 4:
result = reports_menu();
switch( result )
{
case 0:
rooms_report();
break;
case 1:
members_report();
break;
case 2:
bills_report();
break;
HOSTEL MANAGEMENT SYSTEM Page 135
case 3:
expenses_report();
break;
}
break;
case 5:
settings_dialog_box();
break;
case 6:
dos_shell();
break;
case 7:
if( yes_no( "ARE YOU SURE YOU WANT TO EXIT ?" ) == 0
)
{
exit = 1;
}
break;
}
break;
case 27://ESC
if( yes_no( "ARE YOU SURE YOU WANT TO EXIT ?" ) == 0
)
{
exit = 1;
}
break;
default:
if( ch > 48 && ch < 57 )
{
selected = ch - 49;
HOSTEL MANAGEMENT SYSTEM Page 136
ch = 13;
skip = 1;
}
break;
}
}
}
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
while( !exit )
{
for( int i = 0; i <= 3 ; i++ )
{
HOSTEL MANAGEMENT SYSTEM Page 137
if( i == selected )
{
display_string( items[ i ] , 0 , 2 , 4 , 5 , 11 + i , NO_SHADOW , 1
);
}
else
{
display_string( items[ i ] , 0 , 7 , 4 , 5 , 11 + i , NO_SHADOW ,
1 );
}
}
if( skip == 0 )
{
ch=getch();
}
skip = 0;
switch( ch )
{
case 72://up
case 75://left
if( selected > 0 )
{
selected--;
}
else
{
selected = 3;
}
break;
HOSTEL MANAGEMENT SYSTEM Page 138
case 80: //down
case 77: //right
if( selected < 3 )
{
selected++;
}
else
{
selected = 0;
}
break;
case 27:
exit = 1;
break;
case 13:
exit = 1;
result = selected;
break;
default:
if( ch > 48 && ch < 53 )
{
selected = ch - 49;
ch = 13;
skip = 1;
}
break;
}
}
change_active_video_page( 0 );
return ( result );
}
HOSTEL MANAGEMENT SYSTEM Page 139
int sub_menu( int row )
{
int selected = 0;
int exit = 0;
int skip = 0;
int result = -1;
char ch;
static char items[ 3 ][ 20 ] = { " &1 ADD ",
" &2 REMOVE ",
" &3 MODIFY "
};
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
while( !exit )
{
for( int i = 0; i < 3 ; i++ )
{
if( i == selected )
{
display_string( items[ i ] , 0 , 2 , 4 , 5 , row + 1 + i ,
NO_SHADOW , 1 );
}
else
{
display_string( items[ i ] , 0 , 7 , 4 , 5 , row + 1 + i ,
NO_SHADOW , 1 );
HOSTEL MANAGEMENT SYSTEM Page 140
}
}
if( skip == 0 )
{
ch=getch();
}
skip = 0;
switch( ch )
{
case 72://up
case 75://left
if( selected > 0 )
{
selected--;
}
else
{
selected = 2;
}
break;
case 80: //down
case 77: //right
if( selected < 2 )
{
selected++;
}
else
{
selected = 0;
HOSTEL MANAGEMENT SYSTEM Page 141
}
break;
case 27:
exit = 1;
break;
case 13:
exit = 1;
switch( selected )
{
case 0:
result = 0;
break;
case 1:
result = 1;
break;
case 2:
result = 2;
break;
}
break;
default:
if( ch > 48 && ch < 52 )
{
selected = ch - 49;
ch = 13;
skip = 1;
}
break;
}
}
change_active_video_page( 0 );
HOSTEL MANAGEMENT SYSTEM Page 142
return ( result );
}
//REQUIRED REPORTS
char temp_string[20];
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
count = count_expenses_records();
if( count == 0 )
{
msgbox( " ERROR " , " THERE ARE NO RECORDS IN THE EXPENSES LIST "
, 1 );
return;
}
ifstream file;
file.open( expenses_file , ios::in | ios::binary );
key my_key;
while( repeat_loop )
{
balance_amount = total_amount;
counter = 0;
switch( tab_counter )
{
case 0:
display_string( " &PREVIOUS " , 15 , 2 , 14 , 12 , 22 ,
SHADOW , 1 );
HOSTEL MANAGEMENT SYSTEM Page 144
break;
case 1:
display_string( " &NEXT " , 15 , 2 , 14 , 27 , 22 , SHADOW ,
1 );
break;
case 2:
display_string( " &WRITE TO FILE ", 15 , 2 , 14 , 40 , 22 , SHADOW
, 1 );
break;
case 3:
display_string( " &OK " , 15 , 2 , 14 , 58 , 22 , SHADOW , 1
);
break;
}
temp = skip;
counter++;
file.read( (char *) & temp_expenses , sizeof( temp_expenses ) );
}
record_no = 0;
refresh = FALSE;
}
my_key.read_key_stroke();
refresh = TRUE;
skip = skip + 15;
break;
case 73://page up
if( skip > 15 )
{
skip -= 15;
HOSTEL MANAGEMENT SYSTEM Page 148
refresh = TRUE;
}
else
{
if( skip != 0 )
{
skip = 0;
refresh = TRUE;
}
}
break;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9://tab
if( tab_counter == 3 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
case 13://enter
switch( tab_counter )
{
HOSTEL MANAGEMENT SYSTEM Page 149
case 0:
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 1:
if( skip < count - 15 )
{
refresh = TRUE;
skip++;
}
break;
case 2:
int result = ask_filename_dialog_box( temp_string );
if( result == 1 )
{
write_expenses_report_to_file( temp_string );
}
break;
case 3:
repeat_loop = 0;
break;
}
break;
case 27://ESC
repeat_loop = 0;
break;
}
HOSTEL MANAGEMENT SYSTEM Page 150
}
file.clear();
file.seekg( 0 , ios::beg );
}
file.close();
change_active_video_page( 0 );
}
char temp_string[20];
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
count = count_room_records();
if( count == 0 )
{
msgbox( " ERROR " , " THERE ARE NO RECORDS IN THE ROOMS LIST ",1
);
HOSTEL MANAGEMENT SYSTEM Page 151
return;
}
ifstream file;
file.open( "ROOMS.DAT" , ios::in | ios::binary );
key my_key;
while( repeat_loop )
{
counter = 0;
switch( tab_counter )
{
case 0:
display_string( " &PREVIOUS " , 15 , 2 , 14 , 12 , 22 ,
SHADOW , 1 );
HOSTEL MANAGEMENT SYSTEM Page 152
break;
case 1:
display_string( " &NEXT " , 15 , 2 , 14 , 27 , 22 , SHADOW ,
1 );
break;
case 2:
display_string( " &WRITE TO FILE ", 15 , 2 , 14 , 40 , 22 , SHADOW
, 1 );
break;
case 3:
display_string( " &OK " , 15 , 2 , 14 , 58 , 22 , SHADOW , 1
);
break;
}
temp = skip;
counter++;
file.read( (char *) & temp_room , sizeof( temp_room ) );
}
record_no = 0;
refresh = FALSE;
}
my_key.read_key_stroke();
if( my_key.get_ascii_code() == 0 )
HOSTEL MANAGEMENT SYSTEM Page 154
{
switch( my_key.get_scan_code() )
{
case 15: //shift tab
if( tab_counter == 0 )
{
tab_counter = 3;
}
else
{
tab_counter--;
}
break;
case 80: //down
if( skip < count - 15 )
{
refresh = TRUE;
skip++;
}
break;
case 72: //up
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 71: //home key
if( skip != 0 )
{
skip = 0;
HOSTEL MANAGEMENT SYSTEM Page 155
refresh = TRUE;
}
break;
refresh = TRUE;
skip = skip + 15;
break;
case 73://page up
if( skip > 15 )
{
skip -= 15;
refresh = TRUE;
HOSTEL MANAGEMENT SYSTEM Page 156
}
else
{
if( skip != 0 )
{
skip = 0;
refresh = TRUE;
}
}
break;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9://tab
if( tab_counter == 3 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
case 13://enter
switch( tab_counter )
{
case 0:
HOSTEL MANAGEMENT SYSTEM Page 157
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 1:
if( skip < count - 15 )
{
refresh = TRUE;
skip++;
}
break;
case 2:
int result = ask_filename_dialog_box( temp_string );
if( result == 1 )
{
write_rooms_report_to_file( temp_string );
}
break;
case 3:
repeat_loop = 0;
break;
}
break;
case 27://ESC
repeat_loop = 0;
break;
}
}
HOSTEL MANAGEMENT SYSTEM Page 158
file.clear();
file.seekg( 0 , ios::beg );
}
file.close();
change_active_video_page( 0 );
}
char temp_string[ 21 ];
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
count = count_bills_records();
if( count == 0 )
{
msgbox( " ERROR " , " THERE ARE NO RECORDS IN THE BILLS LIST " , 1 );
return;
HOSTEL MANAGEMENT SYSTEM Page 159
}
ifstream file;
file.open( "BILLS.DAT" , ios::in | ios::binary );
key my_key;
while( repeat_loop )
{
counter = 0;
cumulative_total = 0;
switch( tab_counter )
{
case 0:
display_string( " &PREVIOUS " , 15 , 2 , 14 , 12 , 22 ,
SHADOW , 1 );
HOSTEL MANAGEMENT SYSTEM Page 160
break;
case 1:
display_string( " &NEXT " , 15 , 2 , 14 , 27 , 22 , SHADOW ,
1 );
break;
case 2:
display_string( " &WRITE TO FILE ", 15 , 2 , 14 , 40 , 22 , SHADOW
, 1 );
break;
case 3:
display_string( " &OK " , 15 , 2 , 14 , 58 , 22 , SHADOW , 1
);
break;
}
temp = skip;
cumulative_total += temp_bill.amount;
display_string( "Rs." , 15 , 7 , 4 , 59 , counter + 6 , NO_SHADOW , 1 );
display_string( float_to_string( cumulative_total ) , 0 , 7 , 4 , 63 ,
counter + 6 , NO_SHADOW , 1 );
counter++;
file.read( (char *) & temp_bill , sizeof( temp_bill ) );
}
record_no = 0;
refresh = FALSE;
}
if( my_key.get_ascii_code() == 0 )
{
switch( my_key.get_scan_code() )
{
case 15: //shift tab
if( tab_counter == 0 )
{
tab_counter = 3;
}
else
{
tab_counter--;
}
break;
case 80: //down
if( skip < count - 15 )
{
refresh = TRUE;
skip++;
}
break;
case 72: //up
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 71: //home key
HOSTEL MANAGEMENT SYSTEM Page 163
if( skip != 0 )
{
skip = 0;
refresh = TRUE;
}
break;
refresh = TRUE;
skip = skip + 15;
break;
case 73://page up
if( skip > 15 )
HOSTEL MANAGEMENT SYSTEM Page 164
{
skip -= 15;
refresh = TRUE;
}
else
{
if( skip != 0 )
{
skip = 0;
refresh = TRUE;
}
}
break;
}
}
else
{
switch( my_key.get_ascii_code() )
{
case 9://tab
if( tab_counter == 3 )
{
tab_counter = 0;
}
else
{
tab_counter++;
}
break;
case 13://enter
HOSTEL MANAGEMENT SYSTEM Page 165
switch( tab_counter )
{
case 0:
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 1:
if( skip < count - 15 )
{
refresh = TRUE;
skip++;
}
break;
case 2:
int result = ask_filename_dialog_box( temp_string );
if( result == 1 )
{
write_bills_report_to_file( temp_string );
}
break;
case 3:
repeat_loop = 0;
break;
}
break;
case 27://ESC
repeat_loop = 0;
break;
HOSTEL MANAGEMENT SYSTEM Page 166
}
}
file.clear();
file.seekg( 0 , ios::beg );
}
file.close();
change_active_video_page( 0 );
}
copy_video_page( 0 , 1 );
change_active_video_page( 1 );
count = count_member_records();
if( count == 0 )
{
HOSTEL MANAGEMENT SYSTEM Page 167
msgbox( " ERROR " , " THERE ARE NO RECORDS IN THE MEMBERS LIST "
, 1 );
return;
}
ifstream file;
file.open( "MEMBERS.DAT" , ios::in | ios::binary );
key my_key;
while( repeat_loop )
{
counter = 0;
switch( tab_counter )
{
case 0:
display_string( " &PREVIOUS " , 15 , 2 , 14 , 12 , 22 ,
SHADOW , 1 );
break;
case 1:
temp = skip;
record_no++;
itoa( record_no , temp_string , 10 );
display_string( temp_string , 15 , 7 , 4 , 18 , jump * counter + 4 ,
NO_SHADOW , 1 );
display_string( temp_member.name , 0 , 7 , 4 , 24 , jump * counter
+ 6 , NO_SHADOW , 1 );
if( temp_member.sex == 0 )
{
display_string( "MALE" , 0 , 7 , 4 , 24 , jump * counter + 7
, NO_SHADOW , 1 );
}
else
HOSTEL MANAGEMENT SYSTEM Page 170
{
display_string( "FEMALE" , 0 , 7 , 4 , 24 , jump * counter
+ 7 , NO_SHADOW , 1 );
}
counter++;
file.read( (char *) & temp_member , sizeof( temp_member ) );
}
refresh = FALSE;
record_no = 0;
}
my_key.read_key_stroke();
if( my_key.get_ascii_code() == 0 )
{
HOSTEL MANAGEMENT SYSTEM Page 171
switch( my_key.get_scan_code() )
{
case 15: //shift tab
if( tab_counter == 0 )
{
tab_counter = 3;
}
else
{
tab_counter--;
}
break;
case 80: //down arrow
if( skip < count - 2 )
{
refresh = TRUE;
skip++;
}
break;
case 72: //up arrow
if( skip > 0 )
{
refresh = TRUE;
skip--;
}
break;
case 71: //home key
if( skip != 0 )
{
skip = 0;
refresh = TRUE;
HOSTEL MANAGEMENT SYSTEM Page 172
}
break;
case 13://enter
switch( tab_counter )
{
case 0:
if( skip > 0 )
HOSTEL MANAGEMENT SYSTEM Page 174
{
refresh = TRUE;
skip--;
}
break;
case 1:
if( skip < count - 2 )
{
refresh = TRUE;
skip++;
}
break;
case 2:
int result = ask_filename_dialog_box( temp_string );
if( result == 1 )
{
write_members_report_to_file( temp_string );
}
break;
case 3:
repeat_loop = 0;
break;
}
break;
case 27://ESC
repeat_loop = 0;
break;
}
}
file.clear();
HOSTEL MANAGEMENT SYSTEM Page 175
file.seekg( 0 , ios::beg );
}
file.close();
change_active_video_page( 0 );
}
while( file )
{
count++;
file.read( (char *) &temp_member , sizeof( temp_member ) );
}
file.close();
return ( count );
}
while( file )
{
count++;
file.read( (char *) &temp_expenses , sizeof( temp_expenses ) );
}
file.close();
return ( count );
}
ifstream file;
file.open( "BILLS.DAT" , ios::in | ios::binary );
file.read( (char *) &temp_bill , sizeof( temp_bill ) );
while( file )
{
count++;
file.read( (char *) &temp_bill , sizeof( temp_bill ) );
}
file.close();
return ( count );
}
ifstream file;
file.open( "ROOMS.DAT" , ios::in | ios::binary );
file.read( (char *) &temp_room , sizeof( temp_room ) );
while( file )
{
count++;
file.read( (char *) &temp_room , sizeof( temp_room ) );
}
file.close();
return ( count );
}
while( file )
{
rec++;
HOSTEL MANAGEMENT SYSTEM Page 178
if( rec == record_no )
{
result = 1;
break;
}
file.read( (char *) &temp_member , sizeof( temp_member ) );
}
file.close();
return ( result );
}
while( file )
{
rec++;
if( rec == record_no )
{
result = 1;
break;
}
file.read( (char *) &temp_expenses , sizeof( temp_expenses ) );
HOSTEL MANAGEMENT SYSTEM Page 179
}
file.close();
return ( result );
}
while( file )
{
rec++;
if( rec == record_no )
{
result = 1;
break;
}
file.read( (char *) &temp_bill , sizeof( temp_bill ) );
}
file.close();
return ( result );
}
while( file )
{
rec++;
if( rec == record_no )
{
result = 1;
break;
}
file.read( (char *) &temp_room , sizeof( temp_room ) );
}
file.close();
return ( result );
}
date first;
HOSTEL MANAGEMENT SYSTEM Page 181
date second;
member temp2_member;
first.da_day = temp_member.day;
first.da_mon = temp_member.month;
first.da_year = temp_member.year;
second.da_day = temp2_member.day;
second.da_mon = temp2_member.month;
second.da_year = temp2_member.year;
second.da_day = temp2_member.day;
second.da_mon = temp2_member.month;
second.da_year = temp2_member.year;
}
while( file )
{
HOSTEL MANAGEMENT SYSTEM Page 182
temp.write( ( char * ) &temp2_member , sizeof( temp2_member ) );
file.read( (char *) &temp2_member , sizeof( temp2_member ) );
}
file.close();
temp.close();
unlink( "MEMBERS.DAT" );
rename( "TEMP.DAT" , "MEMBERS.DAT" );
}
date first;
date second;
expenses temp2_expenses;
first.da_day = temp_expenses.day;
first.da_mon = temp_expenses.month;
first.da_year = temp_expenses.year;
second.da_day = temp2_expenses.day;
HOSTEL MANAGEMENT SYSTEM Page 183
second.da_mon = temp2_expenses.month;
second.da_year = temp2_expenses.year;
second.da_day = temp2_expenses.day;
second.da_mon = temp2_expenses.month;
second.da_year = temp2_expenses.year;
}
while( file )
{
temp.write( ( char * ) &temp2_expenses , sizeof( temp2_expenses ) );
file.read( (char *) &temp2_expenses , sizeof( temp2_expenses ) );
}
file.close();
temp.close();
unlink( expenses_file );
rename( "TEMP.DAT" , expenses_file );
}
date first;
date second;
bill temp2_bill;
first.da_day = temp_bill.day;
first.da_mon = temp_bill.month;
first.da_year = temp_bill.year;
second.da_day = temp2_bill.day;
second.da_mon = temp2_bill.month;
second.da_year = temp2_bill.year;
second.da_day = temp2_bill.day;
second.da_mon = temp2_bill.month;
second.da_year = temp2_bill.year;
}
file.close();
temp.close();
unlink( "BILLS.DAT" );
rename( "TEMP.DAT" , "BILLS.DAT" );
}
date first;
date second;
first.da_day = temp_room.day;
first.da_mon = temp_room.month;
first.da_year = temp_room.year;
second.da_day = temp2_room.day;
second.da_mon = temp2_room.month;
second.da_year = temp2_room.year;
second.da_day = temp2_room.day;
second.da_mon = temp2_room.month;
second.da_year = temp2_room.year;
}
while( file )
{
temp.write( ( char * ) &temp2_room , sizeof( temp2_room ) );
file.read( (char *) &temp2_room , sizeof( temp2_room ) );
}
file.close();
temp.close();
unlink( "ROOMS.DAT" );
rename( "TEMP.DAT" , "ROOMS.DAT" );
}
ifstream file;
ofstream temp;
while( file )
{
rec++;
if( rec != record_no )
{
temp.write( (char *) &temp_member , sizeof( temp_member ) );
}
file.read( (char *) &temp_member , sizeof( temp_member ) );
}
file.close();
temp.close();
unlink( "MEMBERS.DAT" );
rename( "TEMP.DAT" , "MEMBERS.DAT" );
}
ifstream file;
ofstream temp;
while( file )
{
rec++;
if( rec != record_no )
{
temp.write( (char *) &temp_expenses , sizeof( temp_expenses ) );
}
file.read( (char *) &temp_expenses , sizeof( temp_expenses ) );
}
file.close();
temp.close();
unlink( expenses_file );
rename( "TEMP.DAT" , expenses_file );
}
ifstream file;
ofstream temp;
while( file )
{
rec++;
if( rec != record_no )
{
temp.write( (char *) &temp_bill , sizeof( temp_bill ) );
}
file.read( (char *) &temp_bill , sizeof( temp_bill ) );
}
file.close();
temp.close();
unlink( "BILLS.DAT" );
rename( "TEMP.DAT" , "BILLS.DAT" );
}
while( file )
{
rec++;
if( rec != record_no )
{
temp.write( (char *) &temp_room , sizeof( temp_room ) );
}
file.read( (char *) &temp_room , sizeof( temp_room ) );
}
file.close();
temp.close();
unlink( "ROOMS.DAT" );
rename( "TEMP.DAT" , "ROOMS.DAT" );
}
file.close();
}
file.close();
}
while( file )
{
total = total + temp_bill.amount;
file.read( (char *) &temp_bill , sizeof( temp_bill ) );
}
HOSTEL MANAGEMENT SYSTEM Page 192
file.close();
return ( total );
}
balance = find_total_amount();
while( file )
{
balance = balance - temp_expenses.price;
file.read( (char *) &temp_expenses , sizeof( temp_expenses ) );
}
file.close();
return ( balance );
}
int main(void)
{
_setcursortype(_NOCURSOR);
fill_screen( 0 , 0 , 79 , 25 , 1 , 0 );
HOSTEL MANAGEMENT SYSTEM Page 193
draw_border( 1 , 1 , 80 , 25 , DOUBLE , 7 , 1 , NO_SHADOW , 0 );
draw_line( DOUBLE , 3 , 0 , 79 , 7 , 1 , 0 );
display_string( "H O S T E L M A N A G E M E N T", 15 , 1 , 4 , 24 , 2 ,
NO_SHADOW , 0 );
draw_border( 3 , 4 , 20 , 13 , SINGLE , 0 , 7 , SHADOW , 0 );
draw_border( 24 , 4 , 78 , 24 , SINGLE , 7 , 1 , NO_SHADOW , 0 );
draw_line( SINGLE , 6 , 23 , 77 , 7 , 1 , 0 );
display_string( "O V E R V I E W O F M E N U I T E M S" , 15 , 1 , 4 , 31 , 5 ,
NO_SHADOW , 0 );
load_settings();
main_menu();
clrscr();
_setcursortype( _NORMALCURSOR );
return ( 0 );
}
INTRODUCTION
The key factor to the success in software quality program is its implementation. While definition
of process can be evolving phenomenon, implementation of processes makes the difference
between success & failure.
So, Software Quality Assurance is the process of ensuring that the product confirms to its
standards.
This application can be easily implemented under various situations. We can add new features
as and when we require. Reusability is possible as and when require in this application. There
is flexibility in all the modules.
SOFTWARE SCOPE:
Extensibility: This software is extendable in ways that its original developers may not
expect. The following principles enhances extensibility like hide data structure, avoid
traversing multiple links or methods, avoid case statements on object type and
distinguish public and private operations.
Cost-effectiveness: Its cost is under the budget and make within given time period. It is
desirable to aim for a system with a minimum cost subject to the condition that it must
satisfy the entire requirement.
Scope of this document is to put down the requirements, clearly identifying the information
needed by the user, the source of the information and outputs expected from the system.
This factor is one of the important factors that contributed in deciding the priority of the activity
in respect to the automation task. Any activity that is critical to the working of the Controller of
Examination or of such a nature that rest of the activities are dependent on the information
produced by this activity are the prime candidates of automation. This is stated assuming that
the activity or and y section satisfies the feasibility considerations. Such tasks are very sensitive
in nature hence sufficient time has to be given in designing such activity as any performance lag
in such activities, or any error caused in such activity is bound to aggravate in rest of the system.
Effort is always on to automate such activities on priority basis so that the rest of the system
may become easy to be automated.
This factor is helps in deciding the priority list by dictating a simple rule- the most complex
work should the last to be performed if it is not the one on which the majority of the system is
dependent. Undertaking a complex task in the beginning can lead to overhead of time involved
than the estimated time. It is better that simple tasks be solved if they are not dependent on the
complex task.
Nature of Activity: is in itself a deciding factor since the amount of work that can be automated
is directly dependent on the nature of activity. This cn be easily explained by the following
example:
Suppose there is a task performed by a department that is to maintain the records in a register.
Such a task can easily be automated since this is basically bookkeeping and can be efficiently
performed by the computer. This can also speed up the data retrieval time and validation time.
But if there is a task, say, posting a mail to the desired destinations then such a task cannot be
automated. Since this a task that is not performed by a computer system and involves human
intervention.
Feasibility Considerations
These involve the Technical Feasibility, and the Economic Feasibility and these points are
already discussed in the previous These involve the Technical Feasibility, and the Economic
Feasibility and these points are already discussed in the previous chapter.
Final Conclusions
After considering the functioning of the various sections and their role in the overall
functionality of the controller of Examination, along with the application of the above factors
over them the sections can be given certain priority level. This priority level indicates the
importance it enjoys in the ongoing task of automation of the HOSTEL.
REFERENCES