Introduction To C Programming
Learning Outcomes:
•Design, implement, and document (appropriately) efficient algorithms for a C application using a structured approach to programming.
•Illustrate the use of C as both an application and a systems programming language by being able to design, implement, and document efficient algorithms for a C application.
•Explain the structure, correct use of and implementation of appropriate advanced data structures for a range of scenarios.
Washing Machine Operation
The objective of this assignment is to create a system to control a simulated washing machine. On the control panel of the washing machine unit are several buttons (each represented with a letter) that operate as shown below:
O - On / Off button
By default the button is in Off state. When, in this state, and the O button is selected, the machine is in On state. When in On state, and the O button is selected, it is changed to the Off state and all entries prior to this are reset to original state.
Main Menu
Once the machine is turned On (using the On / Off button) the user will have the option of deciding whether to Wash Clothes (W) or View Log (V).
Wash Clothes
Once this option is selected, the Load Capacity Menu appears.
View Log
When this option is selected, the user would be able to view the washing machine operation logs according to the dates.
Load Capacity Menu
Here the user will need to select the size of the load from the Load Capacity Menu, which could include any one of the following options:
S - Small
M - Medium
L - Large
X - Extra Large
F - Free Load
If the user is not sure on which size to select (s)he has the option to choose F (Free Load). This means that the user would depend on the machine to determine the Load Capacity based on the weight of the clothes. The weight of the clothes can be a random generated value but its value has to be a logical weight for clothes put into a washing machine. When the weight is determined then the Load Capacity is set automatically to Small, Medium, Large or Extra Large. Note that there should be a minimum and maximum value for each Load Capacity type. E.g. Small should between 1 - 2 kg, etc.
Wash Menu
When the size of the load has been determined, the Wash Menu is activated. The user now gets to select from one of the following Wash Menu options:
F - Full Wash
W - Wash
R - Rinse
S - Spin
Full Wash
A Full Wash would consist of Washing, Rinsing and Spinning but may include Soak depending on the selection made in the Soak Menu which appears when the Full Wash is activated. In the Soak Menu the user has the option to select from the following:
N - No soaking
S - Soak
When the user selects N, the program will proceed to the next menu option - Temperature Menu. If the selects S, the system will prompt the user for the number of minutes to soak. The user can key in any value between 1 - 60 minutes. After the number of minutes is determined the program will proceed to the next menu option - Temperature Menu.
Wash
The Wash would consist of only Washing - without rinsing or spinning. However, it may include Soak depending on the selection made by the user from the Soak Menu which appears when the Wash is activated. The description of the Soak Menu is as listed above.
Rinse
The Rinse would consist of only Rinsing - without washing, spinning or soaking. The user would not have the option of selecting the temperature as well.
Spin
The Spin would consist of only spinning - without washing, rinsing or soaking. The user would not have the option of selecting the temperature as well.
Temperature Menu
This menu is activated only after either the Full Wash or the Wash option has been selected. The Temperature Menu contains the following option:
H - Hot
C - Cold
If the user selects H, hot water will be used for all operations - from soaking to rinsing.
Or else cold water will be used.
Once all the necessary inputs have been provided to the washing machine's system, the program provides the user with the estimated time of completing the wash as programmed and all these details are stored in a log.