int teacher_input (void) { int teacher = 0; printf ("Is Teacher (1 = Teacher, 0 = Not Teacher)?"); teacher = int_input(); return teacher; }
void menu_warehouse(warehouse *warehouses) { boolean loop = TRUE; int option; while(loop) { show_menu(5); int_input(&option, 3); switch(option) { case 1: { insert_hallway(warehouses); insert_storage(&warehouses->hallways[warehouses->hallways_size - 1]); printf("Corredor adicionado.\n\n"); break; } case 2: { if(warehouses->hallways_size > 0) { int hallway_number = choose_hallway(warehouses); if (hallway_number >= 0) { insert_storage(&warehouses->hallways[hallway_number]); printf("Armario adicionado.\n\n"); } } else { printf("Nao existem corredores.\n\n"); } break; } case 3: { int hallway_number = choose_hallway(warehouses); if (hallway_number >= 0) { if(warehouses->hallways_size > 1) { remove_hallway(warehouses, hallway_number, TRUE); printf("Corredor removido.\n\n"); } else { printf("Nao e possivel remover o ultimo corredor.\n\n"); } } break; } case 4: { int hallway_number = choose_hallway(warehouses); int storage_number = choose_storage(warehouses, &hallway_number); if ((hallway_number >= 0) && (storage_number >= 0)) { if(warehouses->hallways[hallway_number].storages_size > 1) { remove_storage(warehouses, hallway_number, storage_number, TRUE); printf("Armario removido.\n\n"); } else { printf("Nao e possivel remover o ultimo corredor.\n\n"); } } break; } case 9: { loop = FALSE; break; } default: { printf("Essa opcao nao existe.\n\n"); break; } } } }
void menu_file(warehouse *warehouses) { boolean loop = TRUE; int option; FILE *load_data = NULL; char filename[FILENAME_SIZE] = {0}; while(loop) { show_menu(4); int_input(&option, 3); switch(option) { case 1: { if((warehouses->hallways_size > 0) && (warehouses->hallways[warehouses->hallways_size - 1].storages_size > 0)) { get_filename(filename, FILENAME_SIZE); load_data = get_file(filename, "r"); if (load_data != NULL) { update_stock(warehouses, load_data); fclose(load_data); printf("\n"); } else { printf("Nao foi possivel carregar o ficheiro.\n\n"); } } else { printf("Nao existem corredores ou armarios.\n\n"); } break; } case 2: { if((warehouses->hallways_size > 0) && (warehouses->hallways[warehouses->hallways_size - 1].storages_size > 0)) { get_filename(filename, FILENAME_SIZE); load_data = get_file(filename, "r"); if (load_data != NULL) { process_order(warehouses, load_data); fclose(load_data); printf("\n"); } else { printf("Nao foi possivel carregar o ficheiro.\n\n"); } } else { printf("Nao existem corredores ou armarios.\n\n"); } break; } case 9: { loop = FALSE; break; } default: { printf("Essa opcao nao existe.\n\n"); break; } } } }
void initialize_interface() { warehouse *warehouses = NULL; FILE *database = NULL; boolean loop = TRUE; int option; int db_type; database = get_file(DBNAME, "rb"); db_type = identify(database); //db_type = 2; if(db_type == 0) { warehouses = initialize(database); } else if(db_type == 1) { warehouses = initialize_legacy(database); } else if(db_type == 2) { warehouses = initialize_random(); } if(database != NULL) { fclose(database); } printf("Digite o numero da opcao a esquerda para navegar entre menus.\n\n"); while(loop) { show_menu(1); int_input(&option, 3); switch(option) { case 1: { menu_search(warehouses); break; } case 2: { menu_insert(warehouses); break; } case 3: { menu_file(warehouses); break; } case 4: { menu_warehouse(warehouses); break; } case 9: { loop = FALSE; break; } default: { printf("Essa opcao nao existe.\n\n"); break; } } } show_sold_products(warehouses, TRUE); shutdown(get_file(DBNAME, "wb"), warehouses, TRUE); }
void menu_insert(warehouse *warehouses) { boolean loop = TRUE; int option; int option2; while(loop) { show_menu(3); int_input(&option, 3); switch(option) { case 1: { int hallway_number = choose_hallway(warehouses); int storage_number = choose_storage(warehouses, &hallway_number); if ((hallway_number >= 0) && (storage_number >= 0)) { printf("Numero do produto: "); int_input(&option, 9); if(option > 0) { if(search_product(warehouses, option) == NULL) { printf("Stock do produto: "); int_input(&option2, 9); if(option2 > 0) { insert_product(&warehouses->hallways[hallway_number].storages[storage_number], option, option2); printf("Produto %d inserido\n\n", option); } else { printf("Numero invalido\n\n"); } } else { printf("Esse produto ja existe.\n\n"); } } else { printf("Numero invalido\n\n"); } } break; } case 2: { int hallway_number = choose_hallway(warehouses); int storage_number = choose_storage(warehouses, &hallway_number); int product_number = choose_product(warehouses, &hallway_number, &storage_number); if ((hallway_number >= 0) && (storage_number >= 0) && (product_number >= 0)) { printf("Novo valor de stock do produto: "); int_input(&option, 9); if (option > 0) { warehouses->hallways[hallway_number].storages[storage_number].products[product_number].product_stock = option; printf("Stock alterado para %d\n\n", option); } else { printf("Numero invalido\n\n"); } } break; } case 9: { loop = FALSE; break; } default: { printf("Essa opcao nao existe.\n\n"); break; } } } }
void menu_search(const warehouse *warehouses) { boolean loop = TRUE; char *data = NULL; int option; while(loop) { show_menu(2); int_input(&option, 3); switch(option) { case 1: { data = show_tree(warehouses); break; } case 2: { data = show_products(warehouses); break; } case 3: { data = show_products_by_hallway(warehouses, choose_hallway(warehouses)); break; } case 4: { int hallway_number = choose_hallway(warehouses); int storage_number = choose_storage(warehouses, &hallway_number); data = show_products_by_storage(warehouses, hallway_number, storage_number); break; } case 5: { printf("Numero do produto: "); int_input(&option, 9); if(option > 0) { data = show_products_by_type(warehouses, option); } else { printf("Numero invalido\n\n"); } break; } case 6: { printf("Stock do produto: "); int_input(&option, 9); if(option > 0) { data = show_products_by_stock(warehouses, option); } else { printf("Numero invalido\n\n"); } break; } case 7: { data = show_sold_products(warehouses, FALSE); break; } case 9: { loop = FALSE; break; } default: { printf("Essa opcao nao existe.\n\n"); break; } } if (data != NULL) { printf("%s\n", data); print_file(data); free(data); data = NULL; } } }