24LLP109 – Digital Application Development
Coursework Report (100%)
The coursework report for this module consists of two parts:
• Part 1. Software development (60%): develop a car rental system using
Object-Oriented Programming principles.
• Part 2. Report (40%): write a 2000-word report about your
software development.
This assessment asks you to apply the skills and tools you’ve learned throughout
the module on a selection of different tasks. General guidelines are as follows:
Deadline: 3:00 pm (UK time) on 22 November 2024 (Friday) in Week 8.
• Requirements: You must not share your code with anyone. You are welcome
to discuss questions with other students, but don't share the answers. Applying
logical thinking to solve problems algorithmically is the core aim of the module,
and your solution must make sense to you. If someone asks you for the
answer, resist – just say no!
• Plagiarism: Your work must not be plagiarized. You are NOT allowed to use
ChatGPT or similar AI tools to generate any part of your code or your written
report. Rather than being an easy solution, remember that it is likely that these tools
will not produce working code on their own and you will need to fix the output. It is
easier if you write code that you understand than to decode/debug ChatGPT
output.
• Advice: Develop your answers incrementally. To perform a complicated task,
break it up into steps, perform each step on a different line, and check that each
intermediate result is what you expect.
• Remember your rubber duck – explain the code out loud or to someone
else and you will find the missing pieces.
• Remember that we do assignments to test our knowledge and get
feedback; it is ok if things are not perfect. If something does not work,
reflect on it through your comments and in your report. Do the best you can.
• It is better to receive a lower mark on your own work and use this
assignment to reflect on your knowledge than to copy or plagiarise, get a
good mark, and inevitably show up to a job interview or your first day of
work with no idea of your own skills. Be honest, value your own time, and
set yourself up for the best possible long-term outcome of this course.
2
Part 1: Software Development (60%)
This part is to build a car rental system using Object-Oriented Programming.
• Your rental shop has a stock of cars available for rent. These rules apply for
renting:
• When a car is not rented, it is available to the customer to rent.
• Once a car is rented, the car is assigned to the customer and
removed from the rental pool.
• When the car is returned by the customer, it is assigned back into the
rental pool.
• Three types of cars are available: hatchback, sedan, and SUV. Prices are
dependent on the length of rent as follows:
• Less than a week (< 7 days): Hatchback £30, sedan £50, SUV
£100 per day.
• A week or longer (≥ 7 days): Hatchback £25, sedan £40, SUV for
£90 per day.
• When renting a car:
• Prompt the customer for 1) the type of car, and 2) the no. of days
they would like to borrow the car.
• Check stock for availability. If available, display the following
message (or something similar) to the customer: “You have rented a
{ } car for { } days. You will be charged { } per day, We hope that you
enjoy our service." Update the stock accordingly.
• If unavailable, inform the customer that the car is out of stock.
• Upon returning a rented car:
• Update the stock accordingly,
• Issue a bill with more details including the type of vehicle rented,
rental period, rate per day, and total cost.
Step 1: Create your classes
Your program should have at least two main classes as follows (you can use further
subclasses as you deem appropriate):
• Customer(s) who can:
• Inquire about available stock and prices,
• Rent a car,
• Return a car they have previously rented.
• The Rental Shop(s) can:
• Issue a bill when the customer returns their car,
• Display available inventory and prices when a customer enquires,
• Process rent requests from customers after verifying stock availability.
3
Since classes are used, various numbers of customers/shops can be instantiated
as needed.
For simplicity, we assume that any one customer requests a rental of only
one type (hatchback, sedan, SUV) for a given number of days.
Step 2: Run your code
Create the main script (main.py) to run the classes you implemented. Import your
classes into your main script. When run, main.py should output a series of prompts
to the console, which allows a customer to interact with your classes via the
command line. Your implementation should include the following:
• Create instances of your classes. Initiate the car stock with, for
instance, 10 cars (4 hatchbacks, 3 sedans, 3 SUVs).
Via the command line, a customer should be able to perform different
transactions to rent and return (according to the rules on the previous page):
(1) Rent a specific car for a given number of days.
(2) View a display of the stock to see available vehicles.
(3) Return a previously rented car and receive a bill for the rental.
(4) Exit the rental platform.
Step 3: Extend your program
Create a VIP class for customers with a loyalty card. VIP customers have a special
rate of:
• VIP daily rate: Hatchback £20, sedan £35, SUV £80 per day.
• Hint: VIP class will inherit from the general Customer class
!! You must comment your code throughout !!
Demonstrate your understanding of your code using in-line comments. They do not
need to be full/complete sentences but should outline functions, class definitions,
and input/output arguments.
4
Part 2: Report (40%)
Each report should contain the following five sections for your software development.
The overall report should include approximately 2000 words (10% more or less).
There is no word limit for each section in the report; you should address each of the
required points as clearly and concisely as possible. The word limit does not include
any addition of a front page, list of contents, references, appendix, and
sections/blocks from the software code itself, which can be any length.
• Introduction
You should (1) give a clear overview of what your programs are intended to do.
Your introduction should also clearly explain (2) where the program might be
used in an industrial application and (3) how it relates to the field of digital
technologies in general.
• Program structure
(1) Explain in general how your program is structured. You can use a block diagram if
you wish or any appropriate method to show how the program you are submitting is
constructed. It should be possible to fully understand how the program works at a basic
level without necessarily reading your codes in detail: you should (2) explain how your
classes are organised, (3) how they work together (e.g., pass arguments), and (4) how
a customer interacts procedurally via the command line.
• Application development
(1) Define technical concepts that have been used generally (e.g., their basic function
and why they would be used) and (2) detail how they are used in your program
specifically. Choose three from: list, tuple, dictionary, control flows (while loops, if/else
statements, conditional statements), functions, and classes.
• Program functionality
Prove in this section that your codes do work by (1) showing the result of inputting test
data and (2) showing the output in screenshots for each of the above four actions with
specified requirements (you must demonstrate all requirements). Although you should
implement a working code, you should (3) note any parts that do not work, your
intended function and your attempt to implement it, and reflect on why the code does
not work as intended.
• Conclusion and further work (in the end of the report)
(1) Discuss critically the software you developed (e.g., what you have achieved, what
are the current limitations, are there any parts that do not fully work and need further
development?). Think about the real-world context and what else might be needed to
make your implementation usable by an actual company or customer.
!! You do not need to include references in your report !!; however, if you do
include references, they will not be included in the word count, and they must be
referenced correctly in-text and in bibliography using Harvard style. Incorrect
referencing will receive mark deductions.
5
Submitting your coursework
To submit your work on Learn, you will need to include:
1) your report in PDF version;
2) your Python codes in .py files for software development. You must put your Python
code files into one zipped folder and submit it.
Please make sure that your PDF and Python codes are clear to read and run after
opening your zip file!
Your code should be able to be run from ONLY the resources included in this
folder. Your code should not require the use of external libraries or resources that
must be downloaded.
!! REMEMBER: You must NOT include your name in your submission title or file, in
line with anonymous marking !!
You can instead use your ID number and name your files as follows:
<your_id_number>.pdf --- Report
<your_id_number>.zip --- Code, including all Python files needed to run the program
Grading
Your grade will be assessed on the overall quality of each part.
The overall quality of Part 1 (software development, 60%) will be assessed on both
correctness and style.
• Correctness: How well the program works according to specifications.
• Style: The quality of the code and documentation (including in-line comments)
Part 1 (Software Development, 60%) should be well-written and well-commented. You
are encouraged to format your code in accordance with Python style guidelines. It should
be clear enough for another programmer to understand it. For example, every function
written is commented in text, in your own words, which should describe its behaviour,
parameters, and returns, and highlight any special cases.
The overall quality of Part 2 (Report, 40%) will be assessed on the overall report and how
well the five sections are answered according to specifications.
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp