[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 442
  • Last Modified:

C++ Class Validation

I am trying to figure out how to verify that the assignment of the character array and the ssn actually have something in it, but I am having difficulty in setting that up.  The ssn is not supposed to be =< 0 and the name is not supposed to be blank.  

How do I revert to the default constructor if the values entered ( programmed into ) since there is no input do not meet the required specs?  

Thanks.



#include <iostream>
#include <iomanip>
 
 
using namespace std;
 
class Student
{
      // private member variables
      private:
              long socialSecurity;
              char name[80];
     
     
      // public variables / methods       
      public:
             
             // default constructor
             Student(char *n="unassigned",long sn=999999999);
            
             // Name get / set
             void setName(char *n);
             char *Student::getName();
            
             // Social Security set / get
             void setSSN(long sn);
             long getSSN();
           
            
};
 
// default constructor
Student::Student(char *n, long sn)
{
    strcpy(name, n);
    socialSecurity = sn;
}
 
 
// implementation section
void Student::setName(char *n)
{
 
         strcpy(name, n);
}
 
// Student setSSN()
void Student::setSSN(long sn)
{
    
     socialSecurity = sn;
    
}
 
char *Student::getName()
{
     return name;
}
 
 
// Student getSSN
long Student::getSSN()
{
     return socialSecurity;
}
 
int main()
{
 
    // instantiate class objects
    Student student1;
    Student student2;
   
    
    
    // set class object 2
    student2.setName("John Doe");   
    student2.setSSN(11122555);
   
    // class output
    // output stream for student 1 using default constructor
       cout << "The name for student1 is " << student1.getName()
            << " and ssn is " << student1.getSSN() << endl;
   
    // output stream for student 2
       cout << "The name for student2 is " << student2.getName() 
            << " and ssn is " << student2.getSSN() << endl;
         
        
   
    system("pause");
    return 0;
   
}

Open in new window

0
lwoodtri
Asked:
lwoodtri
  • 2
1 Solution
 
mgonulluCommented:
What you have to do is the followiing:
Keep the constructor you already implemented and then add an empty constructor where you use the set members
It should be something like this: in the definition part

 Student(char *n="unassigned",long sn=999999999);
Student();



In the implementation keep the constructor you already did and add the other one

Student::Student()
{
   setName("Unassigned");
    setSSN(999999);;
}

0
 
lwoodtriAuthor Commented:
Cool, I got that part . . however . . what if the assignment happens to be 0 or -1 for the value of SSN?  Would I use an

if ( ssn =< 0 || ssn > 999999999)?

would that work for validation?  
0
 
mgonulluCommented:
For sure that would work!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now