詳細設計にそってプログラムを書き換えました若干そって無い部分があるのでソースコードを確認してください