brtunately, change ans that itS to objects from input file, since it doesn't work if a user enters Date::jan. Write a toMonth function that can be used to enter a month as an integer. Throw invalid_argument if it fails. |Month m = toMonth(3); // returns Month:: mar udts.cpp 1 #include 2 #include 3 #include "date.h" 4 using namespace std; 5 6 /** Construct a valid Month. 7 @param mm the month in the range 1-12 @exception throw invalid_argument if out of range. @return the correct Month. 9 10 11 */ 12 Month toMonth(int mm) 13 { 14 15 16 17 } Demo.cpp 1 #include 2 #include 3 #include "date.h" 4 using namespace std; 5 6 int main() cout « "Enter date as mm/dd/yyyy: "; int mm, dd, yyyy; char slash; cin » mm » slash » dd » slash » yyyy; 9 10 11 12 13 try { Date d = makeDate (toMonth(mm), dd, yyyy); cout « "The date is " « d « endl; 14 15 16 17 18 catch (invalid_argument& e) { cout « e.what () « endl; 19 20 21

Microsoft Visual C#
7th Edition
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Joyce, Farrell.
Chapter8: Advanced Method Concepts
Section: Chapter Questions
Problem 8RQ
icon
Related questions
Question
Unfortunately, the change from int to Month means that it's harder to read Date objects from an
input file, since it doesn't work if a user enters Date::jan. Write a toMonth function that can be
used to enter a month as an integer. Throw invalid_argument if it fails.
Month m = toMonth (3); // returns Month::mar
udts.cpp
1 #include <string>
2 #include <stdexcept>
3 #include "date.h"
using namespace std;
4
6.
/**
Construct a valid Month.
7
8.
@param mm the month in the range 1-12
9.
@exception throw invalid_argument if out of range.
@return the correct Month.
10
11
*/
Month toMonth(int mm)
{
12
13
14
15
16
17 }
Demo.cpp
1 #include <iostream>
2 #include <string>
3 #include "date.h"
4 using namespace std;
5
6
int main()
7 {
cout « "Enter date as mm/dd/yyyy: ";
int mm, dd, yyyy;
char slash;
cin >> mm >> slash » dd >> slash » yyyy;
8
10
11
12
13
try
{
Date d = makeDate (toMonth(mm), dd, yyyy);
cout <« "The date is " << d << endl;
}
catch (invalid_argument& e)
{
cout « e.what() « endl;
}
14
15
16
17
18
19
20
21
22 }
Transcribed Image Text:Unfortunately, the change from int to Month means that it's harder to read Date objects from an input file, since it doesn't work if a user enters Date::jan. Write a toMonth function that can be used to enter a month as an integer. Throw invalid_argument if it fails. Month m = toMonth (3); // returns Month::mar udts.cpp 1 #include <string> 2 #include <stdexcept> 3 #include "date.h" using namespace std; 4 6. /** Construct a valid Month. 7 8. @param mm the month in the range 1-12 9. @exception throw invalid_argument if out of range. @return the correct Month. 10 11 */ Month toMonth(int mm) { 12 13 14 15 16 17 } Demo.cpp 1 #include <iostream> 2 #include <string> 3 #include "date.h" 4 using namespace std; 5 6 int main() 7 { cout « "Enter date as mm/dd/yyyy: "; int mm, dd, yyyy; char slash; cin >> mm >> slash » dd >> slash » yyyy; 8 10 11 12 13 try { Date d = makeDate (toMonth(mm), dd, yyyy); cout <« "The date is " << d << endl; } catch (invalid_argument& e) { cout « e.what() « endl; } 14 15 16 17 18 19 20 21 22 }
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
File Input and Output Operations
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
Microsoft Visual C#
Microsoft Visual C#
Computer Science
ISBN:
9781337102100
Author:
Joyce, Farrell.
Publisher:
Cengage Learning,