// Pantea Aria // main.c // Program to test logistics hub system functions #include #include #include "package_delivery_system.h" int main(void) { // STAGE 1 printf("*****1. Creating Hub A...*****\n"); struct delivery_centre *hub_a = create_centre("Hub A"); printf("\n*****2. Number of parcels in Empty Hub A:*****\n"); printf("%d\n", count_packages(hub_a)); printf("\n*****3. Printing Empty Hub A...*****\n"); print_packages(hub_a); printf("\n*****4. Inserting parcels in Empty Hub A *****\n"); insert_package_at_head(hub_a, "Liam", "Noah", 8.5, URGENT, PENDING); insert_package_at_head(hub_a, "Olivia", "Ava", 12.3, EXPRESS, IN_TRANSIT); insert_package_at_head(hub_a, "Emma", "Mia", 6.7, STANDARD, DELIVERED); insert_package_at_head(hub_a, "Sophia", "Lucas", 9.1, EXPRESS, DELIVERED); insert_package_at_head(hub_a, "Isabella", "Ethan", 11.0, STANDARD, IN_TRANSIT); printf("\n*****5. Printing Hub A...*****\n"); print_packages(hub_a); printf("\n*****6. Number of parcels in Hub A: *****\n"); printf("%d\n", count_packages(hub_a)); printf("\n*****7. Look for parcel with receiver 'Noah'...*****\n"); struct package *parcel_found = search_package(hub_a, "Noah"); printf("\n*****8. Printing parcel found in Hub A ...*****\n"); print_single_package(parcel_found); printf("\n*****9. Look for parcel with receiver 'Lucas'...*****\n"); parcel_found = search_package(hub_a, "Lucas"); printf("\n*****10. Printing parcel found in Hub A ...*****\n"); print_single_package(parcel_found); printf("\n*****11. Look for parcel with receiver 'Ethan'...*****\n"); parcel_found = search_package(hub_a, "Ethan"); printf("\n*****12. Printing parcel found in Hub A ...*****\n"); print_single_package(parcel_found); printf("\n*****13. Look for parcel with receiver 'Zoe'...*****\n"); parcel_found = search_package(hub_a, "Zoe"); printf("\n*****14. Printing parcel found in Hub A ...*****\n"); print_single_package(parcel_found); printf("\n*****15. Creating Hub B... and inserting parcels...*****\n"); struct delivery_centre *hub_b = create_centre("Hub B"); insert_package_at_head(hub_b, "Mason", "Chloe", 4.2, STANDARD, DELIVERED); insert_package_at_head(hub_b, "Harper", "Ella", 7.8, URGENT, PENDING); insert_package_at_head(hub_b, "Evelyn", "James", 14.5, EXPRESS, DELIVERED); insert_package_at_head(hub_b, "Logan", "Amelia", 5.0, STANDARD, PENDING); insert_package_at_head(hub_b, "Benjamin", "Charlotte", 10.6, STANDARD, PENDING); insert_package_at_head(hub_b, "Elijah", "Henry", 13.2, EXPRESS, IN_TRANSIT); printf("\n*****16. Printing Hub B...*****\n"); print_packages(hub_b); // STAGE 2 //printf("\n*****17. Deleting STANDARD parcels from Hub B...*****\n"); //delete_package_of_priority(hub_b, STANDARD); //printf("\n*****18. Printing Hub B...*****\n"); //print_packages(hub_b); /* printf("\n*****19. Merging Hub A and Hub B...*****\n"); struct delivery_centre *merged_hub = merge_centres("Merged Hub", hub_a, hub_b); printf("\n*****20. Printing merged hub...*****\n"); print_packages(merged_hub); printf("\n*****21. Split merged hub into pending, in_transit, delivered...*****\n"); struct delivery_centre *pending = create_centre("pending"); struct delivery_centre *in_transit = create_centre("in_transit"); struct delivery_centre *delivered = create_centre("delivered"); split_centre(merged_hub, pending, in_transit, delivered); printf("\n*****22. Printing pending...*****\n"); print_packages(pending); printf("\n*****23. Printing in_transit...*****\n"); print_packages(in_transit); printf("\n*****24. Printing delivered...*****\n"); print_packages(delivered); */ // STAGE 1 cleanup printf("\n*****Clearing stage 1 hubs hub_a and hub_b...*****\n"); clear_centre(hub_a); clear_centre(hub_b); return 0; }