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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2012, 14:23   #1
Wa1demar
Новичок
Джуниор
 
Регистрация: 23.10.2011
Сообщений: 2
По умолчанию Полиморфизм.

Доброго времени суток.
Вот условие задания: Создать класс периодическое издание (название, стоимость экземпляра и количество страниц) и классы газета ( количество экземпляров, стоимость подписки за год) и журнал ( вид переплета, стоимость подписки за год). Создать виртуальные методы; вывод информации и поиск по названию.
Код программы вот (он верный):

Код:
#include <iostream> 
#include <string> 
#include <conio.h>

using namespace std;
class izdan {
private:
	string nazv;
	float st;
	int str;
	int per;
public: 
	izdan (string, float, int, int);
	virtual void show_information (void);
};
izdan::izdan(std::string new_nazv, float new_st, int new_str, int new_per)
{
	nazv=new_nazv;
	st=new_st;
	str=new_str;
	per=new_per;
};
void izdan::show_information (void)
{
cout<<"название издания "<<nazv<<endl;
cout<<"стоимость экземпляра "<<st<<endl;
cout<<"количество страниц "<<str<<endl;
cout<<"периодичность "<<per<<endl;
};
class gazz: public izdan
{
private:
	int exz;
	int podp;
public: 
	gazz (string, float, int, int, int, int);
	void show_information(void);
};
gazz::gazz(string nazv1, float st1, int str1, int per1,  int exz1, int podp1):izdan(nazv1, st1, str1, per1)
{
	gazz::exz=exz1;
	gazz::podp=podp1;
}
void gazz::show_information(void)
{
	izdan::show_information();
	cout<<"Количество экземпляров="<<exz<<endl;
	cout<<"Стоимость подписки="<<podp<<endl;
}

class jour: public izdan
{
private:
	string perepl;
	int podp;
public: 
	jour (string, float, int, int, string, int);
	void show_information(void);
};
jour::jour(string nazv1, float st1, int str1, int per1, string perepl1, int podp1):izdan(nazv1, st1, str1, per1)
{
	jour::perepl=perepl1;
	jour::podp=podp1;
}
void jour::show_information(void)
{
	izdan::show_information();
	cout<<"Тип переплета="<<perepl<<endl;
	cout<<"Стоимость подписки="<<podp<<endl;
}

int main ()
{
	setlocale (LC_CTYPE, "Russian");
	izdan* group[4];
	group[0]=new izdan("Росмэн", 10500, 25, 2);
	group[1]=new izdan("Росмэн", 25500, 34, 2);
	group[2]=new gazz("Таймс", 13500, 31, 24, 5000, 45);
	group[3]=new jour("Форбс", 13500, 31, 12, "Обычный", 10);

	for (int i=0; i<4; i++)
	{
		cout<<"обьект номер"<<i+1<<endl;
		group[i]->show_information();
	};
	
system("pause");
		getch();
};
Но как сделать поиск по имени я пока что не додумался. Помогите реализовать его.
Заранее благодарен.

Последний раз редактировалось ACE Valery; 04.03.2012 в 15:29.
Wa1demar вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиморфизм Anubys Помощь студентам 1 26.12.2011 20:42
Полиморфизм Zorgan Visual C++ 22 29.08.2011 12:23
Полиморфизм MasterSporta Общие вопросы C/C++ 3 10.04.2011 23:46
полиморфизм slayerblya Общие вопросы C/C++ 1 27.02.2011 01:43
Полиморфизм mister2010 Общие вопросы C/C++ 30 24.05.2010 01:07