Міністерство освіти
та науки України
Житомирський
державний технологічний університет
Кафедра ПЗОТ
Група ПІ-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 програми для розв’язання квадратних
рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх
коду.
Другие работы по теме:
Генетичний код та його властивості 2
Назва реферату : Генетичний код та його властивості Розділ : Біологія Генетичний код та його властивості Генетичний код – це система триплетів нуклеотидів, які визначають амінокислотну послідовність поліпептидного ланцюга.
Організація роботи служби автоматизованої обробки інформації
Організація та зміст роботи служби промелектроніки на підприємстві ВАТ "Центроліт". Робота в якості дублера головного спеціаліста автоматизованої обробки інформації. Знайомство з посадовими інструкціями. Синхронізація баз даних з Пенсійним Фондом.
Коди БЧХ. Алгоритми кодування та декодування
Коди Боуза-Чоудхури-Хоквингема (БЧХ) - великий клас кодів, здатних виправляти кілька помилок, вони займають помітне місце в теорії і практиці кодування. Приклади практичного застосування кодів БХЧ. Алгоритми кодування та декодування циклічних кодів.
Розробка додатку "Відділ кадрів" до автоматизованої системи
Об'єкт проектування: автоматизована система керування "Відділ кадрів" для ПП "ПФ Бухконсульт". Оптимізація роботи працівників відділу кадрів, можливість отримання інформації про робітників на підприємстві. Обґрунтування вибору мови програмування.
Конкатенація строк Assembler
Розробка граф-схем алгоритмів строкової функції з метою наглядного представлення поставленої задачі і розбиття її на менші частини для створення коду програми. Написання функцій arithm proc, string proc, strCat proc на машинно-орієнтованій мові Асемблера.
Емпіричне дослідження програмного забезпечення
Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.
Графічне та геометричне моделювання та інтерактивні системи
Розповсюдження об'єкно-орієнтованих мов програмування. Моделювання предметної області. Постановка задачі. Інформаційне забезпечення. Алгоритм розв'вязання задачі. Пограмне забезпечення. Основні задачі при моделюванні предметної області. Стан сутностей.
Редактор mp3 тегів
Обробка інформації. Формат мр3. Створення, або редагування мр3 тегов за допомогою програми Tag Reader. Уніфікована мова моделювання. Графічні діаграми UML. Діаграма діяльності, послідовності, кооперації, компонентів, розгортання. Програмне забезпечення.
Математична модель вимірювальної системи в середовищі Delphi
Курсова робота Математична модель вимірювальної системи в середовищі Delphi АНОТАЦІЯ Опис програми містить загальний опис алгоритмів головної програми та допоміжних на рівні блок-схем, а також більш детальний опис розробленої програми на рівні програмного коду.
Розробка системних програмних модулів систем програмування
Анотація В курсовій роботі був розроблений транслятор з вхідної мови програмування, заданої завданням, на мову асемблер, з подальшою компіляцією отриманого коду і створення виконавчого файлу. Даний транслятор виконує лексичний аналіз, синтаксичний і семантичний, при наявності помилок у вхідному тексті програми створює список помилок і попереджень.
Середовище програмування DELPHI 2 0
СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ DELPHI 2.0 Зміст Основні елементи середовища 1. Головне вікно 2. Вікно форми 3. Вікно коду 4. Інспектор об’єктів Управління файлами проекту Delphi
Середовище програмування DELPHI 20
СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ DELPHI 2.0 Зміст 5.Основні елементи середовища 2 a.1. Головне вікно 2 a.2. Вікно форми 2 a.3. Вікно коду 3 a.4. Інспектор об’єктів 3
Вирусные и антивирусные программы
Text Text Загрузочные Загрузочные Файловые Макро-вирусы Сетевые Graphics Заражают загрузочный сектор гибкого диска или винчестера Заражают загрузочный сектор гибкого диска или винчестера При заражении дисков загрузочный вирус «заставляет» систему при её перезапуске считать в память и отдать управление не программному коду загрузчика операционной системы, а коду вируса Graphics
Архітектура операційної системи MS DOS Структура ОС Ms-Dos розбивка на модулі визначення ст
Лабораторна робота №8 Тема: Архітектура операційної системи MS – DOS. Мета: Ознайомитися із будовою ядра і модулів ОС MS – DOS. Теоретичні відомості: Будь – яка ОС в своїй побудові повинна мати зрозумілу і раціональну структуру. Це означає, що ОС поділяється на частини, які називають модулями. Будь – який модуль являє собою функціонально завершену програму із чіткими правилами взаємодії з іншими модулями.
Учень і його оточення
Тема уроку: Учень і його оточення (5 кл) Мета уроку: Закріпити раніше вивчений матеріал. Відпрацювати граматичну тему Prдsens. Вивчити кількісні числівники від 1 до 12.
Виключення учасника з господарського товариства
Правові підстави, законодавчий порядок та основні наслідки виключення учасника з господарського товариства. Аналіз діючої судової практики та особливості процедури виключення учасника з господарських товариств різних організаційно-правових форм.
Організація обслуговування в ДІС
Контрольна робота з предмета Організація обслуговування в ДІС” План Бібліотечні фонди – важливе джерело масової інформації. Каталоги і картотеки – вторинне джерело масової інформації.
Принципи побудови інтерфейсів операційних систем
Нагадаємо що ОС завжди виступає як інтерфейс між апаратурою комп’ютера і користувачем з його задачами. Під інтерфейсами операційних систем тут і надалі слід розуміти спеціальні інтерфейси системного і прикладного програмування призначених для виконання слідуючи задач:
Гепатити
Коломийське медичне училище ім. І.Я.Франка Методична розробка теоретичного заняття з внутрішніх захворювань на тему: “ГЕПАТИТИ” м.Коломия 2001 р.
Особливості формування підприємницької культури учнів молодших класів
Все більшої актуальності в Україні набувають питання економічної підготовленості молоді до життя в суспільстві, де налагоджуються нові ринкові відносини. У зв’язку з підвищеними вимогами щодо підготовки підростаючого покоління до життя в нових ринкових умовах, в теорії і практиці педагогіки постає важлива проблема формування початкової економічної та підприємницької культури у дітей молодшого шкільного віку.
Множини 3
Практичні заняття Множини Paskal дозволяє оперувати трьома множинами, як трьома типами даних. Для визначення типу множина використовується вираз:
Психодіагностика розумової працездатності хворих на неврози молодших школярів
Реферат на тему: ПСИХОДІАГНОСТИКА РОЗУМОВОЇ ПРАЦЕЗДАТНОСТІ ХВОРИХ НА НЕВРОЗИ МОЛОДШИХ ШКОЛЯРІВ У хворих на неврози молодших школярів на етапі наявності медико-психологічних показань щодо стаціонарного лікування (передстаціонарний період) мають місце суттєві зміни психологічних показників їх розумової працездатності (у порівнянні з нормативними величинами).
Робота із системою KOMПАС
ПРАКТИЧНА РОБОТА з геодезії Робота із системою KOMПАС Мета: Ознайомитись із системою KOMПАС Основні відомості Система KOMПАС призначена для автоматизації конструкторсько-технологічних робіт і забезпечує обробку і випуск креслярсько-конструкторської документації.