Ruby программирование - PullRequest
       3

Ruby программирование

2 голосов
/ 23 августа 2010

Так что мне нужна поддержка с моим заданием на Ruby, я не из США, поэтому вы должны извинить мой английский.

Мы строим отель, и это второе назначение.Это консольное приложение, и у меня есть класс с именем main.rb, который обрабатывает среду выполнения и гостевой класс.

Во втором назначении мы должны предварительно загрузить приложение с пятью гостевыми объектами.использовать массив, но не знаю как.Ниже мой гостевой класс, а мой основной класс - просто цикл while с оператором case.

Мне нужна помощь с:

  1. добавлением 5 гостей (не в БД или текстовый файл)только в массив или около того), когда программа запускается
  2. в отеле 20 номеров, и мне нужно рандомизировать номер комнаты и исключить уже арендованные номера

Надеюсь, вы можете помочь!Спасибо!

 class Guest                 
  #Instance variables.
  attr_accessor :firstName, 
    :lastName,
    :address,
    :phone,
    :arrival,
    :plot,
    :gauge

  #Constructor sets the guest details.
  def initialize(first, last, adress, phone, arrival) 
    @firstName = first
    @lastName = last
    @address = address
    @phone = phone
    @arrival = arrival
    @plot = range_rand(1,32)
    @gauge = range_rand(2000,4000)
  end

  #Using rand()-method to randomize a value between min and max parameters.   
  def range_rand(min,max) 
    min + rand(max-min)
  end

  def to_string
    "Name = #{@firstName} , Plot = #{@plot}"
  end
end 

Ответы [ 3 ]

1 голос
/ 23 августа 2010

Создание массива:

number_array = [1, 2, 3, 4, 5]

Доступ к элементам массива:

number_array[2]
# this would return the integer 3

Добавление нового элемента в массив:

number_array << 6
# this would return [1, 2, 3, 4, 5, 6]

Youможно создать нового гостя, выполнив что-то вроде этого:

Guest.new("John", "Doe", "1500 main street", "123-456-7890", "1/1/2010")

Поскольку это домашнее задание, я оставлю вам возможность объединить все в рабочее решение;)

0 голосов
/ 23 августа 2010

Другие люди уже ответили на первую часть вашего вопроса, поэтому я помогу вам со вторым (я предоставлю минимум, так что у вас еще есть работа :))

Вы можете создать массив, содержащий 20 номеров комнаты:

empty_rooms = (1..20).to_array

Затем для каждого гостя:
1) Взять случайное число в этом массиве (подсказка: рандомизировать индекс)
2)Удалите этот номер из массива
3) И назначьте номер комнаты гостю
4) Добавьте гостя в массив гостей

0 голосов
/ 23 августа 2010

Я думаю, что вы имеете в виду, что вы хотите 5 гостевых объектов. Вы можете поместить их в массив, создав литерал массива и добавив в него гостей

@guests = []
@guests << Guest.new()
@guests << Guest.new()

теперь в вашем массиве @ghest есть два гостя и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...