{"id":29983,"date":"2026-02-23T10:01:52","date_gmt":"2026-02-23T10:01:52","guid":{"rendered":"https:\/\/academicwritersbay.com\/solutions\/ict-162-object-oriented-programming-tutor-marked-project-january-2026-suss-singapore\/"},"modified":"2026-02-23T10:01:52","modified_gmt":"2026-02-23T10:01:52","slug":"ict-162-object-oriented-programming-tutor-marked-project-january-2026-suss-singapore","status":"publish","type":"post","link":"https:\/\/academicwritersbay.com\/solutions\/ict-162-object-oriented-programming-tutor-marked-project-january-2026-suss-singapore\/","title":{"rendered":"ICT 162 Object Oriented Programming Tutor-Marked Project January 2026 | SUSS, Singapore"},"content":{"rendered":"<p>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 \u2013 SUSS_PI_No- FullName_TMA.docx. Rename the file along with your SUSS PI and complete name be part of with \u201cTMA\u201d e.g., \u201cSUSS_PI- TomTanKinMeng_TMA.docx\u201d (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\u2019ll 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) \u2014 you\u2019ll 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\u2019s what you\u2019ll be tackling:   Provide Companions: Mannequin both fat-time and share-time workers and calculate their salaries in step with offer rounds.  Orders &#038; 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\u2019ll safe practiced key OOP suggestions \u2014 abstraction, encapsulation, inheritance, and polymorphism \u2014 while solving complications that feel helpful and fun. It\u2019s no longer accurate about writing code; it\u2019s 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\u2019s 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 \u2013 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 \u2013 M \u2013 $\u00a0 9.59 x 4 Tremendous Supreme \u2013 L \u2013 $ 12.59 x 3 Whole impress:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $ 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., \u201cPreparing for offer\u201d, \u201cDelivered\u201d).   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 \u201cPreparing for offer\u201d 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 \u201cPreparing for offer\u201d to \u201cDelivered\u201d).   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\u2019 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&#8217;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 \u2013 L \u2013 $12.59 x 1 Hawaiian Gentle \u2013 M \u2013 $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(\u201cHerro Tan\u201d, \u201c999A, Sentosa Cove\u201d, 99123665), Pizza(\u201cHawaiian Plus\u201d, \u201cM\u201d, 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\u00a0\u00a0\u00a0\u00a0\u00a0 # # 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 \u2013 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., \u201cDP-007\u201d, \u201cMaverick\u201d 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 \u2013 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 \u201cDeliveryRound\u201d 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., \u201cEast Cruise Path1\u201d. 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\u2019s call signal. The price is one other dictionary with the following fields: \u201cpartner\u201d \u2192 the DeliveryPartner object. \u201cassigned\u201d \u2192 a boolean indicating whether or no longer the partner is for the time being assigned to a offer spherical. \u201crounds\u201d \u2192 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\u2019s \u201cassigned\u201d 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(\u201cProvide spherical no longer stumbled on.\u201d). For every and each yell in that spherical, replace its situation to \u201cDelivered\u201d. Ticket the provision partner as unassigned in deliveryPartners. Increment the partner\u2019s \u201crounds\u201d 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 \u201cDelivered\u201d, some bogus offer spherical and so on.  It is most lifelike to serene search recordsdata from that the provision rounds are \u201cDelivered\u201d and the provision companions are additionally \u201cUnassigned\u201d, with \u201crounds\u201d 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 \u2013 Allotment-time   Tom Yam Kong Maverick 1,200 Plump-time   Sarah Tan SwiftRider \u2013 Allotment-time   Rajesh Kumar IronHorse 1,500 Plump-time   Mei Ling Wong StarDrop \u2013 Allotment-time   Ahmad Hassan FalconX 1,350 Plump-time   Jessica Lee NightOwl \u2013 Allotment-time   Daniel Chua ThunderBolt 1,250 Plump-time   Nurul Aisyah Hurry \u2013 Allotment-time   Kelvin Wong RoadRunner 1,400 Plump-time   Sally Tan SpeedRider \u2013 Allotment-time     Hint:  Structure the above into a textual jabber material file with columns: Title, Name Brand, Habitual Salary, Form.   Quit of Project\u00a0        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<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-29983","post","type-post","status-publish","format-standard","hentry","category-solutions"],"_links":{"self":[{"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/posts\/29983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/comments?post=29983"}],"version-history":[{"count":0,"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/posts\/29983\/revisions"}],"wp:attachment":[{"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/media?parent=29983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/categories?post=29983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academicwritersbay.com\/solutions\/wp-json\/wp\/v2\/tags?post=29983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}