Untitled
unknown
c_cpp
3 years ago
9.0 kB
3
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <Windows.h> #pragma warning(disable:4996) #define priceperHours 6.00 void addbooking(); void deletebooking(); void displaybooking(); void modifybooking(char *); void calculation(); void searchbooking(); struct bookingDate { int year, month, day; }; struct bookingTime { int hours, minutes, endHours, endMinutes; char time; }; typedef struct booking { char memberID[10]; char facilityID[10]; int priceBooking; struct bookingDate bookDate; struct bookingTime bookTime; }; typedef struct member { booking book; }; member memberArray[100] = {}; member currentMember; FILE* managebook; FILE* memberdata; booking book; void main() { SYSTEMTIME x; GetLocalTime(&x); printf("Date:%2d/%2d/%4d, Time:%d:%d\n\n", x.wDay, x.wMonth, x.wYear, x.wHour, x.wMinute); int choice; int icount = 0; char time; char search, modify; int option; printf("\n**********************************************"); printf("\nBooking System"); printf("\n**********************************************"); printf("\n1. Add Booking"); printf("\n2. Modify Booking"); printf("\n3. Search Booking"); printf("\n4. Delete Booking"); printf("\n5. Exit"); printf("\n**********************************************"); printf("\nPlease enter your option< 1 / 2 / 3 / 4 / 5>: "); scanf("%d", &choice); switch (choice) { case 1: addbooking(); break; case 2: modifybooking(&time); break; case 3: searchbooking(); break; case 4: deletebooking(); break; case 5: exit(-1); break; default: break; } } void displaybooking() { printf("Member ID | Facility ID | Times\t\n"); printf("%5s %11s %12d.%2d to %2d.%2d\n", currentMember.book.memberID, currentMember.book.facilityID, currentMember.book.bookTime.hours, currentMember.book.bookTime.minutes, currentMember.book.bookTime.endHours, currentMember.book.bookTime.endMinutes); } void calculation() { int finalPrice_hours, calculation_price_hours, calculation_price_minutes; float price_per_minutes, finalPrice, finalPrice_minutes; if (currentMember.book.bookTime.hours >= 12 && currentMember.book.bookTime.time == 'P') { currentMember.book.bookTime.hours += 12; } else if (currentMember.book.bookTime.endHours >= 12 && currentMember.book.bookTime.time == 'P') { currentMember.book.bookTime.hours += 12; } if (currentMember.book.bookTime.minutes == 0 || currentMember.book.bookTime.endMinutes == 0) { price_per_minutes = priceperHours / 60; calculation_price_hours = currentMember.book.bookTime.endHours - currentMember.book.bookTime.hours; calculation_price_minutes = currentMember.book.bookTime.endMinutes - currentMember.book.bookTime.minutes; finalPrice_hours = calculation_price_hours * priceperHours; finalPrice_minutes = (float)calculation_price_minutes * price_per_minutes; } else { price_per_minutes = priceperHours / 60; calculation_price_hours = currentMember.book.bookTime.endHours - currentMember.book.bookTime.hours; calculation_price_minutes = currentMember.book.bookTime.endMinutes - currentMember.book.bookTime.minutes; finalPrice_hours =(float) calculation_price_hours * priceperHours; finalPrice_minutes = (float)calculation_price_minutes * price_per_minutes; } finalPrice = (float)finalPrice_hours + finalPrice_minutes; printf("Total Price:%.2f \n", finalPrice); } void addbooking() { static int icount = 0; int add; char time; managebook = fopen("bookingData.bin", "ab"); if (!managebook) { printf("Cannot open the file\n"); } do { printf("The Price of Booking for 1 Facility in 1 Hour is RM5\n"); printf("Enter your Member ID: "); scanf(" %s", ¤tMember.book.memberID); printf("Enter Facility ID: "); scanf(" %s", ¤tMember.book.facilityID); rewind(stdin); printf("Booking Date: "); scanf("%d %d %d", ¤tMember.book.bookDate.day, ¤tMember.book.bookDate.month, ¤tMember.book.bookDate.year); printf("\n"); printf("Booking Time:\n"); printf("AM(A) or PM(P)?: "); scanf(" %c", &time); printf("From (Need to input 00): "); scanf("%2d:%2d", ¤tMember.book.bookTime.hours, ¤tMember.book.bookTime.minutes); printf("To (Need to input 00): "); scanf("%2d:%2d", ¤tMember.book.bookTime.endHours, ¤tMember.book.bookTime.endMinutes); if (time == 'A' && currentMember.book.bookTime.hours >= 12) { printf("Its closed\n"); printf("Please enter again: "); scanf("%2d:%2d", ¤tMember.book.bookTime.hours, ¤tMember.book.bookTime.minutes); printf("To : "); scanf("%2d:%2d", ¤tMember.book.bookTime.endHours, ¤tMember.book.bookTime.endMinutes); } else { calculation(); } displaybooking(); currentMember = memberArray[icount]; icount++; fwrite(¤tMember, sizeof(member), 1, managebook); printf("Do you want to add?No(-1), Yes(1) : "); scanf("%d", &add); } while (add != -1); fclose(managebook); } void modifybooking(char * times) { char askformodify; managebook = fopen("bookingData.bin", "ab"); memberdata = fopen("member.dat", "rb"); if (!managebook) { printf("Cannot open the file\n"); } if (!memberdata) { printf("Cannot open the file\n"); } printf("Do you want to change?Yes (Y), No(N): "); scanf(" %c", &askformodify); if (askformodify == 'N' || askformodify == 'n') { exit(-1); } printf("Enter your member ID: "); scanf(" %s", ¤tMember.book.memberID); while (fread(¤tMember, sizeof(member), 1, managebook) != 0) { for (int i = 0; i < 100; i++) { if (strcmp(currentMember.book.memberID, memberArray[i].book.memberID) == 0) { memberArray[i] = currentMember ; } } } printf("Enter your new details:\n"); printf("FACILITY ID: "); scanf(" %s", currentMember.book.facilityID); printf("Booking Date: "); scanf("%d %d %d", ¤tMember.book.bookDate.day, ¤tMember.book.bookDate.month, ¤tMember.book.bookDate.year); printf("AM(A) or PM(P)?: "); scanf(" %c", ×); printf("From (Need to input 00): "); scanf("%2d:%2d", ¤tMember.book.bookTime.hours, ¤tMember.book.bookTime.minutes); printf("To (Need to input 00): "); scanf("%2d:%2d", ¤tMember.book.bookTime.endHours, ¤tMember.book.bookTime.endMinutes); printf(" Member ID | Facility ID | Times\t\n"); printf("%10s %19s %13d.%2d to %2d.%2d\n", currentMember.book, currentMember.book.facilityID, currentMember.book.bookTime.hours, currentMember.book.bookTime.minutes , currentMember.book.bookTime.endHours, currentMember.book.bookTime.endMinutes); fwrite(¤tMember, sizeof(member), 1, managebook); fclose(managebook); fclose(memberdata); } void searchbooking() { managebook = fopen("bookingData.bin", "ab"); memberdata = fopen("member.dat", "rb"); if (!memberdata) { printf("Cannot open the file\n"); } if (!managebook) { printf("Cannot open the file\n"); } printf("Enter your member ID: "); scanf(" %s", ¤tMember.book.memberID); while (fread(¤tMember, sizeof(member), 1, managebook) != 0) { for (int i = 0; i < 100; i++) { if (strcmp(currentMember.book.memberID, memberArray[i].book.memberID)== 0) { memberArray[i] = currentMember ; printf(" Member ID | Facility ID | Times\t\n"); printf("%10s %19s %13d.%2d to %2d.%2d\n", currentMember.book, currentMember.book.facilityID, currentMember.book.bookTime.hours, currentMember.book.bookTime.minutes , currentMember.book.bookTime.endHours, currentMember.book.bookTime.endMinutes); } } } fclose(managebook); fclose(memberdata); } void deletebooking() { managebook = fopen("bookingData.bin", "ab+"); memberdata = fopen("member.dat", "rb"); if (!memberdata) { printf("Cannot open the file\n"); } if (!managebook) { printf("Cannot open the file\n"); } char askfordelete; printf("If you want to delete(Y = YES)(N = NO): "); scanf(" %c", &askfordelete); printf("Enter your Member ID: "); scanf(" %s", ¤tMember.book.memberID); while (fread(¤tMember, sizeof(member), 1, managebook) != 0) { for (int i = 0; i < 100 - 1; i++) { if (strcmp(currentMember.book.memberID, memberArray[i].book.memberID) == 0) { memberArray[i + 1] = memberArray[i]; memberArray[i + 2] = memberArray[i + 1]; memberArray[i + 3] = memberArray[i + 2]; memberArray[i + 4] = memberArray[i + 3]; memberArray[i + 5] = memberArray[i + 4]; memberArray[i + 6] = memberArray[i + 5]; } } printf("Delete Successfully\n"); } fwrite(¤tMember, sizeof(member), 1, managebook); fclose(managebook); fclose(memberdata); }
Editor is loading...