Reference no: EM133668531
Object-Oriented programming
Assessment Item 1: Introduction
You will submit work in tutorial activities during the study period. This is an individual assessment.
Part A
This is an individual assessment in which you will develop programs using Java programming concepts and OO principles based on problem definitions provided. You will be required to complete tutorial questions, laboratory exercises and a supervised programming test.
Setup your Environment or installation of Software's:
Install For Java, JDK 18, NetBeans 19 or latest version
For Python, Python 3.7.0, Atom, Jupyter or latest version
Problem Description: Comparing Loans
Write a program that lets the user enter the loan amount and loan period in number of years and displays the monthly and total payments for each interest rate starting from 5.00% to 8.00%, with an increment of 1/8. Here is a sample run:
Design: (Describe the major steps for solving the problem.)
Coding: (Copy and Paste Source Code here. Format your code using Courier 10pts)
Output screenshot: (Paste your output screenshot here. You need to apply the currency and percentage formats as well)
Part B
Write a program in java for class name BankAccount1, by creating an instance, accessing properties using accessor methods, and modifying properties using mutator methods.
Properties/Attributes/Fields/instance variables:
Account Number (String)
Account Holder Name (String)
Balance (Double)
Account State (String) (for later use only)
Constructor
Takes all above fields as parameter
Methods:
Accessor
Mutator
Support methods (if required)
<Output>
Account Number: 123456789 Account Holder Name: John Doe Balance: 1000.0
Account State: Active
Updated Account Information:
Balance: 1500.0
Account State: Suspended
<End Output>
Design: (Describe the major steps for solving the problem.)
Coding: (Copy and Paste Source Code here. Format your code using Courier 10pts)
Output screenshot: (Paste your output screenshot here.) Testing: (Describe how you test this program) Submission Instructions
You will be marked based on your submitted zipped file on Moodle. You are most welcome to
check your file with your lab tutor before your submission. No excuse will be accepted due to file corruption, absence from lecture or lab classes where details of lab requirements may be given.
Part C
For this tutorial session, students are required to appear in practical test by demonstrating the execution of a Java program.
Write a java program implementing a simple nested loop structure to draw the triangle using asterisk *character based on the user's input.
ASSESSMENT ITEM 2:
This is a group assessment (Group Size-4). You will design and implement an application after analyzing requirements given in a case study. You are required to apply basic constructs and OO programming principles in developing this software system.
Introduction (Part A) INSTRUCTIONS:
Design a VIT Ride Management System using UML(class )diagram.
The system should allow administrators to manage users, drivers, and ride requests. The application should include the following classes:
User:
Design a class representing the user entity in the system. Include attributes such as user ID, name, contact information, and any other relevant information. Methods: Constructors, getters, and setters. Methods for user-related functionalities (e.g., registering, removing, displaying).
Driver:
Design a class representing the driver entity.
Include attributes like driver ID, name, license number, vehicle information, and availability status. Methods: Constructors, getters, and setters. Methods for driver-related functionalities (e.g., registering, removing, displaying).
Ride:
Design a class representing a ride request or allocation. Include attributes such as ride ID, user ID, driver ID, pickup location, destination, and status. Methods: Constructors, getters, and setters, Methods for ride-related functionalities (e.g., requesting, allocating, displaying).
RideManager:
Design a class to manage users, drivers, ongoing rides, and ride history. Include appropriate methods for registering, removing, and displaying users and drivers.Include methods for ride management, such as requesting rides, allocating drivers, and displaying ride history. Methods for ride management (e.g., requesting rides, allocating drivers, displaying ride history).
Main:
Contains the main method for testing the functionalities. Creates an instance of the Ride Manager class and provides a menu system to allow administrators to interact with the system.
Create Relationships:
User-Driver Relationship:
Define the relationship between the User and Driver classes to represent the association between users and drivers.
Ride-User-Driver Relationship:
Establish relationships between the Ride, User, and Driver classes to represent the associations between ride requests, users, and drivers. You may add some more relationships from your understanding.
The classes should be designed using object-oriented principles such as inheritance, encapsulation, and polymorphism. The application should allow to perform the following tasks:
Register New Users:
Implement a method to register new users for the ride service, including details such as name, student ID, and contact information.
Remove Users:
Implement a feature to remove users from the system based on their student ID.
Display All Users:
Develop a method to display a list of all users registered for the ride service.
Register New Drivers:
Implement a feature to register new drivers for the ride service, including details such as name, driver's license number, and vehicle information.
Remove Drivers:
Develop functionality to remove drivers from the system based on their driver's license number.
Display All Drivers:
Implement a method to display a list of all registered drivers available for rides.
Request a Ride:
Design functionality that allows users to request a ride by providing their current location and desired destination.
Allocate Drivers to Rides:
Implement a method to allocate available drivers to ride requests based on factors such as proximity and availability.
Display Ongoing Rides:
Develop a feature to display a list of all ongoing rides, including details about the user, driver, and current status.
Display Ride History:
Implement functionality to display a list of all completed rides, including information such as starting point, destination, and feedback.
Requirement for design
Utilize appropriate access modifiers for class attributes and methods.
Consider implementing appropriate getter and setter methods for encapsulation.
Use inheritance or interfaces where applicable to promote code reuse and maintainability.
Consider any additional classes or interfaces that may be necessary to support the outlined functionalities.
Task 1: Implementation
Design in the code matches the design in the class diagram.
Coding standards. Applies to any code that has been touched by human hands (e.g. meaningful variable and method names, commenting, layout). We will look for meaningful identifier names (variable, classes, methods), inline comments, method header comments, class/module comments, layout.
Functional Completeness: All features are fully implemented, and snapshots are included in the report.
Task 2: System Demonstrations
Please start the video by discussing the contribution of each team member (i.e., which team member was responsible for which component in the system).
Students demonstrate understanding of the system, the relationship between the code and the design documents of the system.
Students should point out where in their code the constructs shown in their design documents are implemented.