Newer
Older
Ruby / last.rb
@KIM Saki KIM Saki on 21 Jan 2023 2 KB 2023-01-21 14:42:48
# coding: utf-8
#このプログラムは、予定を書き込み、その予定を教えてくれるプログラムです。
#1を選択するとaモードを使ってcsvファイルに打ち込んだ内容が入力されます。
#2を選択すると1で入力した予定が表示されます。
#3を選択するとwモードでcsvファイルの中身を消し、リセットします。
#whileを使って処理をすると戻るようにし、
#見やすいようにputsで空白を作って4を選択でプログラムが終了します。
#中間発表のものから予定を書き込む機能、予定を削除する機能をつけましたが、
#「1日経過した」を入力すると勝手にcsvファイルの中身を1日分ずらすなどといった機能をつけたかったです。
#他のアイデアは複数のcsvファイルを使って、このプログラムと同じ方法で、
#みんなに自分のお気に入りの漫画や料理を打ち込んでもらって、
#それを見たり、タグをつけて検索できたりするプログラムだったり、
#ワークなどは、1度書き込むともう一度やりにくいものがあるので、
#その問題をcsvファイルの中に保存して何度でもできるようにするなどが思いつきました。

# coding: utf-8
#Encoding.default_external = `utf-8`     # csvファイルがutf-8のとき
puts"これは予定を教えてくれるプログラムです"
while true
  require "csv"

  puts" "
  puts"予定を書き込みたかったら1を"
  puts"予定を知りたかったら2を"
  puts"予定をリセットしたかったら3を"
  puts"終了したかったら4を押してください"

  
  sentaku = gets.chomp
  if sentaku == "1"
    puts"日にちを入力 例)1月1日"
    hinichi = gets.chomp
    puts"曜日を入力 例)月曜日"
    youbi = gets.chomp
    puts"予定を入力 例)学校"
    yotei = gets.chomp
    CSV.open("last.csv","a")do|row|
      row<<[hinichi,youbi,yotei]
    end
    redo
  elsif sentaku == "2"
    puts"これが予定です"
    date =  CSV.read("last.csv",:headers => true)
    n = 0
    date.each{|row|
      printf("%d: %s %s %s\n",n+=1,row["hinichi"],row["youbi"],row["yotei"])
    }
    redo
  elsif sentaku == "3"
    CSV.open("last.csv","w")do|row|
      row<<["hinichi","youbi","yotei"]
    end
    redo
  elsif sentaku == "4"
    puts"終了します"
    break
  end
end