Uploaded by Tharaka Mihiranga

EEI3372 MP - draft

advertisement
The Open University of Sri Lanka
Bachelor of Software Engineering, Bachelor of Technology,
Diploma in Information Systems and Technology – Academic Year – 2019/2020
EEI3372 - Programing with Python
Due Date : 20/03/2020, Fri (Elearn OR Hardcopy)
Task 01 : Python Program
You are to write a program using Python to manage an automatic coffee maker. Different types of
coffee could be brewed from the machine and details about the coffee type, price and their country of
origin should be stored in your program along with the availability levels of the raw materials.
(Assume each type of coffee requires only one unique raw material such as a mixed power)
Users can request for a coffee by inserting money into the machine. (you may get this as a CLI input
from the user). Check relevant conditions and issue the requested coffee to the user and update the
records accordingly.
The operator may use your program to add new coffee type, modify item details such as the price,
delete a type of coffee or to update the raw material stock (+/- quantity). The raw material level is
measured using different units such as packets and kilograms representing the number of coffees that
could be brewed and at one time the raw material for a particular type of coffee may not exceed 20.
Additionally it should be possible to to view the value of all coffees brewed and the total number of
coffees that could be brewed from the raw materials available at a given time.
Abstraction : Use classes to model options of coffee, use object oriented concepts such as inheritance
to model real world objects. Use functions with suitable parameters to abstract out the program logic.
Testing and Profiling : Program should be well tested using suitable tools and be documented. Use
profiling tools and monitor the performance of your program.
Task 02 : Documentation
The documentation should describe your implementation covering the following areas.
1. Problem(s) - subproblems, constraints
2. Solution Approach - How you plan to solve the identified sub problems
3. Flowchart ​OR​ Pseudocode for ​one(1)​ functionality involving complex logic
4. Used programming constructs with examples - Classes, Functions etc.
5. Test Results (test cases with screenshots and descriptions)
6. Profiling Results (including screenshots and descriptions)
7. Conclusion
Download