modified purchase function
This commit is contained in:
parent
76c22938c1
commit
2944612155
BIN
vendorInfo
BIN
vendorInfo
Binary file not shown.
63
vendorInfo.c
63
vendorInfo.c
|
@ -15,7 +15,8 @@
|
||||||
#define MAX_VENDORS 20
|
#define MAX_VENDORS 20
|
||||||
#define MAX_FILENAME_LENGTH 4096
|
#define MAX_FILENAME_LENGTH 4096
|
||||||
|
|
||||||
struct vendor_item
|
/* STRUCTURES */
|
||||||
|
struct vendor
|
||||||
{
|
{
|
||||||
char vendor_name[20];
|
char vendor_name[20];
|
||||||
char merchandise[15];
|
char merchandise[15];
|
||||||
|
@ -23,22 +24,35 @@ struct vendor_item
|
||||||
int item_price_baht;
|
int item_price_baht;
|
||||||
} vendors[MAX_VENDORS];
|
} vendors[MAX_VENDORS];
|
||||||
|
|
||||||
struct purchase_res
|
struct search_r
|
||||||
|
{
|
||||||
|
int status;
|
||||||
|
int item_id;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct purchase_r
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
char vendor_name[20];
|
char vendor_name[20];
|
||||||
int price_owe_baht;
|
int price_owe_baht;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* FUNCTION DECLARATION */
|
||||||
int read_input(char str[], int n);
|
int read_input(char str[], int n);
|
||||||
|
|
||||||
int search(char query[],
|
struct search_r search
|
||||||
struct vendor_item vendors[MAX_VENDORS],
|
(
|
||||||
int total_vendors);
|
char query[],
|
||||||
|
struct vendor vendors[MAX_VENDORS],
|
||||||
|
int total_vendors
|
||||||
|
);
|
||||||
|
|
||||||
struct purchase_res purchase(int item_id,
|
struct purchase_r purchase
|
||||||
int amount,
|
(
|
||||||
struct vendor_item vendors[MAX_VENDORS]);
|
int item_id,
|
||||||
|
int amount,
|
||||||
|
struct vendor vendors[MAX_VENDORS]
|
||||||
|
);
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
@ -120,9 +134,8 @@ int main()
|
||||||
user_query[i] = tolower(user_query[i]);
|
user_query[i] = tolower(user_query[i]);
|
||||||
};
|
};
|
||||||
|
|
||||||
int item_id = search(user_query, vendors, total_vendors);
|
struct search_r item = search(user_query, vendors, total_vendors);
|
||||||
printf("THING: %d\n", item_id);
|
if(item.status == 0)
|
||||||
if(item_id > 0)
|
|
||||||
{
|
{
|
||||||
char input[10];
|
char input[10];
|
||||||
read_input(input, 10);
|
read_input(input, 10);
|
||||||
|
@ -130,7 +143,7 @@ int main()
|
||||||
if(atoi(input) < 0)
|
if(atoi(input) < 0)
|
||||||
{
|
{
|
||||||
int item_amount = atoi(input);
|
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)
|
if (response.status == 0)
|
||||||
{
|
{
|
||||||
|
@ -194,28 +207,28 @@ int read_input(char str[], int n)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* TO-DO IMPLEMENT RESPONSE STRUCT */
|
/* 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;
|
int i;
|
||||||
for (i = 0; i < total_vendors; i++)
|
for (i = 0; i < total_vendors; i++)
|
||||||
{
|
{
|
||||||
printf("Step: %d\n", i);
|
|
||||||
if (strcmp(query, vendors[i].merchandise) == 0)
|
if (strcmp(query, vendors[i].merchandise) == 0)
|
||||||
{
|
{
|
||||||
printf("\nQuery: %s | Result: %s %s\n",
|
struct search_r response;
|
||||||
query,
|
response.status = 0;
|
||||||
vendors[i].vendor_name,
|
response.item_id = i;
|
||||||
vendors[i].merchandise
|
|
||||||
);
|
return (response);
|
||||||
return i;
|
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (i == total_vendors)
|
if (i == total_vendors)
|
||||||
{
|
{
|
||||||
printf("THING: %d %d", i, total_vendors);
|
struct search_r response;
|
||||||
return 0;
|
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:
|
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)
|
if(amount <= vendors[item_id].inventory_count)
|
||||||
{
|
{
|
||||||
// Decrease vendor inventory
|
// Decrease vendor inventory
|
||||||
vendors[item_id].inventory_count = vendors[item_id].inventory_count - amount;
|
vendors[item_id].inventory_count = vendors[item_id].inventory_count - amount;
|
||||||
|
|
||||||
struct purchase_res response;
|
struct purchase_r response;
|
||||||
|
|
||||||
response.status = 0;
|
response.status = 0;
|
||||||
strcpy(response.vendor_name, vendors[item_id].vendor_name);
|
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
|
else
|
||||||
{
|
{
|
||||||
struct purchase_res response;
|
struct purchase_r response;
|
||||||
response.status = 1;
|
response.status = 1;
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
|
|
Loading…
Reference in New Issue