Лабораторная работа: Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями
Название: Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями Раздел: Рефераты по информатике, программированию Тип: лабораторная работа |
Міністерство освіти та науки України Житомирський державний технологічний університет Кафедра ПЗОТ Група ПІ-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 програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду. |