Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

COMP2005J Object Oriented Programming

Course project description

You need to implement a Car rental system implemented in java using object-oriented programming.

Customers can:

● See available Cars (100 cars in total)

● Rent cars on hourly basis RMB100 per hour.

● Rent cars on a daily basis RMB400 per day.

● Rent cars on a weekly basis RMB1000 per week.

● Buy car insurance (price will depend on the duration and should be calculated based on the time the car was rented for RMB5 per hour e.g., for one day 24*5=120).

● Rent more than one car at one time

The car rental company should:

● Show the amount owed when the customer returns the car.

● Issue an invoice for the amount owed with separate field for insurance.

● Display available inventory (number of cars available).

● Take requests on hourly, daily, and weekly basis by cross verifying stock.

For simplicity, you can assume that:

● Any customer requests rentals of only one type i.e., hourly, monthly, or weekly

● Customers are free to choose the number of cars they want

● Requested cars should be less than available stock

Test Scenarios:

You should record your screen when running the following tests and submit a video inside the zip file. The video deration should be less than two minutes and you should explain by talking to the microphone during the recording.

1- The customer tries to rent 4 cars for one day and will be billed for RMB1600.

2- The customer tries to rent 4 cars for one day and buy insurance so will be billed for RMB1600 plus the insurance fee RMB480.

3- The customer tries to rent more cars than available and receives an error: “We do not have enough cars”.

 

Bonus Point (10% Extra):

To get the extra 10% the rental system should have a Graphical User Interface (GUI) to allow the users interact with it. Here is a Tutorial and a video guide on creating GUIs in IntelliJ Swing.

Grade component

Project submission (50% of full grade).

Submission deadline

The submission deadline is Wednesday, November 30, 2022, at 23:59 hours (Dublin time).

Submission guidelines

Your submission should include:

● Source-code of your implementation application, implemented in java. You should submit your code as a project and not as a single file. For this you should export your project as a zip file from the IDE (See how to do it on IntelliJ).

● The screen recording of test scenarios (less than 2 minuets). If you have a GUI you should also record the test scenarios using that.

● A detailed configuration report (in PDF format) describing your implementation of the course project. This report should describe in detail how you have implemented the project, and the various challenges that you faced during the same. This manual should describe the step-by-step procedure of developing your code maximum 7 pages including cover and references.

Please upload a single zipped folder (in .zip format) containing all these files arranged in a systematic manner.

The naming convention for each of the projects is:

ucdconnectid_pM.zip

where ucdconnectid is your UCD Connect ID, M is the project number, and p and zip are in lower-case characters.

For example, a student John Smith with the UCD Connect ID 12345678 would submit the first project as 12345678_p1.zip.

Grading scheme

The penalties for late submission are as follows:

● Less than 15 minutes past the deadline - no penalty.

● Greater than 15 minutes and less than 2 hours past the deadline - loss of 25% of the final mark.

● Greater than 2 hours past the deadline - loss of 50% of the final mark The submission will be graded based on the following criteria:

● Correctness: The software should perform as described in the final report.

● Robustness: The software should operate reliably and be not subject to frequent abnormal terminations.

● Report Quality: The associated configuration report should be organized and well- structured and.

● Video presentation: You should explain steps of the test during the recording.