yuuki blog

プログラミング をアプトプットしています。

Ruby 成績管理アプリケーションの作成

問題

以下の仕様を満たすアプリケーションを作成しましょう。また、注意書きを確認し、雛形を使用して実装する為です。

仕様

・実行すると [1] : 点数を登録する, [2] : 点数を確認する, [3] : 終了する という選択肢を表示し、ユーザーに入力を求め、その入力に従い以下のような各処理を行う
・アプリケーションを終了するまで、処理を繰り返す

[1]の処理
・名前、年齢、国語・数学・英語の3教科の点数を入力させて、保存する

[2]の処理
・投稿された情報から番号と名前で一覧を表示し(例 1: yamada)、見たい個人の番号の入力を求める
・ 入力された個人の名前、年齢、国語・数学・英語の3教科の点数を表示する

[3]の処理
・アプリケーションを終了する

 

def registration_student(students)
  # 生徒の名前と年齢を登録できるようにする
  student = {}              #studentと言うハッシュを定義します
  puts '生徒名を入力してください'
  student[:name] = gets.chomp   #各項目を入力しstudentのハッシュに代入します
  puts '生徒の年齢を入力してください'
  student[:age] = gets.chomp

  # 登録した生徒の国語、数学、英語の点数を登録できるようにする
  puts "国語の得点は?"
  student[:japanese] = gets.to_i
  puts "数学の得点は?"
  student[:math] = gets.to_i
  puts "英語の得点は?"
  student[:english] = gets.to_i
  students << student      #studentsという配列に、studentのハッシュを追加します
end # 登録された生徒の名前を番号を振って表示する def show_student_name(students) num = 0       #配列の中の、生徒名を番号を添えて一覧表示します
students.each do |student| puts "#{num}: #{student[:name]}" num += 1 end puts '見たい生徒の番号を入力してください' int = gets.to_i      #ハッシュの値を表示させ対応する要素を取得します student =students[int] # 選択された生徒の名前、年齢、国語、数学、英語の点数を表示できるようにする puts "名前: #{student[:name]}"  #各値を表示します puts "年齢: #{student[:age]}" puts "国語: #{student[:japanese]}" puts "数学: #{student[:math]}" puts "英語: #{student[:english]}" end students = [] while true puts '行いたい項目を選択してください' puts '[1]点数を登録する' puts '[2]点数を確認する' puts '[3]終了する' input = gets.to_i if input == 1 registration_student(students)  #studentsと言う配列を定義します elsif input == 2            #入力に対応する、メソッドを実行します show_student_name(students) elsif input == 3 exit else puts '無効な値です' end end