#include<iostream> //for input and output stream regulation #include<process> //for exit() #include<string> //for strlen() and strcmp() #include<conio> //for getch() and clrscr() class all //declaration for class "all" { private: struct address { int house; char city[30]; char dist[30]; char state[30]; char street[30]; char country[30]; }; struct age { int day; int month; int year; }; struct patient_info { age A1; //nested structure inplemented address AD1; //nested structure implemented int sex; int reg_no; int bld_group; char name[50]; int martial_status; }PI[100]; int task; protected: //functions declared void search_menu(); void search_city(); void exit_function(); void search_show_info(); void search_blood_group(); void enter_patient_info(); void show_patient_detail(); void after_search_options(); void after_restore(); public: void tasks(); void recycle_bin(); void delete_entry(); void software_detail(); void after_delete_options(); int s_group; int s_choice; int en_del_index; int delete_choice; char ch; char answer; char answer1; char s_city[30]; char exit_answer; char delete_confirm; char after_search_answer; }; //end of class "all" class date //declaration for class "date" { private: int date; int month; int year; public: void enter_date(); void show_date(); }; //end of class "date" class dob //declaration for class "dob" { private: struct dob1 { int date; int month; int year; int rem; }DOB11[100]; public: char birth_answer; void show_date(); void enter_date(); void search_show_date(); }; //end of class "dob" class temp //declaration for class "temp" { public: int m; //temporary variables declared with global scope int i; int j; int k; int d; int e; int f; int rem; int temp; int count; int regis; int index; int entry; int serial; int attempt; int current; int d_index; int ssi_count; int show_count; int delete_show; int search_index; int search_count; int current_year; int delete_count; int search_number; int restore_serial; int delete_attempt; int restore_attempt; int entry_index[100]; int after_search_choice; int after_restore_choice; char enter_now; char restore_confirm; char duplicate_answer; char delete_all_confirm; char restore_all_confirm; char after_search_answer; temp() //constructor for temp invoked { i=0; j=0; d=0; e=0; f=0; serial=0; current=0; d_index=0; ssi_count=0; show_count=0; delete_show=0; delete_count=0; delete_attempt=0; restore_attempt=0; }; //end of constructor for temp ~temp() {}; //destructor for temp invoked }; //end of class "temp" all A1; //object for class "all" declared date D1; //object for class "date" declared dob DOB1; //object for class "dob" declared temp T1; //object for class "temp" declared void main() //main function { T1.count=0; for(T1.m=1;T1.m<=100;T1.m++) //default index value set to -1 for each entry { T1.entry_index[T1.m]=-1; } cout<<"Welcome to..."<<"\n"; cout<<"\n\n\t\t\t***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n"; cout<<"\t\t\t By Iftikhar Malik "<<"\n"; D1.enter_date(); A1.tasks(); } //end of main function void all::tasks() { clrscr(); T1.attempt=0; T1.d_index=0; T1.delete_attempt=0; D1.show_date(); cout<<"\n\n\t\t\t***HOSPITAL MANAGEMENT SOFTWARE***"<<"\n"; cout<<"\t\t\t By Iftikhar Malik "<<"\n"; cout<<"\n\t\t\t ***Hospital Management Tasks***"<<"\n"; cout<<"\t\t\t *******************************"<<"\n"; cout<<"\n\n\tPlease select a task to do...."<<"\n"; cout<<"\n\n\t1. Enter a new patient information "<<"\n"; cout<<"\t2. View detail of existing patient "<<"\n"; cout<<"\t3. Search by city or blood group"<<"\n"; cout<<"\t4. Delete entry "<<"\n"; cout<<"\t5. Recycle Bin "<<"\n"; cout<<"\t6. About "<<"\n"; cout<<"\t7. Exit "<<"\n\n\n"; cout<<"\a Enter your task serial : "; cin>>task; switch(task) { case 1:{ A1.enter_patient_info(); break; } case 2:{ A1.show_patient_detail(); break; } case 3:{ A1.search_menu(); break; } case 4:{ A1.delete_entry(); break; } case 5:{ A1.recycle_bin(); break; } case 6:{ A1.software_detail(); break; } case 7:{ A1.exit_function(); break; } default:{ clrscr(); cout<<"\n\n\n\n\n\tInvalid task serial !!!"<<"\n"; cout<<"\tValid options are 1-6 !!!"<<"\n"; cout<<"\tPress any key to return to the main task menu....\a"<<"\n"; getch(); clrscr(); A1.tasks(); } } //end of switch for task } //end of function void date::enter_date() { cout<<"\n\nFirst of all I need the current date ..."<<"\n"; cout<<"\nYear : "; cin>>year; while(year<2000||year>10000) { clreol(); cout<<"\aInvalid input for year !!!"<<"\n"; clreol(); cout<<"Please enter the year correctly : "<<"\n"; cin>>year; } T1.current_year=year; cout<<"Month : "; clreol(); cin>>month; while(month<=0||month>12) //if month is greater then 12 or less then 1 { clreol(); cout<<"\nInvalid input for month !!!"<<"\n"; clreol(); cout<<"Please enter the month correctly : \a"<<"\n"; clreol(); cin>>month; } cout<<"Date : "; clreol(); switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:{ cin>>date; while(date<1||date>31) //for months with 31 days { cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "<<"\n"; clreol(); cin>>date; } break; } case 2:{ cin>>date; //for february if(year%4==0) { while(date<0||date>29) //for leap year { cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "<<"\n"; clreol(); cin>>date; } } else { while(date<0||date>28) //for non-leap year { cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "<<"\n"; clreol(); cin>>date; } } break; } default:{ //for other months with 30 days cin>>date; while(date<1||date>30) { cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "<<"\n"; clreol(); cin>>date; } break; } } //end of switch } //end of function void date::show_date() { clrscr(); cout<<"Hello....\n It's "; cout<<date; T1.rem=date%10; switch(date) { case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:{ cout<<"th "; goto over; } } switch(T1.rem) { case 1:{ cout<<"st "; break; } case 2:{ cout<<"nd "; break; } case 3:{ cout<<"rd "; break; } default:{ cout<<"th "; break; } } //end of switch over: //label for jump statement switch(month) { case 1:{ cout<<"January , "; break; } case 2:{ cout<<"February , "; break; } case 3:{ cout<<"March , "; break; } case 4:{ cout<<"April , "; break; } case 5:{ cout<<"May , "; break; } case 6:{ cout<<"June , "; break; } case 7:{ cout<<"July , "; break; } case 8:{ cout<<"August , "; break; } case 9:{ cout<<"September , "; break; } case 10:{ cout<<"October , "; break; } case 11:{ cout<<"November , "; break; } case 12:{ cout<<"December , "; break; } } //end of switch cout<<year<<" \n"; } //end of function void all::enter_patient_info() { clrscr(); if(T1.current==100) //to avoid overflow of data in the database { cout<<"\n\n\n\t Database is full !!! "; cout<<"\n\t Sorry, you cannot enter any more information !!! "; cout<<"\n\t Information of maximum 100 patients can be entered !!!! "; cout<<"\n\t Press any key to return to the main menu....\a "; getch(); A1.tasks(); } answer='y'; if(T1.count==0) { T1.serial=1; } else { T1.i=T1.serial; } for(T1.i=T1.serial;answer=='y'||answer=='Y';T1.i++) { cout<<"\a"; T1.current++; PI[T1.i].reg_no=T1.i; T1.temp=T1.serial; clrscr(); T1.entry_index[T1.i]=1; cout<<"\n\n\t ***ENTERING INFORMATION FOR PATIENT SERIAL NUMBER "<<T1.i<<" ***"<<"\n"; cin.get(ch); cout<<"\nRegistration Number : "<<PI[T1.i].reg_no<<"\n\n"; cout<<"Enter the name of patient : "; clreol(); cin.getline(PI[T1.i].name,50); while(strlen(PI[T1.i].name)==0) { cout<<"\a\nPlease enter a name : "; //if enter is pressed before netering a name cin.getline(PI[T1.i].name,50); cout<<"\n"; } for(T1.k=1;T1.k<T1.serial;T1.k++) //loop to avoid duplicate entries { if(strcmp(PI[T1.i].name,PI[T1.k].name)==0) //if match is found { if(T1.entry_index[T1.k]==0) //if entry is already deleted { continue; } else //if entry still exists { T1.current-=1; //current no. of entries remains same clreol(); cout<<"\n\n\n\tThe patient is already admitted in the hospital !!!"; cout<<"\n\tWant to view info of this registration number in detail (Y/N) : \a"; cin>>T1.duplicate_answer; while(T1.duplicate_answer!='Y'&&T1.duplicate_answer!='y'&&T1.duplicate_answer!='N'&&T1.duplicate_answer!='n') { cout<<"\n\t\aPlease re enter a correct option (Y/N) : "; cin>>T1.duplicate_answer; } if(T1.duplicate_answer=='y'||T1.duplicate_answer=='Y') { T1.entry_index[T1.i]=-1; T1.regis=T1.k; T1.d_index=1; A1.show_patient_detail(); } else { A1.tasks(); } } } } //end of "for loop" to prevent duplicate entries cout<<"\nSex ( 1-Male , 2-Female ) : "; clreol(); cin>>PI[T1.i].sex; while(PI[T1.i].sex!=1&&PI[T1.i].sex!=2) { cout<<"\a\nInvalid input for sex of patient !!!"; cout<<"\nSex : "; clreol(); cin>>PI[T1.i].sex; } cout<<"\nMartial status( 1-Married , 2-Single ) : "; clreol(); cin>>PI[T1.i].martial_status; while(PI[T1.i].martial_status<1||PI[T1.i].martial_status>2) { cout<<"\a\nInvalid input for martial status !!!"<<"\n"; cout<<"Enter a valid martial status : "<<"\n"; clreol(); cin>>PI[T1.i].martial_status; } cin.get(ch); clreol(); clreol(); cout<<"\n *** Blood group ***"<<"\n"; clreol(); cout<<" 1. A+ "<<"\n"; clreol(); cout<<" 2. A- "<<"\n"; clreol(); cout<<" 3. B+ "<<"\n"; clreol(); cout<<" 4. B- "<<"\n"; clreol(); cout<<" 5. AB+ "<<"\n"; clreol(); cout<<" 6. AB- "<<"\n"; clreol(); cout<<" 7. O+ "<<"\n"; clreol(); cout<<" 8. O- "<<"\n"; clreol(); cout<<"\nEnter a blood group : "; clreol(); cin>>PI[T1.i].bld_group; switch(PI[T1.i].bld_group) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8:{ break; } default:{ while(PI[T1.i].bld_group!=1&&PI[T1.i].bld_group!=2&& PI[T1.i].bld_group!=3&&PI[T1.i].bld_group!=4&& PI[T1.i].bld_group!=5&&PI[T1.i].bld_group!=6&& PI[T1.i].bld_group!=7&&PI[T1.i].bld_group!=8) { clreol(); cout<<"\aInvalid input !!!"<<"\n"; clreol(); cout<<"Please enter a valid Blood Group : "<<"\n"; clreol(); cin>>PI[T1.i].bld_group; } //end of while break; } } //end of switch cin.get(ch); clreol(); cout<<"\n\n ***ENTERING ADDRESS**"<<"\n\n"; clreol(); cout<<"House number : "; clreol(); cin>>PI[T1.i].AD1.house; while(PI[T1.i].AD1.house<=0) { clreol(); cout<<"\a\nInvalid input for house number !!!"; clreol(); cout<<"\nAgain enter the house number : "; clreol(); cin>>PI[T1.i].AD1.house; } cin.get(ch); clreol(); cout<<"Street : "; clreol(); cin.getline(PI[T1.i].AD1.street,30); while(strlen(PI[T1.i].AD1.street)==0) { clreol(); cout<<"\a\nPlease enter a street : "; //if enter is pressd before input for street clreol(); cin.getline(PI[T1.i].AD1.street,50); cout<<"\n"; } cout<<"City : "; clreol(); cin.getline(PI[T1.i].AD1.city,30); while(strlen(PI[T1.i].AD1.city)==0) { clreol(); cout<<"\a\nPlease enter a city : "; //if enter is pressd before input for city clreol(); cin.getline(PI[T1.i].AD1.city,50); cout<<"\n"; } cout<<"District : "; clreol(); cin.getline(PI[T1.i].AD1.dist,30); while(strlen(PI[T1.i].AD1.dist)==0) { clreol(); cout<<"\a\nPlease enter a district : "; //if enter is pressed before input for district clreol(); cin.getline(PI[T1.i].AD1.dist,30); cout<<"\n"; } cout<<"State : "; clreol(); cin.getline(PI[T1.i].AD1.state,30); while(strlen(PI[T1.i].AD1.state)==0) { clreol(); cout<<"\a\nPlease enter a state : "; //if enter is pressed before input for state clreol(); cin.getline(PI[T1.i].AD1.state,50); cout<<"\n"; } cout<<"Country : "; clreol(); cin.getline(PI[T1.i].AD1.country,30); while(strlen(PI[T1.i].AD1.country)==0) { clreol(); cout<<"\a\nPlease enter a country : "; //if enter is pressd before input for country clreol(); cin.getline(PI[T1.i].AD1.country,50); cout<<"\n"; } DOB1.enter_date(); cin.get(ch); clreol(); clreol(); cout<<"\n\nWant to enter information for another patient (Y/N) ? "; clreol(); cin>>answer; while(answer!='Y'&&answer!='y'&&answer!='N'&&answer!='n') { clrscr(); cout<<"\a\nPease re-enter a correct option (Y/N) : "; clreol(); cin>>answer; } cout<<"\n"; T1.count++; T1.serial++; } //end of "for loop" for entering information clrscr(); clrscr(); A1.tasks(); } //end of function void dob::enter_date() { clreol(); cout<<"\n\n *** Date of birth ***"<<"\n"; clreol(); cout<<"\nYear : "; clreol(); clreol(); cin>>DOB11[T1.temp].year; while(DOB11[T1.temp].year>T1.current_year) //to ensure that the year of birth { //gets entered correctly clreol(); cout<<"\aInvalid input for year !!!"; cout<<"\nThe date of birth cannot be after the current system date !!! "; cout<<"\nPlease enter the year correctly : "; clreol(); cin>>DOB11[T1.temp].year; cout<<"\n"; } while(DOB11[T1.temp].year<1000) { clreol(); cout<<"Invalid input for year !!! "; clreol(); cout<<"\nThe year of birth must be of 4 digits!!!"; clreol(); cout<<"\nPlease enter the year correctly : \a"; clreol(); cin>>DOB11[T1.temp].year; cout<<"\n"; } while(DOB11[T1.temp].year<1900) { clreol(); cout<<"\a\nAre you sure (Y/N) ? "; cin>>birth_answer; cout<<"\n"; while(birth_answer!='Y'&&birth_answer!='y'&&birth_answer!='N'&&birth_answer!='n') { clreol(); cout<<"\a\nInvalid input !!! "<<"\n"; clreol(); cout<<"Please enter a correct option (Y/N) : "; cout<<"\n"; clreol(); cin>>birth_answer; } if(birth_answer=='n'||birth_answer=='N') { clreol(); cout<<"\nPlease enter the year again : "; clreol(); cin>>DOB11[T1.temp].year; clreol(); while(DOB11[T1.temp].year>T1.current_year) { clreol(); cout<<"Invalid input for year !!! "; clreol(); cout<<"\nThe date of birth cannot be after the current system date !!! "; clreol(); cout<<"\nPlease enter the year correctly : \a"; clreol(); cin>>DOB11[T1.temp].year; cout<<"\n"; } while(DOB11[T1.temp].year<1000) { clreol(); cout<<"\aInvalid input for year !!! "; clreol(); cout<<"\nThe year of birth must be of 4 digits!!!\a"; clreol(); cout<<"\nPlease enter the year correctly : "; clreol(); cin>>DOB11[T1.temp].year; cout<<"\n"; } } //end of inner while while(birth_answer=='y'||birth_answer=='Y') { goto jump; } //end of inner while } //end of outer while jump: clreol(); cout<<"Month : "; clreol(); cin>>DOB11[T1.temp].month; while(DOB11[T1.temp].month<=0||DOB11[T1.temp].month>12) { clreol(); cout<<"\a\nInvalid input for month !!!"<<"\n"; cout<<"Again enter the month : "; clreol(); clreol(); cin>>DOB11[T1.temp].month; } cout<<"Date : "; clreol(); switch(DOB11[T1.temp].month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:{ cin>>DOB11[T1.temp].date; //for months with 31 days while(DOB11[T1.temp].date<1||DOB11[T1.temp].date>31) { clreol(); cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "; clreol(); cin>>DOB11[T1.temp].date; cout<<"\n"; } break; } case 2:{ //for february cin>>DOB11[T1.temp].date; if(DOB11[T1.temp].year%4==0) { while(DOB11[T1.temp].date<0||DOB11[T1.temp].date>29) //for leap year { clreol(); cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "; clreol(); cin>>DOB11[T1.temp].date; cout<<"\n"; } } else { while(DOB11[T1.temp].date<0||DOB11[T1.temp].date>28) //for non-leap year { clreol(); cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "; clreol(); cin>>DOB11[T1.temp].date; cout<<"\n"; } } break; } default:{ cin>>DOB11[T1.temp].date; //for other months while(DOB11[T1.temp].date<1||DOB11[T1.temp].date>30) { clreol(); cout<<"\aInvalid date !!!"<<"\n"; cout<<"Again enter the date : "; clreol(); cin>>DOB11[T1.temp].date; cout<<"\n"; } break; } } //end of switch clreol(); } //end of function void all::show_patient_detail() { clrscr(); if(T1.d_index==1) { T1.d_index=0; cout<<"\n\n"; goto direct; } if(T1.current==0) { cout<<"\n\n\n"; cout<<"\tDatabase in empty !!!"<<"\n"; cout<<"\tPlease enter some information first. "<<"\n"; cout<<"\n\n\tDo you want to enter now (Y/N) : \a"; cin>>T1.enter_now; while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter_now!='n') { cout<<"\a\n\tPlease enter a correct option (Y/N) : "; cin>>T1.enter_now; } if(T1.enter_now=='y'||T1.enter_now=='Y') { A1.enter_patient_info(); } else { A1.tasks(); } } cout<<"\n\t\t****** CURRENT DATEBASE ENTRIES ******\n\n"; cout<<"\t\tRegistration no. Name of patient\n\n"; for(T1.j=1;T1.j<100;T1.j++) { if(T1.entry_index[T1.j]==1) { cout<<"\t\t "<<T1.j<<" "<<PI[T1.j].name<<"\n"; } else { continue; } } cout<<"\n\n\t\tPress 0 to return to main menu.... "; cout<<"\n\n\n\tEnter registration number : "; clreol(); cin>>T1.regis; clrscr(); cout<<"\n\n"; cin.get(ch); if(T1.regis==0) { A1.tasks(); } T1.show_count++; direct: //label for "goto" jump statement if(T1.regis<=0) { T1.attempt++; if(T1.attempt==3) { cout<<"\n\n\tYou have entered wrong registration number 3 times ."<<"\n"; cout<<"\tAccess Denied!!! "<<"\n"; cout<<"\tPlease try again later. "<<"\n"; cout<<"\tPress any key to exit to main task menu..."<<"\n"; getch(); clrscr(); A1.tasks(); } cout<<"\n\n\tSorry, invalid registration number !!! "; cout<<"\n\tRegistration number starts from 1 . "; cout<<"\n\n\tPress any key to continue..... \a"; getch(); A1.show_patient_detail(); } if(T1.regis>0&&T1.regis<T1.serial&&T1.entry_index[T1.regis]==0) { cout<<"\n\tSorry, the patient has left the hospital."; T1.attempt++; if(T1.attempt==3) { cout<<"\n\n\tYou have entered wrong registration number 3 times ."<<"\n"; cout<<"\tAccess Denied!!! "<<"\n"; cout<<"\tPlease try again later. "<<"\n"; cout<<"\tPress any key to exit to main task menu..."<<"\n"; getch(); clrscr(); A1.tasks(); } cout<<"\n\tPress any key to continue..."<<"\n"; getch(); } if((T1.regis<0||T1.regis>=T1.serial)&&T1.entry_index[T1.regis]==-1) { T1.attempt++; clreol(); if(T1.attempt!=3) { cout<<"\n\n\tSorry, the registration number is invalid ."<<"\n"; T1.entry=T1.serial-1; if(T1.entry==1) { cout<<"\tOnly 1 record has been added .\n"; } else { cout<<"\tOnly "<<T1.entry<<" records have been added .\n"; } } if(T1.attempt==3) { cout<<"\n\n\tYou have entered wrong registration number 3 times ."<<"\n"; cout<<"\tAccess Denied!!! "<<"\n"; cout<<"\tPlease try again later. "<<"\n"; cout<<"\tPress any key to exit to main task menu..."<<"\a\n"; getch(); clrscr(); A1.tasks(); } cout<<"\n\n\n\tPress any key to continue....."; getch(); A1.show_patient_detail(); } if(T1.regis>0&&T1.regis<T1.serial&&T1.entry_index[T1.regis]==1) { T1.attempt=0; clreol(); cout<<"\n\t ***INFORMATION FOR PATIENT REGISTRATION NUMBER "<<T1.regis<<"***\n\n"; clreol(); cout<<"\tName : "<<PI[T1.regis].name<<"\n"; clreol(); cout<<"\tSex : "; clreol(); if(PI[T1.regis].sex==1) { cout<<"Male "<<"\n"; clreol(); } if(PI[T1.regis].sex==2) { cout<<"Female "<<"\n"; clreol(); } cout<<"\tBlood Group : "; clreol(); switch(PI[T1.regis].bld_group) { case 1:{ clreol(); cout<<"A+\n"; break; } case 2:{ clreol(); cout<<"A-\n"; break; } case 3:{ clreol(); cout<<"B+\n"; break; } case 4:{ clreol(); cout<<"B-\n"; break; } case 5:{ clreol(); cout<<"AB+\n"; break; } case 6:{ clreol(); cout<<"AB-\n"; break; } case 7:{ clreol(); cout<<"O+\n"; break; } case 8:{ clreol(); cout<<"O-\n"; break; } } //end of switch clreol(); cout<<"\tDate of birth : "; clreol(); DOB1.show_date(); cout<<"\tMartial Status : "; clreol(); if(PI[T1.regis].martial_status==1) { cout<<"Married "<<"\n"; clreol(); } else { cout<<"Single "<<"\n"; clreol(); } clreol(); cout<<"\n\t **ADDRESS**"<<"\n"; clreol(); cout<<"\n\tHouse no. : "<<PI[T1.regis].AD1.house; clreol(); cout<<"\n\tStreet : "<<PI[T1.regis].AD1.street; clreol(); cout<<"\n\tCity : "<<PI[T1.regis].AD1.city; clreol(); cout<<"\n\tDistrict : "<<PI[T1.regis].AD1.dist; clreol(); cout<<"\n\tState : "<<PI[T1.regis].AD1.state; clreol(); cout<<"\n\tCountry : "<<PI[T1.regis].AD1.country; clreol(); } T1.d_index=0; clreol(); clreol(); cout<<"\n\n\n\n\tWant to view detail of another patient : "; clreol(); cin>>answer1; while(answer1!='Y'&&answer1!='y'&&answer1!='N'&&answer1!='n') { clreol(); cout<<"\a\tPease re-enter a correct option (Y/N) ? "; clreol(); cin>>answer1; } clrscr(); if(answer1=='Y'||answer1=='y') { A1.show_patient_detail(); } else { A1.tasks(); } } //end of function void dob::show_date() { cout<<DOB11[T1.regis].date; T1.rem=DOB11[T1.regis].date%10; switch(DOB11[T1.regis].date) { case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:{ cout<<"th "; goto over; } } //end of switch switch(T1.rem) { case 1:{ cout<<"st "; break; } case 2:{ cout<<"nd "; break; } case 3:{ cout<<"rd "; break; } default:{ cout<<"th "; break; } } //end of switch over: switch(DOB11[T1.regis].month) { case 1:{ cout<<"January , "; break; } case 2:{ cout<<"February , "; break; } case 3:{ cout<<"March , "; break; } case 4:{ cout<<"April , "; break; } case 5:{ cout<<"May , "; break; } case 6:{ cout<<"June , "; break; } case 7:{ cout<<"July , "; break; } case 8:{ cout<<"August , "; break; } case 9:{ cout<<"September , "; break; } case 10:{ cout<<"October , "; break; } case 11:{ cout<<"November , "; break; } case 12:{ cout<<"December , "; break; } } //end of switch cout<<DOB11[T1.regis].year<<" \n"; } //end of function void all::software_detail() { clrscr(); cout<<"\n\n\n\t\t\t ***SOFTWARE DETAILS***\n"; cout<<"\n\n\tDeveloper : Mustafizur Rohman "<<"\n"; cout<<"\tProgramming Language : C++ "<<"\n"; cout<<"\tCompiler version : Borland 5.02 "<<"\n"; cout<<"\tAim : Simulation of Hospital Management Software"<<"\n"; cout<<"\n\tHope you like it..."<<"\n"; cout<<"\n\n\tSend your comments to : [email protected] "<<"\n"; cout<<"\n\n\tThank You for trying this program. "<<"\n"; cout<<"\a\n\n\n\tPress any key to return to the main task menu......."<<"\n"; getch(); A1.tasks(); } //end of function void all::search_menu() { T1.ssi_count=0; if(T1.current==0) { clrscr(); cout<<"\n\n\n"; cout<<"\tDatabase in empty !!!"<<"\n"; cout<<"\tPlease enter some information first. "<<"\n"; cout<<"\n\n\tDo you want to enter now (Y/N) : \a"; cin>>T1.enter_now; while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter_now!='n') { cout<<"\a\n\tPlease enter a correct option (Y/N) : "; cin>>T1.enter_now; } if(T1.enter_now=='y'||T1.enter_now=='Y') { A1.enter_patient_info(); } else { A1.tasks(); } } T1.search_number=0; clrscr(); clreol(); cout<<"\n\n\t\t ***SEARCH MENU***"<<"\n"; clreol(); cout<<"\n\n\t\t 1. Search by city "<<"\n"; clreol(); cout<<"\t\t 2. Search by blood group "<<"\n"; clreol(); cout<<"\t\t 3. Return to main menu "<<"\n"; clreol(); cout<<"\n\n\t Enter your choice : \a"; clreol(); cin>>s_choice; cin.get(ch); cout<<"\n\n\n"; clrscr(); switch(s_choice) { case 1:{ T1.search_index=1; clreol(); cout<<"\n\n\t\t***SEARCHING BY CITY***\n"; clreol(); cout<<"\n\n\tEnter city : "; clreol(); cin.getline(s_city,30); clreol(); cout<<"\n\n\n"; while(strlen(s_city)==0) //if enter is pressed before input for city { clreol(); cout<<"\n\tPlease enter a city : \a"; clreol(); cin.getline(s_city,30); } A1.search_city(); break; } case 2:{ T1.search_index=2; clreol(); cout<<"\n\n\t\t***SEARCHING BY BLOOD GROUP***\n"; clreol(); cout<<"\n\n\t\t ***BLOOD GROUP MENU***\n\n"; clreol(); cout<<"\t1. A+ "<<"\n"; clreol(); cout<<"\t2. A- "<<"\n"; clreol(); cout<<"\t3. B+ "<<"\n"; clreol(); cout<<"\t4. B- "<<"\n"; clreol(); cout<<"\t5. AB+ "<<"\n"; clreol(); cout<<"\t6. AB- "<<"\n"; clreol(); cout<<"\t7. O+ "<<"\n"; clreol(); cout<<"\t8. O- "<<"\n"; clreol(); cout<<"\n\n Enter the serial of your required group : "; clreol(); cin>>s_group; while(s_group!=1&&s_group!=2&&s_group!=3&&s_group!=4&& s_group!=5&&s_group!=6&&s_group!=7&&s_group!=8) { cout<<"\n"; cout<<"\tInvalid search criteria !!!"<<"\n"; cout<<"\tValid serials are 1 to 8."<<"\n"; cout<<"\tEnter a valid blood group : \a"; cin>>s_group; } cout<<"\n\n\n"; A1.search_blood_group(); break; } case 3:{ A1.tasks(); break; } default:{ clreol(); cout<<"\a\n\n Invalid search criteria !!!"<<"\n"; clreol(); cout<<" Valid options are 1 and 2 !!!"<<"\n"; clreol(); cout<<" Press any key to return to the main searching menu....."<<"\n"; clreol(); getch(); A1.search_menu(); break; } } //end of switch } //end of function void all::search_city() { T1.search_count=0; T1.search_number++; clrscr(); cout<<"\n\n\n"; for(T1.index=1;T1.index<T1.serial;T1.index++) { if((strcmp(PI[T1.index].AD1.city,s_city))==0) { if(T1.entry_index[T1.index]==0) { continue; } if(T1.search_count==0) { cout<<"\t\tRegistration no. Name of patient\n\n"; } clreol(); cout<<"\n\t\t "<<T1.index<<"\t\t"<<PI[T1.index].name; clreol(); T1.search_count++; } } clreol(); if(T1.search_number==1) { cout<<"\a\n\n\n\t\t Search is complete !!! "<<"\n"; clreol(); if(T1.search_count==0) { cout<<"\t\t No result found !!!"<<"\n\n\n"; cout<<"\t\t Press any key to continue....."; getch(); A1.after_search_options(); } if(T1.search_count>1) { cout<<"\t\t "<<T1.search_count<<" results found !!! "<<"\n\n\n"; } if(T1.search_count==1) { cout<<"\t\t "<<T1.search_count<<" result found !!! "<<"\n\n\n"; } } if(T1.search_number==1) { clreol(); cout<<"\n\n\t\tWant to view in detail : "; cin>>after_search_answer; while(after_search_answer!='y'&&after_search_answer!='Y'&&after_search_answer!='N'&&after_search_answer!='n') { cout<<"\a\n\n\t\tPlease enter a correct option ."; cout<<"\n\t\tDo you want to view in detail : "; cin>>after_search_answer; } if(after_search_answer=='y'||after_search_answer=='Y') { cout<<"\n\n\n\t\tWhich registration number : "; cin>>T1.index; A1.search_show_info(); } else { A1.after_search_options(); } } else { cout<<"\n\n\n\t\tWhich registration number : "; cin>>T1.index; A1.search_show_info(); } } //end of function void all::search_blood_group() { T1.search_count=0; T1.search_number++; clrscr(); cout<<"\n\n\n"; for(T1.index=1;T1.index<T1.serial;T1.index++) { if(s_group==PI[T1.index].bld_group) { if(T1.entry_index[T1.index]==0) { continue; } if(T1.search_count==0) { cout<<"\t\tRegistration no. Name of patient\n\n"; } clreol(); cout<<"\n\t\t "<<T1.index<<"\t\t"<<PI[T1.index].name; clreol(); T1.search_count++; } } clreol(); if(T1.search_number==1) { cout<<"\a\n\n\n\t\t Search is complete !!! "<<"\n"; clreol(); if(T1.search_count==0) { cout<<"\t\t No matching result found !!!"<<"\n\n\n"; cout<<"\t\t Press any key to continue....."; getch(); A1.after_search_options(); } if(T1.search_count>1) { cout<<"\t\t "<<T1.search_count<<" results found !!! "<<"\n\n\n"; } if(T1.search_count==1) { cout<<"\t\t "<<T1.search_count<<" result found !!! "<<"\n\n\n"; } } if(T1.search_number==1) { clreol(); cout<<"\n\n\t\tWant to view in detail : "; cin>>after_search_answer; while(after_search_answer!='y'&&after_search_answer!='Y'&&after_search_answer!='N'&&after_search_answer!='n') { cout<<"\a\n\n\t\tPlease enter a correct option ."; cout<<"\n\t\tDo you want to view in detail : "; cin>>after_search_answer; } if(after_search_answer=='y'||after_search_answer=='Y') { cout<<"\n\n\n\t\tWhich registration number : "; cin>>T1.index; A1.search_show_info(); } else { A1.after_search_options(); } } else { cout<<"\n\n\n\t\tWhich registration number : "; cin>>T1.index; A1.search_show_info(); } } //end of function void all::search_show_info() { T1.ssi_count++; clrscr(); cout<<"\n\n"; if(T1.index<=0) { if(T1.ssi_count==3) { clrscr(); cout<<"\n\n\tYou have entered wrong choice 3 times!!!!"; cout<<"\n\tPress any key for more options......\a"; getch(); A1.after_search_options(); } cout<<"\n\n\tSorry, invalid registration number !!!"; cout<<"\n\tRegistration number starts from 1 "; cout<<"\n\tPress any key to continue.........\n"; getch(); switch(T1.search_index) { case 1:{ A1.search_city(); break; } case 2:{ A1.search_blood_group(); break; } } //end of switch } if(T1.entry_index[T1.index]==0) { if(T1.ssi_count==3) { clrscr(); cout<<"\n\n\tYou have entered wrong choice 3 times!!!!"; cout<<"\n\tPress any key for more options......\a"; getch(); A1.after_search_options(); } cout<<"\n\n\tSorry, the patient has left the hospital ."<<"\n"; cout<<"\tPress any key to continue ....\a"<<"\n"; getch(); switch(T1.search_index) { case 1:{ A1.search_city(); break; } case 2:{ A1.search_blood_group(); break; } } //end of switch } if(T1.entry_index[T1.index]==-1||T1.index>=T1.serial) { if(T1.ssi_count==3) { clrscr(); cout<<"\n\n\tYou have entered wrong choice 3 times!!!!"; cout<<"\n\tPress any key for more options......\a"; getch(); A1.after_search_options(); } cout<<"\n\n\t\tSorry, the registration number in invalid ."<<"\n"; T1.entry=T1.serial-1; if(T1.entry==1) { cout<<"\t\tOnly 1 record has been added .\n"; } else { cout<<"\t\tOnly "<<T1.entry<<" records have been added .\n"; } cout<<"\t\tPress any key to continue....\a"<<"\n"; getch(); switch(T1.search_index) { case 1:{ A1.search_city(); break; } case 2:{ A1.search_blood_group(); break; } } //end of switch } clreol(); cout<<"\n"; T1.ssi_count=0; cout<<"\n\t ***INFORMATION FOR PATIENT REGISTRATION NUMBER "<<T1.index<<"***\n\n"; clreol(); cout<<"\tName : "<<PI[T1.index].name<<"\n"; clreol(); cout<<"\tSex : "; clreol(); if(PI[T1.index].sex==1) { cout<<"Male "<<"\n"; clreol(); } if(PI[T1.index].sex==2) { cout<<"Female "<<"\n"; clreol(); } cout<<"\tBlood Group : "; clreol(); switch(PI[T1.index].bld_group) { case 1:{ clreol(); cout<<"A+\n"; break; } case 2:{ clreol(); cout<<"A-\n"; break; } case 3:{ clreol(); cout<<"B+\n"; break; } case 4:{ clreol(); cout<<"B-\n"; break; } case 5:{ clreol(); cout<<"AB+\n"; break; } case 6:{ clreol(); cout<<"AB-\n"; break; } case 7:{ clreol(); cout<<"O+\n"; break; } case 8:{ clreol(); cout<<"O-\n"; break; } } //end of switch clreol(); cout<<"\tDate of birth : "; clreol(); DOB1.search_show_date(); cout<<"\tMartial Status : "; clreol(); if(PI[T1.index].martial_status==1) { cout<<"Married "<<"\n"; clreol(); } else { cout<<"Single "<<"\n"; clreol(); } cout<<"\n\t **ADDRESS**"<<"\n"; clreol(); cout<<"\n\tHouse no. : "<<PI[T1.index].AD1.house; clreol(); cout<<"\n\tStreet : "<<PI[T1.index].AD1.street; clreol(); cout<<"\n\tCity : "<<PI[T1.index].AD1.city; clreol(); cout<<"\n\tDistrict : "<<PI[T1.index].AD1.dist; clreol(); cout<<"\n\tState : "<<PI[T1.index].AD1.state; clreol(); cout<<"\n\tCountry : "<<PI[T1.index].AD1.country; clreol(); clreol(); clreol(); cout<<"\n\n\n\tWant to view info of another patient within search results (Y/N) ? "; cin>>after_search_answer; while(after_search_answer!='Y'&&after_search_answer!='y'&&after_search_answer!='N'&&after_search_answer!='n') { cout<<"\a\n\tPlease enter a correct option (Y/N) : "; cin>>after_search_answer; } if(after_search_answer=='y'||after_search_answer=='Y') { switch(T1.search_index) { case 1:{ A1.search_city(); break; } case 2:{ A1.search_blood_group(); break; } } //end of switch } else { A1.after_search_options(); } } //end of function void dob::search_show_date() { cout<<DOB11[T1.index].date; T1.rem=DOB11[T1.index].date%10; switch(DOB11[T1.index].date) { case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20:{ cout<<"th "; goto over; } } //end of switch switch(T1.rem) { case 1:{ cout<<"st "; break; } case 2:{ cout<<"nd "; break; } case 3:{ cout<<"rd "; break; } default:{ cout<<"th "; break; } } //end of switch over: switch(DOB11[T1.index].month) { case 1:{ cout<<"January , "; break; } case 2:{ cout<<"February , "; break; } case 3:{ cout<<"March , "; break; } case 4:{ cout<<"April , "; break; } case 5:{ cout<<"May , "; break; } case 6:{ cout<<"June , "; break; } case 7:{ cout<<"July , "; break; } case 8:{ cout<<"August , "; break; } case 9:{ cout<<"September , "; break; } case 10:{ cout<<"October , "; break; } case 11:{ cout<<"November , "; break; } case 12:{ cout<<"December , "; break; } } //end of switch cout<<DOB11[T1.index].year<<" \n"; clreol(); } //end of function void all::after_search_options() { clrscr(); clreol(); cout<<"\n\n\n\n\t\tWHAT DO U WANT TO DO NOW ?"<<"\n"; clreol(); cout<<"\t\t1. Search again "<<"\n"; clreol(); cout<<"\t\t2. Return to main task menu "<<"\n"; clreol(); cout<<"\n\tEnter your choice : "; clreol(); clreol(); cin>>T1.after_search_choice; clreol(); cout<<"\n"; switch(T1.after_search_choice) { case 1:{ T1.ssi_count=0; A1.search_menu(); break; } case 2:{ T1.ssi_count=0; A1.tasks(); break; } default:{ clreol(); cout<<"\a\n\n\tInvalid option requested !!!"<<"\n"; clreol(); cout<<"\tPress any key to return to the main searching menu..."<<"\n"; clreol(); getch(); A1.search_menu(); break; } } //end of switch } //end of function void all::delete_entry() { clrscr(); if(T1.current==0) { cout<<"\n\n\n"; cout<<"\tDatabase in empty !!!"<<"\n"; cout<<"\tPlease enter some information first. "<<"\n"; cout<<"\n\n\tDo you want to enter now (Y/N) : \a"; cin>>T1.enter_now; while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter_now!='n') { cout<<"\a\n\tPlease re-enter a correct option (Y/N) : "; cin>>T1.enter_now; } if(T1.enter_now=='y'||T1.enter_now=='Y') { A1.enter_patient_info(); } else { A1.tasks(); } } cout<<"\n\t\t ***CURRENT DATABASE ENTRIES***\n\n"; cout<<"\t\tRegistration no. Name of patient\n\n"; for(T1.j=1;T1.j<T1.serial;T1.j++) { if(T1.entry_index[T1.j]==0) { continue; //to ignore deleted items } if(T1.entry_index[T1.j]==1) { T1.delete_show++; cout<<"\t\t "<<T1.j<<" "<<PI[T1.j].name<<"\n"; } } if(T1.delete_show==0) { clrscr(); cout<<"\n\tDatabase is currently empty!!!\a"; cout<<"\n\tPress any key to continue...."; getch(); A1.tasks(); } cout<<"\n\n\tPress 0 to return to main menu and 101 to delete all entries... "; cout<<"\n\n\n\tWhich registration no. to delete ? "; cin>>en_del_index; if(en_del_index==101) { cout<<"\n\tWarning : You are about to delete all entries !!!\a"; cout<<"\n\tAre you sure you want to do this : "; cin>>T1.delete_all_confirm; while(T1.delete_all_confirm!='Y'&&T1.delete_all_confirm!='y'&&T1.delete_all_confirm!='N'&&T1.delete_all_confirm!='n') { cout<<"\n\tSorry, wrong input !!!"; cout<<"\n\tPlease enter a valid choice (Y/N) : \a"; cin>>T1.delete_all_confirm; } if(T1.delete_all_confirm=='y'||T1.delete_all_confirm=='Y') { for(T1.f=1;T1.f<=100;T1.f++) { if(T1.entry_index[T1.f]==1) { T1.current--; T1.entry_index[T1.f]=0; } } cout<<"\n\n\tAll entries have been succesfully deleted!!!"; cout<<"\n\tPress any key to return to the main menu...\a"; getch(); A1.tasks(); } else { cout<<"\n\tNo entries have been deleted."; cout<<"\n\tPress any key for more options...."; getch(); A1.after_delete_options(); } } if(en_del_index==0) { clrscr(); A1.tasks(); } if(en_del_index>0&&en_del_index<T1.serial&&T1.entry_index[en_del_index]==1) { T1.delete_attempt=0; cout<<"\n\n\tAre you sure you want to delete entry "<<en_del_index<<" (Y/N) ? "; cin>>delete_confirm; while(delete_confirm!='Y'&&delete_confirm!='y'&&delete_confirm!='N'&&delete_confirm!='n') { clreol(); cout<<"\a\n\tPease re-enter a correct option (Y/N) ? "; clreol(); cin>>delete_confirm; } if(delete_confirm=='y'||delete_confirm=='Y') { T1.entry_index[en_del_index]=0; //entry now deleted. index value set to 0 T1.current--; cout<<"\n\tEntry succesfully deleted.\n"; cout<<"\tPress any key to continue.....\a"; getch(); A1.after_delete_options(); } else { T1.entry_index[en_del_index]=1; //entry not deleted. default index value(1) kept cout<<"\n\tEntry not deleted "; cout<<"\n\tPress any key to continue......."; getch(); A1.after_delete_options(); } } if(en_del_index>0&&en_del_index<T1.serial&&T1.entry_index[en_del_index]==0) { T1.delete_attempt++; if(T1.delete_attempt==3) { cout<<"\n\n\tSorry, you have entered wrong registration number 3 times. "; cout<<"\n\tAccess denied !!!"; cout<<"\n\tPlease try again later !!!"; cout<<"\n\tPress any key to return to the main task menu....\a"; getch(); A1.tasks(); } cout<<"\n\n\tSorry, the patient has already left the hospital ."<<"\n"; cout<<"\n\tPress any key to continue...\a"<<"\n"; getch(); A1.delete_entry(); } else { T1.delete_attempt++; if(T1.delete_attempt==3) { cout<<"\n\n\tSorry, you have entered wrong registration number 3 times. "; cout<<"\n\tAccess denied !!!"; cout<<"\n\tPlease try again later !!! "; cout<<"\n\tPress any key to return to the main task menu....\a"; getch(); A1.tasks(); } cout<<"\n\n\tSorry, Invalid registration number ."<<"\a\n"; T1.entry=T1.serial-1; if(T1.entry==1) { cout<<"\tOnly 1 record has been added .\n"; } else { cout<<"\tOnly "<<T1.entry<<" records was added and "<<T1.current<<" are present .\n"; } cout<<"\tPress any key to continue..."<<"\n"; getch(); A1.delete_entry(); } clrscr(); } //end of function void all::after_delete_options() { clrscr(); cout<<"\n\t\tWHAT DO YOU WANT TO DO NOW ?"; cout<<"\n\t\t1. Delete more entries "; cout<<"\n\t\t2. Return to main menu "<<"\n"; cout<<"\n\t\tPlease enter your choice : "; cin>>delete_choice; while(delete_choice!=1&&delete_choice!=2) { cout<<"\a\n\n\tSorry, wrong choice ."; cout<<"\n\tValid choices are 1 and 2. "; cout<<"\n\tPlease re-enter your choice : "; cin>>delete_choice; } switch(delete_choice) { case 1:{ A1.delete_entry(); break; } case 2:{ A1.tasks(); break; } } //end of switch } //end of function void all::recycle_bin() { clrscr(); T1.delete_count=0; if(T1.serial==0) { cout<<"\n\n\n"; cout<<"\tDatabase in empty !!!"<<"\n"; cout<<"\tPlease enter some information first. "<<"\n"; cout<<"\n\n\tDo you want to enter now (Y/N) : \a"; cin>>T1.enter_now; while(T1.enter_now!='Y'&&T1.enter_now!='y'&&T1.enter_now!='N'&&T1.enter_now!='n') { cout<<"\a\n\tPlease enter a correct option (Y/N) : "; cin>>T1.enter_now; } if(T1.enter_now=='y'||T1.enter_now=='Y') { A1.enter_patient_info(); } else { A1.tasks(); } } cout<<"\n\t\t ****** DELETED ENTRIES ******\n\n"; cout<<"\t\tRegistration no. Name of patient\n\n"; for(T1.d=1;T1.d<T1.serial;T1.d++) { if(T1.entry_index[T1.d]==0) { cout<<"\t\t "<<T1.d<<" "<<PI[T1.d].name<<"\n"; T1.delete_count++; } else { continue; } } if(T1.delete_count==0) { T1.delete_count=0; clrscr(); cout<<"\n\n\n\tNo entry is currently in recycle bin."; cout<<"\n\tPress any key to return to the main menu...\a"; getch(); A1.tasks(); } cout<<"\n\n\tPress 0 to return to main menu and 101 to restore all items... "; cout<<"\n\n\n\tWhich item to restore : "; cin>>T1.restore_serial; if(T1.restore_serial==0) { clrscr(); A1.tasks(); } if(T1.restore_serial==101) { cout<<"\n\n\tAre you sure you want to restore all the entries : "; cin>>T1.restore_all_confirm; while(T1.restore_all_confirm!='Y'&&T1.restore_all_confirm!='y'&&T1.restore_all_confirm!='N'&&T1.restore_all_confirm!='n') { cout<<"\n\n\tPlease re-enter a corrent option : "; cin>>T1.restore_all_confirm; } if(T1.restore_all_confirm=='y'||T1.restore_all_confirm=='Y') { for(T1.e=1;T1.e<=100;T1.e++) { if(T1.entry_index[T1.e]==0) { T1.current++; T1.entry_index[T1.e]=1; } } cout<<"\n\tAll deleted items have been succesfully restored."; cout<<"\n\tPress any key to return to the main menu..."; getch(); clrscr(); A1.tasks(); } else { cout<<"\n\n\tNo entry has been restored."; cout<<"\n\tPress any key to view the recycle bin...\a"; getch(); clrscr(); A1.recycle_bin(); } } if(T1.entry_index[T1.restore_serial]==0) { T1.restore_attempt=0; cout<<"\n\tAre you sure you want to restore entry "<<T1.restore_serial<<" : "; cin>>T1.restore_confirm; while(T1.restore_confirm!='Y'&&T1.restore_confirm!='y'&&T1.restore_confirm!='N'&&T1.restore_confirm!='n') { clreol(); cout<<"\n\n\tInvalid input !!! "; cout<<"\n\tPease re-enter a correct option (Y/N) : \a"; clreol(); cin>>T1.restore_confirm; } if(T1.restore_confirm=='Y'||T1.restore_confirm=='y') { T1.current++; T1.delete_count=0; T1.entry_index[T1.restore_serial]=1; //index value set to 1 cout<<"\n\tEntry succesfully restored!!!"; cout<<"\n\tPress any key to continue....\a"; getch(); A1.after_restore(); } else { cout<<"\n\tEntry not restored!!!"; //index value kept 0 cout<<"\n\tPress any key to continue...\n\a"; getch(); A1.after_restore(); } } if(T1.entry_index[T1.restore_serial]==1) { T1.restore_attempt++; if(T1.restore_attempt==3) { clrscr(); cout<<"\n\n\tYou have unsuccesfully tried to restore 3 times."; cout<<"\n\tPress any key to return to the main task menu..."; A1.tasks(); } cout<<"\n\tThe entry is already present in the database."; cout<<"\n\tPress any key to continue..."; getch(); A1.recycle_bin(); } if(T1.restore_serial<0||T1.restore_serial>100||T1.entry_index[T1.restore_serial]==-1) { T1.restore_attempt++; if(T1.restore_attempt==3) { clrscr(); cout<<"\n\n\tYou have unsuccesfully tried to restore 3 times."; cout<<"\n\tPress any key to return to the main task menu..."; getch(); A1.tasks(); } cout<<"\n\tInvalid serial number"; cout<<"\n\tPress any key to continue..."; getch(); A1.recycle_bin(); } } //end of function void all::after_restore() { clrscr(); cout<<"\n\n\n\t\tWHAT DO YOU WANT TO DO NOW? "; cout<<"\n\t\t1. Restore more entries "; cout<<"\n\t\t2. Return to main manu "; cout<<"\n\n\t\tPlease enter your choice : "; cin>>T1.after_restore_choice; switch(T1.after_restore_choice) { case 1:{ A1.recycle_bin(); break; } case 2:{ A1.tasks(); break; } default:{ cout<<"\n\n\n\tSorry, wrong choice "; cout<<"\n\tValid choices are 1 and 2 "; cout<<"\n\tPress any key to continue......"; getch(); A1.after_restore(); } } } //end of function void all::exit_function() { clrscr(); if(T1.serial==0) { cout<<"\n\n\n\n\tYou have not used the software."; cout<<"\n\***** is recommended that you do not exit."; cout<<"\n\tPress any key to continue......\a"; getch(); clrscr(); cout<<"\n\n\n\tAre you sure you want to exit (Y/N) ? "; cin>>exit_answer; while(exit_answer!='Y'&&exit_answer!='y'&&exit_answer!='N'&&exit_answer!='n') { clreol(); cout<<"\n\n\tInvalid input !!! "; cout<<"\n\tPease re-enter a correct option (Y/N) : \a"; clreol(); cin>>exit_answer; } if(exit_answer=='y'||exit_answer=='Y') { cout<<"\a"; exit(0); } else { A1.tasks(); } } cout<<"\n\n\n\t\t\t ***SOFTWARE DETAILS***\n"; cout<<"\n\n\tDeveloper : Mustafizur Rohman "<<"\n"; cout<<"\tProgramming Language : C++ "<<"\n"; cout<<"\tCompiler version : Borland 5.02 "<<"\n"; cout<<"\tAim : Simulation of Hospital Management Software"<<"\n"; cout<<"\n\tHope you like it..."<<"\n"; cout<<"\n\n\tSend your comments to : [email protected] "<<"\n"; cout<<"\n\n\tThank You for trying this program. "<<"\n"; cout<<"\n\n\n\tPress any key to continue........"<<"\n"; getch(); clrscr(); cout<<"\n\n\n\tAre you sure you want to exit (Y/N) ? "; cin>>exit_answer; while(exit_answer!='Y'&&exit_answer!='y'&&exit_answer!='N'&&exit_answer!='n') { clreol(); cout<<"\n\n\tInvalid input !!! "; cout<<"\n\tPease re-enter a correct option (Y/N) : \a"; clreol(); cin>>exit_answer; } if(exit_answer=='y'||exit_answer=='Y') { cout<<"\a"; exit(0); } else { A1.tasks(); } } //end of function
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}