概要
プロデルが、CLRらしいので、調べて見た。
練習問題をやってみた。
練習問題
コンソールで小遣い帳を書け。
方針
- データ表とCSVを使う。
データ表は、pythonで言うと、データフレームと言える。
CSVは、データベースと考えられる。 - コマンド
| コマンド | 書式 | 機能 |
|---|---|---|
| p | P | 表示 |
| i | i 2/5,アイス,-200 | 入力 |
| x | x 1 | 削除 |
| k | k 1,2/7,コーヒー,-500 | 更新 |
| s | s 1a | ソート |
| d | d | 収支 |
| r | r | 終了 |
環境
windows10
写真
サンプルコード
※コンソール
データファイルは、「小遣い帳.csv」
小遣いデータというデータ表を作る
小遣いデータの見出し行は、〇
小遣いデータに{「日付」, 「事柄」, 「金額」, 「残りのお金」}という列を加える
小遣いデータの1列目を取得してそのデータ型を日時形式に変える
小遣いデータの3列目を取得してそのデータ型を整数に変える
小遣いデータの4列目を取得してそのデータ型を整数に変える
データファイルというファイルが存在するなら
小遣いデータへデータファイルから読み込む
そして
pcは 4
sは、「1b」
繰り返す
pc>43なら
「終了」を表示する
小遣いデータをデータファイルへ保存する
繰り返しを抜け出す
そして
「小遣い帳 p-表示 i-入力 x-削除 k-更新 s-ソート d-収支 r-終了」を、表示する
コンソールから、受け取って、指示とする
指示の文字数が2より、大きいなら
項目は、指示を「 」で区切ったもの
指示は、項目(1)
そして
指示について分岐
「r」の場合
pcは44
「p」の場合
小遣いデータを「日付 DESC」で並べ替える
n=0
「番号:日付 事柄 金額 残りのお金」を表示する
小遣いデータの一覧のすべての【行要素】についてそれぞれ繰り返す
n = n + 1
「[n] : [行要素(1)] [行要素(2)] [行要素(3)] [行要素(4)]」を表示する
そして
「i」の場合 //i 10/20,アイス,-200
詳細は、項目(2)を、「,」で区切ったもの
小遣いデータに{「[詳細(1)]」, 「[詳細(2)]」, 「[詳細(3)]」 }を追加する
「k」の場合 //k 1,2/20,アイス,-300
詳細は、項目(2)を、「,」で区切ったもの
皿は、詳細(1)の整数
小遣いデータの皿行目を取得して対象行とする
対象行の1列目に「[詳細(2)]」を設定する
対象行の2列目に「[詳細(3)]」を設定する
対象行の3列目に「[詳細(4)]」を設定する
「x」の場合 //x 1
皿は、項目(2)の整数
小遣いデータから皿行目を消す
「s」の場合 //s 1a
sは、項目(2)
sについて分岐
「1a」の場合
小遣いデータを「日付」で並べ替える
「日付」を表示する
「1b」の場合
小遣いデータを「日付 DESC」で並べ替える
「日付 DESC」を表示する
「2a」の場合
小遣いデータを「事柄」で並べ替える
「事柄」を表示する
「2b」の場合
小遣いデータを「事柄 DESC」で並べ替える
「事柄 DESC」を表示する
他の場合
sを報告する
そして
「日付 事柄 金額 残りのお金」を表示する
小遣いデータの一覧を【行要素】にそれぞれ繰り返す
「[行要素(1)] [行要素(2)] [行要素(3)] [行要素(4)]」を表示する
そして
「d」の場合 //d
残金は、0
「日付 事柄 金額 残りのお金」を表示する
小遣いデータを「日付」で並び替える
小遣いデータの行一覧を要素にそれぞれ繰り返す
日 = 要素から「日付」を取得したもの
事柄 = 要素から「事柄」を取得したもの
入出金 = 要素から「金額」を取得したもの
残金 = 残金 + 入出金
要素の4列目に残金を設定する
「[日] [事柄] [入出金] [残金]」を表示する
そして
他の場合
「ちがう」を表示する
そして
そして
以上。
