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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2011, 20:01   #1
Алексей_ЕА
Пользователь
 
Регистрация: 18.11.2011
Сообщений: 13
По умолчанию Функция друг

есть задание
Базовый класс «АБИТУРИЕНТ» описывает следующие данные об абитуриентах, сдав-ших вступительные экзамены в университет: ФИО; адрес; оценки по предметам. В состав
класса входят следующие функции: виртуальная функция просмотра данных о абитуриен-тах; функция-друг, позволяющая определить количество абитуриентов, проживающих в
заданном городе. Производный класс «АБИТУРИЕНТ-ЛЬГОТНИК» содержит следующие
данные: описание льготы и переопределенную функцию просмотра информации об аби-туриентах, имеющих льготы при поступлении. Производный класс «АБИТУРИЕНТ-СПОРТСМЕН» содержит следующие данные: вид спорта, соревнования, награды и пере-определенный метод вывода данных об абитуриентах- спортсменах.

Вот что смог написать я
Код:
#include <iostream> 
#include <conio.h> 
#include <windows.h> 
using namespace std; 
char bufRus [256]; 
char* Rus(char* mes) 
 { CharToOem (mes, bufRus); 
   return bufRus; 
 } 
 
//базовый класс "Абитуриент" 
class Abitur 
{ protected: 
   char m_fio[80],m_adres[80],//ФИО, адрес 
    m_ocenki[20];        //оценки по предметам 
  public: 
   Abitur(); 
   virtual ~ Abitur(){} 
   virtual void Display();//вывод описания  
}; 
   
 Abitur::Abitur() 
  { //ввод ФИО, адрес и оценки абитуриента
   cout << Rus("\nФИО:"); cin.get(); 
          cin.getline(m_fio,80);  
   cout << Rus("\nАдрес:"); cin.get(); 
          cin.getline(m_adres,80); 
   cout << Rus("\nОценки:"); 
   cin.get(); cin.getline(m_ocenki,80); 
  } 
  void Abitur:: Display() 
    { cout << Rus("\nАбитуриенты:");  
      cout << Rus("\n ФИО:")<<m_fio; 
      cout << Rus("\n Адрес:") << m_adres; 
	  cout << Rus("\n Оценки:") <<m_ocenki; 
    } 
	void Abitur:: Drug() 
	 { 
			if(m_adres==m_adres)cout << Rus("\nАбитуриент льготник:  "); 
   cout << Rus("\nФио: ") << m_fio << "  "; 
   cout << Rus("\nАдрес: ")<< m_adres << "  "; 
   cout << Rus("\nОценки: ") <<m_ocenki<< " \n "; ;
	 }
  //производный класс "Льготник"   
  class Lgot : public  Abitur 
   { protected: 
       char m_lgoti[80]; // льготы  
     public: 
       Lgot(); 
       virtual ~ Lgot(){} 
       virtual void Display(); //вывод описания книги 
    }; 
     
  Lgot::Lgot() 
  { //ввод  льгот 
   cout << Rus("\nЛьготы:"); cin.getline(m_lgoti,80); 
   }      
 void Lgot::Display() 
  {cout << Rus("\nАбитуриент льготник:  "); 
   cout << Rus("\nФио: ") << m_fio << "  "; 
   cout << Rus("\nАдрес: ")<< m_adres << "  "; 
   cout << Rus("\nОценки: ") <<m_ocenki<< " \n "; 
  } 
     
 // производный класс "Абитуриент"   
  class Sport : public  Abitur 
   { protected: 
      char m_Sport, m_sorevn,m_nagradi; //вид спорта 
     public: 
       Sport(); 
       virtual ~ Sport(){} 
       virtual void Display();//вывод описания Льготники спортсмены
    }; 
     
  Sport::Sport():Abitur() 
  { //ввод  
   cout << Rus("\nВид спорта:"); cin >> m_Sport; 
   cout << Rus("\nСоревнования:"); cin >> m_sorevn;
   cout << Rus("\nНаграды:"); cin >> m_nagradi;
   }      
 void Sport::Display() 
 { cout << Rus("\nАбитуриент спортсмен:  "); 
   cout << Rus("\nФио: ") << m_fio << "  "; 
   cout << Rus("\nАдрес: ")<< m_adres << "  "; 
   cout << Rus("\nОценки: ") <<m_ocenki<< " \n ";
 }   
 
int main() 
{ int nMenu, flag = 1, kol; 
  int i = 0; //индекс нового абитуриента
  Abitur* p[100]; 
  cout <<Rus("\nКоличество абитуриентов: ");cin >> kol; 
  while(i < kol && flag) 
   { // вывод пунктов меню 
     cout<<Rus("\nВведите: ") << endl;  
     cout<<Rus("1-для Льготников,2-для Спортсменов,4-выход\n");  
      cin >> nMenu; 
     switch (nMenu) 
      { case 1 : p[i++] = new Lgot(); break; 
        case 2 : p[i++] = new Sport(); break; 
        case 3 : p[i++] = new Abitur(); break;
		default : flag = 0; break; 
      }   
    } 
  // вывод описаний абитуриентов 
  for (int id = 0; id < kol; id++) 
   { p[id]->Display(); 
     delete p[id]; 
    } 
	 getch();   
 }
помогите с функцией-друг

___
1) Кросспост ЗАПРЕЩЁН правилами форума! ЗАчем создавать кучу одинаковых тем?! ЧТобы получить штрафы и бан?!!

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

3) к названию темы относитесь чуть более ответственно. Какой друг, кому друг...

Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.11.2011 в 12:01.
Алексей_ЕА вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комбо не видят друг друга Sergey112233 Microsoft Office Access 0 06.02.2011 20:15
2 bpl ссылающиеся друг на друга. eldalex Общие вопросы Delphi 2 01.11.2010 08:21
Ребус (ДРУГ-ГУРД=2727). spamer Свободное общение 9 24.12.2009 02:38
Что такое функция-друг и как ей пользоваться? TwiX Общие вопросы C/C++ 2 03.12.2009 02:14
Друг по крестикам-ноликам Djem1991 Общие вопросы Delphi 2 07.02.2009 13:53