Assessment Details and Submission Guidelines Trimester T2 2019 Unit Code BN108 Unit Title Programming for Networking Assessment Type Individual Assessment Title Assignment 2 – Interactive programs Purpose of the assessment (with ULO Mapping) This assignment assesses the basic concepts of programming; students should be able to demonstrate their achievements in the following unit learning outcomes: a. Describe the fundamental principles of object-oriented programming; b. Interpret a user’s needs while dealing with simple program specifications; c. Design a simple class using UML notation; d. Create a simple application based on UML design and the incremental development process of coding, debugging, and testing; e. Apply basic control structures – sequence, repetition, and selection – to program development; f. Produce simple interactive applications. Weight 25% Total Marks 50 marks Word limit Not applicable Due Date Week11: 24/09/2019 5:00PM Submission Guidelines • All work must be submitted on Moodle by the due date along with a completed Assignment Cover Page. • The assignment must be in MS Word format, 1.5 spacing, 11-pt Calibri (Body) font and 2 cm margins on all four sides of your page with appropriate section headings. • Reference sources must be cited in the text of the report, and listed appropriately at the end in a reference list using IEEE referencing style. Extension • If an extension of time to submit work is required, a Special Consideration Application must be submitted directly on AMS. You must submit this application three working days prior to the due date of the assignment. Further information is available at: http://www.mit.edu.au/about-mit/institute-publications/policies-procedures-and-guidelines/specialconsiderationdeferment Academic Misconduct • Academic Misconduct is a serious offence. Depending on the seriousness of the case, penalties can vary from a written warning or zero marks to exclusion from the course or rescinding the degree. Students should make themselves familiar with the full policy and procedure available at: http://www.mit.edu.au/about-mit/institute-publications/policies-procedures-and-guidelines/Plagiarism-Academic-Misconduct-Policy-Procedure. For further information, please refer to the Academic Integrity Section in your Unit Description. Assignment Description: This assignment will give you practice with interactive programs, if/else statements, collections, loops and functions. Problem Description A small car yard dealing in second hand cars needs an application to keep records of cars in stock. Details of each car shall include registration(rego), model, color, price paid for the car (i.e. purchase price) and selling price. Selling price is calculated as purchased price plus mark-up of 30%. For example, Toyota Corolla bought for $20,000 will have the selling price of 20000 * (1 + 0.3) = 26000. Task Requirements Imagine you have been invited to develop a menu driven python application to manage records of cars in stock. Based on the problem description, starter program (code template) has been provided. Investigate the provided starter program. There are four scripts(application.py, caryard.py, cars.py and vehicle.py). Driver function(main) is defined in the appliction.py, which imports caryard module(caryard.py). Caryard declares all the core functions (buy, sell, search, etc. …) for supporting the car yard business. The caryard module imports cars module(cars.py), and the cars module in turn imports the vehicle that include a definition of a Car class. Program is executed by loading and running the application.py. The important work of interconnecting and wiring of modules and functions have been already been done. However, most of these functions, although declared and wired up in the program are not yet implemented. Your task is to implement these functions. There are eleven (11) tasks to be completed described next within the modules: 1. application.py • Task 1: implement menu () 2. caryard.py • Task 2: implement buy_car () • Task 3: implement sell_car () • Task 4: implement search_car () • Task 5: implement list_all_cars () 3. cars.py • Task 6: implement addCar (rego, model, color, price) • Task 7: implement removeCar (rego) • Task 8: implement all_cars () • Task 9: implement search(rego) 4. vehicle.py • Task 10: implement the Car class • Task 11: UML model of a Car class Description of Program functions Program displays a menu on execution. Five menu options are available to allow the user to buy, sell, search, show all cars, and exit program respectively. Program functionality and screen output for each of the menu option when selected by the user follows: Program menu on execution: Option 1 (Buy a car): User enters 1. Note the error message for duplicate car rego Option 2 (Sell a car): User enters 2. Note the error message for invalid car rego, and the sell price which is a (30%) mark-up of purchase price. Option 3 (Search): User enters 3 Option 4 (Show all): User enters 4 Option 5 (Exit Program): User enters 5 Marking criteria: Marking criteria is shown in following table. Marks are allocated as follows: Description of criteria Max marks Marks obtained Implementation of Python functions (50 marks) Task 1: Main menu: design and functionality 5 Task 2: Buy : design and functionality 5 Task 3: Sell: design and functionality 5 Task 4: Search: design and functionality 5 Task 5: list_all_cars: design and functionality 5 Task 6: Add car: design and functionality 5 Task 7: Remove car: design and functionality 5 Task 8: All cars: design and functionality 5 Task 9: Search car: design and functionality 5 Task 10: Car class: design and functionality 5 Report (15 marks) Program overview 5 Screen shots of the program output (Task 1 – Task5) 5 UML model of a Car class from Task 10 5 Others (15 marks) Use whitespace/layout properly to make program more readable 5 Your program compiles successfully without any errors 5 Includes comments for all the functions implemented 5 Total 80 Marking Rubric for Assignment #: Total Marks 80 Grade Mark HD 40-50 DI 35-44 CR 30-34 P 25-29 Fail <25 Excellent Very Good Good Satisfactory Unsatisfactory Implementation of Python functions /50 Design and implementation is well done and consistent with the task requirements. Design and implementation is consistent with the task requirements. Design and implementation is mostly consistent with the task requirements. Design and implementation misses on some task requirements No attempted or implementation is incorrect Report /15 Presentation, structure and the content(UML and Screen outputs) of the report is well done and consistent with the task requirements. Presentation, structure and the content of the report is consistent with the task requirements. Presentation, structure and the content of the report is mostly consistent with the task requirements. Presentation, structure and the content of the report misses on some task requirements Not attempted or implementation is incorrect Others /15 Code layout, comments, meaningful variable names & compilation: well done and consistent with the tasks requirements Code layout, comments, meaningful variable names & compilation: very good and consistent with the tasks requirements Code layout, comments, meaningful variable names & compilation: generally consistent but can improve Code layout, comments, meaningful variable names & compilation: Some inconsistencies with the requirements Code layout, comments, meaningful variable names & compilation: poor effort and program fails to compile ~~~For this or similar assignment papers~~~