0
0

More than 1 year has passed since last update.

🐣【Ruby入門】ファイル読み込みから採点する簡易機能実装

Last updated at Posted at 2023-02-15

Rubyを使って、ファイル(txt)を読み込んで、採点できるような簡易機能を実装してみました。:writing_hand:

前提

  • ファイル構成
    • scoring.rb
    • test.txt(問題の回答を改行して記載したとする)
  • 考慮していない点(簡易版なので。。:angel_tone2:
    • ファイルの存在チェック
    • 回答が不十分の場合(回答が3つ未満、4つ以上の場合)
    • 全問正解しか判断できない、不正解があった時に何個不正解なのか、何個正解なのか分からない
    • エラーハンドリング
    • etc..

ファイル

scoring.rb
answer_arrays = ['1', '2', '3'] # 答えを配列で管理する
index = 0
is_incorrect_answer = false # 不正解があった場合 true にする

filename = ARGV[0] # コマンドラインからデータを入力する ex. ruby scoring.rb test.txt
file = File.open(filename) # ファイルを読み込む
file.each_line do |line| # ファイルの中身を1行ずつ読み込む
    unless line.chomp.eql?(answer_arrays[index]) # 答えと比較し間違っていたら true にする
        is_incorrect_answer = true
        break # 一個でも不正解あれば繰り返し処理終了
    end

    index += 1 # 次の answer_arrays を取得する為に+1する
end

file.close # ファイルを閉じる

if is_incorrect_answer
    print '不正解があります'
else
    print '全問正解です'
end
test.txt
1
2
3

実行

Console
ruby scoring.rb test.txt
# => 全問正解です

所感

  • rubyには、加算子(++)が無いので、「+= 1」は何か嫌だな。。
  • line.chomp.eql?に関して、chompが無いlineには改行コードが含まれてしまう為、chompを使って改行コードを取り除いた文字列で判断している。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0