Description
Educational Objectives. After successfully completing this = assignment,=20 the student should be able to accomplish the following:
-
Design a class based on non-language-specific specifications=20
-
Implement a class of your own design=20
-
Implement constructors, copy constructor, destructor, and = assignment=20 operator for a class that has resource allocation requirements=20
-
Implement Set and Get methods for class data=20
-
Correctly separate class definition and implementation using files =
-
Create executables of class client programs using makefiles and = the Make=20 utility=20
-
Test a class using specs and an existing test platform
Operational Objectives: Define and implement the = class=20 ID and deliver the code in two files id.h and = id.cpp=20 along with a makefile for the supplied test harness.
Deliverables: id.h, id.cpp,=20 makefile
Background
See lecture notes
Procedural Requirements:
-
Design the class ID
-
Implement the class ID with the class definition in file = id.h and=20 the class implementation in file id.cpp
-
Thoroughly test class ID, starting out with the supplied test = harness in=20 file hw3/test.cpp using command line compile
-
Write a makefile that builds test.x with the “in lieu of = makefile”=20 include statement commented out or removed
-
Test the executable again, and refine your work to withstand = testing.
-
Turn in id.h, id.cpp, and makefile using = the=20 hw3submit.sh submit script.
Warning: Submit scripts do not work on the = program and=20 linprog servers. Use shell.cs.fsu.edu to submit = projects. If=20 you do not receive the second confirmation with the contents of your = project,=20 there has been a malfunction.
Technical Requirements and Specifications
-
The class should implement the following diagram:=20
Class Name:
ID
Services :
void SetName ( const char* ) // sets the name = field void SetAge ( int ) // sets the age field const char* GetName () const // returns a const pointer to the = name field int GetAge () const // returns the age field by value
Properties :
Constructable: objects can be declared as ordinary = variables Assignable: objects can be assigned one to another Passable: objects can be passed by value to and returned as = values from functions
Private variables:
char * name_ // the name field int age_ // the age field
-
The class should be a proper type, to include default constructor,=20 2-argument constructor (that initializes the two data fields), copy=20 constructor, assignment operator, and destructor.
-
The output operator operator<< should be overloaded = for the=20 type ID.
-
Class ID should pass testing with the supplied = hw3/test.cpp with=20 no compile or runtime errors and no compiler warnings when the warning = flags=20 -W, -Wall, -Wextra are set.
-
Building and running the supplied hw3/test.cpp should = result in=20 output identical to the supplied executable area51/IDtest_?.x = [? =3D=20 i or s] .