Дорогие форумчане,
как в данной программе сделать чтобы выводило все адреса которые совпадают с адресом ввденным с клавиатуры вот программа
Код:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string.h>
using namespace std;
char bufRus [256];
char* Rus(char* mes)
{ CharToOem (mes, bufRus);
return bufRus;
}
//базовый класс "Абитуриент"
class Abitur
{ protected:
char m_lastname[30];//фамилия
char m_name[30];//имя
char m_middlename[30];//отчество
char m_adres[80];// адрес
char m_gor[20];
int m_fiz;//оценка по физике
int m_mat;//оценка по математике
int m_rus;//оценка по русскому
public:
Abitur();
virtual ~ Abitur(){}
virtual void Display();//вывод описания
friend void select(Abitur &a);
};
void select(Abitur &a)
{
if(strcmp(a.m_gor,a.m_adres)==0)
{
cout << Rus("\nАбитуриенты:");
cout << Rus("\n Фамилия:")<<a.m_lastname;
cout << Rus("\n Имя:")<<a.m_name;
cout << Rus("\n Отчество:")<<a.m_middlename;
cout << Rus("\n Адрес:") << a.m_adres;
cout << Rus("\n Оценки:");
cout << Rus("\n Физика:")<< a.m_fiz;
cout << Rus("\n Математика:")<< a.m_mat;
cout << Rus("\n Русский:")<< a.m_rus;
}
}
Abitur::Abitur()
{ //ввод ФИО, адрес и оценки абитуриента
cout << Rus("\n Фамилия:"); cin.get();
cin.getline(m_lastname,30);
cout << Rus("\n Имя:"); cin.get();
cin.getline(m_name,30);
cout << Rus("\n Отчество:"); cin.get();
cin.getline(m_middlename,30);
cout << Rus("\n Адрес:"); cin.get();
cin.getline(m_adres,80);
cout << Rus("\n Оценки:");
cout << Rus("\n Физика:");cin >> m_fiz;
cout << Rus("\n Математика:");cin >> m_mat;
cout << Rus("\n Русский:");cin >> m_rus;
}
void Abitur:: Display()
{ cout << Rus("\nАбитуриенты:");
cout << Rus("\n Фамилия:")<<m_lastname;
cout << Rus("\n Имя:")<<m_name;
cout << Rus("\n Отчество:")<<m_middlename;
cout << Rus("\n Адрес:") << m_adres;
cout << Rus("\n Оценки:");
cout << Rus("\n Физика:")<< m_fiz;
cout << Rus("\n Математика:")<< m_mat;
cout << Rus("\n Русский:")<< m_rus;
}
//производный класс "Льготник"
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_lastname <<" ";
cout << Rus("\n Имя:")<<m_name <<" ";
cout << Rus("\n Отчество:")<<m_middlename <<" ";
cout << Rus("\n Адрес: ")<< m_adres << " ";
cout << Rus("\n Оценки: ");
cout << Rus("\n Физика:")<< m_fiz << " ";
cout << Rus("\n Математика:")<< m_mat << " ";
cout << Rus("\n Русский:")<< m_rus << "\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_lastname << " ";
cout << Rus("\n Имя:")<<m_name<< " ";
cout << Rus("\n Отчество:")<<m_middlename << " ";
cout << Rus("\n Адрес: ")<< m_adres << " ";
cout << Rus("\n Оценки: ");
cout << Rus("\n Физика:")<< m_fiz<< " ";
cout << Rus("\n Математика:")<< m_mat << " ";
cout << Rus("\n Русский:")<< m_rus << "\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-для Спортсменов,3-выход\n");
cin >> nMenu;
switch (nMenu)
{ case 1 : p[i++] = new Lgot(); break;
case 2 : p[i++] = new Sport(); break;
default : flag = 0; break;
}
}
// вывод описаний абитуриентов
for (int id = 0; id < kol; id++)
{ p[id]->Display();
delete p[id];
}
for (int id = 0; id < kol; id++)
{select(*p[id]);
}
getch();
}