1. Классы, конструкторы, деструктор, перегрузка операторов. (972449)
Текст из файла
Кафедра Компьютерных методов физики: программирование, первый курс, второй семестрЯзык программирования Си++Иванов А.П., Князева О.С.Литература: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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.