前提・実現したいこと
下記のような簡単なアプリ作成しようと頑張っています。
仕様
- 実行すると [1] : 件数を登録する, [2] : 件数を確認する, [3] : 終了する という選択肢を表示し、ユーザーに入力を求め、その入力に従い以下のような処理を行う
- [1]の処理
- 名前、年齢、アポイント・案内・成約の3つの件数を入力させ、保存する
- [2]の処理
- 投稿された情報から番号と名前で一覧を表示し(例 [1]山田)、見たい個人の番号の入力を求める
- 入力された個人の名前、年齢、アポイント・案内・成約の3つの件数を表示する
- [3]の処理
- アプリケーションを終了する
- [3]でアプリケーションを終了するまで、投稿や閲覧ができるように繰り返す
使う、雛形
def registration_staff
社員の名前と年齢を登録
staff = {}
puts '社員名を入力してください'
puts '社員の年齢を入力してください'
登録した社員のアポイント、案内、成約の件数を登録
puts "アポイント件数は?"
puts "案内件数は?"
puts "成約件数は?"
end
def show_staff_name
登録された社員の名前を番号を振って表示
puts '見たい社員の番号を入力してください'
選択された社員の名前、年齢、アポイント、案内、成約の件数を表示できるようにする
puts "名前:"
puts "年齢:"
puts "アポイント:"
puts "案内:"
puts "成約:"
end
staffs = []
while true
puts '行いたい項目を選択してください'
puts '[1]件数を登録する'
puts '[2]件数を確認する'
puts '[3]終了する'
input = gets.to_i
puts input
if input == 1
registration_staff
elsif input == 2
show_staff_name
elsif input == 3
# アプリケーションを終了
else
puts '無効な値です'
end
end
発生している問題・エラーメッセージ
Traceback (most recent call last): 1: from q.rb:51:in `<main>' q.rb:18:in `registration_student': undefined local variable or method `scores' for main:Object (NameError) Did you mean? score
該当のソースコード
Ruby
1ソースコード 2 3def registration_staff 4 5 staff = {} 6 puts '社員名を入力してください' 7 staff[:name] = gets.chomp 8 puts '社員の年齢を入力してください' 9 staff[:age] = gets.chomp 10 11 12 puts "アポイント件数は?" 13 language = gets.to_i 14 puts "案内件数は?" 15 mathematics = gets.to_i 16 puts "成約件数は?" 17 english = gets.to_i 18 19 number = { appointments: appointment, guides: guide, closings: closing } 20 numbers << number 21 22 return staff 23 24 end 25 26 def show_staff_name 27 28 puts '見たい社員の番号を入力してください' 29 names.each_with_index do |name, index| 30 puts "#{index + 1}: #{staff[:name]}" 31 end 32 input = gets.to_i 33 show_detail(staff[input - 1]) 34 35 36 puts "名前:#{:name}" 37 puts "年齢:#{:age}" 38 puts "アポイント:#{:appointment}" 39 puts "案内:#{:guide}" 40 puts "成約:#{:closing}" 41 end 42 43 staffs = [] 44 45 while true 46 puts '行いたい項目を選択してください' 47 puts '[1]件数を登録する' 48 puts '[2]件数を確認する' 49 puts '[3]終了する' 50 input = gets.to_i 51 puts input 52 if input == 1 53 registration_staff 54 elsif input == 2 55 show_staff_name 56 elsif input == 3 57 exit 58 else 59 puts '無効な値です' 60 end 61 end
試したこと
いろいろと自力で試したのですがどんどん深みにハマりまして、
ご教授いただけましたら幸いです。
回答3件
あなたの回答
tips
プレビュー