Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями
Розробка програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду. Алгоритм розв’язання квадратного рівняння у програмах з будь-яким інтерфейсом користувача, а саме: "консольний" та "форма".
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 14.05.2011 |
Размер файла | 14,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти та науки України
Житомирський державний технологічний університет
Кафедра ПЗОТ
Група ПІ-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 програми для розв'язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду.
Размещено на Allbest.ru
Подобные документы
Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.
курсовая работа [2,0 M], добавлен 24.09.2010Виконання "ручного" розв'язування рівняння методом Ньоютона. Розробка програми на мові С#, яка реалізує введення вихідних даних, розв'язання заданого рівняння, виведення результатів у зручній формі на екран. Визначення початкового наближення кореня.
лабораторная работа [120,9 K], добавлен 19.01.2022Розв’язання нелінійних алгебраїчних рівнянь методом хорд. Опис структури програмного проекту та алгоритмів розв’язання задачі. Розробка та виконання тестового прикладу. Інші математичні способи знаходження коренів рівнянь, та опис виконаної програми.
курсовая работа [4,1 M], добавлен 28.09.2010Визначення і розв’язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера, алгоритм розв’язання, похибка при вирішенні. Складання блок-схеми. Реалізація алгоритму у середовищі Borland Pascal. Результат роботи програми.
курсовая работа [264,0 K], добавлен 20.08.2010Графічне зображення методу половинного ділення. Вибір методу інструментальних засобів вирішення задач. Розробка логічної частини програми для розв’язання нелінійного рівняння методами половинного ділення та січних. Особливість кодування на мові Паскаль.
курсовая работа [135,5 K], добавлен 30.11.2009Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлен 03.12.2009В роботі розглянуто наближені методи розв’язку нелінійних рівнянь. Для вказаних методів складено блок-схеми та написано програму, за якою розв’язується задане рівняння. Аналіз як самого рівняння і методів його розв’язання так і результатів обрахунку.
курсовая работа [302,8 K], добавлен 03.12.2009Розробка програми для визначення динамічної навантажності заднього підшипника вториного валу коробки передач. Програма для розв'язання систем лінійних алгебраїчних рівнянь. Алгоритм обрахунку і графічного відображення швидкісної характеристики автомобіля.
курсовая работа [900,6 K], добавлен 07.06.2010Розвиток виробництва і широке використання промислових роботів. Алгоритми методів, блок-схеми алгоритмів розв'язку даного диференційного рівняння. Аналіз результатів моделювання, прямий метод Ейлера, розв’язок диференціального рівняння в Mathcad.
контрольная работа [59,1 K], добавлен 30.11.2009Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.
курсовая работа [232,2 K], добавлен 12.02.2013