2012-07-27 46 views
0

我刚刚完成了Ruby必备的培训课程 我想知道如何使用命令行编写一个非常简单的餐厅搜索器脚本 只有在可能的情况下?ruby​​简单的命令行脚本(餐厅查找器)

所需要的功能: 用户要求输入1-餐馆名称2-餐厅类型3-餐厅 均价

用户得到餐馆的响应列表(什么都不会被保存在 文件),只能在记忆在会议期间。

如何让用户显示添加的餐馆列表?

我想让它尽可能简单,所以我可以理解语言 的方式,我错过了Lynda.com的指导。 一旦这位教练到达了实际的脚本建设,他开始修改它,并写了很多快速代码,使我困惑,并使我几乎像这样的事情是PHP不是Ruby视频培训,我正在看。

我知道如何创建的类和方法,并使用阵列哈希等.. 需要基本简单的开始尝试自己如何编写简单的程序 不使用文件

存储任何东西之后,我将移到下一个级别。

谢谢。

+0

怎么样你告诉我们,你到目前为止做了什么。你有没有用某种方式编写你的伪代码?有没有一个你认为需要翻译成Ruby代码的计划?否则,听起来你想让别人做你的功课。社群将帮助你,但我们确实需要一些工作,除了给你的问题/任务解释外。 – 2012-07-27 07:31:04

+0

我不理解你!我完成了基础训练,对语言语法非常好。我的问题是我需要用真正简单的ruby程序来练习,而不仅仅是创建一个类并为inst变量定义方法和设置值,并且不会获得真实世界的体验。 – RubyBeginner 2012-07-27 07:36:22

+0

面向对象实际上非常棒,你应该理想的是通过设计和创建正确的类/方法来解决你的问题。脚本就像小控制器程序,其工作是读取用户输入并实例化您的类并在您的对象上调用方法。在现实世界中,我们致力于清洁稳健的面向对象设计。然后我们的类可以通过命令行脚本或Web框架调用,并不重要。现在,我认为你应该开始向我们展示一些伪代码给你,以及你正努力转换成ruby的东西。 – 2012-07-27 07:55:14

回答

2

我在Ruby新手太多,但这是我的简单的实现:

class Restaurant 
    attr_accessor :name, :type, :avg_price 
    def initialize(name, type, avg_price) 
    @name = name 
    @type = type 
    @avg_price = Float(avg_price) 
    end 
end 

class RestaurantsList < Array 
    def read_from_keyboard 
    print "Restaurant name: " 
    name = gets.chomp 
    print "Restaurant type: " 
    type = gets.chomp 
    print "Restaurant average price: " 
    avg_price = gets.chomp 
    self << Restaurant.new(name, type, avg_price) 
    end 
    def print_list 
    puts sprintf("%17s %15s %s", "Name |", "Type |", "Avg price |") 
    self.each { |e| puts sprintf("%15s |%14s |%10d |", e.name, e.type, e.avg_price)}  
    end 
end 

restaurants_list = RestaurantsList.new 
loop do 
    print "1 - add restaurant, 2 - print list, 3 - exit : " 
    answer = Integer(gets.chomp) 
    case answer 
    when 1 
    restaurants_list.read_from_keyboard 
    when 2 
    restaurants_list.print_list 
    when 3 
    break  
    end  
end 
+0

谢谢soooooooo,你的实现是摇滚,作为初学者,我相信这样的小脚本可以让我理解语言是如何工作的。只掌握语法不会把我带到哪里。非常感谢你,我认为你做了一个伟大的工作有多少个月的红宝石经验? – RubyBeginner 2012-07-27 19:00:34

+0

2个月或以上。 我完成了_tryruby.org_,_rubymonk.com _,_ ruby​​koans.com_并阅读了两本书:_ Ruby_中的基础良好的Rubyist_和_Design模式。如果你想学习Rails,我还建议你观看[“如何在Rails中变得棒极了。Ryan Bigg”](http://www.youtube.com/watch?feature=player_embedded&v=idmkGEhxqPI) – wazzzaby 2012-07-28 10:11:52