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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2021, 19:29   #1
Daria16
 
Регистрация: 08.10.2021
Сообщений: 5
Лампочка Программирование C++. Наследование

Был код программы (классы, структура): вводился список людей и данные о них. Из этого списка функцией выбирались избиратели старше 18 с заданной пользователем фамилией. После был произведен перегруз ввода/вывода и операций. Появилась задача: создать производный класс, который должен характеризовать человека как студента. Введите такие элементы-данные, как название учебного заведения, номер студенческой группы, средний балл, предусмотрите возможность инициализации этих данных. Добавьте метод класса для поиска всех студентов-отличников в определенной группе.
До этого сделала все, но на наследовании застопорилась. Попыталась

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

class TMan
{
public:
string family;
string name;
string otchestvo;
int age;
string address;
public:
TMan()
{

family = "";
name = "";
otchestvo = "";
age = 0;
address = "";
};
TMan(string Family, string Name, string Otchestvo, int Age, string Address)
{
family = Family;
name = Name;
otchestvo = Otchestvo;
age = Age;
address = Address;
};
TMan(TMan& Man)
{
family = Man.family;
name = Man.name;
otchestvo = Man.otchestvo;
age = Man.age;
address = Man.address;
};

friend bool operator== (TMan const& man, string Family);
friend bool operator>= (TMan const& Man, int Age);
friend ostream& operator<<(ostream& os, const TMan& Man);
friend istream& operator>>(istream& is, TMan& Man);
};

//перегрузы
ostream& operator<<(ostream& os, const TMan& Man) {
os << "Фамилия: " << Man.family;
os << "\nИмя: " << Man.name;
os << "\nОтчество: " << Man.otchestvo;
os << "\nВозраст: " << Man.age;
os << "\nАдрес: " << Man.address << endl << endl;
return os;
}
istream& operator>>(istream& is, TMan& Man) {
cout << "Введите имя: ";
is >> Man.name;
cout << "Введите Фамилию человека: ";
is >> Man.family;
cout << "Введите отчество: ";
is >> Man.otchestvo;
cout << "Введите возвраст: ";
is >> Man.age;
cout << "Введите адрес: ";
cout << Man.address;
is.ignore();
getline(is, Man.address);
cout << "\n";

return is;
}
bool operator== (TMan const& man, string Family)
{
return man.family == Family;
}
bool operator>= (TMan const& Man, int Age)
{
return Man.age >= Age;
}
//---------------------------------------------

class Students : public TMan
{
public:
string name_institution;
string group_number;
int average_score;
public:
Students()
{
name_institution = "";
group_number = "";
average_score = 0;
};
Students(string Name_institution, string Group_number, int Average_score)
{
name_institution = Name_institution;
group_number = Group_number;
average_score = Average_score;
};
Students(Students& student)
{
name_institution = student.name_institution;
group_number = student.group_number;
average_score = student.average_score;
};
void SetStudent(Students& student)
{
cout << "Введите название учреждения: ";
cin >> student.name_institution;
cout << "Введите номер студенческой группы: ";
cin >> student.group_number;
cout << "Введите средний балл: ";
cin >> student.average_score;
cout << "\n";
}
void GetStudent(Students& student)
{
cout << "Название учреждения: " << student.name_institution;
cout << "\nНомер студенческой группы: " << student.group_number;
cout << "\nСредний балл: " << student.average_score << endl << endl;
}
void Excellently(Students&student, string group_number, string average_score, string Group_number)
{
if ((student.average_score==5) && (student.group_number == Group_number))
GetStudent(student);
}

};

int main()
{
setlocale(LC_ALL, "ru");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);

int N = 0;
string Family;
string Age;
string group_number;
string average_score;
string Group_number;
cout << "Введите количество человек: ";
cin >> N;
TMan* obj = new TMan[N];
Students* elm = new Students[N];
cout << "\n________________________________ ____\n";
TMan objTMan;
Students objStudents;
for (int i = 0; i < N; i++) {
//Здесь используется перегруз ввода
cin >> obj[i];
}
cout << "\n________________________________ ____\n";
cout << "Объект созданный конструктором с параметрами:\n";
TMan Man1("Иванов", "Иван", "Иванович", 33, "г. Москва, ул Мира, д 375, кв 5");
//Здесь используется перегруз вывода
cout << Man1;
cout << "\n";
cout << "Объект созданный конструктором копирования (скопирован первый объект):\n";
TMan obj1(obj[0]);
//Здесь используется перегруз вывода
cout << obj1;
cout << "\n________________________________ ____\n";
cout << "Список людей:\n\n";
for (int i = 0; i < N; i++)
{
//Здесь используется перегруз вывода
cout << obj[i];
}
cout << "\n________________________________ ____\n";
cout << "Введите фамилию для сравнения: ";
cin >> Family;
cout << "\n________________________________ ____\n";

cout << "Избиратели: \n\n";
for (int i = 0; i < N; i++)
{
if ((obj[i] == Family) && (obj[i] >= 18))
cout << obj[i];
}
cout << "Введите номер студенческой группы: ";
cin >> Group_number;
cout << "\n________________________________ ____\n";
cout << "Студенты-отличники: \n\n";
for (int i = 0; i < N; i++)
{
objStudents.Excellently(elm[i], group_number, average_score, Group_number);
}
system("Pause");
return 0;
}

Создала еще класс Students и передала параметры из базового (TMan). Добавила нужные поля и функцию. Но добавленный класс пропускается.
Daria16 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объектно-Ориентированное Программирование Наследование и композиция cyberLubich C# (си шарп) 1 21.11.2021 19:56
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
наследование c++ Nata-Tata Помощь студентам 1 06.04.2011 00:09
Наследование notHaker Общие вопросы Delphi 5 24.05.2010 18:55
Наследование на C++ dziga1989 Помощь студентам 5 22.10.2009 11:25