Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
Міністерство освіти та науки України
Житомирський державний технологічний університет
Кафедра ПЗОТ
Група ПІ-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()
{= b * b - 4 * a * c;
}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 програми для розвязання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду.