Purpose
Demonstrate the ability to implement and use structured data types utilizing the facilities of the C programming language.
Assignment
Write a program that simulates a soft drink machine. Your program will consist of two sections. One section will be the functions that make up the drink machine. The second section will be the functions that provide the user interface for the drink machine and allow the user to purchase drinks.
Section 1: The Drink Machine
This describes the operation of the first section of your program. This is the processing that is needed to simulate the Drink Machine.
There will be 1 or more drink types in the machine. Your program will read the number of drink types and the drink information from a file. You must then dynamically create an array of structures that will hold the drink information. You may assume that there are no errors within the input file.
The Drink Machine Input File Format
Here is a sample file that contains the information for one such Drink Machine:
8
|
|
Cola
|
1.25 25
|
Root-beer
|
1.25 20
|
Lemon-lime
|
1.25 25
|
Water
|
1.00 40
|
Orange
|
1.25 5
|
Iced-tea
|
1.25 35
|
Grape
|
1.30 15
|
Iced-Coffee
|
2.00 35
|
The first item is an integer that describes how many drinks are described in the input file.
Following that are the drink descriptions. The drink name is first, the cost of the drink is second and the number of drinks in the machine at start up is third. Note that the drink names do not include any spaces in the text.
You can use the C stream function fscanf() to read in the values from the file.
Code
You will be creating your Drink Machine code as a C style program. Your source will be in a file called drinkmachine.c. The structure definitions and function prototypes will be put into a file called drinkmachine.h.
The program will need a couple of structures.
DrinkItem structure
One structure is for a DrinkItem and contains the following information:
id
|
The drink id (assigned by the program) of type int
|
name
|
Drink name (type of drink - read in from a file)
|
price
|
Drink cost (the retail cost of one drink). This is the price the customer will pay for one drink of this type. This is also read in from a file. Type is double.
|
number of drinks
|
Number of drinks of this type in the machine. Initial value is read in from a file. This is also updated by the program as people purchase drinks. Type int. Give this a good name.
|
Drinks purchased
|
Initially 0. Updated whenever a drink is purchased. Type is int. Give this a good name.
|
DrinkMachine structure
The other structure, for the DrinkMachine, will contain the following information:
|
An int that contains a version number. For this assignment this will have a value of 1.
|
|
An int that contains the number of DrinkItem structures.
|
|
An array of Drink Items. Each element of the array will be a DrinkItem structure. You will dynamically create this array based on the contents of an input file you will read in.
|
|
An int that contains the current location in the array of DrinkItem structures. This is used internally by the drink machine part of your code.
|
You will choose the names for the structure items.
Attachment:- Assignment.pdf