Содержание
ВНИМАНИЕ | Для заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Варианты заданий
№ | Условие |
1 | Описать класс, реализующий стек. Написать программу, использующую этот класс для моделирования Т-образного сортировочного узла на железной дороге. Программа должна разделять на два направления состав, состоящий из вагонов двух типов (на каждое направление формируется состав из вагонов одного типа). Предусмотреть возможность формирования состава из файла и с клавиатуры. |
2 | Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаление существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам. Написать программу, использующую этот класс для представления англо-русского словаря. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Предусмотреть возможность формирования словаря из файла и с клавиатуры. |
3 | Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол. Написать программу, демонстрирующую работу с этими классами. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов. |
4 | Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения составных частей адреса, создания и уничтожения объектов этого класса. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
5 | Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
6 | Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
7 | Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменения размеров, построения наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класс. |
8 | Составить описание класса для определения одномерных массивов целых чисел (векторов). Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы массива, возможность задания произвольных границ индексов при создании объекта и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов, умножения и деления всех элементов массива на скаляр, вывода на экран элемента массива по заданному индексу и всего массива. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
9 | Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть контроль выхода за пределы массива, возможность обращения к отдельным строкам массива по индексам, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, а также вывод на экран элемента массива по заданному индексу и всего массива. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
10 | Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена, вывод на экран описания многочлена. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
11 | Составить описание класса одномерных массивов строк, каждая строка задается длиной и указателем на выделенную для нее память. Предусмотреть контроль выхода за пределы массивов, возможность обращения к отдельным строкам массива по индексам, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, а также вывод на экран элемента массива и всего массива. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
12 | Составить описание класса, обеспечивающего представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
13 | Написать класс для эффективной работы со строками, позволяющий форматировать и сравнивать строки, хранить в строках числовые значения и извлекать их. Для этого необходимо реализовать:
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
14 | Описать класс «Домашняя библиотека«. Предусмотреть возможность работы с произвольным числом книг, поиска книги по какому-либо признаку (например, по автору или по году издания), добавления книг в библиотеку, удаления книг из нее, сортировка книг по разным полям. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
15 | Описать класс «Записная книжка«. Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
16 | Описать класс «Студенческая группа«. Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
17 | Описать класс, реализующий тип данных «вещественная матрица» и работу с ним. Класс должен реализовывать следующие операции над матрицами:
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
18 | Описать класс «Множество«, позволяющий выполнять основные операции — добавление и удаление элемента, пересечение, объединение и разность множеств. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
19 | Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квадрат определяется его координатами в матрице. После отыскания прохода программа печатает найденный путь в виде координат квадратов. |
20 | Описать класс «Предметный указатель». Каждая компонента указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. |
Образец выполнения (вариант №5)
Условие задачи
Составить описание класса для представления комплексных чисел. Обеспечить выполнение операций сложения, вычитания и умножения комплексных чисел.
Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Реализация задачи на языке С++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | #include <iostream> // консольный ввод-вывод #include <iomanip> // форматированный вывод // подключаем стандартное пространство имен using namespace std; // описание сущности "Комплексное число" class Complex { private: double re; // вещественная часть double im; // мнимая часть public: // конструктор по умолчанию Complex() { this->re = this->im = 0.0; } // параметрический конструктор Complex( const double re, const double im ) { this->re = re; this->im = im; } // перегрузка оператора сложения двух комплексных чисел Complex operator+( const Complex &right ) const { Complex sum( this->re + right.re, this->im + right.im ); return sum; } // перегрузка оператора вычитания двух комплексных чисел Complex operator-( const Complex &right ) const { Complex minus( this->re - right.re, this->im - right.im ); return minus; } // перегрузка оператора произведения двух комплексных чисел Complex operator*( const Complex &right ) const { Complex multy( this->re * right.re - this->im * right.im, this->im * right.re + this->re * right.im ); return multy; } // ввод комплексного числа с клавиатуры friend istream& operator>>( istream &in, Complex &number ); // вывод комплексного числа на экран friend ostream& operator<<( ostream &out, const Complex &number ); }; // ввод комплексного числа с клавиатуры istream& operator>>( istream &in, Complex &number ) { cout << endl << " - введите действительную часть числа: "; in >> number.re; cout << "\ - введите мнимую часть числа: "; in >> number.im; return in; } // вывод комплексного числа на экран ostream& operator<<( ostream &out, const Complex &number ) { out << setprecision( 3 ) << fixed << number.re; if( number.im >= 0 ) out << " + "; else out << " - "; out << setprecision( 3 ) << fixed << fabs( number.im ) << " * i"; return out; } // главное меню программы int Menu( void ) { int select; do { system( "CLS" ); cout << "\tГЛАВНОЕ МЕНЮ ПРОГРАММЫ" << endl << endl; cout << "1 - Сложение 2-х комплексных чисел" << endl; cout << "2 - Вычитание 2-х комплексных чисел" << endl; cout << "3 - Умножение 2-х комплексных чисел" << endl; cout << "4 - Выход из программы" << endl; cout << "\tВЫБОР: "; cin >> select; fflush( stdin ); } while( ( select < 1 ) || ( select > 4 ) ); return select; } // главная функция программы (точка входа) int main( void ) { // русификация диалогов setlocale( LC_ALL, "Russian" ); int select; do { // вызываем главное меню select = Menu(); switch( select ) { case 1: // сложение { Complex c1, c2; cin >> c1 >> c2; cout << endl << "c1 = " << c1; cout << endl << "c2 = " << c2; cout << endl << "\tc1 + c2 = " << c1 + c2; break; } case 2: // вычитание { Complex c1, c2; cin >> c1 >> c2; cout << endl << "c1 = " << c1; cout << endl << "c2 = " << c2; cout << endl << "\tc1 - c2 = " << c1 - c2; break; } case 3: // произведение { Complex c1, c2; cin >> c1 >> c2; cout << endl << "c1 = " << c1; cout << endl << "c2 = " << c2; cout << endl << "\tc1 * c2 = " << c1 * c2; break; } } if( select != 4 ) { // задержка программы, чтобы у пользователя была возможность просмотреть результат cout << endl << endl; system( "pause" ); } } while( select != 4 ); // завершение работы программы и передача управления в ОС (с кодом = успешное окончание) return EXIT_SUCCESS; } |
Результаты работы программы
ВНИМАНИЕ | Для заказа программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий