Assignment Overview
You are tasked with creating a program for a pizza shop – however, as this is a comparative languages course, you will be creating the same application in the following programming languages:
• C,
• Python,
• Java and
• Lisp.
As you implement the application in each language, you should keep notes on the features of the languages used, which you found useful, as well as any issues or complications which arose due to the complexity or lack of any language features. A brief discussion based on these programming features for each individual language accompanying each implementation is required. Finally, a comparative overview of the languages highlighting applicability based on your experience in the design, implementation and debugging of your code is also required.
If you foresee or encounter any complications, you may opt to implement or incorporate additional language features which may be lacking, i.e. data structures. This can be done via:
• Your own implementation,
• Through libraries, or
• Via the incorporation of existing source code. You can use code found on the Internet, but use of any existing code must be referenced.
Program Specification
Users may order one or more pizzas, where each pizza may be either: small, medium or large.
Small pizzas cost $5, medium pizzas cost $8 and large pizzas cost $12.
All pizzas come on a tomato base (for our pizza shop, this will be the only option), and will have the topping cheese by default, at no extra cost. Users may choose up to a maximum of four additional toppings (bringing the total to five) from the following list, where each topping adds an additional $1 to the price of the pizza:
• Bacon,
• Olives,
• Ham,
• Mushrooms,
• Pineapple,
• Salami,
• Anchovies.
A pizza order consists of an order for one or more pizzas, where each pizza has a size, and may optionally include a list of up to four additional toppings.
Each pizza order must be marked as either to be collected or to be delivered.
If the pizza is to be collected then the order requires a name and a phone number to be valid.
If the pizza is to be delivered then a name, phone number and address are required to be valid. In addition, if the order total is less than $30 then an $8 delivery fee is added to the total.
The application must be error tolerant and capable of accepting keyboard input to store a number of pizza orders in memory (they do not have to be persisted to file), as well as displaying an order summary which include details of all orders, including:
• The details of each pizza in the order,
• The total cost of the order, and
• The name, phone number and (if required) address of the person who made the order.
Additional Documentation – Language Suitability Report
The design of each programming language incorporates a number of decisions about the language which make it more or less suitable for given tasks. During your implementation of the pizza program in each of the languages you should make notes about the language features which exist or do not exist, and which have therefore made program development easier or more difficult.
Where a language has not provided a feature which would have been useful to the implementation of the program, or where the complexity of using a language feature has been high you should remark upon it and briefly discuss a mechanism or feature of another language which would have made development easier.
After completing the application in all languages (or as many as you can), discuss the comparative ease of implementation in terms of the design, implementation and debugging for each programming language, including how robustness issues were addressed.