Whats wrong?!?!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139


#include <iostream>
#include <string>
using namespace std;


class Date
{
    private:
        int month;
        int day;
        int year;
    public:
        Date();
        void getInfo(int Month, int Day, int Year);
        void versionOne ();
        void versionTwo ();
        void versionThree ();
    
};




void versionOne (Date version);
void versionTwo (Date version);
void versionThree (Date version);

int main()

{
    Date myDate;
    
    myDate.versionOne();
    myDate.versionTwo();
    myDate.versionThree();
    
    
    system("pause");
    return 0;
}





Date::Date() //default setting
{
    month=1;
    day=1;
    year=2001;
}



void Date::getInfo(int Month, int Day, int Year)
{
    
    
    cout<<"Enter the number of the month. "<<endl;
    cin>>Month;
    
    cout<<"Enter the day. "<<endl;
    cin>>Day;
    
    cout<<"Enter the year.  "<<endl;
    cin>>Year;
    
    
    if (Month<1 || Month>12 || Day<1 || Day>31 || Year<1950 || Year>2020)
    {
        
        Date(); //if the Month falls into the if statement then program will automaticaly declare itself to the default setting.
        
    }
    else
    {
        month=Month;
        day=Day;
        year=Year;
    }
    
}


void Date::versionOne()
{

    cout<<month<<"/"<<day<<"/"<<year<<endl; //will output in numbers.
    
}



void Date::versionTwo()
{

    string Month;
    
   
    const string monthName[12] = { "January", "February", "March", "April","May",
        "June", "July", "August", "September", "October","November", "December"}; //the number will be changed to the word version of the month.
	
    if (month>0 && month<13)
    {
        Month=monthName[month-1]; //Month gets defined as the month name.
    }
    else
        {
    
        }
        
    
    cout<<Month<<" "<<day<<", "<<year<<endl;
    
}


void Date::versionThree()
{
    
    string Month;
    
    const string monthName[12] = { "January", "February", "March", "April","May",
        "June", "July", "August", "September", "October","November", "December"}; //the number will be changed to the word version of the month.
	
    if (month>0 && month<13)
    {
        Month=monthName[month-1]; //Month gets defined as the month name.
    }
    else
    {
        
    }
    
    cout<<day<<" "<<Month<<" "<<year<<endl;
        
}




So the problem I'm having is that my programing isn't asking the user the questions. All its doing is its outputting the default numbers.
Last edited on
I see nothing in your code that does ask the user for input.
Sure, your getInfo() method does, but unless i'm mistaken, you don't actually call this method *anywhere*.
I was think that so i tried putting getInfo(int Month, int Day, int Year) into the main function but it still doesn't get applied to the functions. All it does is ask the questions then outputs the default.


Last edited on
This is with reference to original post http://www.cplusplus.com/forum/general/128618/#msg695039:


To get the user input the member function getInfo should be invoked on any of the Date object. Something like:

1
2
3
4
5
Date myDate;
myDate.getInfo();
myDate.versionOne();
myDate.versionTwo();
myDate.versionThree();


1
2
class Date { ... void getInfo(int Month, int Day, int Year) ... };
void Date::getInfo(int Month, int Day, int Year);


Assumming getInfo member function should get the inputs (day, month, year) from user the parameters are not necessary. The member function's prototype should look like:

1
2
3
4
5
6
7
8
class Date { ... void getInfo(); ... };
void Date::getInfo() 
{ 
... 
  if (Month<1 || Month>12 || Day<1 || Day>31 || Year<1950 || Year>2020)
    *this = Date();
...
}
getInfo(int Month, int Day, int Year);

You dont call a function like that.


This is with reference to post (klayrahx7 (4)) http://www.cplusplus.com/forum/general/128618/#msg695045

@33 getInfo(int Month, int Day, int Year);

This function getinfo is a member function of class Date. So it should be called on an object of class Date. Make the call like

myDate.getInfo();
@kannanmj Thank you so much ugh that was bothering me so much i knew i was close but I just couldn't figure it out
Topic archived. No new replies allowed.