Reference no: EM134037496
Assessment:
Practical A - Programming Basics and Conditional Execution
This practical assesses Sessions 1 to 3: programming-language basics; data types, variables, operators and expressions; and conditional execution.
Question 1 - Travel Cost Calculator
Write a program that asks for the trip distance in kilometres, the vehicle's fuel consumption in litres per 100 kilometres, the fuel price per litre, and the number of passengers.
Calculate and display the litres of fuel required, the total fuel cost, and the cost per passenger. Display monetary values to two decimal places.
Reject zero or negative values and display a clear validation message rather than performing the calculation.
Question 2 - Student Result and Eligibility Classifier
Ask the user to enter a final mark from 0 to 100 and an attendance percentage from 0 to 100.
If either value is outside the permitted range, display an error message. If attendance is below 80%, display 'Not eligible to pass'. Otherwise, use an if-elif-else structure to classify the result as High Distinction (80-100), Distinction (70-79), Credit (60-69), Pass (50-59), or Fail (0-49).
Question 3 - Menu-Based Unit Converter
Use Python's match-case construct to provide the following menu: 1 - kilometres to miles; 2 - miles to kilometres; 3 - Celsius to Fahrenheit.
Ask for the required value, perform the selected conversion and display the result to two decimal places. Handle an invalid menu choice appropriately.
Test Practical A with at least one normal case and one invalid-input case for each question.
Practical B - Loops, Arrays, Modular Programming and Strings
This practical assesses Sessions 4 to 7: loop constructs, one-dimensional and multidimensional arrays, modular programming, methods and string processing.
Question 1 - Student Marks Analyser
Ask the user how many marks will be entered, then use a loop to read and store valid marks from 0 to 100 in a list.
Create separate functions to calculate the average, highest mark, lowest mark, number of passes and number of fails. Display all results clearly.
The program must reject an invalid list size and must repeatedly request a mark when a value outside 0 to 100 is entered.
Question 2 - String Analysis Toolkit
Write a function named analyse_text(text) that returns the number of words, vowels, digits and alphabetic characters in a sentence.
Write a second function that determines whether the text is a palindrome after spaces and letter case have been ignored. Test the functions with two different strings.
Question 3 - Inventory Search and Update
Store at least five products in a two-dimensional list. Each product must contain a product code, product name, unit price and quantity.
Create functions to display all products, search by product code, and update the quantity. Use a loop-driven menu that continues until the user chooses to exit.
The program must handle an unknown product code, a negative quantity and an invalid menu option without crashing.
Test Practical B with representative normal, boundary and invalid-input cases.
Practical C - Object-Oriented Programming
This practical assesses Sessions 8 to 10: classes and objects, encapsulation, inheritance and polymorphism.
Question 1 - BankAccount Class and Encapsulation
Create a BankAccount class with private attributes for account_number, holder_name and balance. Provide a parameterised constructor and controlled access to the data.
Implement deposit(amount), withdraw(amount) and display_account() methods. A deposit must be positive and a withdrawal must not make the balance negative.
Create two BankAccount objects and demonstrate valid and invalid deposit and withdrawal operations.
Question 2 - Library Item Inheritance
Create a base class LibraryItem with item_id, title and availability status. Create Book and DVD subclasses with at least one additional attribute each.
Use inheritance for common attributes and behaviours. Create and display at least two objects from each subclass.
Question 3 - Vehicle Hire Polymorphism
Create a base class Vehicle with registration_number and a method calculate_hire_cost(days). Create Car, Motorcycle and Truck subclasses.
Override calculate_hire_cost(days) using daily rates of $60 for a car, $35 for a motorcycle and $100 for a truck.
Store mixed subclass objects in one list and use a loop to call the same method for every object. This must demonstrate polymorphism.
Validate that the number of hire days is a positive integer and show the calculated cost for each vehicle.
Test Practical C with normal and invalid cases and include output evidence for encapsulation, inheritance and polymorphic behaviour.
Assessment Item 2:
Introduction
Peak Performance is a fitness club that requires a Python console system to manage members, facility access and personal-training bookings. This individual assessment is due in Session 9 and therefore focuses on topics taught through inheritance. Polymorphism is not required for this assessment.
Scenario Requirements
Member management - add, search and display members using member ID, name, age and membership type.
Facility access - Standard members may access the gym and pool; Premium members may access the gym, pool and sauna.
Booking management - add and cancel personal-training bookings. A Standard member may have no more than two active bookings and a Premium member no more than five.
Reports - display all active members, each member's permitted facilities, and the number of active bookings.
Required Design and Implementation
Analyse the users, inputs, outputs, business rules, validation requirements and error conditions. Produce a functional specification containing a use-case list, pseudocode or flowcharts, and a test plan.
Implement a base Member class and StandardMember and PremiumMember subclasses. Use encapsulation for member_id and active bookings, and place common attributes and methods in the base class.
Develop a menu-driven Object Oriented Programming Python prototype using loops, lists, functions, string processing and the required classes. The program must handle duplicate IDs, unknown members, invalid menu choices and booking-limit violations.
Deliverables
Submit one Microsoft Word document containing the official cover sheet, table of contents, problem analysis, functional specification, UML class diagram, editable Python code, test table, output screenshots and a short conclusion.
Assessment Item 3:
Title: Hotel Booking Management System - Console-Based Python Application
Project Overview
In groups of up to four students, design and implement a console-based Python application that manages the operations of a small hotel.
The system must manage guests, rooms, bookings, check-in, check-out, fee calculation, payments and operational reports. It must demonstrate programming fundamentals and Object Oriented Programming principles.
Project Objectives
Analyse the problem and translate the requirements into a clear functional specification.
Design classes using encapsulation, inheritance and polymorphism.
Develop a menu-driven console program using decisions, loops, functions, strings and appropriate data structures.
Validate all user input and handle errors without terminating the program unexpectedly.
Save and load hotel data using JSON or TXT files.
Mandatory Functional Requirements
Main Menu
The program must display a menu continuously until the user chooses to exit. At minimum, include:
Register Guest
Add Room
Create Booking
Check In Guest
Check Out and Pay
View Room Status
Search Booking
Reports
Save Data
Load Data
Exit
All menu choices must be validated. Invalid choices must not crash the program.
Guest Management
Register each guest using a unique guest ID, full name, phone number and email address.
Duplicate guest IDs are not allowed. Blank names and invalid contact details must be rejected with clear messages.
Allow users to search for and display a guest's details using the guest ID.
Room Management
The system must manage a fixed collection of hotel rooms configured when the program starts.
Each room must have a room number, room type, nightly rate and status such as Available, Reserved or Occupied.
Supported room types must include Standard Room, Deluxe Room and Suite. A room cannot be booked or occupied if it is unavailable.
Booking Management
Create a booking using a unique booking ID, guest ID, room number, check-in date and number of nights.
The program must verify that the guest exists and the selected room is available before creating the booking.
Prevent duplicate booking IDs and overlapping bookings for the same room.
Allow a booking to be cancelled before check-in and make the room available again.
Check-In and Check-Out
A guest may check in only when a valid booking exists. The room status must change to Occupied.
At check-out, calculate the number of nights, accommodation charge, optional service charges and total amount payable.
After payment, mark the booking as Completed and return the room status to Available. A completed or cancelled booking must not be checked in again.
Fee Calculation and Polymorphism
Use the following example nightly rates, or another lecturer-approved rate table:
Standard Room: $120 per night
Deluxe Room: $180 per night
Suite: $260 per night
Use polymorphism so each room type calculates its accommodation charge through an overridden calculate_cost(nights) method or an equivalent approved method.
The number of nights must be a positive integer. Clearly document how any additional service charges are calculated.
Reports and Analytics
Generate at least the following console reports:
Current Guests Report - guest, room, check-in date and booking status
Room Availability Report - available, reserved and occupied rooms
Revenue Summary - total completed payments
Booking Summary - active, completed and cancelled bookings
Room Type Statistics - booking counts by room type Reports must be clearly formatted and easy to read.
Data Persistence
Save and load data using JSON or TXT files. The saved data must include guests, rooms, bookings and completed payment records.
The program must handle a missing or empty data file gracefully and continue running.
Databases are not allowed.
Object-Oriented Programming Requirements
Implement at least the following classes:
Guest
Room (base class)
StandardRoom, DeluxeRoom and Suite (subclasses)
Booking
HotelSystem (controller or manager class)
Use private or protected attributes where appropriate and provide controlled access through methods.
Place common room attributes and behaviours in the Room base class. Demonstrate inheritance through the three room subclasses.
Demonstrate polymorphism through the overridden fee-calculation method.
Non-Functional Requirements
The program must run without unhandled runtime errors.
Code must be modular and use functions and class methods rather than one long script.
Input validation must be applied consistently throughout the menu system.
Console output must be clearly labelled and professionally presented.
Use meaningful variable, function, method and class names and appropriate comments.
Required Deliverables
Submit one Microsoft Word project report containing the official cover sheet, table of contents, executive summary and team contribution statement.
Include problem analysis, functional and non-functional requirements, use cases, pseudocode or flowcharts and a UML class diagram.
Explain how the project uses decisions, loops, data structures, functions, encapsulation, inheritance and polymorphism.
Paste the complete Python source code as editable text in a code appendix using a monospaced font. Include a README explaining how to run the console application and where its data files are stored.
Include screenshots showing the main menu, guest and room creation, booking, check-in, check-out, reports and error handling.
Include a test table containing normal, boundary and invalid cases with expected results, actual results and evidence.
Required invalid cases include duplicate guest ID, duplicate booking ID, unavailable room, unknown guest, invalid number of nights and missing data file.
Submit the complete runnable Python project folder and data files in the format specified on the LMS. PDF submissions are not accepted.
Presentation Recording
Record a 10 to 15 minute project presentation and console demonstration. Every group member must appear, speak and demonstrate their assigned work.
Store the recording on OneDrive and place a working share link on the project cover sheet. The recording supports Assessment Item 4 and does not replace the scheduled live presentation and viva-voce.
Assessment Item 4
Assessment Item 4 is a scheduled live demonstration, presentation and viva-voce based on the Hotel Booking Management System submitted for Assessment Item 3.
This is a hurdle assessment. Students must achieve at least 40% in this item to pass the unit.
Presentation and Demonstration Requirements
Deliver a 10 to 15 minute presentation using Microsoft PowerPoint, followed by the lecturer's questions and individual viva-voce.
Include a title slide with all names and student IDs, identify the speaker on relevant slides, and present the project objectives, scope and completed outcomes.
Present the functional and non-functional requirements, algorithms, UML class design, console-menu structure, implementation plan and project timeline.
Demonstrate the live console application, including guest registration, room management, booking, check-in, check-out and fee calculation, search, reports, save and load operations.
Explain and defend the use of Python fundamentals, data structures, functions, encapsulation, inheritance, polymorphism and file handling.
Demonstrate at least one normal case and one invalid or boundary case.
Every member must speak, demonstrate their assigned contribution and answer individual questions about the submitted design and code.
A student who does not participate in the scheduled presentation and viva-voce will receive zero for individual participation and may fail the hurdle requirement.
Bring a complete backup copy of the project, data files and presentation on a separate device or approved cloud location.
The OneDrive recording link submitted with Assessment Item 3 must remain accessible.
Assessment Basis
Marks reflect the quality of the group demonstration and each student's individual technical understanding. Individual marks may differ within the same group.
Students must be able to locate, explain and modify relevant sections of their code when requested.
Questions may cover any requirement, class, method, algorithm, validation rule, test result or file-handling decision included in the submitted project.