Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2015, 05:08   #1
Kengoo
Пользователь
 
Регистрация: 05.09.2015
Сообщений: 16
По умолчанию

Задача:
Задача:
Write a program that prompts the user to enter a person’s date of birth in numeric form such as 8-27-1980. The program then outputs the date of birth in the form: August 27, 1980. Your program must contain at least two exception classes: invalidDay and invalidMonth. If the user enters an invalid value for day, then the program should throw and catch an invalidDay object. Similar conventions for the invalid values of month and year. (Note that your program must handle a leap year.)

Код:
#include <iostream>
#include <cmath>
#include<iomanip>
using namespace std;




int main()
{
	int day,month, year;

	
	try {
	
	cout<<"Please input date of birth mm-dd-yy:";
	cin>>month>>day>>year;

	cout<<endl;
	
	if(month <=0 || month >12)
		throw invalidmonth();
	else if(day <=0||day>31 )
		throw invalidday();
	
	string monthstring;

	 switch(month){
		case 1: monthstring = "January";
			break;
		case 2: monthstring = "February";
			break;
		case 3: monthstring = "March";
			break;
		case 4: monthstring = "April";
			break;
		case 5: monthstring = "May";
			break;
		case 6: monthstring = "June";
			break;
		case 7: monthstring = "July";
			break;
		case 8: monthstring = "August";
			break;
		case 9: monthstring = "September";
			break;
		case 10: monthstring = "October";
			break;
		case 11: monthstring = "November";
			break;
		case 12: monthstring = "December";
			break;
		default:  monthstring = "Invalid Month";
			break;
	}
	
	
	cout<<monthstring<<" "<<day<<", "<<year;

	}
	catch(invalidday x)
	{
		cout<<x.what()<<endl;;
	}
	
	catch(invalidmonth y)
	{
		cout<<y.what()<<endl;;
	}
	return 0;
}

class invalidday
{
public:
	
	invalidday()
	{
		message = "Invalid day";
	}
	
	invalidday(int day)
	{
		message = day;
	}

	string what()
	{
		return message;
	}
	
private:
	string message;

};

class invalidmonth
{
public:
	invalidmonth()
	{
		message = "Invalid month";
	}
	
	invalidmonth(int month)
	{
		message = month;
	}
	
	string what() 
	{
		return message;
	}
	
private:
	string message;
};
Подскажите в чем ошибка.

Вот в этом сегменты пишет: 'invalidday' was not declared in this scope. В чем может быть причина?
Цитата:
if(month <=0 || month >12)
throw invalidmonth();
else if(day <=0||day>31 )
throw invalidday();
Что-то в классах не так

Последний раз редактировалось Аватар; 28.09.2015 в 06:25.
Kengoo вне форума Ответить с цитированием
Старый 28.09.2015, 06:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Описание классов перенеси перед main().
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 06:46   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Описание классов перенеси перед main().
Не обязательно. Можно и шаблоны сделать, но опять-же перед main или в заголовочном файле *.h.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неперехваченное исключение Инночек WordPress и другие CMS 0 25.11.2013 15:03
Explorer.exe Исключение неизвестное программное исключение Windows XP, что делать? Igorilla Windows 6 02.04.2013 22:49
Исключение неизвестное программное исключение... Host-2013 Паскаль, Turbo Pascal, PascalABC.NET 19 09.02.2013 21:30
Жорданово исключение Александр10 C# (си шарп) 4 30.11.2011 17:00