Coffee-Maker-Machine-using-OOPsのコーヒーメーカーシミュレータ
概要
Coffee-Maker-Machine-using-OOPsはPythonで実装されたコーヒーメーカーのシミュレーションプログラムです。オブジェクト指向プログラミング(OOP)の手法を用いて、ユーザーがドリンクを選択し、コインを投入して支払いを行い、マシンがリソースの残量管理や売上の計算を自動で行います。エスプレッソ、ラテ、カプチーノの3種類のドリンクに対応しており、実際の自動販売機の操作感を模擬。教育目的で作成されており、クラスやメソッドによる構造化が理解しやすい設計となっています。
リポジトリの統計情報
- スター数: 2
- フォーク数: 0
- ウォッチャー数: 2
- コミット数: 2
- ファイル数: 5
- メインの言語: Python
主な特徴
- オブジェクト指向プログラミングによるコーヒーメーカーのシミュレーション
- 複数のドリンクメニュー(ラテ、エスプレッソ、カプチーノ)に対応
- コイン投入による支払い処理とお釣りの計算機能
- マシンのリソース(材料)管理と売上集計機能を実装
技術的なポイント
本プロジェクトの最大の特徴は、Pythonのクラスを用いてコーヒーメーカーの動作をモデル化している点にあります。主な構成要素は「メニュー管理」「マネーマシン」「コーヒーメーカー本体」という役割ごとに分かれたクラス群です。
まず、menu.py
に定義されているクラスは、コーヒーメニューの情報をカプセル化しています。各ドリンクの必要な材料(コーヒー豆、ミルク、水など)や価格を属性として持ち、ユーザーの選択に応じて簡単にアクセスできるよう設計されています。これにより新たなドリンクの追加やメニューの変更が容易です。
money_machine.py
は、投入されたコインの金額を計算し、支払いが足りているかの判定やお釣りの計算を行います。このクラスはユーザーからのインプットを受け取り、支払い処理のロジックを担うため、実際の自販機の貨幣処理を模擬しています。金額の計算過程や不足金額の通知、過剰払いの場合のお釣り出力をメソッドで明確に分離している点が特徴です。
coffee_maker.py
は、コーヒーの材料の在庫管理と実際にドリンクを作る処理を担当しています。材料が不足している場合にはユーザーに知らせる機能を持ち、材料の減少を正しく反映させます。さらに、売上の計算やリソースの残量表示などの管理機能も内包し、マシンの状態を一元管理しているのがポイントです。
main.py
はこれらのクラスを統合し、ユーザーインタラクションを実現するエントリーポイントです。プログラムの起動から終了までの流れを制御し、ユーザーが飲み物を選択し、支払い、コーヒーの提供までの一連の操作をシームレスに体験できるよう設計されています。
このように、各機能をクラス単位に分割することでメンテナンス性と拡張性が高まり、オブジェクト指向の基本的な概念であるカプセル化や単一責任の原則が守られています。また、ユーザー入力の検証やエラーハンドリングもシンプルながら適切に実装されており、実用的な小規模プロジェクトとしての完成度が高いです。
さらに、READMEに示された起動手順や操作説明により、初心者でも迷わずプログラムを動かし、動作を確認できる点も特徴です。GUIではなくコマンドラインベースながら、実際のコーヒーマシンの流れを忠実に再現し、プログラムの理解を助けます。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: プロジェクトの説明と使用方法
- coffee_maker.py: コーヒーメーカーのリソース管理とドリンク作成機能実装
- main.py: ユーザーインターフェースとプログラム起動のメインスクリプト
- menu.py: ドリンクメニューのデータ管理クラス
- money_machine.py: 支払い処理を担当するクラス
まとめ
PythonのOOPを学ぶのに最適なコーヒーメーカーシミュレーション。
リポジトリ情報:
- 名前: Coffee-Maker-Machine-using-OOPs
- 説明: I created this coffee machine using classes which asks the user for their choice of drink and asks for money, it has attributes and methods that calculate the users change and also a secret method to show the resources left and the profit made by the machine.
- スター数: 2
- 言語: Python
- URL: https://github.com/RenNeedsSleep/Coffee-Maker-Machine-using-OOPs
- オーナー: RenNeedsSleep
- アバター: https://avatars.githubusercontent.com/u/194795186?v=4