some fix, string compression, ui fix

This commit is contained in:
stmctommyau 2023-09-14 23:58:28 +08:00
parent 87840349db
commit d2bc1575e6
No known key found for this signature in database
GPG Key ID: 87B1991E1277F054
5 changed files with 24 additions and 9 deletions

View File

@ -73,13 +73,15 @@ void * show_item(void * ddb,int index){
void print_page(void * ddb, int cur, int end,struct Map* map){ void print_page(void * ddb, int cur, int end,struct Map* map){
struct inventory db = *((struct inventory*)ddb); 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++) for (int i = cur; i < end; i++)
{ {
if(map != NULL){ 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{ 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);
} }
} }
} }

View File

@ -318,7 +318,7 @@ struct cart* scan_barcode(struct cart* cart,struct inventory db){
long prompt_barcode(){ 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; long barcode;
fflush_stdin(); fflush_stdin();
scanf("%ld", &barcode); scanf("%ld", &barcode);
@ -369,6 +369,7 @@ struct cart* list_cart(struct cart* cart){
printf("<------------------------>\n"); printf("<------------------------>\n");
printf("\n%d CHECKOUT\n",i); printf("\n%d CHECKOUT\n",i);
printf("Clear Cart\n",i+1);
} }
do{ do{
printf("input the corresponding value for more action\n>"); 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); cart = cart_control(cart,choice);
}else if(choice == i && cart != NULL){ }else if(choice == i && cart != NULL){
cart = checkout(cart); 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); }while(choice != 0);
return cart; return cart;
} }

View File

@ -62,13 +62,13 @@ void print_role(struct linkedlist* list,int cur,int end,struct Map* map){
for(int i = cur; i < end; i++){ for(int i = cur; i < end; i++){
list = getLinkedList(list,i); list = getLinkedList(list,i);
char* name = list->data; 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{ }else{
for(int i = cur; i < end; i++){ for(int i = cur; i < end; i++){
list = getLinkedList(list,map[i].key); list = getLinkedList(list,map[i].key);
char* name = list->data; 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");
} }
} }
} }

View File

@ -146,11 +146,11 @@ void print_user(void * ddb, int cur, int end,struct Map* map){
if(map == NULL){ if(map == NULL){
bool isadmin = is_admin(db.row[i].role); bool isadmin = is_admin(db.row[i].role);
// printf("isadmin%s\n",db.row[i].id); // 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{ }else{
int index = map[i].key; int index = map[i].key;
bool isadmin = is_admin(db.row[index].role); 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');
} }
} }
} }

10
utils.h
View File

@ -182,6 +182,16 @@ void lister(void * db,struct Map* map, int row,char * lister_name,char * SortIte
}while(choice != 0); }while(choice != 0);
return; 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;
}