Homework 3: Class ID

Educational Objectives. After successfully completing this assignment, the student should be able to accomplish the following:

Operational Objectives: Define and implement the class ID and deliver the code in two files id.h and id.cpp along with a makefile for the supplied test harness.

Deliverables: id.h, id.cpp, makefile

Background

See lecture notes Chapter 4. Classes Part 1, Chapter 5. Pointers, Chapter 6. Classes Part 2, and Chapter 7: String Objects.

Procedural Requirements:

  1. Design the class ID

  2. Implement the class ID with the class definition in file id.h and the class implementation in file id.cpp

  3. Thoroughly test class ID, starting out with the supplied test harness in file hw3/test.cpp using command line compile

  4. Write a makefile that builds test.x with the "in lieu of makefile" include statement commented out or removed

  5. Test the executable again, and refine your work to withstand testing.

  6. Turn in id.h, id.cpp, and makefile using the hw3submit.sh submit script.

    Warning: Submit scripts do not work on the program and linprog servers. Use shell.cs.fsu.edu to submit projects. If you do not receive the second confirmation with the contents of your project, there has been a malfunction.

Technical Requirements and Specifications

  1. The class should implement the following diagram:

    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
    

  2. The class should be a proper type, to include default constructor, 2-argument constructor (that initializes the two data fields), copy constructor, assignment operator, and destructor.

  3. The output operator operator<< should be overloaded for the type ID.

  4. Class ID should pass testing with the supplied hw3/test.cpp with no compile or runtime errors and no compiler warnings when the warning flags -W, -Wall, -Wextra are set.

  5. Building and running the supplied hw3/test.cpp should result in output identical to the supplied executable area51/IDtest_?.x [? = i or s] .