СТРУКТУРА ПРОЕКТА VISUAL STUDIO И БИБЛИОТЕКИ. Зыонг_Отчет по лаб 1. структура проекта visual studio и библиотеки
![]()
|
Министерство наука и высшего обраования Российской Федерации ФГАОУ ВО «Уральский федеральный университет имени первого Президента России Б.Н.Ельцина» Институт радиэлектроники и информационных технологий – РТФ Департамент информационных технологий и автоматики Отчёт по лабораторной работе № 1 Дисциплина:Алгоритмы и структуры данных Тема: «СТРУКТУРА ПРОЕКТА VISUAL STUDIO И БИБЛИОТЕКИ » Вариант №11 Студент РИ-190010 Зыонг Нгок Ань Преподаватель Кандидат технических наук Титаев А.А. Екатеринбург 2020 год СодержаниеЗадача 3 Тестовые результаты 9 Замечание 10 ЗадачаСоздать функцию сортировки массива: void SortMass (int *Mass, int N), где *Mass – указатель на первый элемент массива, N – размер массива. Создать функцию нахождения элемента в массиве с помощью двоичного поиска: int BinFind (*Mass, int N, int Value), где *Mass – указатель на первый элемент массива, N – размер массива, Value – элемент, который нужно находить. Разделить код по нескольким файлам одного проекта. Создать статическую библиотеку функций. Создать динамическую библиотеку функций Алгоритм выполнения задачи Написать код функции SortMass с помощью пузырькового алгоритма и функции BinFind с помощью бинарного поиска. В коде функции main: вводить число элементов массив, распределить динамическую память для массива, вводить массив и выводить на экран сортированный массив, вводить искомое значение и выводить результат поиска на экран. 1. Создать файл заголовка Lib.h,в котором содержатся прототипы функций. Создать файл реализации функций Lib.cpp и файл Main.cpp, в котором содержится функция main. Коды файлов Lib.cpp и Main.cpp должны имееть строку «include “Lib.h”» . Загрузить файл и посмотреть результат. 2. В одном решении создать 2 проекта. Первый проект Lib – статическая библиотека, второй MainFunc – проект функции main. Для проекта статической библиотеки надо установить через Свойство тип конфигурации «Статическая библиотека (.lib)», построить её. Когда сборка завершена (файл Lib.lib появится), добавить ссылку к этой библиотеке в проекте MainFunc (Код файл MainFunc.cpp должен имееть строку «include “Lib.h”»). ПКМ в проект MainFunc ->Отладка ->Запустить новый экземпляр и посмотреть результат. 3. В одном решении создать 2 проекта. Первый проект DynLib – динамическая библиотека, второй MainFunc – проект функции main. Для проекта динамической библиотеки надо установить через Свойство тип конфигурации «Динамическая библиотека (.dll)», в заголовочном файле нужны индентификаторы «_declspec(dllexport)» (для самой библиотеки) и «_declspec(dllimport)» (для использования во внешнем проекте). Для удобства пользуем условный директив препроцессора DLIB, заменяем «_declspec(dllexport)» и «_declspec(dllimport)» на «PREFIX» ,через Свойства файла реализации DynLib.cpp ->С/С++->Определения препроцессора ->Добавить DLIB. Для проекта MainFunc надо добавить ссылку к динамической библиотеке, и через Свойства ->C/C++->Общие ->Допольнительные каталоги включаемых файлов-> Добавить путь к файлам .dll, .lib и .h. Для того, чтобы запустить программу ПКМ в решение MainFunc -> Отладка -> Запустить новый экземляр. Посмотреть результат. Текст_решений_Текст_заголочного_файла'>Текст решений Текст заголочного файла #pragma once void SortMass(int* Mass, int N); int BinFind(int* Mass, int N, int Value); Текст заголочного файла динамической библиотеки #pragma once #ifdef DLIB #define PREFIX _declspec (dllexport) #else #define PREFIX _declspec (dllimport) #endif PREFIX void SortMass(int* Mass, int N); PREFIX int BinFind(int* Mass, int N, int Value); Текст файла реалиации функции #include #include "Lib.h" void SortMass(int* Mass, int N) { int i, j, temp; bool swap = false; for (i = 0; i < N - 1; i++) { swap = false; for (j = 0; j < N - i - 1; j++) { if (Mass[j] > Mass[j + 1]) { temp = Mass[j]; Mass[j] = Mass[j + 1]; Mass[j + 1] = temp; swap = true; } } if (swap == false) { break; } } } int BinFind(int* Mass, int N, int Value) { int l = 0; //left - первый элемент int r = N - 1; //right - последний элемент int mid; while (r >= l) { mid = (l + r) / 2; if (Mass[mid] == Value) return mid; if (Mass[mid] > Value) r = mid - 1; if (Mass[mid] < Value)l = mid + 1; } return -1; } Текст файла функции main #include #include "Lib.h" using namespace std; int main() { int N; cin >> N; int* Mass = new int[N]; for (int i = 0; i < N; i++) { cin >> Mass[i]; } SortMass(Mass, N); for (int i = 0; i < N; i++) { cout << Mass[i] << " "; } int Value; cin >> Value; if (BinFind(Mass, N, Value) != -1) cout << endl << Mass[BinFind(Mass, N, Value)] << " found." << endl; else cout << endl << Value << " not found." << endl; system("pause"); } Тестовые результаты
ЗамечаниеНа данной лабораторной работе учила как разделить код на несколько файлов одного проекта, создать и пользовать статическую и динамическую библиотеки, повторяла алгоритмы сортировки и пузырьков. |