Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями
Міністерство
освіти та науки України
Житомирський
державний технологічний університет
Кафедра
ПЗОТ
Група
ПІ-40
Лабораторна
робота №3
Рефакторинг.
Виключення дублювання коду.
Розробка
бібліотек класів та знайомство з багатопроектними рішеннями
Житомир-2011г.
ТЕХНІЧНЕ ЗАВДАННЯ
Розробити дві програми для
розв’язання квадратних рівнянь (, де ) з різними інтерфейсами користувача
(текстовим та графічним).
1. Виключити дублювання коду
програм, шляхом оформлення алгоритму розв’язання квадратного рівняння у вигляді
класу та винесення його в окрему бібліотеку.
2. Клас розв’язання
квадратного рівняння спроектувати таким чином, щоб його можна було
використовувати у програмах з будь-яким інтерфейсом користувача.
Опис розробленої програми
Виконавши дану лабораторну роботу, я
уникнув дублювання коду програми, шляхом опису алгоритму розв’язання
квадратного рівняння у класі Class1.cs та винесенням його у окрему бібліотеку
mylab. Була створена можливість використовувати клас розв’язання квадратного
рівняння у програмах з будь-яким інтерфейсом користувача, а саме: «консольний»
та «форма».
квадратний рівняння текстовий графічний інтерфейс
Код програми
//Клас, винесений в окрему
бібліотеку mylab;System;System.Collections.Generic;System.Linq;System.Text;
mylab
{class SqrEquation
{double a;double b;double c;double
D;double x1;double x2;void MathDiscriminant()
}void MathX1()
{= (-b + Math.Sqrt(D)) / (2 * a);
}void MathX2()
{= (-b - Math.Sqrt(D)) / (2 * a); ;
}SqrEquation(double a, double b,
double c)
{.a = a;.b = b;.c = c;(a == 0)new
Exception("Це не квадратне
рівняння!");.MathDiscriminant();.MathX1();.MathX2();
}
}
}
Інтерфейс форми
System;System.Windows.Forms;mylab;lab3
{partial class Form1 : Form
{Form1()
{();
}void Form1_Load(object sender,
EventArgs e)
{
}void button1_Click(object sender,
EventArgs e)
{equ = new
SqrEquation(Convert.ToDouble(tbA.Text),
Convert.ToDouble(tbB.Text),.ToDouble(tbC.Text));.Text =
Convert.ToString(equ.x1);.Text = Convert.ToString(equ.x2);
}void textBox5_TextChanged(object
sender, EventArgs e)
{
}
}
Консольний інтерфейс користувача
System;mylab;lab2
{Program
{void Main()
{equ = new SqrEquation
(Convert.Int32(System.Console.ReadLine()),
.ToInt32(System.Console.ReadLine()),.ToInt32(System.Console.ReadLine()));.WriteLine("x1={0};
x2={1}", equ.x1, equ.x2);.Console.Read();
}
}
}
Висновок
В ході лабораторної роботи мною було
розроблено 2 програми для розв’язання квадратних рівнянь з текстовим та
графічним інтерфейсами користувача без дублювання їх коду.