CPT106 Fundamental of C++ Project 2
1
CPT106 C++ Programming and Software Engineering II
Individual Project
Fundamental of class and object
Project Number 2
Contribution to Overall Marks 20%
Release date 10 April 2024
Submission Deadline 10 May 2024, 23:59
How should the work be submitted?
SOFT COPY ONLY!
(MUST be submitted through Learning Mall so that we can run your programs during
marking.)
Assessment Overview
This assessment aims to test some basic concepts of C++ programming and coding in the software
development environment (Visual Studio). To distribute the workload of the individual project
more evenly throughout the whole semester, we divided it into 3 smaller individual projects for you
to complete separately. This is the second individual project.
What should be submitted?
Only your C++ source code files (.cpp and .h) should be submitted to Learning Mall (LM). Your
grade will also be given through LM. There are several steps for you to note:
1. You should create a solution named “CPT106Solution”.
2. Create a project named “Project 2”.
3. Create a CPP file for question 1.
4. Create a CPP file and 3 header files for question 2.
5. Include clear comments in your code to make it easy to understand.
6. Only submit the cpp and header files to the LMO.
7. ALL programs MUST compile and run in Visual Studio 2013/2016/2019/2022.
CPT106 Fundamental of C++ Project 2
2
1. Develop a C++ program in a single cpp file with the following functions. (50 marks)
a. Define a class with following structure and members:
class MyArray {
private:
int* arr=NULL;
int num = 0;
public:
MyArray(int arrayLen) ;
void Display();
MyArray* operator+(MyArray& a);
friend MyArray* operator-(MyArray& a, MyArray& b);
};
b. Define a constructor MyArray(int arrayLen) to allocate memory using the pointer arr
for arrayLen integers. These integers should be initialized by a randomized integer
between 100 and 999. (10 marks)
c. Define a function void Display() to print out all the randomized integers referenced by
the pointer arr. (10 marks)
d. Overload operator + to add integer values in a and current object (this) accordingly to
get a new MyArray object and return its pointer. For example, if the integer values in
the current object (this) and a are {1, 2, 3} and {4, 5, 6, 7}, the integer values in the
new object should be {5, 6, 9, 7}. (10 marks)
e. Define a friend function MyArray* operator - (MyArray& a, MyArray& b) out of
the class MyArray to achieve subtraction operator for integers in the objects of a and b
and get a new MyArray object. For example, if the integers in a are {1, 2, 30} and
integers in b are {4, 5, 6, 7}, the integers in the new MyArray object are {-3, -3, 24, -
7}. (10 marks)
f. Create a main function out of the class MyArray to achieve the following steps: (10
marks)
i. Use the constructor to create two MyArray objects with different amounts of
integers.
ii. Call the display() function to print out the integers in these two objects.
iii. Call the overloading operator + to get a new object and call display() to print
out integers in the new object.
iv. Call the friend function operator - to get a new object and call display() to print
out integers in the new object.
2. Develop a C++ program with the following steps. (50 marks)
a. Define a class Vehicle in a header file “Vehicle.h” as the following: (10 marks)
i. Define four private variables to represent the Vehicle’s brand name, color,
power and weight.
ii. Define a constructor to initialize all the private variables.
iii. Define a virtual function input() to initialize all the private variables by the
user’s input from the keyboard.
iv. Define a virtual function display() to print out all the values of the private
Project 2 (100)
CPT106 Fundamental of C++ Project 2
3
variables.
b. Define a class Car in a header file “Car.h” as the following: (15 marks)
i. Publically Inherit from the base class Vehicle.
ii. Define a new private variable, seats, to represent the number of seats in the car.
iii. Define a constructor to initialize all the private variables.
iv. Define an overloading function input() to initialize all the private variables by
the user’s input from the keyboard.
v. Define an overloading function display() to print out all the values of the
private variables.
c. Define a class Truck in a header file “Truck.h” as the following: (15 marks)
i. Publically Inherit from the class Car.
ii. Define a new private variable, load, to represent the load capacity of the truck.
iii. Define a constructor to initialize all the private variables.
iv. Define an overloading function input() to initialize all the private variables by
the user’s input from the keyboard.
v. Define an overloading function display() to print out all the values of the
private variables.
d. Define a main function in a cpp file with the following steps: (10 marks)
i. Create a pointer array Vehicle *p[3].
ii. Create at least one object for each class (Vehicle, Car and Truck) and put these
objects into the pointer array.
iii. Use a for loop and call the display() function to print out the information of all
objects.
Marking Scheme
Function definition 70%
Comments 10%
Correction & Robustness 20%
请加QQ:99515681 邮箱:99515681@qq.com WX:codinghelp