Створення консольного проекту для тестування функції з бібліотеки.



Лабораторна робота 1. Створення DLL - бібліотеки

Мета роботи:

1. Створення DLL-бібліотеки

2. Створення рішення з кількох проектів (модулів)

3. Створення DLL-бібліотеки як окремого рішення.

4. Вивчення структури збірки, метаданих збірки

 

Створити на диску папку з шифром групи, а в ній папку Lab1. В цій папці розмістити створені рішення.

Створення DLL -бібліотеки

Запустимо Visual Studio 2008, із стартової сторінки перейдемо до створення проекту, виберемо тип проекту «Class Library». У вікні створення DLL всі поля заповнені значеннями за замовчанням. Як правило, їх слід перевизначити, задаючи власну інформацію.

У полі Name задати ім'я DLL – MyLib.

У полі Location вказується шлях до каталогу, де зберігатиметься Рішення, що містить проект.

Розмістіть рішення в папці Lab1

У полі Solution вибраний елемент «Create New Solution», що створює нове Рішення. Альтернативою є елемент списку, вказуючий, що проект може бути доданий до існуючого Рішення.

У вікні Solution Name задано ім'я Рішення. Вибрати Lab1.

Зверніть увагу на інші установки, зроблені в цьому вікні, - включений прапорець (за замовчанням) «Create directory for solution», у верхньому віконці із списку можливих каркасів вибраний каркас Framework .Net 3.5. Задавши необхідні установки і клацнувши по кнопці «OK», отримаємо автоматично побудовану заготівку проекту DLL, відкриту в середовищі Visual Studio 2008 .

Імена класів повинні бути змістовними. Змінимо ім'я «Class1» на ім'я «MySin». Для цього у вікні коду проекту виділимо ім'я змінної об'єкту, потім в головному меню виберемо пункт Refactor і підпункт Rename. У вікні, що відкрилося, вкажемо нове ім'я. Тоді будуть показані всі місця, що вимагають перейменування об'єкту. В даному випадку буде лише одна очевидна заміна, але в загальному випадку замін багато, так що автоматична заміна всіх входжень корисна.

Наступний крок також продиктований правилом стилю – ім'я класу і ім'я файлу, що зберігає клас, повинні збігатися. Перейменування імені файлу робиться безпосередньо у вікні проектів Solution Explorer.

І наступний крок продиктований також важливим правилом стилю, - додавання коментаря. Для цього в рядку перед заголовком класу слід набрати три слеша (три косі риски). В результаті перед заголовком класу з'явиться заголовний коментар – тег «summary», в який і слід додати короткий, але змістовний опис призначення класу. Теги «summary», якими слід супроводжувати класи, відкриті (public) методи і поля класу відіграють три важливі ролі. Вони полегшують розробку і супровід проекту, роблячи його самодокументованим. Клієнти класу при створенні об'єктів класу отримують інтелектуальну підказку, що пояснює суть того, що можна робити з об'єктами. Спеціальний інструментарій дозволяє побудувати документацію за проектом, що включає інформацію з тегів «summary».

У нашому випадку коментар до класу MySin може бути достатньо простим – «Обчислення математичних фунцій ».

Напишемо реалізацію одного методу класу – обчислення функції Sin(x) через ряд Тейлора.

 

Спочатку напишемо коментарі до методу (у форматі XML). Далі напишемо реалізацію методу. Отримаємо код.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace MyLib

{

///Обчислення математичних фунцій

 

public class MySin

{

/// <summary>

/// Sin(x)

/// </summary>

/// <param name="x">кут в радіанах – перший аргумент функції Sin</param>

///<param name="n">показник ступеня – другий аргумент функції Sin</param>

/// <returns>Повертає значення функції Sin для заданого кута</returns>

   public static double Sin(double x, int n)

   {

       double result = 0;

       for (int i = 0; i < n; i++)

       {

           result = result + (Math.Pow((-1), i) * Math.Pow(x, (2 * i + 1))) / F(2 * i + 1);

       }

       return result;

    }

   static double F(int n)

   {

       double tmp = 1;

       for (int i = 1; i <= n; i++)

       {

           tmp = tmp * i;

       }

       return tmp;

       

   }

 

}

}

 

 

Побудуємо Рішення, що містить проект, для чого в Головному меню виберемо пункт Build|Build Solution. В результаті успішної компіляції буде побудований файл з уточненням dll. Оскільки побудована збірка не містить виконуваного файлу, то безпосередньо запустити наш проект на виконання не удасться. Побудуємо консольний проект, до якого приєднаємо нашу DLL, і протестуємо, наскільки коректно працюють створені нами методи.

Створення консольного проекту для тестування функції з бібліотеки.

Виберемо пункт меню File|New|Project, задамо тип проекту ConsoleApplication, дамо йому ім'я – ConsoleMySin, вкажемо, що проект додається до існуючого Рішення Lab1. В результаті у вже існуюче Рішення додасться ще один проект.

Напишемо код, який викликає функцію Sin(x,n), яку ми реалізували, стандартну функцію Sin(x), обчислює похибку і виводить результат на консоль.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleMySin

{

class Program

{

   /// <summary>

    /// Виклик бібліотечного метода Sin(x,n) з MySin.dll

   /// </summary>

   /// <param name="args"></param>

   static void Main(string[] args)

   {

       Console.WriteLine("Введите x- угол в радианах");

       double x = double.Parse(Console.ReadLine());

       Console.WriteLine("Введите показатель степени n");

       int n = int.Parse(Console.ReadLine());

       //вызов метода вычисления sin(x) из библиотеки

       double my_sinus = MyLib.MySin.Sin(x, n);

       //вызов метода из класса Math

       double sinus = Math.Sin(x);

       double delta = sinus - my_sinus;

       Console.WriteLine("my_sinus= {0},sin={1},delta={2}", my_sinus, sinus, delta);

       Console.ReadKey();

 

   }

}

}

Побудуємо рішення і отримаємо повідомлення про помилку. Наша бібліотека не підключена до проекту.

 


Дата добавления: 2020-12-12; просмотров: 92; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!