1. Классы, конструкторы, деструктор, перегрузка операторов. (Семинары)
Описание файла
Файл "1. Классы, конструкторы, деструктор, перегрузка операторов." внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрЯзык программирования Си++Иванов А.П., Князева О.С.Литература:1. В.В. Подбельский. «Стандартный Си++» – Москва, Финансы и статистика, 2008, 688 с.2. Б. Страуструп. «Язык программирования Си++. Специальное издание» – Москва,Бином, 2011, 1136 c.Благодарности:При подготовке данных методических материалов использованы семинары,разработанные Ермолаевым А.Г. и Козловым А.А. Авторы выражают им глубокую иискреннюю благодарность.Семинар 1. Классы, конструкторы, деструктор, перегрузкаоператоров.Объектно-ориентированноеполиморфизм.Классы как типы, объекты как переменные этих типов.Устройство класса «рациональное число» (числитель и знаменатель) с перегрузкойвсех арифметических операторов, присваивания, конструкторами (инициализации икопирования), деструктором а так же - перегрузка операторов ввода-вывода.Оператор ::, объявление тела метода вне тела класса.Статические методы и поля.программирование:инкапсуляция,наследование,#include <iostream>using namespace std;class Ratio {private:int a,b;public:explicit Ratio(int na=0, int nb=0) : a(na), b(nb){ cout << "Hi: (" << a << "/" << b << ")" << endl << flush; }Ratio(const Ratio& src) : a(src.a), b(src.b){ cout << "Hi: (" << a << "/" << b << ")" << endl << flush; }~Ratio() { cout << "RIP: (" << a << "/" << b << ")" << endl << flush; }Ratio& operator=( const Ratio& src ) { a=src.a; b=src.b; return *this; }Ratio& operator+=( const Ratio& src ){ a = a * src.b + b * src.a;b *= src.b;return *this;}int chislitel() const { return a; }int znamenatel() const { return b; }Ratio& reverse() { int tmp=a; a=b; b=tmp; return *this; }operator int() const { return a/b; }19.03.20121Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрRatio operator+( const Ratio& src2 ) const{ Ratio res(*this);res += src2;return res;}};ostream& operator<<(ostream& os, const Ratio& src){ os << "(" << src.chislitel() << "/";os << src.znamenatel() << ")" << flush;return os;}istream& operator>> (istream& is,Ratio& r){int na, nb=1; is >> na;char c;is >> c;if (c=='/') is>> nb;r = Ratio(na,nb);return is;}void main( ){Ratio r1,r2,r3;char op;cout<<"enter r1"<<endl<<flush;cin>>r1;cout<<"enter op"<<endl<<flush;cin>>op;cout<<"enter r2"<<endl<<flush;cin>>r2;switch (op){case'+': r3=r1+r2; break;case'-': r3=r1-r2; break; /* этот и последующие арифметические */case'*': r3=r1*r2; break; /* операторы нужно реализовать */case'/': r3=r1/r2; break; /* в классе Ratio по образцу operator+ */default:cout<<"Error!"<<flush;return ;}cout<<r1<<' '<<op<<' '<<r2<<" = "<<r3<<flush;}Типовое задание: написать аналогичный класс и программу-калькулятор для него,выполняющую арифметические действия с объектами, вводимыми пользователем.19.03.20122Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр1.
ВариантСоздать класс комплексных чисел.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=». Перегрузить операции ввода и вывода. Написать программу–калькулятор,который позволит пользователю производить арифметические операции с объектами данного класса.2. ВариантСоздать класс трехмерных векторов.Определить в нем конструктор, деструктор, конструктор копирования.
Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число). Перегрузить операции ввода ивывода. Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации с объектами данного класса.3. ВариантСоздать класс матриц 2×2.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «=».
Перегрузить операции ввода и вывода. Написать программу – калькулятор.4. ВариантСоздать класс времени в формате чч:мм:cc.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «=». Перегрузить операции ввода и вывода. Написать программу – калькулятор.5. ВариантСоздать класс даты в формате дд.мм.гг.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «=».
Перегрузить операции ввода и вывода. Написать программу – калькулятор, которыйпозволит пользователю производить арифметические операции с объектами данного класса.6. ВариантСоздать класс треугольников, катеты которых параллельны осям координат.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число).
Перегрузить операции ввода ивывода. Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации с объектами данного класса.7. ВариантСоздать класс животных (волки и буйволы), живущих по определенным правилам.Один волк может съесть одного буйвола, два буйвола могут затоптать волка. Поедание приводит кувеличению массы волка на массу буйвола, затаптывание – обнуляет массу волка. Два буйвола могутпородить третьего, масса которого равна массе наибольшего из них.
Два волка могут породить третьего,масса которого равна массе наименьшего из них. У созданных объектов должны быть определеныконструкторы, оператор присваивания, все необходимые методы, операции ввода и вывода. Написатьпрограмму, которая иллюстрирует все имеющиеся методы по указаниям от пользователя.8. ВариантСоздать класс кругов.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число). Перегрузить операции ввода ивывода.
Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации с объектами данного класса.19.03.20123Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр9. ВариантСоздать класс прямоугольников, со сторонами, параллельными осям координат.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число).
Перегрузить операции ввода ивывода. Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации с объектами данного класса.10. ВариантСоздать класс полиномов 4 порядка.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число). Перегрузить операции ввода ивывода. Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации (+,-) с объектами данного класса.11. ВариантСоздать класс квадратных уравнений вида ax2+bx+c=0.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число).
Перегрузить операции ввода ивывода. Написать программу – калькулятор, который позволит пользователю производить арифметическиеоперации (+,-) с объектами данного класса.12. ВариантСоздать класс полиномов порядка N.N – произвольная, определяемая в программе константа. Определить в нем конструктор, деструктор,конструктор копирования.
Перегрузить операции «+», «-», «+=», «-=», «*=», «/», «=» (умножение иделение – на вещественное число). Перегрузить операции ввода и вывода. Написать программу –калькулятор.13. ВариантСоздать класс системных блоков (частота процессора, количество памяти, стоимость).Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «=». Перегрузить операции ввода и вывода. Написать программу – калькулятор, которыйпозволит пользователю производить арифметические операции с объектами данного класса.14.
ВариантСоздать класс четырехмерных векторов.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «=» (умножение – скалярное произведение). Перегрузить операции ввода и вывода.Написать программу – калькулятор.15. ВариантСоздать класс полиномов 3 порядка.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=» (умножение и деление – на вещественное число). Написать программу –калькулятор.16.
ВариантСоздать класс рациональных чисел.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «/», «=». Перегрузить операции ввода и вывода. Написать программу – калькулятор.17. ВариантСоздать класс матриц 3×3.Определить в нем конструктор, деструктор, конструктор копирования. Перегрузить операции «+», «-»,«+=», «-=», «*», «=». Перегрузить операции ввода и вывода. Написать программу – калькулятор.19.03.20124Кафедра Компьютерных методов физики: программирование, первый курс, второй семестр18.