У вас вопросы?
У нас ответы:) SamZan.net

Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

"Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями"

Міністерство освіти та науки України

Житомирський державний технологічний університет

Кафедра ПЗОТ

Група ПІ-40

Лабораторна робота №3

Рефакторинг. Виключення дублювання коду.

Розробка бібліотек класів та знайомство з багатопроектними рішеннями

Житомир-2011г.

ТЕХНІЧНЕ ЗАВДАННЯ

Розробити дві програми для розв’язання квадратних рівнянь (, де ) з різними інтерфейсами користувача (текстовим та графічним).

1.  Виключити дублювання коду програм, шляхом оформлення алгоритму розв’язання квадратного рівняння у вигляді класу та винесення його в окрему бібліотеку.

2.  Клас розв’язання квадратного рівняння спроектувати таким чином, щоб його можна було використовувати у програмах з будь-яким інтерфейсом користувача.

Опис розробленої програми

Виконавши дану лабораторну роботу, я уникнув дублювання коду програми, шляхом опису алгоритму розв’язання квадратного рівняння у класі Class1.cs та винесенням його у окрему бібліотеку mylab. Була створена можливість використовувати клас розв’язання квадратного рівняння у програмах з будь-яким інтерфейсом користувача, а саме: «консольний» та «форма».

квадратний рівняння текстовий графічний інтерфейс

Код програми

//Клас, винесений в окрему бібліотеку mylab;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace mylab

{

public class SqrEquation

{

private double a;

private double b;

private double c;

private double D;

public double x1;

public double x2;

public void MathDiscriminant()

{

D = b * b - 4 * a * c;

}

public void MathX1()

{

x1 = (-b + Math.Sqrt(D)) / (2 * a);

}

public void MathX2()

{

x2 = (-b - Math.Sqrt(D)) / (2 * a); ;

}

public SqrEquation(double a, double b, double c)

{

this.a = a;

this.b = b;

this.c = c;

if (a == 0)

throw new Exception("Це не квадратне рівняння!");

this.MathDiscriminant();

this.MathX1();

this.MathX2();

}

}

}

Інтерфейс форми

using System;

using System.Windows.Forms;

using mylab;

namespace lab3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

SqrEquation equ = new SqrEquation(Convert.ToDouble(tbA.Text), Convert.ToDouble(tbB.Text),

Convert.ToDouble(tbC.Text));

tbX1.Text = Convert.ToString(equ.x1);

tbX2.Text = Convert.ToString(equ.x2);

}

private void textBox5_TextChanged(object sender, EventArgs e)

{

}

}

}

Консольний інтерфейс користувача

using System;

using mylab;

namespace lab2

{

class Program

{

static void Main()

{

SqrEquation equ = new SqrEquation

(Convert.Int32(System.Console.ReadLine()),

Convert.ToInt32(System.Console.ReadLine()),

Convert.ToInt32(System.Console.ReadLine()));

Console.WriteLine("x1={0}; x2={1}", equ.x1, equ.x2);

System.Console.Read();

}

}

}

Висновок

В ході лабораторної роботи мною було розроблено 2 програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду.




1. ПРАВОВЕДЕНИЕ 1.html
2. Включенных фигур Готтшальдта Описание методики Направленность
3. Право власності на землю
4. Модуль упругости Коэффициент Пуассона Коэффициент теплового расширения
5. Тема 1 Становлення філософської думки у Стародавньому світі План 1
6. Об утверждении Положения
7. Испания Франция Англия Италия Венгрия Византия МосковияКиевская Русь ШвецияФинляндия Польша Ге
8. форма державного правління і форма державного устрою поняття політичний режим є найменш визначеним
9. тема знань і їх духовне виробництво і практична діяльність на їх основі
10. тема конституционного права