Я создаю программу, которая создает запись для собаки, которая имеет атрибуты (идентификатор, год рождения и имя). Я должен использовать массивы для хранения атрибутов 3 собак, а затем распечатать их в терминал
require './input_functions'
class Dog
attr_accessor :id, :breed, :year_born, :name
def initialise (id, breed, year_born, name)
@id = id
@breed = breed
@year_born = year_born
@name = name
end
end
# Complete the missing code below
# Note: If your tasks requires outputting a floating point number you may wish to use the following:
# print out my_variable with 2 decimal places:
# printf("$%.2f\n", my_variable)
def read_dog()
puts "Enter the ID of your dog"
$dog_id = gets.to_s
puts "Enter the Breed of your dog"
$dog_breed = gets.to_s
puts "Enter the birth year of your dog"
$dog_year_born = gets.to_s
puts "Enter the name of your dog"
$dog_name = gets.to_s
end
def display_dog
puts $dog_id + "The dog ID is an Integer which is unique to your dog"
puts $dog_breed + "The dog breed is a String which defines the ancestors of your dog"
puts $dog_year_born + "The year born is an Integer which contains what year your dog was born"
puts $dog_name + "The dog name is a String which contains what your dog's name is"
end
def read_dogs
dogs = Array.new
index = 0
while (index < 3)
dogs << read_dog[index]
index = index + 1
end
return dogs
end
def display_dogs(dogs)
index = 0
while (index < 3)
dogs[display_dog.to_i]
index = index + 1
end
end
def main
dogs = read_dogs
display_dogs(dogs)
end
main
Результат, на который я надеялся, был после того, как программа 3 раза просила вас ввести всю информацию, чтобы затем она отображала всю эту информацию обратно пользователю. Вместо этого происходит то, что отображается только последний введенный набор данных, и он отображается три раза. Очевидно, это как-то связано с тем, как я храню или извлекаю данные из массива, но я не могу понять, что это такое.