Absolute C++
Absolute C++
6th Edition
ISBN: 9780133970784
Author: Walter Savitch, Kenrick Mock
Publisher: Addison-Wesley
bartleby

Concept explainers

bartleby

Videos

Textbook Question
Book Icon
Chapter 7, Problem 1PP

Define a class called Month that is an abstract data type for a month. Your class will have one member variable of type int to represent a month (1 for January, 2 for February, and so forth). Include all the following member functions: a constructor to set the month using the first three letters in the name of the month as three arguments, a constructor to set the month using an integer as an argument (1 for January, 2 for February, and so forth), a default constructor, an input function that reads the month as an integer, an input function that reads the month as the first three letters in the name of the month, an output function that outputs the month as an integer, an output function that outputs the month as the first three letters in the name of the month, and a member function that returns the next month as a value of type Month. Embed your class definition in a test program.

Expert Solution & Answer
Check Mark
Program Plan Intro

Program plan:

1 . The following variables are used in the program:

  • monthvariable of integer data type is used to store the month.

2. The following methods are used in the program:

  • Default constructor.
  • Constructor having one integer argument.
  • Constructor having three characters arguments.
  • input() function to take the month number from the user.
  • inputMonthLetter() function to take the month's first three letters from the user.
  • getMonth() function to return the month number.
  • outputMonthLetter() function to display the month first three-letter.
  • nextMonth() function to return the next month.

Program description:

The main purpose of the program is to create the constructor to initialize the class member variable using the integer argument and the first three letters of the month. Also, display the next month. Test all the class member functions in a test program.

Explanation of Solution

Program:

//including essential header file 
#include <iostream>


//using standard namespace
using namespace std;  

//Month class
class Month 
{ 
    public:   

    int month;

    //default constructor     
    Month()        
    {            
        //initialize the month to 1 
       month = 1;        
    }

     //constructor to set the month by number      
    Month(int monthNumber)     
    {             
//set the month to the monthNumber 
        month = monthNumber;      
    }

    //constructor to set the month number using the Month letters         
    Month (char monthLetter1, char monthLetter2, char monthLetter3)         
    {             
        //when the monthLetter is jan
        if ((monthLetter1 == 'j') && (monthLetter2 == 'a') && (monthLetter3 == 'n'))              
        {                 
            //set the month to 1
            month = 1;             

        }              

//when the monthLetter is feb
        if ((monthLetter1 == 'f') && (monthLetter2 == 'e') && (monthLetter3 == 'b'))  
        {                 //set the month to 2 
            month = 2;           
        }              

//when the monthLetter is mar 
        if ((monthLetter1 == 'm') && (monthLetter2 == 'a') && (monthLetter3 == 'r')) 
        {                 //set the month to 3
            month = 3;

        }             

//when the monthLetter is apr
        if ((monthLetter1 == 'a') && (monthLetter2 == 'p') && (monthLetter3 == 'r'))     
        {   
              //set the month to 4 
            month = 4;

            Month(month); getMonth();
        }              
//when the monthLetter is may 

if ((monthLetter1 == 'm') && (monthLetter2 == 'a') && (monthLetter3 == 'y'))   
        {                 
//set the month to 5
            month = 5;             

        }               

//when the monthLetter is jun 
        if ((monthLetter1 == 'j') && (monthLetter2 == 'u') && (monthLetter3 == 'n'))  
        { 
                //set the month to 6 
            month = 6;            
        }

        //when the monthLetter is jul
        if ((monthLetter1 == 'j') && (monthLetter2 == 'u') && (monthLetter3 == 'l'))
        {
            //set the month to 7
            month = 7;             

        }

        //when the monthLetter is aug 
        if ((monthLetter1 == 'a') && (monthLetter2 == 'u') && (monthLetter3 == 'g'))  
        {
            //set the month to 8 
            month = 8;             

        } 

        //when the monthLetter is sep 
       if ((monthLetter1 == 's') && (monthLetter2 == 'e') && (monthLetter3 == 'p')) 
        {                 //set the month to 9 
            month = 9;            
        }

        //when the monthLetter is oct 
        if ((monthLetter1 == 'o') && (monthLetter2 == 'c') && (monthLetter3 == 't'))            
        {                 //set the month to 10
            month = 10;            
        }

        //when the monthLetter is nov 
        if ((monthLetter1 == 'n') && (monthLetter2 == 'o') && (monthLetter3 == 'v'))    
        {
         //set the month to 11 
            month = 11;             

        }

        //when the monthLetter is dec 
        if ((monthLetter1 == 'd') && (monthLetter2 == 'e') && (monthLetter3 == 'c')) 
        {                 //set the month to 12
            month = 12;            
        }    

    }   

    void input()       
    { 
        cout<<endl<< "Enter the month number: "; 
        cin>> month; 
        while (month < 1 || month > 12)        
        { 
            cout<< "Invalid month number. Month number must be between 1 to 12." <<endl;
            cout<< "Enter the month number again: ";
            cin>> month; 
        }         
    } 

    void inputMonthLetter()    
    { 
        //char letter1, letter2, letter3;
        char letter[4];
        cout<<endl<< "Enter the first three letters of the month: "; 
        cin>> letter;
        Month (letter[0], letter[1], letter[2]);    
    }  

    int getMonth()   
    {
        return month;  
    }        

    void outputMonthLetter()    
    { 
        if (month == 1)     
        { cout<< "The month is Jan";             } 
        if (month == 2)        
        { cout<< "The month is Feb";             } 
        if (month == 3)             
        { cout<< "The month is Mar";             }  
        if (month == 4)             
        { cout<< "The month is April";             } 
        if (month == 5)             
        { cout<< "The month is May";             }  
        if (month == 6)             
        { cout<< "The month is June";             }  
        if (month == 7)             
        { cout<< "The month is July";             }  
        if (month == 8)             
        { cout<< "The month is August";             } 
        if (month == 9)             
        { cout<< "The month is Sep";             }  
        if (month == 10)             
        { cout<< "The month is Oct";             }  
        if (month == 11)             
        { cout<< "The month is Nov";             }  
        if (month == 12)             
        { cout<< "The month is Dec";             }       
    } 

    //member function to return the next month as Month type     
    Month nextMonth()      
    {
        int m = ((month % 12 ) + 1 );
        return Month(m);     
    } 

}; 

int main()
{    
    //create objects of the class
    Month m1, m3;

    m1.input();
    m1.outputMonthLetter();

    m3=m1.nextMonth();
    cout<<endl<< "The next month is: "<<m3.getMonth(); 


    Month m2, m4;
    m2.inputMonthLetter();
    cout<<endl<< "month is: " << m2.getMonth();

    m4 = m2.nextMonth();
    cout<<endl<< "The next month is: " << m4.getMonth();

    return 0; 
}

Explanation:  

In the above program, a default constructor is created which initializes the variable month. Another constructor that takes an integer parameter also initializes the variable month. A third constructor takes three-character arguments. This constructor matches these arguments with the first three letters of each month and then initializes the variable month accordingly.

Inside the main() method, objects of the class Month are created. The input() method is used to take user input for the month in the form of an integer. The outputMonthLetter() is used to output the first three letters of the month corresponding to the user input. The nextMonth() function returns the month in the form of the object of the class Month. The inputMonthLetter() method is used to take user input for the first three letters of the name of the month. This method calls the parameterized constructor that takes three-character arguments.The getMonth() method returns the variable month. The nextMonth() function returns the month in the form of the object of the class Month.

Sample output:

Absolute C++, Chapter 7, Problem 1PP

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
Write a class named Patient that has member variables for first name, middle name, last name, phone number, name and phone number of emergency contact. The Patient class should have a constructor that accepts and argument for each member variable. The Patient class should also have accessor and mutator functions for each member variable.           Write a class named Procedure that has member variables for name of procedure, date of procedure, name of physician, and charges for the procedure. This Procedure class represents a medical procedure that is performed on a patient. The Procedure class should have a constructor that accepts an argument for each member variable. The Procedure class should also have accessor and mutator functions for each member variable.           Then write a program that creates an instance of the Patient class initialized with sample data that is entered by the user.           Then, create an instance of the Procedure class for each procedure that is being…
Rewrite the calculator program using a class called calculator. Your program will keep asking the user if they want to perform more calculations or quit and will have a function displayMenu to display the different functions e.g .(1 - addition, 2- subtraction, 3- multiplication, 4- division)   Your program must have appropriate constructors and member functions to initialize, access, and manipulate the data members as well as : A member function to perform the addition and return the result A member function to perform the subtraction and return the result A member function to perform the multiplication and return the result A member function to perform the division and return the result
Write a class named Patient that has member variables for first name, middle name, last name, phone number, name and phone number of emergency contact. The Patient class should have a constructor that accepts and argument for each member variable. The Patient class should also have accessor and mutator functions for each member variable. Write a class named Procedure that has member variables for name of procedure, date of procedure, name of physician, and charges for the procedure. This Procedure class represents a medical procedure that is performed on a patient. The Procedure class should have a constructor that accepts an argument for each member variable. The Procedure class should also have accessor and mutator functions for each member variable. Then write a program that creates an instance of the Patient class initialized with sample data that is entered by the user. Then, create an instance of the Procedure class for each procedure that is being performed on the patient. There…
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education
Introduction to Classes and Objects - Part 1 (Data Structures & Algorithms #3); Author: CS Dojo;https://www.youtube.com/watch?v=8yjkWGRlUmY;License: Standard YouTube License, CC-BY