ICT 162 Object Oriented Programming Tutor-Marked Project January 2026 | SUSS, Singapore

ICT162 Tutor-Marked Project Jan 2026 Presentation This task is price 24% of the final impress for ICT162, Object Oriented Programming. The gash-off date for this task is Sunday, 22 March 2026, 2355hrs. Display to Students: You would additionally very successfully be to consist of the following particulars for your submission: Course Code, Title of the TMA, SUSS PI No., Your Title, and Submission Date. All TMAs need to serene be submitted electronically through Canvas. No partial submission of TMA shall be licensed unless otherwise specified. Project Requirements Unless laid out within the demand, you CANNOT utilize functions no longer lined on this module, e.g., re, collections, numpy, pandas and so on. All lessons and functions need to serene be documented. Provide adequate feedback to your code and be positive that your program adheres to unbiased correct programming practices such as no longer using world variables. Make sure you utilize dunder __ to indicate non-public instance variables and single underscore __ for acquire class variables. Build no longer utilize the exit() feature. Failing to lift out so can incur a penalty of as unheard of as 50% of the impress dispensed. Submission Information Utilize the template note doc equipped – SUSS_PI_No- FullName_TMA.docx. Rename the file along with your SUSS PI and complete name be part of with “TMA” e.g., “SUSS_PI- TomTanKinMeng_TMA.docx” (with out the quotes). Encompass the following particulars on the most considerable net page of the note doc, on separate lines: Course Code, SUSS PI No., Your Title, Tutorial Community and Submission Date. Reproduction and paste the source code of each and each program you write in textual jabber material layout. Post screenshots for most lifelike output of your program, the build appropriate. While you post the source code as a screenshot, your code is never any longer going to be marked. That is, screenshot code shall be awarded zero impress. Post your solution within the develop of a single MS Phrase doc. Build NOT post as a pdf doc. You shall be able to be penalised whilst you fail to post a note doc. The note doc need to serene be submitted to your respective T group. Apart from this, you are required to add your source code to Vocareum. Be taught the following introduction earlier than attempting this TMA. Welcome to your Pizza House programming poke! In this task, you’ll step into the shoes of a machine dressmaker helping a busy pizza company build up its deliveries, orders, and companions. The problem is all about object-oriented programming (OOP) — you’ll originate lessons, utilize inheritance and composition, tackle exceptions, and produce steady-world industry principles into code. Deem of it as building a mini machine that can per chance well escape a pizza offer carrier. Here’s what you’ll be tackling: Provide Companions: Mannequin both fat-time and share-time workers and calculate their salaries in step with offer rounds. Orders & Clients: Manage pizza orders, discover quantities, build in force limits, and tackle errors gracefully. Provide Rounds: Set up deliveries with capacity principles and attach them relief to the companions who make their pay. Pizza House Administration: Tie every thing together to compute salaries and shield the machine running smoothly. By the discontinuance, you’ll safe practiced key OOP suggestions — abstraction, encapsulation, inheritance, and polymorphism — while solving complications that feel helpful and fun. It’s no longer accurate about writing code; it’s about pondering esteem a machine architect who can turn a industry field into a working program. Inquire of 1 (10 marks) Inquire of 1a (10 marks) Let’s launch with the Buyer. Invent the Buyer class in accordance with the specification within the class draw proven below in Resolve Q1a. Buyer name: str tackle: str contactNumber: int __init__(self, name: str, tackle: str, contactNumber: int) name(self): str tackle(self): str contactNumber(self): int __str__(self): str Resolve Q1a Put in force the class – Buyer The Buyer class has: Three instance variables: name (str): name of shopper. tackle (str): tackle of shopper. contactNumber (int): 8 digits Singapore telephone number. Constructor performs the following: Initialises these 3 instance variables: name, tackle and contactNumber, with the given parameters. Getter suggestions for the instance variables: name, tackle and contactNumber. Utilize the property decorator. The __str__ skill returns a string illustration of a Buyer object, within the following yell: name, tackle, and contact number Title: Kyrie Lim Contend with: 94B Bedok North Ave 4, #10-10, Singapore 461094 Contact No: 9877 5877 (5 marks) Inquire of 1b Write Python class definitions for Pizza. The category draw in Resolve Q1b reveals specifications of the Pizza. Pizza name: str dimension: str impress: circulate __init__(self, name: str, dimension: str, impress: circulate) name(self): str dimension(self): str impress(self): circulate __str__(self): str Resolve Q1b The Pizza class has: Three instance variables: name (str): name of pizza. dimension (str): dimension of the pizza (S, M, L). impress (circulate): impress of the pizza in step with its dimension. Constructor performs the following: Initialises these 3 instance variables: name, dimension and price, with the given parameters. Getter suggestions for the instance variables: name, dimension and price. Utilize the property decorator. The __str__ skill returns a string illustration of a Pizza object, within the following yell: name, dimension, and price. Title: Hawaiian Plus Dimension: M Imprint: $9.59 (5 marks) Inquire of 2 (20 marks) In the Pizza House, an yell is placed by a customer. In each and each yell, the patron can pick any pizza, of assorted sizes (S, M, L) and amount. Look a pattern yell minute print below, which is self-explanatory: Bid ID: 123 Set: Preparing for offer Title: Kelly Chan Contend with: 331 Marymount Boulevard, #12-08, Singapore 570331 Contact No: 96773211 Hawaiian Plus – M – $  9.59 x 4 Tremendous Supreme – L – $ 12.59 x 3 Whole impress:        $ 76.13 Look the class draw in Resolve Q2, which showcase the relationships between Bid, Buyer and Pizza. Resolve Q2 Inquire of 2a Put in force the Bid class. The Bid class has: One class variable: NEXT_ORDER_ID: ragged to generate the running sequence number for orderID, starting from 1. Three instance variables: orderID: outlandish ID to title an yell. customer: represents the patron who has placed this yell. devices: the pizza(s) that the patron has ordered. This is conducted using a nested checklist of [pizza, qty]. situation: the hot situation of the yell (e.g., “Preparing for offer”, “Delivered”). Constructor that performs the following: Initialise orderID with the class variable NEXT_ORDER_ID, the running sequence number. Set customer to the given parameter customer. First, build devices to an empty checklist. Then, affect a checklist with the given parameter pizza and amount, i.e., [pizza, qty], and add this checklist into _items. Initialize situation to “Preparing for offer” by default. Increment the class variable NEXT_ORDER_ID, in yell that the following yell is never any longer going to safe replica orderID. Getter and setter skill to illustrate variable situation. Utilize the property decorator. The location setter is to let the Bid object replace its situation with the given parameter newStatus (e.g., from “Preparing for offer” to “Delivered”). Getter suggestions for totalPrice and pizzaCount. Utilize the property decorator. Property totalPrice will return the hot impress of the yell, computed using the full pizzas’ impress and amount on this yell. Property pizzaCount will return the choice of pizzas on this yell. The motive of addPizza skill is to add more pizza into this yell, i.e., into the gathering devices. Search through devices to be taught about if there’s any existing pizza matching the given parameters name and dimension. If sure, simply add the parameter amount to the hot amount. If the quest is never any longer a hit, this addition is for a cost-unusual pizza. Create the pizza object, and a checklist containing the pizza object and amount. Then add into this yell, i.e., into the gathering devices. The __str__ skill returns a string illustration of an Bid object. This is an instance within the suggested layout: Bid ID: 124 Set: Delivered Title: Kyrie Lim Contend with: 94B Bedok North Ave 4, #10-10, Singapore 461094 Contact No: 98775877 Tremendous Supreme – L – $12.59 x 1 Hawaiian Gentle – M – $8.59 x 2 Whole impress: $29.77 (16 marks) Inquire of 2b Look following Python codes that affect an Bid object o1 and has design to add in extra pizzas into this yell. Whole the Python codes, with given directions starting from line 7. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. def main(): # Introduction of Bid o1 = Bid( Buyer(“Herro Tan”, “999A, Sentosa Cove”, 99123665), Pizza(“Hawaiian Plus”, “M”, 9.59), 1) # write codes to add the following pizzas on this sequence # 1. Title: Tremendous Supreme, Dimension: L, Imprint: 12.59, Qty: 3 # 2. Title: Hawaiian Plus, Dimension: M, Imprint: 9.59, Qty: 3 # 3. Title: Chicken Satay, Dimension: L, Imprint: 11.59, Qty: 6      # # Print yell minute print after these additions (4 marks) Inquire of 3 (20 marks) In Pizza House, offer companions are employed to bring pizza orders to clients. There are 2 kinds of offer companions: fat-time and share-time. Provide companions make their pay in step with the choice of rounds they herald a month. Costs for offer per spherical is $32. Look Resolve Q3a for the costs structure for offer companions. Accomplice Form Probability of Rounds Delivered (r) r 30 Plump-time frequent salary + r * f frequent salary + r * f Allotment-time r * f 30 * f + (r-30) * (f*1.85) the build f represents the costs per spherical. Resolve Q3a The category draw in Resolve Q3b reveals specifications of the provision companions. Resolve Q3b Inquire of 3a Put in force the summary class – DeliveryPartner. FEES_PER_ROUND: defines the costs earned handing over a spherical. It has 2 instance variables: callSign (str): the most successfully liked alias or code for this offer partner. E.g., “DP-007”, “Maverick” name (str): name of the provision partner. Constructor initialises these 2 instance variables: callSign and name. Getter suggestions for callSign and name. Utilize the property decorator. One summary skill, computePay() which returns the computed pay for the DeliveryPartner, given the choice of rounds delivered. The __str__ skill returns a string illustration of a DeliveryPartner object, which need to serene consist of the name and callSign. This is an instance within the suggested layout: Title: Lim Lim Kee CallSign: DP-007 (6 marks) Inquire of 3b Write Python class definitions for FullTimeDeliveryPartner and PartTimeDeliveryPartner class. Write Python class definitions for FullTimeDeliveryPartner and PartTimeDeliveryPartner class. The FullTimeDeliveryPartner class is a subclass of DeliveryPartner, and it has: One extra instance variable: basicSalary (circulate): month-to-month frequent salary of a fat-time offer partner. Put in force the skill computePay() in step with the costs structure given in Resolve Q3a. The PartTimeDeliveryPartner class is a subclass of DeliveryPartner, and it has: Two class variables: o BONUS_ROUNDS: past this spherical number, a share-time offer partner shall be rewarded with a increased charges per spherical. BONUS_RATE: representing the bonus payment on the costs per spherical, need to serene the share-time offer partner qualify. Put in force the skill computePay() in step with the costs structure given in Resolve Q3a. (10 marks) Inquire of 3c Write Python statements to affect the exact DeliveryPartner objects using the recordsdata below, and to print their pay. Title Name Brand Habitual Salary Rounds Delivered Lim Lim Kee DP-007 – 50 Tom Yam Kong Maverick 1,200 40 (4 marks) Inquire of 4 (25 marks) Practice the foundations of object-oriented programming and form a program to support Pizza House build up their “DeliveryRound” and implement skill to compute the salary of Provide Companions. Look the class draw in Resolve Q4, which now aspects the DeliveryRound class. Resolve Q4 In Pizza House, each and each Provide Accomplice is given a automobile that has storage capacity of 12 Pizzas. Hence in a offer spherical, the maximum choice of pizzas the provision partner can bring is 12. Inquire of 4a Account for the class OrderException, which is a subclass of the Exception class. This class has no extra attribute or skill. (1 impress) Inquire of 4b You would additionally very successfully be given the following class that has one class variable: class Config: MAX_PIZZA = 12 MAX_PIZZA: represents the maximum choice of pizzas or the storage capacity of the auto ragged to bring pizzas. In a conceivable field, the provision partner delivers one yell up to 12 pizzas. Enhance the addPizza job of the Bid class to consist of exception handling as follows: If this addition ends in devices having more pizzas than MAX_PIZZA, the pizza(s) is never any longer added into the devices, develop OrderException with acceptable message. (4 marks) Inquire of 4c Put in force the DeliveryRound class. The DeliveryRound class represents an precise offer spherical that the Pizza House will setup for a offer partner. It has the following attributes: Four instance variables: roundName represents the name given for this offer spherical. E.g., “East Cruise Path1”. deliveryDateTime is the launch time of the provision spherical. orders is a checklist that represents the full orders for this offer spherical. deliveryPartner represents the provision partner doing this offer spherical. The constructor performs the following: Initialise roundName and deliveryPartner with the given parameter roundName and deliveryPartner. Set deliveryDateTime to the hot datetime, and _orders to an empty collection. Getter suggestions for orders and deliveryPartner. Utilize the property decorator. The addOrder skill has newOrder (an Bid object) as parameter. If this addition ends in orders having more pizzas than 12, i.e., this DeliveryRound has higher than 12 pizzas, develop OrderException with acceptable message. Hence, the newOrder is never any longer added into this offer spherical. Otherwise, add the newOrder into the gathering orders. The __str__ skill returns a string illustration of a DeliveryRound object. You would additionally account for the output layout for the provision spherical, as prolonged as all minute print are presented. (17 marks) Inquire of 4d Relating to Resolve Q4, for the following pairs of lessons, title between object composition and inheritance, and account for your choices: DeliveryRound and Bid DeliveryRound and FullTimeDeliveryPartner DeliveryRound and Pizza (3 marks) Inquire of 5 (25 marks) In this demand, you are going to implement the PizzaHouse class to shield a watch on offer companions, orders, and present rounds. The focus is constructing the DeliveryRound accurately. The fat class draw for Pizza House is equipped in Resolve Q5. Resolve Q5 Inquire of 5a Specs of PizzaHouse class: Two instance variables: deliveryPartners: a dictionary containing all offer companions of Pizza House. The secret is the partner’s call signal. The price is one other dictionary with the following fields: “partner” → the DeliveryPartner object. “assigned” → a boolean indicating whether or no longer the partner is for the time being assigned to a offer spherical. “rounds” → an integer monitoring the choice of rounds this partner has delivered. deliveryRounds: a checklist containing all offer rounds created by Pizza House. (you are going to additionally add more instance variables, equipped they make sense) Constructor: Initialises both lists as empty. Reads offer partner recordsdata from a file equipped in Appendix A. Creates the exact FullTimeDeliveryPartner or PartTimeDeliveryPartner objects and stores them in deliveryPartners. implement: addOrder(customer, pizza, qty): Creates a brand unusual Bid object. Tests if this yell could well additionally additionally be added into an existing DeliveryRound (with out exceeding the maximum capacity of 12 pizzas). If sure, add the yell into that spherical. If no existing offer spherical can accommodate it, affect a brand unusual DeliveryRound, build a offer partner (settle one unassigned offer partner from deliveryPartners, otherwise, develop exception), and add the yell into this unusual spherical. Update the partner’s “assigned” flag. deliveredRound(roundName): Parameter roundName signify the name of the provision spherical to be marked as delivered. Seek for for the provision spherical with the given roundName. If no longer stumbled on, develop an OrderException(“Provide spherical no longer stumbled on.”). For every and each yell in that spherical, replace its situation to “Delivered”. Ticket the provision partner as unassigned in deliveryPartners. Increment the partner’s “rounds” counter (monitoring accomplished rounds). Apart from, develop OrderException if the spherical does no longer exist, or if the spherical has already been delivered (to forestall double-counting). listDeliveryRounds(): Shows minute print of all offer rounds in PizzaHouse. Every offer spherical need to serene expose: Spherical name Provide partner (name and callSign) Orders within the provision spherical (pizza name, dimension, impress, qty) Whole pizzas within the provision spherical (17 marks) Inquire of 5b For this demand, consist of a prime() program that: Create the PizzaHouse object. Add in on the very least 10 orders that prove the good judgment you conducted in PizzaHouse class: Orders could well additionally additionally be hardcoded or interactively entered. When orders are added, they safe to serene be grouped into offer rounds of up to 12 pizzas each and each. If a spherical is fat, a brand unusual spherical is created and assigned to the following unassigned offer partner. Invoke the listDeliveryRound() skill to expose all offer rounds and their minute print clearly. Update some offer rounds to “Delivered”, some bogus offer spherical and so on. It is most lifelike to serene search recordsdata from that the provision rounds are “Delivered” and the provision companions are additionally “Unassigned”, with “rounds” counter incremented. Invoke over again listDeliveryRound() skill to expose all offer rounds to expose the variations. Compute and print the pay for the full offer companions. Make sure you shield a watch on all exceptions including enter error (if any). (8 marks) Appendix A Checklist of Provide Companions Title Name Brand Habitual Salary Form Lim Lim Kee DP-007 – Allotment-time Tom Yam Kong Maverick 1,200 Plump-time Sarah Tan SwiftRider – Allotment-time Rajesh Kumar IronHorse 1,500 Plump-time Mei Ling Wong StarDrop – Allotment-time Ahmad Hassan FalconX 1,350 Plump-time Jessica Lee NightOwl – Allotment-time Daniel Chua ThunderBolt 1,250 Plump-time Nurul Aisyah Hurry – Allotment-time Kelvin Wong RoadRunner 1,400 Plump-time Sally Tan SpeedRider – Allotment-time Hint: Structure the above into a textual jabber material file with columns: Title, Name Brand, Habitual Salary, Form. Quit of Project  Write My Project Struggling With ICT162 Object-Oriented Programming TMA at SUSS? Native Singapore Writers Crew 100% Plagiarism-Free Essay Very most lifelike Satisfaction Rate Free Revision On-Time Provide

QUALITY: 100% ORIGINAL PAPER NO ChatGPT.NO PLAGIARISMCUSTOM PAPER

Best Custom Essay Writing Services

Looking for unparalleled custom paper writing services? Our team of experienced professionals at AcademicWritersBay.com is here to provide you with top-notch assistance that caters to your unique needs.

We understand the importance of producing original, high-quality papers that reflect your personal voice and meet the rigorous standards of academia. That’s why we assure you that our work is completely plagiarism-free—we craft bespoke solutions tailored exclusively for you.

Why Choose AcademicWritersBay.com?

  • Our papers are 100% original, custom-written from scratch.
  • We’re here to support you around the clock, any day of the year.
  • You’ll find our prices competitive and reasonable.
  • We handle papers across all subjects, regardless of urgency or difficulty.
  • Need a paper urgently? We can deliver within 6 hours!
  • Relax with our on-time delivery commitment.
  • We offer money-back and privacy guarantees to ensure your satisfaction and confidentiality.
  • Benefit from unlimited amendments upon request to get the paper you envisioned.
  • We pledge our dedication to meeting your expectations and achieving the grade you deserve.

Our Process: Getting started with us is as simple as can be. Here’s how to do it:

  • Click on the “Place Your Order” tab at the top or the “Order Now” button at the bottom. You’ll be directed to our order form.
  • Provide the specifics of your paper in the “PAPER DETAILS” section.
  • Select your academic level, the deadline, and the required number of pages.
  • Click on “CREATE ACCOUNT & SIGN IN” to provide your registration details, then “PROCEED TO CHECKOUT.”
  • Follow the simple payment instructions and soon, our writers will be hard at work on your paper.

AcademicWritersBay.com is dedicated to expediting the writing process without compromising on quality. Our roster of writers boasts individuals with advanced degrees—Masters and PhDs—in a myriad of disciplines, ensuring that no matter the complexity or field of your assignment, we have the expertise to tackle it with finesse. Our quick turnover doesn’t mean rushed work; it means efficiency and priority handling, ensuring your deadlines are met with the excellence your academics demand.

ORDER NOW and experience the difference with AcademicWritersBay.com, where excellence meets timely delivery.

NO PLAGIARISM