2010-08-23 3 views
2

J'ai donc besoin d'un peu de soutien avec mon devoir de Ruby, je ne suis pas originaire des États-Unis, donc vous devez excuser mon anglais.Affectation de programmation Ruby

Nous construisons un hôtel et c'est la deuxième mission. C'est une application basée sur une console et j'ai une classe appelée main.rb qui gère le runtime et un guest-class.

Dans cette deuxième affectation, nous devons précharger l'application avec cinq objets invités, je suppose que je dois utiliser un tableau mais je ne sais pas vraiment comment. Voici ma classe d'invité et ma classe principale est simplement une boucle en boucle avec une déclaration de cas.

je besoin d'aide avec:

  1. ajoutant 5 personnes (pas un db ou textfile uniquement à un tableau ou si) lorsque le programme commence
  2. l'hôtel dispose de 20 chambres et je dois randomiser la Numéro de chambre et exclure les chambres déjà louées

J'espère que vous pouvez aider! Merci!

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 
+0

Vous pouvez utiliser un hachage pour représenter la relation entre un utilisateur et un room.You peut avoir plusieurs invités par chambre. – fletcher

Répondre

0

d'autres personnes ont déjà répondu à la première partie de votre question, donc je vais vous aider avec la seconde (je vais fournir au minimum, de sorte que vous avez encore un peu de travail à faire :))

vous coul d créer un tableau contenant les numéros 20 chambres:

empty_rooms = (1..20).to_array 

Puis pour chaque invité:
1) Prenez un nombre aléatoire dans ce tableau (indice: randomiser l'indice)
2) Supprimer le numéro du tableau
3) et lui attribuer le numéro de chambre à un invité
4) Ajouter l'invité à l'ensemble des invités

+0

Merci! Je ne sais pas dans quelle classe je devrais mettre le code. Un conseil? –

+0

Si vous n'avez que la classe Invité et le programme principal, je suppose que je peux vous répondre à cette question: est-ce qu'un invité est responsable de la sélection d'une salle? – David

0

Je pense que ce que vous voulez dire, c'est que vous voulez 5 objets invités. Vous pouvez les mettre dans un tableau en créant un littéral de tableau, puis en ajoutant les invités à ce

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

maintenant votre tableau @guests a deux invités, etc.

1

Création d'un tableau:

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

accès aux éléments d'un tableau:

number_array[2] 
# this would return the integer 3 

l'ajout d'un nouvel élément à un tableau:

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

Vous pouvez créer un nouvel invité en faisant quelque chose comme ceci:

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

Puisque c'est un devoir, je vous laisse le soin de tout combiner en une solution de travail;)

Questions connexes