CAB201 Programming Principles
Programming Principles
项目类别:计算机

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


CAB201 Programming Principles

Object-Oriented Design and Implementation
Task
This assignment aims to give you real problem-solving experience, like what you might
encounter in the workplace. Your task is to apply object-oriented design and implementation
techniques to create a well-documented and easy to maintain software solution for an airline
company that achieves the following user stories.

User Stories
1. As an employee of the airline company, I would like to register with an online booking
system using my name, my email address, and a password so that it will keep my records
private and secure.
2. As an employee of the airline company, I want to authenticate myself with the system to
access my private records and conduct transactions securely.
3. As an employee of the airline company, I want to be able to log out from the system so
that the next person to use the system cannot conduct transactions using my account.
4. As an employee of the airline company, I would like book customers for Light Aircraft flight
allowing them to travel.
5. As an employee of the airline company, I would like to book customers for the Light
Aircraft flight, including their name, their email, their address, and a mobile number
enabling them to fly.
6. As an employee of the airline company, I would like to enter the information about the
Light Aircraft flights including the departure place, the arrival place, the departure time,
and the distance in kilometres between departure and arrival so I can inform customers.
7. As an employee of the airline company, I would like to make it known that a Light Aircraft
can handle 6 people per flight to be full.
8. As an employee of the airline company, I would like it shown that the flying time for a
Light Aircraft is equal to 800 km per hour plus an additional 30 minutes for take-off and
landing to make the trip.
9. As an employee of the airline company, I would like it shown that a Light Aircraft will cost
$250 per 800 km (one hour) to fly.
10. As an employee of the airline company, I would like to view how long each Light Aircraft
flight takes showing the departure place, the arrival place, the departure time, and the
actual time to fly.
11. As an employee of the airline company, I would also like to advertise bookings for a flight
using a Helicopter as an alternative flight system.
12. As an employee of the airline company, I would like the Helicopter to store the same
customer details and display the same flight information, in terms of distance and time,
as a Light Aircraft.
13. As an employee of the airline company, I would like it shown that a Helicopter can handle
2 people per flight to be full.
14. As an employee of the airline company, I would like it shown that the flying time for a
Helicopter is equal to 120 km per hour plus an additional 10 minutes if the Helicopter has
no passengers, 15 minutes if the Helicopter has 1 passenger and 20 minutes if the
Helicopter has 2 passengers to make the flight.
15. As an employee of the airline company, I would like to make it known that a Helicopter
will cost $600 per 120 km (one hour) to fly.
16. As an employee of the airline company, I would like to know who is on the flights, so that
I can inform people.
A video on Blackboard gives an example the application and shows how it can achieve each
of the above user stories.

User Interface
The company has plans to eventually develop a graphical user interface for this application,
however, this prototype implementation will have a simple text-based interface. To make it
easier to switch to a graphical user interface in the future we want to ensure the user interface
code is kept separate from the application logic. To help with this an UserInterface class has
been provided. You may use this class if you wish.

Database
The company has plans to eventually use a relational database to store and save all customer
data. However, for this prototype, all data will just be kept in memory (and will therefore be
lost when the application is shutdown).

Recommended Approach
You are encouraged to design and develop the application in an iterative and incremental
approach – one user story at a time. You can implement the user stories in whatever order
you please, however for each new user story you should design and implement only the
classes and methods that you require to implement that user story. You are encouraged to
make changes to your class diagram using draw.io . When
producing your solution, you may need to first refactor some of the classes and methods that
you have already implemented for earlier user stories to better facilitate the new user story.
After each user story you should have working code that achieves all of the user stories
considered so far. Make sure that you include your user interface in the diagram.
To further encourage this style of iterative and incremental development, we require two
separate product increments to be submitted. The first is just the first user story that you
choose to implement and the second is your final product including all user stories. For each
product increment you will need to document your object-oriented design via a class diagram
and provide well documented source code packaged as a Visual Studio 2019 solution. Your
tutor will provide constructive feedback based on your first submission on Week 11 or Week
12.

You are required to:
1. The use of multiple methods is necessary. However, do not use static throughout
your entire solution.
2. Organise the ideas behind abstraction and encapsulation. You will need to use
multiple classes in your solution.
3. Use inheritance and polymorphism in your solution.

What to Submit
For this assignment, you are required to submit a zip file – via Blackboard – containing the
following items:

• The project folder that contains all of your project files.
• Phase 1: Present an image (e.g., BMP, TIFF, JPG) that presents the class diagram
of your first user story.
• Phase 2: Present an image (e.g., BMP, TIFF, JPG) that presents the class diagram
of all of the user stories.
• A checklist of all the user stories and whether you have competed them or not.

We recommend that your class diagram should be made in draw.io.

Place all your files into a folder named “CAB201_Assignment_2022_S1_n12345678” replacing the
n12345678 with your student ID and zip the folder. You should then upload this zip file to
Blackboard.

How to Submit
1. If you are in Brisbane, you must test your program in one of the CAB201 labs prior to
submission. Markers will attempt to compile and run your code in that environment only. It
is your responsibility to ensure that your code compiles and runs on PCs in the QUT
computer labs of CAB201. You can access QUT computers remotely, see the VMWare
Horizon Client Tutorial on Blackboard for a guide.

2. Follow the submission link on Blackboard to submit your zip file.

3. Make incremental submissions. You may make as many submissions as you want, and we
will only mark the latest one that came in before the deadline. Make incremental
submissions as you complete more functionality. Incremental submissions will protect you
against submission delays and save you from issues such as accidentally breaking something
in your submission ten minutes before the deadline or system delays due to processing too
many assignment submissions.

Academic Integrity
Please read and follow the guidelines in QUT’s Academic Integrity Kit, which is available
from the Blackboard site on the Assessment page. Programs submitted for this assignment
will be analysed by the MoSS (Measure of Software Similarity) plagiarism detection system.


Final Comment
Though all care has been taken in the production of this specification and related
documentation, there may be a need to notify by email any alterations/clarifications to this
specification and related documentation. So, check your QUT email daily!
留学ICU™️ 留学生辅助指导品牌
在线客服 7*24 全天为您提供咨询服务
咨询电话(全球): +86 17530857517
客服QQ:2405269519
微信咨询:zz-x2580
关于我们
微信订阅号
© 2012-2021 ABC网站 站点地图:Google Sitemap | 服务条款 | 隐私政策
提示:ABC网站所开展服务及提供的文稿基于客户所提供资料,客户可用于研究目的等方面,本机构不鼓励、不提倡任何学术欺诈行为。