2012-07-27 3 views
0

방금 ​​Ruby 필수 교육 과정을 마쳤습니다 가능한 경우 명령 줄을 사용하여 Restaurant Finder 에 대한 매우 간단한 스크립트를 작성하는 방법을 알고 싶습니다.루비 간단한 명령 줄 스크립트 (레스토랑 찾기)

기능 필요 : 사용자 입력 1 레스토랑 이름 2 레스토랑 유형 3 레스토랑

사용자가 레스토랑의 응답 목록 (아무것도 파일에 저장되지 않습니다)에만 메모리에 도착 평균 가격에 요청 세션 중.

어떻게 사용자가 추가 된 식당 목록을 보여줄 수 있습니까?

언어를 이해할 수 있도록 최대한 간단하게 만들고 싶습니다. 은 Lynda.com 강사가 놓친 방법으로 작성했습니다. 이 강사가 실제 스크립트 작성에 도달하면 을 수정하고 나에게 혼란스럽고 빠른 코드를 많이 작성하여 루비 비디오 교육이 아닌 PHP와 거의 비슷하게 보입니다. 기본 간단한 시작 내가로 이동합니다 그 후 아무것도에게

를 저장하는 파일을 사용하지 않고 어떻게 작성하는 간단한 프로그램 자신을 시도하고 싶 ... 등

나는 클래스와 메소드를 만드는 방법을 알고 사용하는 배열은 해시 다음 수준.

감사합니다.

+0

. 의사 코드를 어떤 방식으로 작성 했습니까? 거기에 루비 코드를 작업 할 필요가 있다고 생각한 계획이 있습니까? 그렇지 않으면 누군가가 숙제를하길 원하는 것처럼 들립니다. 커뮤니티는 당신을 도울 것입니다.하지만 우리는 당신에게 주어진 질문/과제 설명과는 별도로 작업 할 것이 필요합니다. –

+0

나는 너를 이해하지 못했다! 나는 근본적인 훈련을 마쳤고, 언어 구문을 잘 사용했다. 내 문제는 클래스를 만들고 메서드를 정의하고 값을 inst 변수로 설정하고 실제 경험을 얻지 못하는 실제 간단한 루비 프로그램으로 연습해야합니다. – RubyBeginner

+0

객체 오리엔테이션은 실제로 훌륭합니다. 어쨌든 올바른 클래스/메소드를 설계하고 제작하여 문제를 해결하는 것이 이상적입니다. 스크립트는 사용자 입력을 읽고 클래스를 인스턴스화하고 객체에 메소드를 호출하는 작업을 수행하는 작은 컨트롤러 프로그램과 같습니다. 현실 세계에서 우리는 깨끗하고 견고한 객체 지향 디자인을 위해 노력합니다. 그러면 클래스는 명령 행 스크립트 나 웹 프레임 워크에 의해 호출 될 수 있습니다. 당장은 명령 줄 스크립트를위한 의사 코드와 루비로 변환하기 위해 고심하고있는 것들을 보여줘야한다고 생각합니다. –

답변

2

내가 너무 루비 초보자,하지만 이건 내 간단한 구현입니다 : 당신이 우리에게 보여 대해 지금까지 한 일을 어떻게

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

+0

2 개월 이상. _tryruby.org _, _rubymonk.com _, _ rubykoans.com_을 완성하고 두 권의 책을 읽었습니다 : _ Ruby_에서 잘 알려진 Rubyist_ 및 _Design Patterns. Rails를 배우고 싶다면 [Rails에서 얼마나 대단한가, Ryan Bigg "(http://www.youtube.com/watch?feature=player_embedded&v=idmkGEhxqPI)를 시청하는 것이 좋습니다. – wazzzaby

관련 문제