2018 年度 プログラミング実習 II

課題 R8(第8章)

[2018/06/12, 14]


[R8_1] (必修)

コンソールから入力した文字列をファイルに保存する,以下のようなプログラムを作りなさい.コンソール上にプロンプトを表示し,文字列を入力する.文字列の入力し,改行すると"continue?"と表示する."Y"または"y"を入力すると,再び文字列を入力できるようにする."Y"または"y"以外が入力されると,それまでに入力したすべての文字列を適当な名前のファイルに保存し,終了する.

[R8_2] (必修)

R8_1で保存したファイルを読み出し,その内容をコンソールに表示するプログラムを作りなさい.(なお,R8_1で保存したファイルを適当な場所に手動でコピーペーストしてもかまわない.)

[R8_3] (必修)

教科書8.4節の家計簿管理プログラムを参考にして,以下の機能を備える関西学院大学理工学部情報科学科または人間システム工学科の取得単位表示プログラムを作りなさい.【参考】情報科学科と人間システム工学科のカリキュラム

  1. 成績データは各行に(単位を取得した)「学年」「科目名」「単位数」「分類」の4項目とし,空白で区切る.分類は「総合必修」,「総合自由」,「専門必修」,「情報実習」,「人シス実習」,「専門基礎」,「専門発展」,「専門人シス」または「専門情報」,「専門自由」のいずれかとする.
  2. コマンドはread,print,sum,exitとする.read,print,exitは家計簿管理プログラムと同様である.sumは分類ごとの取得単位数と総取得単位数を示す. 【参考】(卒業可能な)成績データサンプル(情報科学科人間システム工学科)
  3. 成績データに同じ科目が複数含まれている場合は,そのことを示す警告表示をし,単位数を二重に数えないようにすること. ArrayList aに要素iが含まれているかどうかを確認するにはindexOf()メソッドを利用することができる.要素が含まれていない場合a.indexOf(i)は-1を返す.

[R8_4] (オプション)

R8_3のプログラムを拡張し,コマンドjudgeを追加しなさい.judgeでは卒業できるかどうかの判断を示すこと.卒業できない場合はどの分類の単位がどれだけ足りていないかを示すこと.

【参考】情報科学科卒業必要単位数(他学科,他学部,他大学履修科目等は考慮していない. )

  1. 総合必修が16単位以上あること
  2. 総合自由が16単位以上あること.
  3. 専門必修が26単位以上あること.
  4. 情報実習が4単位以上あること.
  5. 情報実習と人シス実習を合わせて6単位以上あること
  6. 専門基礎が24単位以上あること.
  7. 専門発展が16単位以上あること.
  8. 専門発展と専門人シスが合わせて24単位以上あること.
  9. 専門自由と卒業必要単位を超えて取得した情報実習,人シス実習,専門基礎,専門発展,専門人シスを合わせて16単位以上あること.

【参考】人間システム工学科卒業必要単位数(他学科,他学部,他大学履修科目等は考慮していない. )

  1. 総合必修が16単位以上あること
  2. 総合自由が16単位以上あること.
  3. 専門必修が32単位以上あること.
  4. 人シス実習が4単位以上あること.
  5. 情報実習と人シス実習を合わせて6単位以上あること
  6. 専門基礎が24単位以上あること.
  7. 専門発展が12単位以上あること.
  8. 専門発展と専門情報が合わせて20単位以上あること.
  9. 専門自由と卒業必要単位を超えて取得した情報実習,人シス実習,専門基礎,専門発展,専門情報を合わせて14単位以上あること.

[R8_5] (オプション)

以下のような命令ができるラインエディタ(行単位でテキストを編集できるエディタ)を作成しなさい.
o ファイル名 :ファイル名で指定されるファイルを読み込む.
s ファイル名 :ファイル名で指定されるファイルにテキストを保存する.
p :テキストを表示する.
u :現在の行を一行上にする.現在の行が一行目の場合は何もしない.
d :現在の行を一行下にする.現在の行が最終行の場合は何もしない.
a 文字列 :文字列を入力し,その内容を現在の行に挿入する.
e :現在の行を削除する.空の場合は何もしない.
m 文字列 :文字列を含む行まで現在の行を移動する.文字列を含む行がなければ何もしない.
q :終了する.