online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
/* ************************************************** * Project: * * Simulation of Hospital Management Software * ************************************************** */ #include <stdio.h> #include <string> #include <sstream> #include <cstdlib> #include<iostream> //for input and output stream regulation #include <conio.h> //for exit() #include<string.h> //for strlen() and strcmp() #include <conio.h> //for getch() and clrscr() using namespace std; class all //declaration for class "all" { private: struct address { int house; char city[30]; char dist[30]; char state[30]; char street[40]; 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 temperature; 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 int 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 Kanha Gupta " << "\n"; D1.enter_date(); A1.tasks(); return 0; } //end of main function void all::tasks() { 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 Kanha Gupta " << "\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: { cout << "\n\n\n\n\n\tInvalid task serial !!!" << "\n"; cout << "\tValid options are 1-7 !!!" << "\n"; cout << "\tPress any key to return to the main task menu....\a" << "\n"; getch(); 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) { std::cout << "\033[0K\r"; cout << "\aInvalid input for year !!!" << "\n"; std::cout << "\033[0K\r"; cout << "Please enter the year correctly : " << "\n"; cin >> year; } T1.current_year = year; cout << "Month : "; cin >> month; while (month <= 0 || month > 12) //if month is greater then 12 or less then 1 { // std::cout << "\033[0K\r"; cout << "\nInvalid input for month !!!" << "\n"; std::cout << "\033[0K\r"; cout << "Please enter the month correctly : \a" << "\n"; // std::cout << "\033[0K\r"; cin >> month; } cout << "Date : "; 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"; // std::cout << "\033[0K\r"; 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"; // std::cout << "\033[0K\r"; cin >> date; } } else { while (date < 0 || date>28) //for non-leap year { cout << "\aInvalid date !!!" << "\n"; cout << "Again enter the date : " << "\n"; // std::cout << "\033[0K\r"; 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"; // std::cout << "\033[0K\r"; cin >> date; } break; } } //end of switch } //end of function void date::show_date() { 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() { 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.temperature = T1.serial; 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 : "; // std::cout << "\033[0K\r"; 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 entering 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 std::cout << "\033[0K\r"; 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 ) : "; // std::cout << "\033[0K\r"; 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 : "; // std::cout << "\033[0K\r"; cin >> PI[T1.i].sex; } cout << "\nMartial status( 1-Married , 2-Single ) : "; // std::cout << "\033[0K\r"; 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"; // std::cout << "\033[0K\r"; cin >> PI[T1.i].martial_status; } cin.get(ch); std::cout << "\033[0K\r"; std::cout << "\033[0K\r"; cout << "\n *** Blood group ***" << "\n"; std::cout << "\033[0K\r"; cout << " 1. A+ " << "\n"; std::cout << "\033[0K\r"; cout << " 2. A- " << "\n"; std::cout << "\033[0K\r"; cout << " 3. B+ " << "\n"; std::cout << "\033[0K\r"; cout << " 4. B- " << "\n"; std::cout << "\033[0K\r"; cout << " 5. AB+ " << "\n"; std::cout << "\033[0K\r"; cout << " 6. AB- " << "\n"; std::cout << "\033[0K\r"; cout << " 7. O+ " << "\n"; std::cout << "\033[0K\r"; cout << " 8. O- " << "\n"; std::cout << "\033[0K\r"; cout << "\nEnter a blood group : "; // std::cout << "\033[0K\r"; 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) { std::cout << "\033[0K\r"; cout << "\aInvalid input !!!" << "\n"; std::cout << "\033[0K\r"; cout << "Please enter a valid Blood Group : " << "\n"; std::cout << "\033[0K\r"; cin >> PI[T1.i].bld_group; } //end of while break; } } //end of switch cin.get(ch); std::cout << "\033[0K\r"; cout << "\n\n ***ENTERING ADDRESS**" << "\n\n"; std::cout << "\033[0K\r"; cout << "House number : "; // std::cout << "\033[0K\r"; string houseString; getline(cin,houseString); stringstream ss(houseString); if (!(ss >> PI[T1.i].AD1.house)) { cout << "\a\nInvalid input for house number !!!"; std::cout << "\033[0K\r"; cout << "\nAgain enter the house number : "; getline(cin, houseString); // Read the new input stringstream ss(houseString); // Create a new stringstream ss >> PI[T1.i].AD1.house; } while (PI[T1.i].AD1.house <= 0) { std::cout << "\033[0K\r"; cout << "\a\nInvalid input for house number !!!"; std::cout << "\033[0K\r"; cout << "\nAgain enter the house number : "; // std::cout << "\033[0K\r"; getline(cin, houseString); // Read the new input stringstream ss(houseString); // Create a new stringstream ss >> PI[T1.i].AD1.house; } std::cout << "\033[0K\r"; cout << "\nStreet : "; // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.street, 30); while (strlen(PI[T1.i].AD1.street) == 0) { std::cout << "\033[0K\r"; cout << "\a\nPlease enter a street : "; //if enter is pressd before input for street // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.street, 50); cout << "\n"; } cout << "City : "; // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.city, 30); while (strlen(PI[T1.i].AD1.city) == 0) { std::cout << "\033[0K\r"; cout << "\a\nPlease enter a city : "; //if enter is pressd before input for city // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.city, 50); cout << "\n"; } cout << "District : "; // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.dist, 30); while (strlen(PI[T1.i].AD1.dist) == 0) { std::cout << "\033[0K\r"; cout << "\a\nPlease enter a district : "; //if enter is pressed before input for district // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.dist, 30); cout << "\n"; } cout << "State : "; // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.state, 30); while (strlen(PI[T1.i].AD1.state) == 0) { std::cout << "\033[0K\r"; cout << "\a\nPlease enter a state : "; //if enter is pressed before input for state // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.state, 50); cout << "\n"; } cout << "Country : "; // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.country, 30); while (strlen(PI[T1.i].AD1.country) == 0) { std::cout << "\033[0K\r"; cout << "\a\nPlease enter a country : "; //if enter is pressd before input for country // std::cout << "\033[0K\r"; cin.getline(PI[T1.i].AD1.country, 50); cout << "\n"; } DOB1.enter_date(); cin.get(ch); std::cout << "\033[0K\r"; std::cout << "\033[0K\r"; cout << "\n\nWant to enter information for another patient (Y/N) ? "; // std::cout << "\033[0K\r"; cin >> answer; while (answer != 'Y' && answer != 'y' && answer != 'N' && answer != 'n') { cout << "\a\nPease re-enter a correct option (Y/N) : "; std::cout << "\033[0K\r"; cin >> answer; } cout << "\n"; T1.count++; T1.serial++; } //end of "for loop" for entering information A1.tasks(); } //end of function void dob::enter_date() { std::cout << "\033[0K\r"; cout << "\n\n *** Date of birth ***" << "\n"; // std::cout << "\033[0K\r"; cout << "\nYear : "; // std::cout << "\033[0K\r"; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].year; while (DOB11[T1.temperature].year > T1.current_year || DOB11[T1.temperature].year < 1000) //to ensure that the year of birth gets entered correctly. { std::cout << "\033[0K\r"; cout << "\aInvalid input for year !!!"; cout << "\nThe date of birth cannot be after the current system date & The year of birth must be of 4 digits!!! "; cout << "\nPlease enter the year correctly : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].year; cout << "\n"; } while (DOB11[T1.temperature].year < 1900) { std::cout << "\033[0K\r"; 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') { std::cout << "\033[0K\r"; cout << "\a\nInvalid input !!! " << "\n"; // std::cout << "\033[0K\r"; cout << "Please enter a correct option (Y/N) : "; cout << "\n"; // std::cout << "\033[0K\r"; cin >> birth_answer; } if (birth_answer == 'n' || birth_answer == 'N') { std::cout << "\033[0K\r"; cout << "\nPlease enter the year again : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].year; std::cout << "\033[0K\r"; while (DOB11[T1.temperature].year > T1.current_year && DOB11[T1.temperature].year < 1000) { std::cout << "\033[0K\r"; cout << "Invalid input for year !!! "; std::cout << "\033[0K\r"; cout << "\nThe date of birth cannot be after the current system date & The year of birth must be of 4 digits!!!!!! "; std::cout << "\033[0K\r"; cout << "\nPlease enter the year correctly : \a"; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].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: std::cout << "\033[0K\r"; cout << "Month : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].month; while (DOB11[T1.temperature].month <= 0 || DOB11[T1.temperature].month > 12) { std::cout << "\033[0K\r"; cout << "\a\nInvalid input for month !!!" << "\n"; cout << "Again enter the month : "; std::cout << "\033[0K\r"; std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].month; } cout << "Date : "; // std::cout << "\033[0K\r"; switch (DOB11[T1.temperature].month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: { cin >> DOB11[T1.temperature].date; //for months with 31 days while (DOB11[T1.temperature].date < 1 || DOB11[T1.temperature].date>31) { std::cout << "\033[0K\r"; cout << "\aInvalid date !!!" << "\n"; cout << "Again enter the date : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].date; cout << "\n"; } break; } case 2: { //for february cin >> DOB11[T1.temperature].date; if (DOB11[T1.temperature].year % 4 == 0) { while (DOB11[T1.temperature].date < 0 || DOB11[T1.temperature].date>29) //for leap year { std::cout << "\033[0K\r"; cout << "\aInvalid date !!!" << "\n"; cout << "Again enter the date : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].date; cout << "\n"; } } else { while (DOB11[T1.temperature].date < 0 || DOB11[T1.temperature].date>28) //for non-leap year { std::cout << "\033[0K\r"; cout << "\aInvalid date !!!" << "\n"; cout << "Again enter the date : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].date; cout << "\n"; } } break; } default: { cin >> DOB11[T1.temperature].date; //for other months while (DOB11[T1.temperature].date < 1 || DOB11[T1.temperature].date>30) { std::cout << "\033[0K\r"; cout << "\aInvalid date !!!" << "\n"; cout << "Again enter the date : "; // std::cout << "\033[0K\r"; cin >> DOB11[T1.temperature].date; cout << "\n"; } break; } } //end of switch std::cout << "\033[0K\r"; } //end of function void all::show_patient_detail() { if (T1.d_index == 1) { T1.d_index = 0; cout << "\n\n"; goto direct; } if (T1.current == 0) { cout << "\n\n\n"; cout << "\tDatabase is 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 : "; // std::cout << "\033[0K\r"; cin >> T1.regis; 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(); 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(); 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++; std::cout << "\033[0K\r"; 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(); 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; std::cout << "\033[0K\r"; cout << "\n\t ***INFORMATION FOR PATIENT REGISTRATION NUMBER " << T1.regis << "***\n\n"; // std::cout << "\033[0K\r"; cout << "\tName : " << PI[T1.regis].name << "\n"; // std::cout << "\033[0K\r"; cout << "\tSex : "; // std::cout << "\033[0K\r"; if (PI[T1.regis].sex == 1) { cout << "Male " << "\n"; // std::cout << "\033[0K\r"; } if (PI[T1.regis].sex == 2) { cout << "Female " << "\n"; // std::cout << "\033[0K\r"; } cout << "\tBlood Group : "; // std::cout << "\033[0K\r"; switch (PI[T1.regis].bld_group) { case 1: { // std::cout << "\033[0K\r"; cout << "A+\n"; break; } case 2: { // std::cout << "\033[0K\r"; cout << "A-\n"; break; } case 3: { // std::cout << "\033[0K\r"; cout << "B+\n"; break; } case 4: { // std::cout << "\033[0K\r"; cout << "B-\n"; break; } case 5: { // std::cout << "\033[0K\r"; cout << "AB+\n"; break; } case 6: { // std::cout << "\033[0K\r"; cout << "AB-\n"; break; } case 7: { // std::cout << "\033[0K\r"; cout << "O+\n"; break; } case 8: { // std::cout << "\033[0K\r"; cout << "O-\n"; break; } } //end of switch std::cout << "\033[0K\r"; cout << "\tDate of birth : "; // std::cout << "\033[0K\r"; DOB1.show_date(); cout << "\tMartial Status : "; // std::cout << "\033[0K\r"; if (PI[T1.regis].martial_status == 1) { cout << "Married " << "\n"; std::cout << "\033[0K\r"; } else { cout << "Single " << "\n"; std::cout << "\033[0K\r"; } std::cout << "\033[0K\r"; cout << "\n\t **ADDRESS**" << "\n"; std::cout << "\033[0K\r"; cout << "\n\tHouse no. : " << PI[T1.regis].AD1.house; std::cout << "\033[0K\r"; cout << "\n\tStreet : " << PI[T1.regis].AD1.street; std::cout << "\033[0K\r"; cout << "\n\tCity : " << PI[T1.regis].AD1.city; std::cout << "\033[0K\r"; cout << "\n\tDistrict : " << PI[T1.regis].AD1.dist; std::cout << "\033[0K\r"; cout << "\n\tState : " << PI[T1.regis].AD1.state; // std::cout << "\033[0K\r"; cout << "\n\tCountry : " << PI[T1.regis].AD1.country; // std::cout << "\033[0K\r"; } T1.d_index = 0; // std::cout << "\033[0K\r"; // std::cout << "\033[0K\r"; cout << "\n\n\n\n\tWant to view detail of another patient : (Y/N)"; // std::cout << "\033[0K\r"; cin >> answer1; while (answer1 != 'Y' && answer1 != 'y' && answer1 != 'N' && answer1 != 'n') { std::cout << "\033[0K\r"; cout << "\a\tPease re-enter a correct option (Y/N) ? "; // std::cout << "\033[0K\r"; cin >> answer1; } 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() { cout << "\n\n\n\t\t\t *** PROJECT DETAILS ***\n"; cout << "\n\n\tDeveloper : Kanha Gupta " << "\n"; cout << "\tProgramming Language : C++ " << "\n"; cout << "\tCompiler version : (GCC) 4.8.1 " << "\n"; cout << "\tIDE Used : Visual Studio Code " << "\n"; cout << "\tAim : Simulation of Hospital Management Software" << "\n"; cout << "\n\tHope you like it..." << "\n"; cout << "\n\n\tSend your comments to : https://kanha412.github.io/ " << "\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) { cout << "\n\n\n"; cout << "\tDatabase is 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; std::cout << "\033[0K\r"; cout << "\n\n\t\t ***SEARCH MENU***" << "\n"; std::cout << "\033[0K\r"; cout << "\n\n\t\t 1. Search by city " << "\n"; std::cout << "\033[0K\r"; cout << "\t\t 2. Search by blood group " << "\n"; std::cout << "\033[0K\r"; cout << "\t\t 3. Return to main menu " << "\n"; std::cout << "\033[0K\r"; cout << "\n\n\t Enter your choice : \a"; // std::cout << "\033[0K\r"; cin >> s_choice; cin.get(ch); cout << "\n\n\n"; switch (s_choice) { case 1: { T1.search_index = 1; std::cout << "\033[0K\r"; cout << "\n\n\t\t***SEARCHING BY CITY***\n"; std::cout << "\033[0K\r"; cout << "\n\n\tEnter city : "; // std::cout << "\033[0K\r"; cin.getline(s_city, 30); std::cout << "\033[0K\r"; cout << "\n\n\n"; while (strlen(s_city) == 0) //if enter is pressed before input for city { std::cout << "\033[0K\r"; cout << "\n\tPlease enter a city : \a"; // std::cout << "\033[0K\r"; cin.getline(s_city, 30); } A1.search_city(); break; } case 2: { T1.search_index = 2; std::cout << "\033[0K\r"; cout << "\n\n\t\t***SEARCHING BY BLOOD GROUP***\n"; std::cout << "\033[0K\r"; cout << "\n\n\t\t ***BLOOD GROUP MENU***\n\n"; std::cout << "\033[0K\r"; cout << "\t1. A+ " << "\n"; std::cout << "\033[0K\r"; cout << "\t2. A- " << "\n"; std::cout << "\033[0K\r"; cout << "\t3. B+ " << "\n"; std::cout << "\033[0K\r"; cout << "\t4. B- " << "\n"; std::cout << "\033[0K\r"; cout << "\t5. AB+ " << "\n"; std::cout << "\033[0K\r"; cout << "\t6. AB- " << "\n"; std::cout << "\033[0K\r"; cout << "\t7. O+ " << "\n"; std::cout << "\033[0K\r"; cout << "\t8. O- " << "\n"; std::cout << "\033[0K\r"; cout << "\n\n Enter the serial of your required group : "; // std::cout << "\033[0K\r"; 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: { std::cout << "\033[0K\r"; cout << "\a\n\n Invalid search criteria !!!" << "\n"; std::cout << "\033[0K\r"; cout << " Valid options are 1 and 2 !!!" << "\n"; std::cout << "\033[0K\r"; cout << " Press any key to return to the main searching menu....." << "\n"; // std::cout << "\033[0K\r"; getch(); A1.search_menu(); break; } } //end of switch } //end of function void all::search_city() { T1.search_count = 0; T1.search_number++; 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"; } cout << "\n\t\t " << T1.index << "\t\t" << PI[T1.index].name; // std::cout << "\033[0K\r"; T1.search_count++; } } std::cout << "\033[0K\r"; if (T1.search_number == 1) { cout << "\a\n\n\n\t\t Search is complete !!! " << "\n"; std::cout << "\033[0K\r"; 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) { std::cout << "\033[0K\r"; 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++; 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"; } // std::cout << "\033[0K\r"; cout << "\n\t\t " << T1.index << "\t\t" << PI[T1.index].name; // std::cout << "\033[0K\r"; T1.search_count++; } } std::cout << "\033[0K\r"; if (T1.search_number == 1) { cout << "\a\n\n\n\t\t Search is complete !!! " << "\n"; std::cout << "\033[0K\r"; 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) { std::cout << "\033[0K\r"; 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++; cout << "\n\n"; if (T1.index <= 0) { if (T1.ssi_count == 3) { 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) { 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) { 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 } std::cout << "\033[0K\r"; cout << "\n"; T1.ssi_count = 0; cout << "\n\t ***INFORMATION FOR PATIENT REGISTRATION NUMBER " << T1.index << "***\n\n"; std::cout << "\033[0K\r"; cout << "\tName : " << PI[T1.index].name << "\n"; // std::cout << "\033[0K\r"; cout << "\tSex : "; // std::cout << "\033[0K\r"; if (PI[T1.index].sex == 1) { cout << "Male " << "\n"; // std::cout << "\033[0K\r"; } if (PI[T1.index].sex == 2) { cout << "Female " << "\n"; // std::cout << "\033[0K\r"; } cout << "\tBlood Group : "; // std::cout << "\033[0K\r"; switch (PI[T1.index].bld_group) { case 1: { cout << "A+\n"; break; } case 2: { cout << "A-\n"; break; } case 3: { cout << "B+\n"; break; } case 4: { cout << "B-\n"; break; } case 5: { cout << "AB+\n"; break; } case 6: { cout << "AB-\n"; break; } case 7: { cout << "O+\n"; break; } case 8: { cout << "O-\n"; break; } } //end of switch std::cout << "\033[0K\r"; cout << "\tDate of birth : "; // std::cout << "\033[0K\r"; DOB1.search_show_date(); cout << "\tMartial Status : "; // std::cout << "\033[0K\r"; if (PI[T1.index].martial_status == 1) { cout << "Married " << "\n"; std::cout << "\033[0K\r"; } else { cout << "Single " << "\n"; std::cout << "\033[0K\r"; } cout << "\n\t **ADDRESS**" << "\n"; std::cout << "\033[0K\r"; cout << "\n\tHouse no. : " << PI[T1.index].AD1.house; std::cout << "\033[0K\r"; cout << "\n\tStreet : " << PI[T1.index].AD1.street; std::cout << "\033[0K\r"; cout << "\n\tCity : " << PI[T1.index].AD1.city; std::cout << "\033[0K\r"; cout << "\n\tDistrict : " << PI[T1.index].AD1.dist; std::cout << "\033[0K\r"; cout << "\n\tState : " << PI[T1.index].AD1.state; std::cout << "\033[0K\r"; cout << "\n\tCountry : " << PI[T1.index].AD1.country; 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"; std::cout << "\033[0K\r"; } //end of function void all::after_search_options() { std::cout << "\033[0K\r"; cout << "\n\n\n\n\t\tWHAT DO U WANT TO DO NOW ?" << "\n"; std::cout << "\033[0K\r"; cout << "\t\t1. Search again " << "\n"; std::cout << "\033[0K\r"; cout << "\t\t2. Return to main task menu " << "\n"; std::cout << "\033[0K\r"; cout << "\n\tEnter your choice : "; // std::cout << "\033[0K\r"; // std::cout << "\033[0K\r"; cin >> T1.after_search_choice; std::cout << "\033[0K\r"; 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: { std::cout << "\033[0K\r"; cout << "\a\n\n\tInvalid option requested !!!" << "\n"; std::cout << "\033[0K\r"; cout << "\tPress any key to return to the main searching menu..." << "\n"; // std::cout << "\033[0K\r"; getch(); A1.search_menu(); break; } } //end of switch } //end of function void all::delete_entry() { if (T1.current == 0) { cout << "\n\n\n"; cout << "\tDatabase is 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) { 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) { 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') { std::cout << "\033[0K\r"; cout << "\a\n\tPease re-enter a correct option (Y/N) ? "; // std::cout << "\033[0K\r"; 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(); } } //end of function void all::after_delete_options() { 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() { T1.delete_count = 0; if (T1.serial == 0) { cout << "\n\n\n"; cout << "\tDatabase is 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; 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) { 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(); A1.tasks(); } else { cout << "\n\n\tNo entry has been restored."; cout << "\n\tPress any key to view the recycle bin...\a"; getch(); 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') { std::cout << "\033[0K\r"; cout << "\n\n\tInvalid input !!! "; cout << "\n\tPlease re-enter a correct option (Y/N) : \a"; // std::cout << "\033[0K\r"; 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) { 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) { 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() { 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() { if (T1.serial == 0) { cout << "\n\n\n\n\tYou have not used the software."; cout << "\n\tIt is recommended that you do not exit."; cout << "\n\tPress any key to continue......\a"; getch(); 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') { std::cout << "\033[0K\r"; cout << "\n\n\tInvalid input !!! "; cout << "\n\tPease re-enter a correct option (Y/N) : \a"; // std::cout << "\033[0K\r"; 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 : Kanha Gupta " << "\n"; cout << "\tProgramming Language : C++ " << "\n"; cout << "\tCompiler version : (GCC) 4.8.1 " << "\n"; cout << "\tIDE Used : Visual Studio Code " << "\n"; cout << "\tAim : Simulation of Hospital Management Software" << "\n"; cout << "\n\tHope you like it..." << "\n"; cout << "\n\n\tSend your comments to : https://kanha412.github.io/ " << "\n"; cout << "\n\n\tThank You for trying this program. " << "\n"; cout << "\n\n\n\tPress any key to continue........" << "\n"; getch(); 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') { std::cout << "\033[0K\r"; cout << "\n\n\tInvalid input !!! "; cout << "\n\tPease re-enter a correct option (Y/N) : \a"; // std::cout << "\033[0K\r"; cin >> exit_answer; } if (exit_answer == 'y' || exit_answer == 'Y') { cout << "\a"; exit(0); } else { A1.tasks(); } } //end of function

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue