From d2bc1575e6c83183dd99aba9eba79d725a22b5dc Mon Sep 17 00:00:00 2001 From: stmctommyau Date: Thu, 14 Sep 2023 23:58:28 +0800 Subject: [PATCH] some fix, string compression, ui fix --- inv_control.h | 6 ++++-- normal_user.h | 9 ++++++--- role_control.h | 4 ++-- user_control.h | 4 ++-- utils.h | 10 ++++++++++ 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/inv_control.h b/inv_control.h index 0127d11..f52eec3 100644 --- a/inv_control.h +++ b/inv_control.h @@ -73,13 +73,15 @@ void * show_item(void * ddb,int index){ void print_page(void * ddb, int cur, int end,struct Map* map){ struct inventory db = *((struct inventory*)ddb); + printf("%-5s%-15s%-15s%-10s%-10s%-10s%-10s\n","No.","Product","Brand","Category","Price","Stock","Barcode"); for (int i = cur; i < end; i++) { if(map != NULL){ - printf("%d item %d: %s\n", i + 9,i, db.row[map[i].key].product); + int index = map[i].key; + printf("%-5d%-15s%-15s%-10s%-10.2lf%-10d%-10ld\n",i+9,StringCompression(db.row[index].product,13),StringCompression(db.row[index].brand,13),StringCompression(db.row[index].category,8),db.row[index].price,db.row[index].stock,db.row[index].barcode); } else{ - printf("%d item %d: %s\n", i + 9,i, db.row[i].product); + printf("%-5d%-15s%-15s%-10s%-10.2lf%-10d%-10ld\n",i+9,StringCompression(db.row[i].product,13),StringCompression(db.row[i].brand,13),StringCompression(db.row[i].category,8),db.row[i].price,db.row[i].stock,db.row[i].barcode); } } } diff --git a/normal_user.h b/normal_user.h index 26094cf..15f2433 100644 --- a/normal_user.h +++ b/normal_user.h @@ -318,7 +318,7 @@ struct cart* scan_barcode(struct cart* cart,struct inventory db){ long prompt_barcode(){ - printf("Please scan the qr code(or input the barcode ) "); + printf("Please scan the qr code(or input the barcode) "); long barcode; fflush_stdin(); scanf("%ld", &barcode); @@ -369,6 +369,7 @@ struct cart* list_cart(struct cart* cart){ printf("<------------------------>\n"); printf("\n%d CHECKOUT\n",i); + printf("Clear Cart\n",i+1); } do{ printf("input the corresponding value for more action\n>"); @@ -378,9 +379,11 @@ struct cart* list_cart(struct cart* cart){ cart = cart_control(cart,choice); }else if(choice == i && cart != NULL){ cart = checkout(cart); - + }else if(choice == i+1 && cart != NULL){ + cart = NULL; + printf("Cart cleared\n"); } - }while(choice <0 || choice > i); + }while(choice <0 || choice > i+1); }while(choice != 0); return cart; } diff --git a/role_control.h b/role_control.h index 858608b..f315086 100644 --- a/role_control.h +++ b/role_control.h @@ -62,13 +62,13 @@ void print_role(struct linkedlist* list,int cur,int end,struct Map* map){ for(int i = cur; i < end; i++){ list = getLinkedList(list,i); char* name = list->data; - printf("%-10d%-10s%-10s\n",i-cur + 5,name,is_admin(name)?"T":"F"); + printf("%-10d%-10s%-10s\n",i-cur + 5,StringCompression(name,8),is_admin(name)?"T":"F"); } }else{ for(int i = cur; i < end; i++){ list = getLinkedList(list,map[i].key); char* name = list->data; - printf("%-10d%-10s%-10s\n",i-cur + 5,name,is_admin(name)?"T":"F"); + printf("%-10d%-10s%-10s\n",i-cur + 5,StringCompression(name,8),is_admin(name)?"T":"F"); } } } diff --git a/user_control.h b/user_control.h index 18f2dc3..2f1ce93 100644 --- a/user_control.h +++ b/user_control.h @@ -146,11 +146,11 @@ void print_user(void * ddb, int cur, int end,struct Map* map){ if(map == NULL){ bool isadmin = is_admin(db.row[i].role); // printf("isadmin%s\n",db.row[i].id); - printf("%-5d%-20s%-10ld%-10s%-10c\n",i+7,db.row[i].name,db.row[i].id,db.row[i].role,isadmin?'Y':'N'); + printf("%-5d%-20s%-10ld%-10s%-10c\n",i+7,StringCompression(db.row[i].name,18),db.row[i].id,StringCompression(db.row[i].role,8),isadmin?'Y':'N'); }else{ int index = map[i].key; bool isadmin = is_admin(db.row[index].role); - printf("%-5d%-20s%-10ld%-10s%-10c\n",i+7,db.row[index].name,db.row[index].id,db.row[index].role,isadmin?'Y':'N'); + printf("%-5d%-20s%-10ld%-10s%-10c\n",i+7,StringCompression(db.row[index].name,18),db.row[index].id,StringCompression(db.row[index].role,8),isadmin?'Y':'N'); } } } diff --git a/utils.h b/utils.h index fa8c073..483ddf8 100644 --- a/utils.h +++ b/utils.h @@ -182,6 +182,16 @@ void lister(void * db,struct Map* map, int row,char * lister_name,char * SortIte }while(choice != 0); return; } +//Size to be compressed to, > 3(...), should be some larger number else seeing nothing +char * StringCompression(char * str, int size){ + if(strlen(str) > size){ + str[size-3] = '.'; + str[size-2] = '.'; + str[size-1] = '.'; + str[size] = '\0'; + } + return str; +}