Je veux créer un programme où un utilisateur "crée" essentiellement une liste d'épicerie où l'utilisateur saisit l'article et le prix jusqu'à ce qu'ils veulent quitter. Si l'utilisateur entre «q» ou «Q», le programme devrait arrêter de demander à l'utilisateur de calculer le sous-total, ajouter une taxe de vente nominale de 6% et afficher le résultat total.Ruby - Comment calculer le sous-total des articles dans une liste d'épicerie
J'ai obtenu la première partie vers le bas où l'utilisateur saisit son article et son prix mais je ne sais pas comment le faire me dire le sous-total et lui donner un reçu. J'ai essayé pendant 7 heures !! Quand je lance, il est censé dire:
Enter an item and its price, or ’Q/q’ to quit: eggs 2.13
Enter an item and its price, or ’Q/q’ to quit: milk 1.26
Enter an item and its price, or ’Q/q’ to quit: batteries 3.14
Enter an item and its price, or ’Q/q’ to quit: q
Receipt:
--------
eggs => $2.13
milk => $1.26
batteries => $3.14
---------
subtotal: $6.53
tax: $0.39
total: $6.92
Voici le code que je fait: (Quelqu'un peut-il s'il vous plaît me aider ???)
def create_list
puts 'Please enter item and its price or type "quit" to exit'
items = gets.chomp.split(' ')
grocery_list = {}
index = 0
until index == items.length
grocery_list[items[index]] = 1
index += 1
end
grocery_list
end
def add_item (list)
items = ''
until items == 'quit'
puts "Enter a new item & amount, or type 'quit'."
items = gets.chomp
if items != 'quit'
new_item = items.split(' ')
if new_item.length > 2
#store int, delete, combine array, set to list w/ stored int
qty = new_item[-1]
new_item.delete_at(-1)
new_item.join(' ')
p new_item
end
list[new_item[0]] = new_item[-1]
else
break
end
end
list
end
add_item(create_list)
puts "Receipt: "
puts "------------"