online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #pragma warning (disable:4996) #define MAX 20 typedef struct { char companyName[41], personInCharge[41], gender, contactNum[13]; float temperature; int infectionLevel; }Company; typedef struct { int hours, minute; }Time; typedef struct { int day, month, year; }Date; struct SanitizeData { char venueID[10]; Company Details; Time Start; Time End; Date sanitizeDate; }; int infectionLevelCheck() { char userResponse; int infectionLevel; int invalidCounter; do { invalidCounter = 0; infectionLevel = 0; printf("\n\nRisk Of Infection Check: \n"); printf("-----------------------\n"); printf("Are you having the 2 or more of the following symptoms listed?\n"); printf("- Fever\n"); printf("- Sore Throat\n"); printf("- Runny Nose\n"); printf("- Diarrhea\n"); printf("- Headache\n"); printf("- Body Ache\n"); printf("(Y = Yes, N = No): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) != 'Y' && toupper(userResponse) != 'N') { invalidCounter++; } else if (toupper(userResponse) == 'Y') { infectionLevel++; } printf("\n\nBesides the Symptoms listed above, are you having the following symptoms: \n"); printf("- Cough\n"); printf("- Difficulty breathing\n"); printf("- Loss of smell\n"); printf("- Loss of taste\n"); printf("(Y = Yes, N = No): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) != 'Y' && toupper(userResponse) != 'N') { invalidCounter++; } else if (toupper(userResponse) == 'Y') { infectionLevel += 4; } printf("\n\nHave you travelled to any country outside Malaysia\nwithin the past 14 days?\n"); printf("(Y = Yes, N = No): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) != 'Y' && toupper(userResponse) != 'N') { invalidCounter++; } else if (toupper(userResponse) == 'Y') { infectionLevel += 2; } printf("\n\nHave you had closed contact with anyone who \nconfirmed or suspected case of COVID 19 within the 14 days?"); printf("(Y = Yes, N = No): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) != 'Y' && toupper(userResponse) != 'N') { invalidCounter++; } else if (toupper(userResponse) == 'Y') { infectionLevel += 4; } if (invalidCounter > 0) { printf("\n- Error Found: Invalid Response Entered - \n\n"); } } while (invalidCounter != 0); return infectionLevel; } void tableHeader() { printf("------------------------------------------------------------------------------------------------------------------------\n"); printf("| Venue | Sanitization | Ending | Company | Person | Gender | Contact | Temperature | Infection |\n"); printf("| ID | Time | Time | In-Charge | In-Charge | | | | Risk |\n"); printf("|-------|------------------|----------|---------------|-------------|--------|--------------|-------------|------------|\n"); } void tableFooter(int i, int emptyRecord) { printf("------------------------------------------------------------------------------------------------------------------------\n"); if (emptyRecord == MAX) { printf("No Such Record Found\n"); } else { printf("%d Record Found\n", i); } } void addRecord() { struct SanitizeData newData; FILE* addPtr; char userResponse; int validate, invalidCounter, counter = 0, infectionlevel = 0; addPtr = fopen("Sanitization Record.dat", "ab"); if (addPtr == NULL) { printf("Unable to open Sanitization Record.dat\n"); exit(-1); } else { do { system("cls"); do { invalidCounter = 0; printf("Add Sanitization Record\n"); printf("-----------------------\n"); printf("Enter Venue ID: "); scanf("%s", &newData.venueID); rewind(stdin); printf("Enter Sanitized Date in [DD/MM/YYYY Format Eg: 19/02/2021] : "); validate = scanf("%d/%d/%d", &newData.sanitizeDate.day, &newData.sanitizeDate.month, &newData.sanitizeDate.year); rewind(stdin); printf("Enter Sanitized Time in [HH:MM Format Eg: 12:51] - \n"); printf("Starting: "); validate = scanf("%d:%d", &newData.Start.hours, &newData.Start.minute); rewind(stdin); printf("Ending: "); validate = scanf("%d:%d", &newData.End.hours, &newData.End.minute); rewind(stdin); printf("Enter Santizie Handling Company Details: \n"); printf("Company Name: "); scanf("%[^\n]", &newData.Details.companyName); rewind(stdin); printf("Person In-Charge Name: "); scanf("%[^\n]", &newData.Details.personInCharge); rewind(stdin); printf("Person In-Charge Gender: "); scanf("%c", &newData.Details.gender); rewind(stdin); printf("Person In-Charge Contact Numer: "); scanf("%s", &newData.Details.contactNum); rewind(stdin); printf("Person In-Charge Temperature: "); validate = scanf("%f", &newData.Details.temperature); rewind(stdin); newData.Details.infectionLevel = infectionLevelCheck(); if (newData.Details.temperature > 37.8) newData.Details.infectionLevel++; if (validate == 0 || newData.sanitizeDate.day < 1 || newData.sanitizeDate.day > 31 || newData.sanitizeDate.month > 12 || newData.sanitizeDate.month < 1 || newData.Start.hours > 24 || newData.Start.hours < 1 || newData.Start.minute > 60 || newData.Start.minute < 1 || newData.End.hours > 24 || newData.End.hours < 1 || newData.End.minute > 60 || newData.End.minute < 1 || toupper(newData.Details.gender) != 'M' && toupper(newData.Details.gender) != 'F') { if (newData.sanitizeDate.day < 1 || newData.sanitizeDate.day > 31 || newData.sanitizeDate.month > 12 || newData.sanitizeDate.month < 1) { printf("- Error Found: Invalid Month or Days Entered. -\n"); } if (newData.Start.hours > 24 || newData.Start.hours < 1 || newData.Start.minute > 60 || newData.Start.minute < 1) { printf("- Error Found: Invalid Starting Hours or Minutes Entered. - \n"); } if (newData.End.hours > 24 || newData.End.hours < 1 || newData.End.minute > 60 || newData.End.minute < 1) { printf("- Error Found: Invalid Ending Hours or Minutes Entered. - \n"); } if (toupper(newData.Details.gender) != 'M' || toupper(newData.Details.gender) != 'F') { printf("- Error Found: Invalid Gender Entered. -\n"); } if (validate == 0) { printf("- Error Found: Kindly Enter Valid Input Only. - \n"); } invalidCounter++; system("pause"); system("cls"); } else { fwrite(&newData, sizeof(newData), 1, addPtr); counter++; } } while (invalidCounter != 0); printf("Add Another Record? (N = No): "); scanf("%c", &userResponse); rewind(stdin); } while (toupper(userResponse) != 'N'); printf("%d Record Added.....\n", counter); fclose(addPtr); } } void searchVenueID() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; int counter = 0; char venueID[10]; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Venue ID to Search: "); scanf("%s", &venueID); tableHeader(); for (int i = 0; i < 20; i++) { if (strcmp(venueID, data[i].venueID) == 0) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchDate() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; int counter = 0; int day, month, year; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Date to Search [Format: 19/02/2021] : "); scanf("%d/%d/%d", &day, &month, &year); tableHeader(); for (i = 0; i < 20; i++) { if (day == data[i].sanitizeDate.day && month == data[i].sanitizeDate.month && year == data[i].sanitizeDate.year) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchCompany() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; char companyName[41]; int counter = 0; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Company Name to Search: "); scanf("%[^\n]", &companyName); tableHeader(); for (i = 0; i < 20; i++) { if (strcmp(companyName, data[i].Details.companyName) == 0) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchName() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; char personInCharge[41]; int counter = 0; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Person In-Charge Name to Search: "); scanf("%[^\n]", &personInCharge); tableHeader(); for (i = 0; i < 20; i++) { if (strcmp(personInCharge, data[i].Details.personInCharge) == 0) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchContactNumber() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; char contactNum[13]; int counter = 0; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Contact Number to Search [Format: 010-2012687]: "); scanf("%s", &contactNum); tableHeader(); for (i = 0; i < 20; i++) { if (strcmp(contactNum, data[i].Details.contactNum) == 0) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchGender() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; char gender; int counter = 0; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Person In-Charge Gender to Search [F = Female, M = Male]: "); scanf("%c", &gender); tableHeader(); for (i = 0; i < 20; i++) { if (gender == data[i].Details.gender) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchTemperature() { struct SanitizeData data[20]; FILE* searchPtr; int i = 0, emptyRecord = 0; float temperature; int counter = 0; searchPtr = fopen("Sanitization Record.dat", "rb"); if (searchPtr == NULL) { printf("Unable to open Santization Record.dat\n"); exit(-1); } while (fread(&data[i], sizeof(data), 1, searchPtr) != 0) { i++; } printf("Enter Temperature To Search [Eg: 36.6]: "); scanf("%f", &temperature); tableHeader(); for (i = 0; i < 20; i++) { if (temperature == data[i].Details.temperature) { counter++; printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data[i].venueID, data[i].sanitizeDate.day, data[i].sanitizeDate.month, data[i].sanitizeDate.year, data[i].Start.hours, data[i].Start.minute, data[i].End.hours, data[i].End.minute, data[i].Details.companyName, data[i].Details.personInCharge); switch (toupper(data[i].Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data[i].Details.contactNum, data[i].Details.temperature); if (data[i].Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data[i].Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data[i].Details.infectionLevel >= 4) { printf(" High Risk |\n"); } } else { emptyRecord++; } } tableFooter(counter, emptyRecord); fclose(searchPtr); } void searchRecord() { int selection, invalidCounter; char userResponse; do { system("cls"); do { invalidCounter = 0; printf("Search Record Based On Following Criteria: \n"); printf("1. Venue ID\n"); printf("2. Sanitization Date\n"); printf("3. Company Name\n"); printf("4. Person In-Charge\n"); printf("5. Contact Number\n"); printf("6. Gender\n"); printf("7. Temperature\n"); printf("8. Back to Sanitize Menu\n"); printf("Enter Your Choice > "); scanf("%d", &selection); if (selection < 1 || selection > 8) { invalidCounter++; printf("- Error Found: Enter 1 - 8 ONLY - \n"); system("pause"); system("cls"); } } while (invalidCounter != 0); switch (selection) { case 1: searchVenueID(); break; case 2: searchDate(); break; case 3: searchCompany(); break; case 4: searchName(); break; case 5: searchContactNumber(); break; case 6: searchGender(); break; case 7: searchTemperature(); case 8: sanitizeMenu(); break; } printf("Anymore to Search? (N = No): "); scanf("%c", &userResponse); rewind(stdin); } while (toupper(userResponse) != 'N'); } void modifyRecord() { struct SanitizeData data; struct SanitizeData modify[20]; FILE* modifyPtr; int i = 0, counter = 0, validate, invalidCounter, emptyRecord = 0, modifyCounter = 0; char venueID[10], userResponse; modifyPtr = fopen("Sanitization Record.dat", "rb"); if (modifyPtr == NULL) { printf("Unable to open Sanitization Record.dat\n"); exit(-1); } while (fread(&data, sizeof(data), 1, modifyPtr) != 0) { modify[modifyCounter] = data; modifyCounter++; } modifyPtr = fopen("Sanitization Record.dat", "wb"); if (modifyPtr == NULL) { printf("Unable to open Sanitization Record.dat\n"); exit(-1); } do { system("cls"); printf("Modify Sanitize Record\n"); printf("----------------------\n\n"); printf("Enter Venue ID To Modify: "); scanf("%s", &venueID); rewind(stdin); for (i = 0; i < modifyCounter; i++) { if (strcmp(venueID, modify[i].venueID) == 0) { printf("Venue ID : %s\n", modify[i].venueID); printf("Sanitization Date : %02d-%02d-%4d\n", modify[i].sanitizeDate.day, modify[i].sanitizeDate.month, modify[i].sanitizeDate.year); printf("Starting Time : %02d:%02d\n", modify[i].Start.hours, modify[i].Start.minute); printf("Ending Time : %02d:%02d\n", modify[i].End.hours, modify[i].End.minute); printf("Sanitized Company Name : %s\n", modify[i].Details.companyName); printf("Person In-Charge Name : %s\n", modify[i].Details.personInCharge); printf("Person In-Charge Gender : %c\n", modify[i].Details.gender); printf("Person In-Charge Contact Number: %s\n", modify[i].Details.contactNum); printf("Person In-Charge Temperature : %.2f\n\n", modify[i].Details.temperature); printf("Sure to Modify? (Y = Yes): "); scanf("%c", &userResponse); if (toupper(userResponse) == 'Y') { counter++; do { invalidCounter = 0; printf("Enter Sanitized Date in [DD/MM/YYYY Format Eg: 19/02/2021] : "); validate = scanf("%d/%d/%d", &modify[i].sanitizeDate.day, &modify[i].sanitizeDate.month, &modify[i].sanitizeDate.year); rewind(stdin); printf("Enter Sanitized Time in [HH:MM Format Eg: 12:51] - \n"); printf("Starting: "); validate = scanf("%d:%d", &modify[i].Start.hours, &modify[i].Start.minute); rewind(stdin); printf("Ending: "); validate = scanf("%d:%d", &modify[i].End.hours, &modify[i].End.minute); rewind(stdin); printf("Enter Santizie Handling Company Details: \n"); printf("Company Name: "); scanf("%[^\n]", &modify[i].Details.companyName); rewind(stdin); printf("Person In-Charge Name: "); scanf("%[^\n]", &modify[i].Details.personInCharge); rewind(stdin); printf("Person In-Charge Gender: "); scanf("%c", &modify[i].Details.gender); rewind(stdin); printf("Person In-Charge Contact Numer: "); scanf("%s", &modify[i].Details.contactNum); rewind(stdin); printf("Person In-Charge Temperature: "); validate = scanf("%f", &modify[i].Details.temperature); rewind(stdin); modify[i].Details.infectionLevel = infectionLevelCheck(); if (modify[i].Details.temperature > 37.8) modify[i].Details.infectionLevel++; if (validate == 0 || modify[i].sanitizeDate.day < 1 || modify[i].sanitizeDate.day > 31 || modify[i].sanitizeDate.month > 12 || modify[i].sanitizeDate.month < 1 || modify[i].Start.hours > 24 || modify[i].Start.hours < 1 || modify[i].Start.minute > 60 || modify[i].Start.minute < 1 || modify[i].End.hours > 24 || modify[i].End.hours < 1 || modify[i].End.minute > 60 || modify[i].End.minute < 1 || toupper(modify[i].Details.gender) != 'M' && toupper(modify[i].Details.gender) != 'F') { if (modify[i].sanitizeDate.day < 1 || modify[i].sanitizeDate.day > 31 || modify[i].sanitizeDate.month > 12 || modify[i].sanitizeDate.month < 1) { printf("- Error Found: Invalid Month or Days Entered. -\n"); } if (modify[i].Start.hours > 24 || modify[i].Start.hours < 1 || modify[i].Start.minute > 60 || modify[i].Start.minute < 1) { printf("- Error Found: Invalid Starting Hours or Minutes Entered. - \n"); } if (modify[i].End.hours > 24 || modify[i].End.hours < 1 || modify[i].End.minute > 60 || modify[i].End.minute < 1) { printf("- Error Found: Invalid Ending Hours or Minutes Entered. - \n"); } if (toupper(modify[i].Details.gender) != 'M' || toupper(modify[i].Details.gender) != 'F') { printf("- Error Found: Invalid Gender Entered. -\n"); } if (validate == 0) { printf("- Error Found: Kindly Enter Valid Input Only. - \n"); } invalidCounter++; system("pause"); system("cls"); } } while (invalidCounter != 0); } else { break; } fwrite(&modify[i], sizeof(data), 1, modifyPtr); } else { emptyRecord++; } } if (emptyRecord == 20) { printf("No Record Found\n"); } printf("Continue Modify Record? (N = No): "); scanf("%c", &userResponse); } while (userResponse != 'N'); printf("%d Record Modified\n", counter); fclose(modifyPtr); } void displayRecord() { struct SanitizeData data; FILE* displayPtr; int i = 0; displayPtr = fopen("Sanitization Record.dat", "rb"); if (displayPtr == NULL) { printf("Unable to open Sanitization Record.dat\n"); exit(-1); } system("cls"); printf("Display All Sanitization Record\n"); printf("-------------------------------\n"); tableHeader(); while (fread(&data, sizeof(data), 1, displayPtr) != 0) { printf("| %-5s | %02d-%02d-%4d %02d:%02d | %02d:%02d | %-13s | %-11s | ", data.venueID, data.sanitizeDate.day, data.sanitizeDate.month, data.sanitizeDate.year, data.Start.hours, data.Start.minute, data.End.hours, data.End.minute, data.Details.companyName, data.Details.personInCharge); switch (toupper(data.Details.gender)) { case 'F': printf("Female "); break; case 'M': printf(" Male "); break; } printf("| %-12s | %.2f | ", data.Details.contactNum, data.Details.temperature); if (data.Details.infectionLevel <= 1) { printf(" Low Risk |\n"); } else if (data.Details.infectionLevel <= 3) { printf(" Mid Risk |\n"); } else if (data.Details.infectionLevel >= 4) { printf(" High Risk |\n"); } i++; } printf("------------------------------------------------------------------------------------------------------------------------\n"); printf("%d Record Found\n", i); fclose(displayPtr); } void deleteRecord() { struct SanitizeData data; struct SanitizeData delData[20]; FILE* deletePtr; int i = 0, delCount = 0, position, emptyRecord = 0; char userResponse; char venueID[10]; deletePtr = fopen("Sanitization Record.dat", "rb"); if (deletePtr == NULL) { printf("Unable to open Sanitization.dat\n"); exit(-1); } else { while (fread(&data, sizeof(data), 1, deletePtr) != 0) { delData[i] = data; i++; delCount++; } } fclose(deletePtr); deletePtr = fopen("Sanitization Record.dat", "wb"); if(deletePtr == NULL) { printf("Unable to open Sanitization.dat\n"); exit(-1); } else { do { printf("Delete Record Based On: "); printf("1. Venue ID\n"); printf("Enter Venue ID: "); scanf("%s", venueID); rewind(stdin); for (i = 0; i < delCount; i++) { if (strcmp(venueID, delData[i].venueID) == 0) { printf("Venue ID : %s\n", delData[i].venueID); printf("Sanitization Date : %02d-%02d-%4d\n", delData[i].sanitizeDate.day, delData[i].sanitizeDate.month, delData[i].sanitizeDate.year); printf("Starting Time : %02d:%02d\n", delData[i].Start.hours, delData[i].Start.minute); printf("Ending Time : %02d:%02d\n", delData[i].End.hours, delData[i].End.minute); printf("Sanitized Company Name : %s\n", delData[i].Details.companyName); printf("Person In-Charge Name : %s\n", delData[i].Details.personInCharge); printf("Person In-Charge Gender : %c\n", delData[i].Details.gender); printf("Person In-Charge Contact Number: %s\n", delData[i].Details.contactNum); printf("Person In-Charge Temperature : %.2f\n\n", delData[i].Details.temperature); position = i; printf("Confirm to Delete? (Y = Yes): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) == 'Y') { for (i = position; i < delCount; i++) { delData[i] = delData[i + 1]; } } } else { emptyRecord++; } } if (emptyRecord == 20) { printf("-Error Found: No Record - \n"); } printf("Anymore to Delete? (Y = Yes): "); scanf("%c", &userResponse); rewind(stdin); if (toupper(userResponse) == 'N') { for (int i = 0; i < delCount--; i++) { fwrite(&delData[i], sizeof(delData[i]), 1, deletePtr); } } } while (toupper(userResponse) != 'N'); } fclose(deletePtr); } void sanitizeMenu() { int validate, invalidCounter, selection; char userResponse; do { system("cls"); do { invalidCounter = 0; printf(" Sanitization Record Module\n"); printf("-------------------------------------\n"); printf(" MENU\n"); printf("[1] - Add Sanitization Record\n"); printf("[2] - Search Sanitization Record\n"); printf("[3] - Modify Sanitization Record\n"); printf("[4] - Display Sanitization Record\n"); printf("[5] - Delete Sanitization Record\n"); printf("[6] - Record \n"); printf("[7] - Quit This Menu\n"); printf("[8] - Exit The Program\n\n"); printf("Enter Your Selection: "); validate = scanf("%d", &selection); rewind(stdin); if (selection < 1 || selection > 8 || validate == 0) { invalidCounter++; printf("- Error Found: Please Enter 1 - 7 Only -\n"); system("pause"); system("cls"); } } while (invalidCounter != 0); switch (selection) { case 1: addRecord(); break; case 2: searchRecord(); break; case 3: modifyRecord(); break; case 4: displayRecord(); break; case 5: deleteRecord(); break; case 6: menu(); break; case 7: footer(); exit(0); } printf("Back to Sanitize Menu? (N = No): "); rewind(stdin); scanf("%c", &userResponse); rewind(stdin); } while (toupper(userResponse) != 'N'); }

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