24LLP109 – Digital Application Development
Coursework Report
项目类别:语言学

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.

留学ICU™️ 留学生辅助指导品牌
在线客服 7*24 全天为您提供咨询服务
咨询电话(全球): +86 17530857517
客服QQ:2405269519
微信咨询:zz-x2580
关于我们
微信订阅号
© 2012-2021 ABC网站 站点地图:Google Sitemap | 服务条款 | 隐私政策
提示:ABC网站所开展服务及提供的文稿基于客户所提供资料,客户可用于研究目的等方面,本机构不鼓励、不提倡任何学术欺诈行为。