diff --git a/resources/interface.py b/resources/interface.py index 6f7040d152809e8c68e34c82180fece0f9c73a6c..da0286703627497c2d38d5394abc8223d86f1a3c 100644 --- a/resources/interface.py +++ b/resources/interface.py @@ -93,7 +93,7 @@ class UserInterface(): self.set_item_set_by_json() print('') elif user_input == '4': - self.add_to_item_Set() + self.add_to_item_set() print('') elif user_input == '5': self.clear_item_set() @@ -163,19 +163,44 @@ class UserInterface(): json_data = json.load(file) # Check that JSON data is formatted in way we expect. - if self._knapsack_algorithm.validate_item_set(json_data): - # Validated successfully. Set as new item set. - self._knapsack_algorithm.set_item_set(json_data) + if self._knapsack_algorithm.set_item_set(json_data): + # Successfully set JSON data as new item set. print('Successfully set new Item Set from JSON data.') self._knapsack_algorithm.display_item_set() else: # Validation failure. print('Failed to validate file contents for Item Set.') - def add_to_item_Set(self): + def add_to_item_set(self): """ Adds new "Item" to "Item Set" by manual input. """ + print('Enter a benefit amount (must be a positive integer):') + + # Get user's input. + benefit_input = input() + print('') + + print('Enter a cost amount (must be a positive integer):') + + # Get user's input. + cost_input = input() + print('') + + # Create new item. + new_item = { + 'benefit': benefit_input, + 'cost': cost_input, + } + + # Attempt to add new item. + if self._knapsack_algorithm.add_item_to_item_set(new_item): + # Item successfully added. + print('Successfully added new item.') + self._knapsack_algorithm.display_item_set() + else: + # Failed to add item. + print('Failed to add new item. Benefit or cost were not positive integers.') def clear_item_set(self): """ @@ -196,3 +221,4 @@ class UserInterface(): """ Solves knapsack with current problems and displays result to user. """ + self._knapsack_algorithm.calculate_fractional_knapsack()