Контрольная работа по предмету "Информатика, программирование"


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

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


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


Кафедра ПЗОТ


Група ПІ-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 програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду.



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :