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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 21:14   #1
DIMON007
 
Регистрация: 03.05.2010
Сообщений: 3
По умолчанию Как доделать прогу

Код:
# include <iostream>
using namespace std;
class data
{	public:
		data(int,int,int);
		int chislo;
		int mes;
		int god;
		friend data operator +=(data d,int n);
		friend data operator >=(data d,data d2);
};
data::data(int c=0,int m=0,int g=0)
{
	chislo=c;
	mes=m;
	god=g;
}
data operator >=(data d,data d2)
{
	if(d2.god>d.god)
	{
		 cout<<"1 data bolee pozdnaya";
	}
	else
	{
		if(d2.mes>d.mes)
		{
			 cout<<"1 data bolee pozdnaya";
		}
		else
		{
			if(d2.chislo>d.chislo)
			{
				 cout<<"1 data bolee pozdnaya";
			}
			else
			{
				cout<<"data 1 = data2";
			}
		}
	}
	return 0;
}
data operator +=(data d,int n)
{
	d.chislo=d.chislo+n;
	if(d.chislo>31)
	{
		d.mes++;
		if(d.mes%2==1)
		{
			d.chislo=31;
		}
		else
		{
			if(d.mes==2)
			{
				d.chislo=28;
			}
			else
				d.chislo=30;
		}
	}
	return 0;
}

istream& operator >>(istream& in,data& d)
{
	cout<<"Vvedite den"<<"\n";
	in>>d.chislo;
	cout<<"vvedite mesac"<<"\n";
	in>>d.mes;
	cout<<"Vvedite god"<<"\n";
	in>>d.god;
	return in;
}
ostream& operator <<(ostream& out,data d)
{
	out<<d.chislo<<"/"<<d.mes<<"/"<<d.god;
	return out;
}

int main()
{
	data d;
	data d2;
	int n;
	cout<<"Vvedite pervuiy datu"<<'\n';
	cin>>d;
	cout<<d;
	cout<<"Vvedite vtoruiy datu"<<'\n';
	cin>>d2;
	cout<<d2<<'\n';
	d>=d2;
	cout<<"Vvedite N dnei";
	cin>>n;
	d+=n;
	cout<<d;
}
Не вызывается перегруженный оператор +=

Последний раз редактировалось Stilet; 04.05.2010 в 09:25.
DIMON007 вне форума Ответить с цитированием
Старый 03.05.2010, 23:27   #2
araxma
Пользователь
 
Регистрация: 29.04.2010
Сообщений: 35
По умолчанию

У меня вопросы например это же с++
Код:
int main()
{
data d;
data d2;
int n;
cout<<"Vvedite pervuiy datu"<<'\n';
cin>>d;
cout<<d;
cout<<"Vvedite vtoruiy datu"<<'\n';
cin>>d2;
cout<<d2<<'\n';
d>=d2;// что зто за запись ниже приведу как наверное должно быть
cout<<"Vvedite N dnei";
cin>>n;
d+=n;// что это
cout<<d;
}
наверное так выше помеченное
Код:
if (d>=d2)
{
 cout<<"Vvedite N dnei";
cin>>n;
d+=n;
cout<<d;
}
А вот опиратор += у вас не правельно обявлен в классе надо
Код:
void operator +=(int n);
Я так понял это вы изучвете перегрузку операторов пример простой но вы не правельно его обявили да и использовали неверно.Да и пример не очень т.к. ну какое здесь использования классов в таком приметиве вот держите другой вариань для самообразования.
Код:
class Date
{
public:
int Den;
int Mesas;
int God;
void operator << (int q);//любая букыв переменной т.к. здесьже и обявления её
bool Vvod ();//это для ввода даты
};
bool Date::Vvod ()
{
// ну писать не буду догадаешся типа так
//можно ещё эдесь если подумаеш добавить условия чтобы нельзя было например
// в поле месяц ввести ботее 12 и менее 0
//правдо и там у тебя ошибки надо преобразовать прочти повнимательнее
// литературу и всё получится
};
void Date::operator << (int q)
{
// в твоей процидуре почти верно только убери здесь 
// вот как правельно прочти о областе видемости переменной в с++ литературе
//если есть в классах как всё
Den=Den+q;
if (Den>31)
  {Den=1;
//кавычки определяют блоки прочти и об них
Mesas=Mesas+1;
if (..)
{...}//и т д не забывай про скобк а не кавычки как я выразился ранее
}
}

Читай с++/с повнимательнее если нет простеньких примеров могу скинуть если буду здесь и если тебе надо.

From Stilet: Автор пусть Си читает а ты правила -код оформляй читабельно спецтегом по кнопке #

Последний раз редактировалось Stilet; 04.05.2010 в 09:28.
araxma вне форума Ответить с цитированием
Старый 06.05.2010, 23:16   #3
araxma
Пользователь
 
Регистрация: 29.04.2010
Сообщений: 35
По умолчанию

Извените тренировка как выдет код реально
Код:
if (a>5)
{
a=1;
s++;
}
araxma вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доделать прогу на Делфи hohol90 Помощь студентам 2 12.03.2010 15:15
не знаю как доделать прогу на паскале pavel42 Помощь студентам 8 06.05.2009 16:34
Помогите доделать прогу на с++ Olya90 Помощь студентам 8 21.04.2009 00:14
Помогите доделать прогу LaMeRvDelphi Мультимедиа в Delphi 0 20.04.2009 20:38