2015-12-28 172 views
-3

修改这个代码搜索以创建通过用户输入输出必须显示年龄和职称红宝石通过输入

# A simple Employee class 
class Employee 
    attr_reader :first_name, :last_name, :title, :age 

    def initialize(fname, lname, title, age) 
    @first_name = fname 
    @last_name = lname 
    @title = title 
    @age = age 
    end 
    # A string representation of the Employee object 
    def to_s 
    "#{first_name} #{last_name}, #{title}, #{age}" 
    end 
end 
# The collection class for Employee objects 
class Employees 
    include Enumerable 

    def initialize 
    @employees = [] 
    end 
    # Add Employee objects to the collection 
    def <<(employee) 
    @employees << employee 
    end 
    # Method mandated by the Enumerable module 
    def each 
    @employees.each { |e| yield(e) } 
    end 
end 
employees = Employees.new 

employees << Employee.new('Anita', 'Baker', 'President', 48) 
employees << Employee.new('Frank', 'Gifford', 'Director', 58) 
employees << Employee.new('Barbara', 'Eden', 'Secretary', 34) 
employees << Employee.new('George', 'Clooney', 'Project Manager', 37) 
employees << Employee.new('Emily', 'Davies', 'Programmer', 28) 
employees << Employee.new('David', 'Faber', 'Programmer', 55) 
employees << Employee.new('Cindy', 'Adams', 'Programmer', 33) 
employees << Employee.new('Helen', 'Hamilton', 'Business Analyst', 42) 
+0

您还想要我们做什么? – NSNoob

+0

是的,我想知道如何使搜索只显示特定的parts.Like当搜索名字输出只会显示年龄基本上如何添加条件thx。 – matuk1996

回答

0

您已经通过实施Enumerable接口完成所有必要的工作名字搜索。只需接受用户输入并拨打Enumerable#find方法即可:

fname = gets.chomp 
e = employees.find {|i| i.first_name == fname}