Парсер курсів валют українських банків, створений на основі Windows Service

Опис предметної галузі застосування програмного забезпечення. Характеристика специфічних просторів імен, класів та функцій при роботі з системними процесами. Особливості демонстраційного інтерфейсу програмного забезпечення, значення програмного коду.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 20.08.2017
Размер файла 621,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Чорноморський державний університет Імені Петра Могили

Факультет комп'ютерних наук

Кафедра інформаційних технологій і програмних систем

КУРСОВА РОБОТА

З дисципліни «Технології проектування комп'ютерних систем»

На тему: «Парсер курсів валют українських банків, створений на основі

Windows Service»

Виконав:студент 2 курсу, групи 206

Напряму підготовки 050102

«Комп'ютерна інженерія»

Кобилінський І.А.

м.Миколаїв - 2015 рік

Зміст

Вступ

1. Опис предметної галузі застосування програмного забезпечення, що було розроблене в ході курсової роботи

2. Опис специфічних просторів імен, класів, функцій, що були використані при роботі з системними процесами

3. Табличний опис класів (клас, конструктор(и), методи, властивості, події)

4. Демонстрація інтерфейсу ПЗ (програмного забезпечення)

5. Програмний код

Висновки

Перелік посилань

Вступ

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

В товарно-грошових відносинах між державами дана інформація також є дуже важливою, оскільки ціна продукту, що йде експортуєтья майже завжи вказана в міжнародних валютах, таких як долар чи євро. А не маючи інформації щодо обміну валют можна понести великі збитки, купляючи чи продаючи певну продукцію. програмне забезпечення інтерфейс код

Завданням курсової роботи було створення Windows service та клієнта-програми до неї, що виводить діючі курси валют (купівлі\продажу долара,євро та рубля) деяких українських банків в режимі онлайн.

Додатковим завданням було створення Windows служби, яка саме і виконує операцію парсингу та через контракт передає інформацію до клієнту. Для правильної роботи треба налаштувати дану службу та зробити установку її на комп'ютер. Після цього її треба запустити та переходити до використання. Можна налаштувати службу, щоб вона починала праццювати зі стартом системи та неперервно виконувала свої функції. Це полегшує роботу в деяких випадках.

1. Опис предметної галузі застосування програмного забезпечення, що було розроблене в ході курсової роботи

Тематика проекту курсової роботи тісно пов'язана із грошовими операціями, при чому будь-де: чи то в банківській сфері, чи то в сфері купівлі продажу тощо.

Відносини між країнами завжди пов'язані на розподілі, обміні чи продажу. А всі ці сфери базуються на грошових обертах, причому у іноземних валютах, частіш за все. Наприклад, якщо брати нашу країну, то імпортований товар з інших країн купується, частіш за все, за такі валюти як долар чи євро, які в свою чергу мають постійно змінний курс до гривні. І це стосується не тільки експорту чи імпорту, але й економічних, та,навіть, політичних відносин.

В банківській сфері дана програма використовується на постійній основі, оскільки велика частина операцій в банку пов'язана із обміном валют,який має тенденцію до змін. Завдяки інформаторам курсів валют люди роблять висновки та роблять прогнози щодо купівлі чи продажу своїх збережень в банку.

Також актуальною функція даного проекту є для загальнодержавних питань. Країни, що не мають потрібної кількості ресурсів змушені купувати їх у інших країн, зазвичай за міжнародну валюту-долар чи євро. Від цього залежить рівень інфляції в країні, ціни не тільки на ці ресурси,але й на всі, продукти, виготовлення яких пов'язане з цими ресурсами. Наприклад ціна на нафту прямо пропорційно впливає на ціну хліба або інших продуктів, для збирання або вирощування яких потрібне пальне.

Аналогічні програми виконують ту ж функцію, але їх об'єктом є не курси валют, а світові акції, чи індекси акцій тощо. За принципом роботи проекту можна виводити будь-які дані та записувати їх у таблицю. Схожими за принципом є також інформатори погоди,які виводять погоду у вигляді чисел,які позначають температуру,силу вітру і т.д.

Серед недоліків можна виділити лише: залежність від доступу до мережі Internet та обмеження у кількості інформації, що виводиться, оскільки при збільшенні кількості - зменшується швидкість обробки даних.

2. Опис специфічних просторів імен, класів, функцій, що були використані при роботі з системними процесами

Простори імен:

1) using HtmlAgilityPack цей простір імен має 20 основних класів, які дають можливість парсити Web-сторінку(витягувати курси валют з нашого xml файлу). Назви методів цієї бібліотеки відповідають інтерфейсам DOM. Html перетворюється на xml , але для роботи доступні такі можливості: Linq to Objects,XPATH,XSLT.

2) Простір імен System.Runtime.Serialization складється з класів,які дозволяють виконувати серіалізацію та десеріалізацію об'єктів(процес перетворення об'єкта в лінійну послідовність для збереження або передачі на інший комп'ютер або отримання збережених даних та відновлення з них об'єкту).

3) using System.ServiceModel представляє нам класи, що пов'язані з моделлю служби Windows

4) Простір імен System.Collections.Generic містить класи та інтерфейси, що визначають універсальні колекції,які дозволяють створювати строго типізовані колекції(це забезпечує високу продуктивність та безпеку типів)

5) using System.IO містить типи, дозволяючі здійснювати читання та запис в файли та потоки даних, а також типи для базової підтримки файлів та папок.

6) using System.Net представляє загальні методи обміну даними з ресурсом, заданим URI.

7) using System.Linq містить класи та інтерфейси,що підтримують запити, що використовують LINQ.

Функції:

1) public List<Bank> ParseThePages(List<string> urls)

/*функція, використовуючи url адреси, виконує парсинг даних, що знаходяться на даних сторінках

3) private static Bank GetBank(HtmlDocument doc)

/*функція створює нову строчку, обирає таблицю та вибирає з неї назву банку, перетворює його на об'єкт

4) private static string GetHtml(string url

/* функція отримання html сторінки через запит HttpWebRequest request та перевід сторінки в формат строчки

3. Табличний опис класів (клас, конструктор(и), методи, властивості, події)

1)public class ParsingService

Конструктор

стандартний

Методи: 4 методи(1 відкритий та 3 приватні) :

1.public List<Bank> ParseThePages(List<string> urls)

Функція парсингу вказаних сторінок за url

2.private static Bank ParseTheCurrentPage(string url)

Функція парсингу однієї сторінки за url

3.private static Bank GetBank(HtmlDocument doc)

Функція отримання об'єкту банка за вказаним html документом

4.private static string GetHtml(string url);

Функція для отримання html сторінки

Властивості:

немає

Події:

немає

2)public class Bank

Конструктор

стандартний

Методи:

немає

Властивості:

1.public string Name { get; set; }

2.public string UsdBuy { get; set; }

3.public string UsdSale { get; set; }

4.public string EurBuy { get; set; }

5.public string EurSale { get; set; }

6.public string RubBuy { get; set; }

7.public string RubSale { get; set; }

Події:

немає

3)public partial class FormMain : Form

Конструктор:

визивається стандартна функція ініціалізації компонентів форми та ініціалізується змінна _client

Методи:

private void FillTheDataGridView(List<Bank> banks)

private void btn_Parse_Click(object sender, EventArgs e)

public FormMain()

private List<string> _bankUrls = new List<string>()

Властивості:

немає

Події:

немає

Події:

немає

4) public partial class MyParsingService : ServiceBase

Конструктор:

одна приватна функція ініціалізації та 2 невизначених функції;

Методи:

protected override void OnStop()

protected override void OnStart(string[] args)

Властивості:

немає

Події:

немає

Події:

немає

4. Демонстрація інтерфейсу ПЗ (програмного забезпечення)

Мал.1 Робоче вікно програми

Програма має небагато елементів, серед них:

1) Button btn_Parse, що викликає функцію парсингу

2) DataGridView dgv_ExchangeRate, я вку записуються дані щодо курсів валют

3) DataGridViewTextBoxColumn bankName - назва банку

4) DataGridViewTextBoxColumn usdBuy(колонка) - купівля долару

5) DataGridViewTextBoxColumn usdSale(колонка) - продаж долару

6) DataGridViewTextBoxColumn eurBuy(колонка) - купівля євро

7) DataGridViewTextBoxColumn eurSale(колонка) - продаж євро

8) DataGridViewTextBoxColumn rubBuy(колонка) - купівля рубля

9) DataGridViewTextBoxColumn rubSale(колонка) - продаж рубля

Мал.2 Вікно,заповнене даними

1)Для відображення даних потрібен прямий доступ до мережі Інтернет;

2)Розмір вікна програми можна змінювати;

3)Розмір колонок та рядків також можна довільно змінювати;

5. Програмний код

IParsingService.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

namespace ParsingService

{

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IParsingService" in both code and config file together.

[ServiceContract]

public interface IParsingService

{

[OperationContract]

List<Bank> ParseThePages(List<string> urls);

}

}

ParsingService.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.Text;

using HtmlAgilityPack;

using System.Net;

using System.IO;

namespace ParsingService

{

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "ParsingService" in both code and config file together.

public class ParsingService : IParsingService

{

//функция парсинга указаных страниц по их url адресах

public List<Bank> ParseThePages(List<string> urls)

{

List<Bank> lstOfBanks = new List<Bank>();

foreach (var bankUrl in urls)

{

lstOfBanks.Add(ParseTheCurrentPage(bankUrl));

}

return lstOfBanks;

}

//функция парсинга одной страницы по ее url адресу

private static Bank ParseTheCurrentPage(string url)

{

var html = GetHtml(url);

HtmlDocument doc = new HtmlDocument();

doc.LoadHtml(html);

return GetBank(doc);

}

//функция получения обьекта Банка по указаному HTML документу

private static Bank GetBank(HtmlDocument doc)

{

//информация о валюте в формате строки

string info = "";

//информация о валюте ы формате масива строк

string[] kursInfo = new string[7];

//получение нужной нам таблицы с HTML страницы

var table = doc.DocumentNode.SelectNodes("//table")[0];

//получаем имя банка

info = doc.DocumentNode.SelectNodes("//title")[0].InnerText.Substring(11);

info = info.Replace("&nbsp;", ";");

//перебираем все валюты в таблице

foreach (var tr_element in table.ChildNodes)

{

if (tr_element.Name == "tr")

{

//Проверка на соответствие тега <td>

if (tr_element.ChildNodes[1].Name == "td")

{

//добавляем инфомацмию о покупке валюты

info += tr_element.ChildNodes[3].FirstChild.InnerText + ";";

//добавляем инфомацмию о продаже валюты

info += tr_element.ChildNodes[5].FirstChild.InnerText + ";";

}

}

}

//разбиваем строку с информацией о банке в масив строк для удобного создания обьекта Банка

if (info != "")

kursInfo = info.Split(';');

//возращаем обьект Банка

return new Bank()

{

Name = kursInfo[0],

UsdBuy = kursInfo[1],

UsdSale = kursInfo[2],

EurBuy = kursInfo[3],

EurSale = kursInfo[4],

RubBuy = kursInfo[5],

RubSale = kursInfo[6]

};

}

//Функция для получения HTML страницы

private static string GetHtml(string url)

{

//Делаем запрос по указаному url

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;

//Получаем ответ по запросу

HttpWebResponse responce = request.GetResponse() as HttpWebResponse;

//Считываем ответ и переводим его в string формат

StreamReader sr = new StreamReader(responce.GetResponseStream(), Encoding.Default);

var html = sr.ReadToEnd();

sr.Close();

return html;

}

}

}

Bank.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace ParsingService

{

public class Bank

{

public string Name { get; set; }

public string UsdBuy { get; set; }

public string UsdSale { get; set; }

public string EurBuy { get; set; }

public string EurSale { get; set; }

public string RubBuy { get; set; }

public string RubSale { get; set; }

}

}

App.config

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<startup>

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />

</startup>

<system.serviceModel>

<services>

<service name="ParsingService.ParsingService" behaviorConfiguration="mexBehavior">

<endpoint address="ParsingService" binding="basicHttpBinding" contract="ParsingService.IParsingService"></endpoint>

<endpoint address="ParsingService" binding="netTcpBinding" contract="ParsingService.IParsingService"></endpoint>

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>

<host>

<baseAddresses>

<add baseAddress="http://localhost:9001/ParsingService"/>

<add baseAddress="net.tcp://localhost:9002/ParsingService"/>

</baseAddresses>

</host>

</service>

</services>

<behaviors>

<serviceBehaviors>

<behavior name="mexBehavior">

<serviceMetadata httpGetEnabled="true"/>

</behavior>

</serviceBehaviors>

</behaviors>

</system.serviceModel>

</configuration>

FormMain.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using ParserClient.ParserService;

namespace ParserClient

{

public partial class FormMain : Form

{

ParsingServiceClient _client;

private List<string> _bankUrls = new List<string>()

{

"http://finance.i.ua/bank/73/",

"http://finance.i.ua/bank/29/",

"http://finance.i.ua/bank/2/",

"http://finance.i.ua/bank/79/",

"http://finance.i.ua/bank/26/",

"http://finance.i.ua/bank/9/",

"http://finance.i.ua/bank/8/",

"http://finance.i.ua/bank/4/",

"http://finance.i.ua/bank/23/",

"http://finance.i.ua/bank/13/",

"http://finance.i.ua/bank/12/",

"http://finance.i.ua/bank/30/",

"http://finance.i.ua/bank/52/"

};

public FormMain()

{

InitializeComponent();

_client = new ParsingServiceClient("BasicHttpBinding_IParsingService");

}

private void btn_Parse_Click(object sender, EventArgs e)

{

//парсим указаный масив url адресов и получаем масив банков.конвертировали в список

List<Bank> banks = _client.ParseThePages(_bankUrls.ToArray<string>()).ToList<Bank>();

//вычесляем количество строк таблицы

dgv_ExchangeRate.RowCount = banks.Count;

//заполняем таблицу информацией о банках

FillTheDataGridView(banks);

}

private void FillTheDataGridView(List<Bank> banks)

{

for (int i = 0; i < dgv_ExchangeRate.RowCount; i++)

{

dgv_ExchangeRate[0, i].Value = banks[i].Name;

dgv_ExchangeRate[1, i].Value = banks[i].UsdBuy;

dgv_ExchangeRate[2, i].Value = banks[i].UsdSale;

dgv_ExchangeRate[3, i].Value = banks[i].EurBuy;

dgv_ExchangeRate[4, i].Value = banks[i].EurSale;

dgv_ExchangeRate[5, i].Value = banks[i].RubBuy;

dgv_ExchangeRate[6, i].Value = banks[i].RubSale;

}

}

}

}

MyParsingService.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Linq;

using System.ServiceModel;

using System.ServiceModel.Description;

using System.ServiceProcess;

using System.Text;

using System.Threading.Tasks;

namespace WinParsingService

{

public partial class MyParsingService : ServiceBase

{

private ServiceHost _host = null;

public MyParsingService()

{

InitializeComponent();

}

protected override void OnStart(string[] args)

{

if (_host != null)

_host.Close();

_host = new ServiceHost(typeof(ParsingService.ParsingService));

_host.Open();

}

protected override void OnStop()

{

if (_host != null)

{

_host.Close();

_host = null;

}

}

}

}

MyParsingService.Designer.cs

namespace WinParsingService

{

partial class MyParsingService

{

/// <summary>

/// Required designer variable.

/// </summary>

private System.ComponentModel.IContainer components = null;

/// <summary>

/// Clean up any resources being used.

/// </summary>

/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}

#region Component Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

components = new System.ComponentModel.Container();

this.ServiceName = "ParsingService";

}

#endregion

}

}

namespace ParserClient

{

partial class FormMain

{

/// <summary>

/// Required designer variable.

/// </summary>

private System.ComponentModel.IContainer components = null;

/// <summary>

/// Clean up any resources being used.

/// </summary>

/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

components.Dispose();

}

base.Dispose(disposing);

}

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));

this.btn_Parse = new System.Windows.Forms.Button();

this.dgv_ExchangeRate = new System.Windows.Forms.DataGridView();

this.bankName = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.usdBuy = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.usdSale = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.eurBuy = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.eurSale = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.rubBuy = new System.Windows.Forms.DataGridViewTextBoxColumn();

this.rubSale = new System.Windows.Forms.DataGridViewTextBoxColumn();

((System.ComponentModel.ISupportInitialize)(this.dgv_ExchangeRate)).BeginInit();

this.SuspendLayout();

//

// btn_Parse

//

this.btn_Parse.Location = new System.Drawing.Point(658, 12);

this.btn_Parse.Name = "btn_Parse";

this.btn_Parse.Size = new System.Drawing.Size(101, 36);

this.btn_Parse.TabIndex = 0;

this.btn_Parse.Text = "Вывести курсы валют";

this.btn_Parse.UseVisualStyleBackColor = true;

this.btn_Parse.Click += new System.EventHandler(this.btn_Parse_Click);

//

// dgv_ExchangeRate

//

this.dgv_ExchangeRate.AllowUserToAddRows = false;

this.dgv_ExchangeRate.AllowUserToDeleteRows = false;

this.dgv_ExchangeRate.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;

this.dgv_ExchangeRate.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {

this.bankName,

this.usdBuy,

this.usdSale,

this.eurBuy,

this.eurSale,

this.rubBuy,

this.rubSale});

this.dgv_ExchangeRate.Location = new System.Drawing.Point(12, 12);

this.dgv_ExchangeRate.Name = "dgv_ExchangeRate";

this.dgv_ExchangeRate.ReadOnly = true;

this.dgv_ExchangeRate.RowHeadersVisible = false;

this.dgv_ExchangeRate.Size = new System.Drawing.Size(623, 322);

this.dgv_ExchangeRate.TabIndex = 1;

//

// bankName

//

this.bankName.HeaderText = "Банк";

this.bankName.Name = "bankName";

this.bankName.ReadOnly = true;

this.bankName.Width = 200;

//

// usdBuy

//

this.usdBuy.HeaderText = "USD Покупка";

this.usdBuy.Name = "usdBuy";

this.usdBuy.ReadOnly = true;

this.usdBuy.Width = 70;

//

// usdSale

//

this.usdSale.HeaderText = "USD Продажа";

this.usdSale.Name = "usdSale";

this.usdSale.ReadOnly = true;

this.usdSale.Width = 70;

//

// eurBuy

//

this.eurBuy.HeaderText = "EUR Покупка";

this.eurBuy.Name = "eurBuy";

this.eurBuy.ReadOnly = true;

this.eurBuy.Width = 70;

//

// eurSale

//

this.eurSale.HeaderText = "EUR Продажа";

this.eurSale.Name = "eurSale";

this.eurSale.ReadOnly = true;

this.eurSale.Width = 70;

//

// rubBuy

//

this.rubBuy.HeaderText = "RUB Покупка";

this.rubBuy.Name = "rubBuy";

this.rubBuy.ReadOnly = true;

this.rubBuy.Width = 70;

//

// rubSale

//

this.rubSale.HeaderText = "RUB Продажа";

this.rubSale.Name = "rubSale";

this.rubSale.ReadOnly = true;

this.rubSale.Width = 70;

//

// FormMain

//

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

this.ClientSize = new System.Drawing.Size(774, 362);

this.Controls.Add(this.dgv_ExchangeRate);

this.Controls.Add(this.btn_Parse);

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

this.MaximumSize = new System.Drawing.Size(790, 1000);

this.MinimumSize = new System.Drawing.Size(790, 400);

this.Name = "FormMain";

this.Text = "Курсы валют";

((System.ComponentModel.ISupportInitialize)(this.dgv_ExchangeRate)).EndInit();

this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.Button btn_Parse;

private System.Windows.Forms.DataGridView dgv_ExchangeRate;

private System.Windows.Forms.DataGridViewTextBoxColumn bankName;

private System.Windows.Forms.DataGridViewTextBoxColumn usdBuy;

private System.Windows.Forms.DataGridViewTextBoxColumn usdSale;

private System.Windows.Forms.DataGridViewTextBoxColumn eurBuy;

private System.Windows.Forms.DataGridViewTextBoxColumn eurSale;

private System.Windows.Forms.DataGridViewTextBoxColumn rubBuy;

private System.Windows.Forms.DataGridViewTextBoxColumn rubSale;

}

}

Висновки

Програма виконувалась на трьох етапах:

1)створення сервіса-служби

2)створення хоста, на якому була реалізована програма

3)створення додатку, за допомогою якого ми можемо бачити результат роботи програми вцілому

Принцип роботи програми такий, що запускаючи наш клієнт ми через контракт звертаємося до сервісу, що виконує роботи парсингу та через клавішу в нашому інтерфейсі виводимо результат на екран.

Конфігурації були автоматично налаштовані та встановлені як App.config за допомогою функції mexBehaviour.

Основні елементи:

1) Bank в програмі є об'єктом с даними

Ми отримали масив банків із масиву url-адрес і конвертували його у список

2) Stream info - це змінна з інформацією, що використовувалась

3) Table - таблиця, в якій демонструвався результат

В IParsingService я створив інтерфейс(контракт) програми, а в ParsingService - реалізацію інтерфейсу.

Дана програма може бути корисною у багатьох напрямках діяльності, в особливості банківській. У даній сфері можна використовувати програму абсолютно у різних напрямках і з різними цілями. Наприклад люди,що працюють з фінансами або їх робота так чи інакше зв'язана з курсами валют можуть використовувати парсер для перегляду та сбору інформації щодо вартості гривні відносно долару, євро чи рубля

На основі даних, що вона демонструє, можна також будувати звіти, демонструвати статистику, та будувати графіки падіння або підвищення курсу. Програма є актуальною, оскільки за останній час курс гривні мав тенденцію до різкого падіння. А парсер дозволяє відстежувати ці зміни та робити певні висновки, виходячи з цього. Об'єкт моєї курсової роботи є також дуже функціональним в плані користувачів. Дана програма може бути корисною для кожної людини, особливо для тих хто має певні збереження в банківських установах або бажає відкрити рахунок у певній валюті або ж обміняти свої збереження.

Програма виконує збір інформації з сайту finance.i.ua , де розташована вся інформація щодо курсів валют у вигляді XML файлу. Програма бере за основу та шукає інформацію саме з цього файлу, який постійно оновлюється. У даному файлі також присутня інформація щодо банків(телефон,адреса,місто і т.д.).

Звичайно, програма може працювати лише за наявності інтернет-з'єднання, оскільки всю інформацію вона приймає від веб сайту, але це сприяє актуальності та коректності поданої інформації.

Отже програма є дуже актуальною в даний момент, корисною та зрозумілою для кожного звичайного користувача.

Перелік посилань

1. http://csparser.codeplex.com/

2. http://easylab.net.ua/csharp-wf/pishem-parser-na-c

3. https://msdn.microsoft.com/en-us/library/bb332338.aspx

4. habrahabr.ru/post/112325/

5. https://msdn.microsoft.com/en-us/library/ms733069%28v=vs.110%29.aspx

6. http://stackoverflow.com/questions/846994/how-to-use-html-agility-pack

7. http://www.codeproject.com/Articles/123067/A-Simple-Sample-WCF-Service

8. http://www.c-sharpcorner.com/UploadFile/0c1bb2/consuming-wcf-service-in-wpf-application/

Размещено на Allbest.ru

...

Подобные документы

  • Опис специфічних просторів імен, класів, функцій, використаних при роботі з системними процесами. Створення Windows service та клієнта-програми до неї, що виводить діючі курси валют (купівлі\продажу долара, євро та рубля) деяких банків в режимі онлайн.

    курсовая работа [659,1 K], добавлен 21.04.2015

  • Основні поняття щодо захисту програмного забезпечення. Класифікація засобів дослідження програмного коду: відладчики, дизасемблери, діскомпілятори, трасировщики та слідкуючі системи. Способи вбудовування захисних механізмів в програмне забезпечення.

    курсовая работа [41,7 K], добавлен 14.11.2010

  • Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.

    курсовая работа [2,3 M], добавлен 02.06.2016

  • Аналіз технічного забезпечення, вибір інструментального програмного забезпечення та середовища розробки програм. Створення класів для реалізації необхідних функцій для роботи програмного засобу. Розробка інтерфейсу для користувача та лістинг програми.

    курсовая работа [343,9 K], добавлен 24.08.2012

  • Основні завдання синоптичної метеорології. Призначення та область застосування програмного продукту "Статистика метеоспостережень", функціональні вимоги до нього. Інформаційне забезпечення, структура, опис інтерфейсу. Тестування програмного продукту.

    курсовая работа [3,6 M], добавлен 30.04.2016

  • Етапи розробки проекту. Вимоги до апаратного і програмного забезпечення, до користувача. Специфікація та структура даних, які мають бути розміщеними в системі. Вигляд інтерфейсу системи програмного забезпечення. Розробка бази даних косметичного салону.

    дипломная работа [1,8 M], добавлен 21.02.2015

  • Аналіз формування податкової звітності. Розробка проекту інтерфейсу, інформаційної, статичної та динамічної моделей програмного забезпечення. Розрахунок економічної ефективності впровадження програмного забезпечення формування податкової звітності.

    дипломная работа [3,5 M], добавлен 26.04.2012

  • Первинний опис програмного забезпечення графічний редактор. Функціональна специфікація класів. Проектування архітектури програми, структури даних та графічного інтерфейсу. Опис алгоритму природною мовою. Аналіз впливу зміни вимог на зміну архітектури.

    курсовая работа [2,4 M], добавлен 07.10.2014

  • Розробка програми калькулятора, що може виконувати найголовніші арифметичні операції над двома числами. Вимоги до апаратного і програмного забезпечення. Опис форм та компонентів програми. Розробка алгоритмів програмного забезпечення. Опис коду програми.

    курсовая работа [57,1 K], добавлен 31.05.2013

  • Планування програмного забезпечення автоматизованої системи бюро працевлаштування. Накопичення даних стосовно ринку праці. Проектування статичних аспектів, поведінки та архітектури програмного забезпечення. Особливості функціонування програмного продукту.

    курсовая работа [184,5 K], добавлен 05.07.2015

  • Аналіз методів емпіричної інженерії програмного забезпечення. Призначення та властивості програмного забезпечення та метрик проектів Openproj-1.4-src, TalendOpen Studio 3.2.1 та Рlazma-source 0.1.8, їх статистичний, кореляційний та регресійний аналіз.

    курсовая работа [2,7 M], добавлен 12.12.2010

  • Аналіз сучасних методів та технологій проектування програмного забезпечення. Вибір цільової мобільної платформи. Розробка екранних форм, діаграми класів. Вимоги до програмного продукту. Аналіз небезпечних факторів у відділі роботи з фізичними особами.

    дипломная работа [508,1 K], добавлен 02.12.2015

  • Ескізний проект програмного забезпечення для 3D-навігації для мобільних пристроїв під управління ОС Android. Розробка прототипу інтерфейсу. Технічний проект програмного забезпечення. Створення діаграми класів, аналізу, розгортання та кооперацій.

    курсовая работа [880,5 K], добавлен 09.01.2014

  • Аналіз системи збору первинної інформації та розробка структури керуючої ЕОМ АСУ ТП. Розробка апаратного забезпечення інформаційних каналів, структури програмного забезпечення. Алгоритми системного програмного забезпечення. Опис програмних модулів.

    дипломная работа [1,9 M], добавлен 19.08.2012

  • Проблеми розробки компонентного програмного забезпечення автоматизованих систем управління. Сучасні компонентні технології обробки інформації. Аналіз вибраного середовища проектування програмного забезпечення: мова програмування PHP та Apache HTTP-сервер.

    дипломная работа [2,8 M], добавлен 11.05.2012

  • Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.

    курсовая работа [2,2 M], добавлен 05.05.2014

  • Розробка компонентів програмного забезпечення системи збору даних про хід технологічного процесу. Опис програмного забезпечення: сервера, що приймає дані про хід технологічного процесу, КОМ для його імітування, робочої станції для відображення даних.

    курсовая работа [1,3 M], добавлен 20.11.2010

  • Розробка програмного забезпечення для управління транспортними платформами на базі програмованого логічного контролера S7-300 в Simatic STEP-7. Аналіз програмного забезпечення, розрахунок показників його надійності. Опис алгоритму функціонування системи.

    дипломная работа [2,1 M], добавлен 17.05.2012

  • Характеристика функціональної структури предметної області програмного комплексу. Розробка архітектури програмної системи. Вибір типу архітектури й зразків проектування. Опис декомпозиції, залежностей та інтерфейсу. Детальне проектування модулів та даних.

    курсовая работа [462,2 K], добавлен 19.12.2013

  • Визначення вимог до програмного забезпечення. Проектування архітектури програми, структури даних та інтерфейсу. Програмування графічного редактора, специфікація його класів та алгоритм роботи. Зміна архітектури редактора згідно нових вимог замовника.

    дипломная работа [1,2 M], добавлен 05.01.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.