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

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

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

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

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

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

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

Зміст

1.Вступ

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

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

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

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

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

Висновки

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

1.Вступ

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

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

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

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

service програма валюта онлайн

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 та перевід сторінки в формат строчки

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

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)

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

немає

Події:

немає

Події:

немає

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

Мал.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)Розмір колонок та рядків також можна довільно змінювати;

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

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.

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

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

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

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

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

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

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

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

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

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

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

http://csparser.codeplex.com/

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

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

habrahabr.ru/post/112325/

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

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

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

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

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


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

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

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

  • Характеристика предметної області: FTP-server для ОС Windows. Шляхи встановлення FTP-серверу в ОС Windows. Опис мови та середовища програмування, компонентів та функцій програми. Аналіз реалізованої програми FTP-клієнта. Тестовий запуск та опис програми.

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

  • Понятие, типы и работа брандмауэра. Встроенные в Windows firewall. Windows XP SP2, доступ к настройкам файрвола Windows XP Service Pack 2. Windows Vista, разрешенный трафик. Windows 7, настройки активных профилей. Персоальные Firewall, уровни тестов.

    реферат [3,8 M], добавлен 19.11.2010

  • Дослідження внутрішньої структури операційної системи Windows. Архітектура NT і структура ядра. Методи перехоплення функцій у режимі ядра та режимі користувача. Поняття драйверу. Пакети вводу-виводу. Оцінка стабільності та безпеки системи Windows.

    курсовая работа [239,3 K], добавлен 02.01.2014

  • Технічне обґрунтування та етапи розроблення програми на мові С для OS Windows, яка виводить у вікно запропонованої таблиці інформацію при натисненні клавіш клавіатури. Проблеми систем програмування. Резервування додаткової пам’яті в структурi класу вiкна.

    лабораторная работа [15,5 K], добавлен 04.04.2011

  • Постановка задачі: створення списку співробітників інституту. Аналіз мов програмування та вибір мови PascalABC.Net - 32-розрядної програми, яка може працювати на сучасних версіях Windows. Опис функцій та процедур, реалізації інтерфейсу користувача.

    курсовая работа [277,8 K], добавлен 25.06.2015

  • Загальна характеристика алгоритму та опис програми. Керівництво системного програміста. Особливості запуску програми в Linux, FreeBSD, Windows. Аналіз результатів тестування програми, що проектується, вивчення та оцінка її практичної ефективності.

    курсовая работа [91,4 K], добавлен 13.06.2014

  • Розробка та налагодження програми "Заробітна плата" на мові високого рівня С++ для комп'ютерів з операційною системою Windows 7. Текстуальний опис алгоритму. Створення UML-діаграми та обробка інформації з бази даних. Інструкція по роботі з програмою.

    курсовая работа [698,4 K], добавлен 14.10.2012

  • Характеристика мови Turbo Pascal. Опис деяких графічних процедур і функцій модуля Graph. Робота в графічному режимі. Процедури, опції модуля CRT. Створення програми розв'язку системи нерівностей з двома змінними в графічному режимі Турбо Паскаля.

    курсовая работа [35,0 K], добавлен 24.02.2011

  • История создания. Windows 9x/NT. Операционная система Microsoft Windows. Преимущества и недостатки Windows. Некоторые клавиатурные комбинации Windows 9x и NT. Windows XP Professional. Наиболее совершенная защита.

    реферат [19,3 K], добавлен 18.07.2004

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