ものづくりブログ

ゼロからスタートして何かを作って世に出すまでのことを書くブログです.

Python学習用課題に取り組んでみた(課題)

こんにちは.

私の知人のエンジニアが新米時代に上司(先輩?)から出された課題がプログラムを学ぶ上でとても良問だったということだったので,私も取り組んでみることにしました.

やることは社員名簿作成システムです.要件は以下のとおりです.

最低でも3クラスは使ってください。
社員登録簡易アプリ。


======================================
1. 登録
2. 紹介
3. 削除
4. 更新(←時間なかったら実装しなくてもいい)
======================================
>> (ココに入力させる。


・登録項目
下記3項目を入力させてください。すべて必須項目。
適切な値以外は「不正な入力値です。」等のメッセージを表示して、再度入力させてください。
・名前
・生年月日(2000/12/23, 20001223で入力)
・給与(8桁まで ex.1000000)

・紹介
下記の形式で表示してください。

******************************************************************

ID 名前 生年月日 給与

******************************************************************

1 後畑陸坂 2000年12月23日 1,000,000
2 上森空凸 2000年12月23日 1,000,000

  • ID 登録順に連番
  • 名前
  • 生年月日 yyyy年MM月dd日で表示
  • 給与 3桁区切り

・削除
IDをキーとして削除してください。


というもの.今回は課題だけですので私が書いたコードは載せませんが,どのような考えで書くかはここに書いておきたいと思います.

まず,main関数はできるだけシンプルにしようと思います.
登録,照会,削除,編集という4種類の動作を実装する必要がありますが,それらはいずれも関数として定義してmainの中に直接記述しないように作ります.
社員情報はクラスとして定義します.その中に変数として社員ID,社員名,生年月日,給料を持たせます.
社員情報を複数持つリストを作成し,そこに社員情報を格納します.
削除と編集ではリスト内を社員IDで検索する必要がありますので,ユーザが指定した番号と全ての社員情報を突き合わせ,IDが一致した時にその社員の情報を削除または編集するという方法を取ります.
編集は削除と登録の組み合わせなので,それぞれの関数を流用します.
生年月日と年収は入力規制を設けておかしな入力だった場合は再入力するよう促します.


次回は私が書いたコードを掲載し,それについて解説していきます.その次は知人のエンジニアに添削してもらった結果を書こうと思います.結構考えることが多くて良い勉強になりますよ.



参考文献
特になし