Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Пример программы с использованием перегрузкий операторов





Для класса “студент” перегрузить операцию “>” (большим считается тот студент, рейтинг которого выше) и перегрузить операцию “+” (операция увеличивает на заданное значение рейтинг студента). Перегрузить операцию присваивания. Перегрузить операции ввода и вывода.

Создать массив объектов класса “студент”. Увеличить рейтинг каждого студента на произвольное значение. Найти студента с наименьшим рейтингом.

 

#include <iostream.h>

class student

{

char FIO[20]; // ФИО студента

char gr[10]; // Группа студента

float reit; // Рейтинг студента

public:

friend istream & operator>>(istream &r, student &a)

{

cout<<"\n Vvod fio: ";

cin>>a.FIO;

cout<<"\n Vvod gruppi: ";

cin>>a.gr;

cout<<"\n Vvod reitinga:";

cin>>a.reit;

return r;

}

friend ostream & operator<< (ostream &r, student a)

{

return r<<"\n FIO: "<<a.FIO<<"\n Gruppa: "<<a.gr<<"\nReiting: "<<a.reit;

}

char * rFIO() // Функция, возвращающая ФИО

{

return FIO;

}

char * rgr() // Функция, возвращающая группу

{

return gr;

}

float rreit() // Функция, возвращающая рейтинг

{

return reit;

}

int operator > (student &a)

{

return (reit > a.reit? 1:0);

}

student & operator =(student &a)

{

strcpy(this->FIO, a.FIO);

strcpy(this->gr, a.gr);

this->reit=a.reit;

return *this;

}

student operator +(float a)

{

student temp;

temp.reit=this->reit+a;

strcpy(temp.FIO,this->FIO);

strcpy(temp.gr,this->gr);

return temp;

}

};

int main()

{

student mas[10]; // массив объектов класса

int n;

cout<<"\n vvod n";

cin>>n;

for (int i=0; i<n; i++)

cin>>mas[i];

for (int i=0; i<n; i++)

cout<<mas[i];

// Поиск минимального рейтинга

int imin=0;

for (int i=1; i<n; i++)

if (mas[imin]>mas[i])

imin=i;

cout<<"\n\n Min reiting: "<<mas[imin].rreit();

cout<<mas[imin];

//Изменение рейтинга

int x;

cout<<"\n Enter increment reitinga:";

cin>>x;

for (int i=0; i<n; i++)

cout<<mas[i]+x;

}


 

 

Учебное издание

 

Вадим Юрьевич Наумов

Ольга Владиславовна Гостевская

 

Объектно-ориентированное программирование на С++. Лабораторный практикум.

Учебное пособие

 

Редактор Е. А. Пичугина

 

Темплан 2014 г. Позиция №___.

Лицензия ИД № 04790 от 18.05.2007 года

Подписано в печать ­­­­­­­­­­_____________. Формат 60 х 84 1/16.

Бумага газетная. Печать офсетная. Усл. печ. л. ­­­­________. Уч.-изд. л. ­­­______.

Тираж экз. Заказ _____________.

 

Волгоградский государственный технический университет.

400005 Волгоград, просп. Ленина, 28.

 

РПК “Политехник”

Волгоградского государственного технического университета.

400005 Волгоград, ул. Советская,35.

 

 

Date: 2016-05-13; view: 288; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию