-
Notifications
You must be signed in to change notification settings - Fork 5
okovtun/PV_123
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
https://github.com/okovtun/PV_123 https://www.youtube.com/watch?v=AL5ArbG1fy8&list=PLeqyOOqxeiINhkggE6tzeBd_wUr9XEaBJ Венгерская нотация: https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BD%D0%B3%D0%B5%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%BE%D1%82%D0%B0%D1%86%D0%B8%D1%8F Book: https://drive.google.com/drive/folders/1mIhAKMp5-Jpy6s5X8u924tRCXFEdHE_z?usp=sharing ////////////////////////////////////////////////////////////////////////////////// //////////////// WinAPI ////////////////// ////////////////////////////////////////////////////////////////////////////////// TODO: 1. Главное окно должно открываться ровно посередине экрана, между окном и границей экрана должно быть одинаковое расстояни со всех сторон. Разрешение экрана можно узнать при помощи функции GetSystemMetrics(); 2. Размер окна и его положение на экране должны отображаться в строке заголовка, и при перемещении окна, а также при изменении его размера значения в строке заголовка должны измеряться. DONE: С элементом интерфейса ComboBox выполнить все те же действия, которые мы выполняли над ListBox. Диалоговое окно должно быть с иконкой. DONE: Когда ползователь покидает текстовое поле Login, не заполнив его, в этом поле снова появляется сообщение "Введите логин". Если же пользователь заполнил это поле, то когда он его покидает, в текстовом поле остается строка, введенная пользователем. Для этого нужно обработать уведомление EN_KILLFOCUS. ////////////////////////////////////////////////////////////////////////////////// //////////////// UML ////////////////// ////////////////////////////////////////////////////////////////////////////////// DONE: Построить зависимость расхода топлива от скорости по таблице, представленной здесь: https://www.codewars.com/kata/578df8f3deaed98fcf0001e9 DONE: 1. Когда в баке становится топлива меньше 5 литров, должен появиться индикатор LOW FUEL; DONE 2. Научить машину набирать и сбрасывать скорость; 3. На ходу машина снижает скорость из-за силы трения о воздух и о дорогу; DONE: Добавить возможность заправлять машину по нажатии на клавишу 'f'; ////////////////////////////////////////////////////////////////////////////////// //////////////// STANDARD TEMPLATE LIBRARY ////////////////// ////////////////////////////////////////////////////////////////////////////////// http://cplusplus.com/reference/stl/ TODO: 1. Вывести на экран все номера, совершившие заданное правонарушение; -------------------------------------------------------------------- 2. В класс Crime добавить дату и время правонарушения; 3. Вывести все номера совершившие правонарушение в заданное время; DONE: 1. Проверить чтение из файла с большим количеством правонарушений; 2. Создать ветку PoliceLoadOptimisation, и в этой ветке упростить парсинг строки с правонарушениями используя функцию strtok(); https://www.cplusplus.com/reference/cstring/strtok/?kw=strtok DONE: Сохранить базу в файл; Решить задачу №1:https://github.com/okovtun/PV_123/blob/master/STL/AssiciativeContainers/GAI%20DZ_PS_C%2B%2B_nedelya_09.pdf DONE: 1. Выучить теорию! 2. Создаить двусвязный список, проинициализировать его при объявлении, и добавить туда значение на заданную позицию. Значение и позия вводятся с клавиатуры. http://cplusplus.com/reference/list/list/ 3. Создаить односвязный список, проинициализировать его при объявлении, и добавить туда значение на заданную позицию. Значение и позия вводятся с клавиатуры. http://cplusplus.com/reference/forward_list/forward_list/ ////////////////////////////////////////////////////////////////////////////////// //////////////// DATA CONTAINERS ////////////////// ////////////////////////////////////////////////////////////////////////////////// TODO: 1. Написать рекурсивную функцию int factorial(int n), которая принимает число, и возвращает факториал этого числа; 2. Написать реурсивную функцию double power(double a, int n), которая возводит указанное число в указанную степень; ---------------------------------------------------------- 1. В класс BinaryTree добавить методы: int minValue(); DONE int maxValue(); DONE int size(); DONE int sum(); DONE double avg(); DONE Destructor; DONE void erase(int Data); //Удаляет заданное значение из дерева CopyMethods; MoveMethods; 2. НА БАЗЕ нашего дерева, реализовать уникальное бинарное дерево. DONE При этом, наш класс Tree НЕ должен измениться вообще! 3. Функции должны вызываться из main() без передачи в них корня дерева; DONE 4. Вывести дерево в виде дерева; 5. Сбалансировать Бинарное дерево; + - + - + - + - + - + - + - + - + - + - + - + - + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DONE: 1. Оптимизировать методы добавления элементов; 2. Создать ветку master->IteratorsInheritanceInList, и в этой ветке оптимизировать все итераторы двусвязного списка используя наследование, а так же добавить ConstIterator и ConstReverseIterator (Константные итераторы, которые НЕ позволяют изменять значение по адресу); DONE: 1. void erase(int index); 2. Оптимизировать методы добавления элементов, так как мы это делали в односвязном списке; 3. Проверочный код должен заработать: List list = { 3, 5, 8, 13, 21 }; for(int i:list)cout << i << tab; cout << endl; DONE: Добавить в список следующие методы: void push_back(int Data); DONE void pop_front(); DONE void pop_back(); DONE void insert(int index, int Data); DONE Destructor; CopyMethods; MoveMethods; ILconstructor; List list = {3,5,8,13,21}; for(int i: list) cout << i << tab; cout << endl; DONE: Проверочный код должен заработать:DONE: 1. Оптимизировать код в методах push_back() и insert(); DONE 2. Оптимизировать код метода print(); DONE 3. Выражение Temp = Temp->pNext заменить выражением Temp++; Hardcore! DONE: 0. Написать метод unique(), который находит и удаляет повторяющиеся значения в списке, и таким образом, делает список уникальным; 1. Написать метод reverse(), который изменяет порядок следования элементов в списке на противоположный; 2. Проверочный код в секции HOME_WORK_1 должен заработать; 3. Проверрочный код в секции HOME_WORK_2 должен заработать;PV_123/DataContainers/ForwardList/main.cpp
Line 388 in 2d536b0
#ifdef RANGE_BASE_FOR_LIST DONE: В класс ForwardList добавить методы: void push_back(int Data); //добавляет значение в конец списка DONE void pop_front(); //удаляет значение с начала списка DONE void pop_back(); //удаляет значение с конца списка DONE void insert(int index, int value); //вставляет значение в список по заданному индексу DONE void erase(int index); //удаляет значение из списка по заданному индексу DONE Деструктор должен очищать список перед удалением (удалять все элементы из списка). DONE CopyMethods; MoveMethods; Перегрузить оператор +, который выполняет конкатенацию двух списков. UML: https://www.visual-paradigm.com/download/community.jsp https://app.creately.com/diagram/start/dashboard ////////////////////////////////////////////////////////////////////////////////// //////////////// INHERITANCE ////////////////// ////////////////////////////////////////////////////////////////////////////////// https://www.youtube.com/watch?v=UluSI1P4Ijg&list=PLBOPkQsFLCR2H7_0Ss0W6y703J_ySRGi_ TODO: В нашу иерархию фигур добавить иерархтю треугольников: EquilateralTriangle - Равносторонний треугольник; IsoscalesTriangle - Равнобедренный треугольник; RightTriangle - Прямоугольный треугольник; DONE: Разработать иерархию геометрических фигур: Квадрат - DONE прямоугольник - Rectangle() https://docs.microsoft.com/en-us/windows/win32/gdi/about-rectangles круг - Ellipce() https://docs.microsoft.com/en-us/windows/win32/gdi/about-ellipses треугольник - Polygon(). https://docs.microsoft.com/en-us/windows/win32/gdi/about-ellipses https://docs.microsoft.com/en-us/windows/win32/gdi/windows-gdi https://docs.microsoft.com/en-us/windows/win32/gdi/filled-shapes https://docs.microsoft.com/en-us/windows/win32/gdi/about-filled-shapes Для каждой фигуры вывести ее особые свойства (первичные параметры), такие как длина стороны, радиус и т.д. (у каждой фигуры они свои) и вторичные параметры: площадь, периметр. Так же каждую фигуру нужно нарисовать. http://www.winprog.org/tutorial/ https://www.youtube.com/watch?v=kQ2TTgfvR94&list=PL0_nf9F9pvZNQsdlmE6s0UyixTnT4778Y DONE: В иерархию транспортных средств добавить Катер, Яхту, Самолет и вертолет, и построить диаграмму классов; DONE: 1. Почитать про *.csv-файлы; 2. В проекте Academy сохранить группу в файл; 3. В проекте Academy загрузить группу из файла; DONE: 1. При помощи width() и left/right выровнять вывод во всех дочерних классах; 2. Обеспечить ввод объектов PermanentEmployee и HourlyEmployee с клавиатуры; PermanentEmployee pe; cout << "Введите информацию о сотруднике: "; cin >> pe; http://cplusplus.com/reference/string/string/ http://cplusplus.com/reference/string/string/find_first_not_of/ http://cplusplus.com/reference/string/string/find_last_not_of/ https://www.boost.org/doc/libs/1_78_0/?view=categorized https://www.boost.org/doc/libs/1_78_0/doc/html/string_algo.html Base:https://www.youtube.com/watch?v=htkSiXnrqHQ&list=PLeqyOOqxeiIMc8VmOKgzH2KDPzAhl5Gc3 TODO: 1.*Сохранить группу в файл; 2.***Загрузить группу из файла; http://cplusplus.com/doc/tutorial/files/ 3.Есть 2 типа сотрудников - с постоянной оплатой и с почасовой оплатой. Нужно создать массив разнотипных сотрудников, и вычислить зарплату для каждого отдельного струдника, и для всего отдела. Можно сохранить сотдуников в файл и загрузить их из файла. Реализовать в отдельном проекте. DONE: В проект Academy добавить классы Teacher и Graduate (Дипломник). ////////////////////////////////////////////////////////////////////////////////// //////////////// BASE ////////////////// ////////////////////////////////////////////////////////////////////////////////// TOREAD: https://www.softelectro.ru/ieee754.html TODO: В классе Binary перегрузить операторы & - AND; ^ - XOR; DONE: Релизовать класс Binary, описывающий двоичное число. Обеспечить выполнение всех арифметических и поитовых операций над двоичными числами. DONE: 1. В операторе + вместо выражения DONE result.get_str()[i] = left.get_str()[i]; использовать выражение: result[i] = left[i]; 2. Для класса String перегрузить оператор += String str1 = "Hello"; String str2 = "World"; str1 += str2; cout << str1 << endl; //HelloWorld 3. Перегрузить оператор ввода String str; cout << "Введите строку: "; cin >> str; cout << str; DONE: В отдельном проекте реализовать класс String, описывающий строку. Класс должен обеспечивать создание объектов следующим образом: String str; //Пустая строка размером 80 Байт DONE String str1 = "Hello"; DONE String str2 = "World"; DONE ** String str3 = str1 + str2; DONE ** cout << str3 << endl; DONE String str4(25); //Создает пустую строку размером 25 Байт DONE: Перегрузить оператор ввода: Fraction A; cout << "Введите простую дробь: "; cin >> A; cout << A << endl; cin является объектом класса istream. DONE: Проверочный код в секции HOME_WORK должен заработать: Fraction A(2, 3, 4); double a = A; cout << a << endl; double b = 2.75; Fraction B = b; B.print(); DONE: 1. Перегрузить все недостающие операторы: +, -, +=, -=, /=; 2. Для класса Fraction перегрузить операторы сравнения: == != > < >= <= DONE: В классе Fraction написать метод reduce(), который сокращает протую дробь. https://www.webmath.ru/poleznoe/formules_12_7.php DONE: В Solution IntroductionToOOP добавить проект Fraction, и в нем реализовать класс Fraction, описывающий простую дробь. В классе должны быть все необходимые методы и операторы. Fraction A; //Default onstructor A.print(); Fraction B=5; B.print(); Fraction C(1,2); C.print(); Fraction D(2,3,4); D.print() Fraction E = C*D; E.print(); DONE: 0. Выучить теорию!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1. Проанализировать еще раз DISTANCE_CHECK; 2. Проверочный код в секции ASSIGNMENT_CHECK должен заработать: Point A, B, C; A = B = C = Point(2,3); A.print(); B.print(); C.print(); DONE: 0. Выучить теорию!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1. Написать метод ??? distance(???), который возвращает расстояние до указанной точки; DONE 2. Написать функцию ??? distance(???), которая возвращает расстояние между двумя точками;PV_123/DataContainers/ForwardList/main.cpp
Line 217 in dc734a6
#ifdef HOME_WORK_1
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published