diff --git a/vendorInfo b/vendorInfo index e14050e..dbe8026 100755 Binary files a/vendorInfo and b/vendorInfo differ diff --git a/vendorInfo.c b/vendorInfo.c index 42cb584..62ce1aa 100644 --- a/vendorInfo.c +++ b/vendorInfo.c @@ -15,7 +15,8 @@ #define MAX_VENDORS 20 #define MAX_FILENAME_LENGTH 4096 -struct vendor_item +/* STRUCTURES */ +struct vendor { char vendor_name[20]; char merchandise[15]; @@ -23,22 +24,35 @@ struct vendor_item int item_price_baht; } vendors[MAX_VENDORS]; -struct purchase_res +struct search_r +{ + int status; + int item_id; +}; + +struct purchase_r { int status; char vendor_name[20]; int price_owe_baht; }; +/* FUNCTION DECLARATION */ int read_input(char str[], int n); -int search(char query[], - struct vendor_item vendors[MAX_VENDORS], - int total_vendors); +struct search_r search +( + char query[], + struct vendor vendors[MAX_VENDORS], + int total_vendors +); -struct purchase_res purchase(int item_id, - int amount, - struct vendor_item vendors[MAX_VENDORS]); +struct purchase_r purchase +( + int item_id, + int amount, + struct vendor vendors[MAX_VENDORS] +); int main() { @@ -120,9 +134,8 @@ int main() user_query[i] = tolower(user_query[i]); }; - int item_id = search(user_query, vendors, total_vendors); - printf("THING: %d\n", item_id); - if(item_id > 0) + struct search_r item = search(user_query, vendors, total_vendors); + if(item.status == 0) { char input[10]; read_input(input, 10); @@ -130,7 +143,7 @@ int main() if(atoi(input) < 0) { int item_amount = atoi(input); - struct purchase_res response = purchase(item_id, item_amount, vendors); + struct purchase_r response = purchase(item.item_id, item_amount, vendors); if (response.status == 0) { @@ -194,28 +207,28 @@ int read_input(char str[], int n) */ /* TO-DO IMPLEMENT RESPONSE STRUCT */ -int search(char query[], struct vendor_item vendors[MAX_VENDORS], int total_vendors) +struct search_r search(char query[], struct vendor vendors[MAX_VENDORS], int total_vendors) { int i; for (i = 0; i < total_vendors; i++) { - printf("Step: %d\n", i); if (strcmp(query, vendors[i].merchandise) == 0) { - printf("\nQuery: %s | Result: %s %s\n", - query, - vendors[i].vendor_name, - vendors[i].merchandise - ); - return i; + struct search_r response; + response.status = 0; + response.item_id = i; + + return (response); break; }; }; if (i == total_vendors) { - printf("THING: %d %d", i, total_vendors); - return 0; + struct search_r response; + response.status = 1; + response.item_id = 0; + return (response); } }; @@ -230,14 +243,14 @@ int search(char query[], struct vendor_item vendors[MAX_VENDORS], int total_vend Return values: - */ -struct purchase_res purchase(int item_id, int amount, struct vendor_item vendors[MAX_VENDORS]) +struct purchase_r purchase(int item_id, int amount, struct vendor vendors[MAX_VENDORS]) { if(amount <= vendors[item_id].inventory_count) { // Decrease vendor inventory vendors[item_id].inventory_count = vendors[item_id].inventory_count - amount; - struct purchase_res response; + struct purchase_r response; response.status = 0; strcpy(response.vendor_name, vendors[item_id].vendor_name); @@ -247,7 +260,7 @@ struct purchase_res purchase(int item_id, int amount, struct vendor_item vendors } else { - struct purchase_res response; + struct purchase_r response; response.status = 1; return response;