如何构建一个简单的基于菜单的控制台应用程序?

时间:2014-10-20 11:22:00

标签: ruby console-application user-input

我学习Ruby已经一周了。它是一种很棒的语言,我很享受它 我还是个菜鸟。这是一个问题:

我希望Ruby中的控制台应用程序要求用户点击Num-Keys来选择具有五个功能的程序之类的选项。 SUM,SUB,MUL和DIV的前四个函数和最后一个用于返回主菜单。

我试着写代码但是我失败了。这是代码:

puts "Choose Option(Press the num key)\n
  1. For SUM\n
  2. For SUB\n
  3. For MUL\n
  4. For DIV\n
  5. For Main Menu"

$x = 22
$y = 32

def gloabl_f(n) # <= global function start here

  def sum(x,y) # <= SUM function
    return x+y
  end

  def sub(x,y) # <= SUB function
    return x-y
  end

  def mul(x,y) # <= MUL function
    return x*y
  end 

  def div(x,y) # <= DIV function
    return x/y
  end

  def Main_Menu()
    return  puts "Choose Option(Press the num key)\n
  1. For SUM\n
  2. For SUB\n
  3. For MUL\n
  4. For DIV\n
  5. For Main Menu"
  end

  n = gets.to_i
  if n == 1
    puts sum(22,32)
  end
end # <= global function end here

基本上,我希望用户先输入两个数字,然后通过点击与上述功能相关的数字键来选择1,2,3,4,5的选项。

2 个答案:

答案 0 :(得分:2)

一些一般性观点

  • 在函数
  • 中定义方法并不是很惯用
  • 您永远不会同时致电gloabl_fMain_Menu,您只需定义它们。

以下是一个示例解决方案:

def get_numbers
  puts "First number:"
  x = gets.chomp.to_i
  puts "Second number:"
  y = gets.chomp.to_i
  yield(x,y)
end

def sum(x,y)
  x + y
end

puts "Choose Option:
1. For SUM
2. For SUB
3. For MUL
4. For DIV
5. Exit
"

n = gets.chomp.to_i

case n
  when 1
    get_numbers do |x,y|
      puts "Sum: #{sum(x,y)}"
    end
  when 2
    # code
  when 3
    # code
  when 4
    # code
  else 
    puts "Exiting"
end

我离开了其他选项供您实施。

答案 1 :(得分:0)

puts "Choose Option(Press the num key)\n
1. For SUM\n
2. For SUB\n
3. For MUL\n
4. For DIV\n
5. For Main Menu"
x = 22
y = 32

n = gets.chomp.to_i
if n == 1
    puts x + y
end