Створення баз даних для електричних силових підстанцій

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

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

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

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

Таблиця 3.1 - Розподіл функціональних випадків і наборів даних

Варіанти використання

Тестові випадки

Тестові дані

Облік працівників.

8

15

Пошук та фільтрація перевірок.

6

18

Формування документів.

4

18

Створення та редагування підстанції.

5

9

Здійснення формування бригади працівників.

5

10

Розрахунок струму короткого замикання.

9

17

Разом

37

87

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

Тестування користувацького інтерфейсу.

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

Результати виконаних тестових випадків користувацького інтерфейсу наведені у таблиці3.2.

Таблиця 3.2 - Випадки тестування користувацького інтерфейсу

Кроки/дії

Очікувані результати

Стан

1. Вибір пункту меню «Файл»

Повинно розгорнутись підпункти пункту головного меню

Пройдено

2. Вибрати підпункт «Нова підстанція»

Повинно появитись вікно із можливістю введення параметрів силової підстанції.

Пройдено

3. Вибрати підпункт «Перегляд усіх»

Повинно появитись вікно із можливістю перегляду списку підстанцій

Пройдено

4. Натиснути на кнопку «Сортувати А-Я»

Відображення у таблиці із списком підстанцій впорядкованої інформації згідно алфавіту

Пройдено

5. Вибрати підпункт «Налаштування»

Повинно появитись вікно із можливістю налаштування параметрів під'єднання до сервера баз даних

Пройдено

6. Вибрати підпункт «Перевірки -Нова перевірка»

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

Пройдено

7. Натиснути на кнопку «Додати»

У поле повинні добавитись дані про робітника, що увійшов до складу бригади

Пройдено

8. Натиснути на пункт «Довідка»

Відкрилось нове вікно браузера із довідковою інформацією

Пройдено

9. Зміна розташування вікна на екрані.

При зміні положення вікна, вікно змінює своє розташування.

Пройдено

Було проведено 9 тестів «Випадки тестування користувацького інтерфейсу», із яких усі пройшли успішно, отже, тестування користувацького інтерфейсу розглядається, як успішне.

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

4. СПЕЦІАЛЬНИЙ РОЗДІЛ

4.1 Інструкція з інсталяції розробленого проекту

Для інсталяції та експлуатації автоматизованої інформаційної системидля обліку та обслуговування електричних силових підстанційслід забезпечити необхідні апаратні та програмні вимоги. Конфігурація системи для працеспроможності має відповідати наступним вимогам:

- процесор - частотою не менше 1,5 ГГц;

- оперативна пам'ять - 1ГБ;

- монітор - підтримка розширення 1024х768;

- жорсткий диск - місткістю не менше 20ГБ;

- мережевий адаптер - FastEthernet/Wi-Fi;

- наявність клавіатури;

- наявність маніпулятора «миші».

Найпопулярнішими, серед звичайних користувачів, операційними системами є системи, що відносяться до сімейства Windows, які забезпечують зручність та легкість у користуванні програмним комплексом, надають широку палітру можливостей, великий вибір програмного забезпечення різних видів, надійність при оперування конфіденційними даними. Саме такі властивості системи потрібні для розроблювального програмного забезпечення, тому до конфігурації ПК потрібно віднести наявність ОС сімейства Windows із встановленим набором бібліотек(платформою) .NET Framework 4.0, яка надає значні можливості для використання програмних засобів.

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

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

4.2 Інструкція з експлуатації проекту

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

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

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

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

Коли усі дані введено вірно, то при закритті вікна, автоматично зберігаються дані про підстанцію, або можна натиснути на кнопку «Зберегти», після чого відбудеться сповіщення повідомленням про успішно доданий запис.

Для роботи із робітниками системи, потрібно перейти на відповідний пункт меню «Файл - Робітники - Перегляд усіх», при натисненні на який відкриється вікно із вмістом. У вікні можна переглянути список усіх працівників, здійснити сортування інформації, знайти потрібний запис або ж перейти до створення нового.

При створені нового робітника, потрібно скористатись підписами на елементах керування, ввести відповідну інформацію та натиснути кнопку із назвою «Додати» для збереження інформації. При натисненні на кнопку із підписом «Відміна», не буде здійснено збереження введених даних.

У програмній системі співробітники фігурують для створення бригад, які відправляються на виконання певного завдання.

Завдання можна створити скориставшись головним меню додатку, та перейшовши на пункт «Файл-Перевірка-Нова перевірка», що забезпечить відкриття відповідного вікна у якому потрібно вибрати тип перевірки, яка може набувати двох значень(планова, ремонтна), далі вказати на якій підстанції буде здійснюватись виконання завдання, вибравши необхідне значення у списку. Також передбачена можливість введення суті роботи, яку потрібно виконати, із зазначенням деталей поломки чи несправностей.

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

У програмі для формування бригади потрібно вибрати працівника із списку та натиснути на кнопку «Додати». Після цієї дії у полі під кнопками повинно добавитись нове поле із значенням прізвища, ім'я та по батькові робітника, якого було вибрано до складу бригади на завдання. Щоб зберегти введену інформацію по перевірці, потрібно натиснути на кнопку «Додати».

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

Натиснувши на кнопку із назвою «Звіт», на панелі інструментів вікна роботи із перевірками, у додаток Microsoft Office Word, завантажиться інформація про виділену у таблиці перевірку.

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

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

Як зазначалось вище, у програмній системі також присутні довідникові дані, які потрібні для використання при обрахунках та зазначення параметрів елементів системи. Для того щоб переглянути чи редагувати дані, потрібно скористатися пунктом головного меню «Файл - База даних», де виберемо необхідний підпункт.

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

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

Якщо база даних розміщується на локальному комп'ютері, то у якості адреси серверу можна вводити не ІР адресу комп'ютера, а значення localhost, що символізує внутрішню адресу ПК. Також при налаштуванні потрібно зазначати користувача, що має доступ до серверу БД, та відповідний пароль.

Наприклад, при налаштуванні підключення програми до серверу, в поле вводимо його ІР адресу типу 192.168.231.133, у поле «Користувач» введемо назву облікового запису типу User та пароль Valetron.

Після введення інформації про параметри підключення, можна здійснити його перевірку. Для збереження підключення, достатньо натиснути на кнопку «Застосувати».

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

Код програми

Клас для роботи із базою даних MySQL.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;

using System.Data.Common;

using System.Collections;

using MySql.Data.MySqlClient;

namespace SubStation

{

classMySqlUsing

{

///<summary>

///Рядокпідключення

///</summary>

privatestring ConnectionStringDb;

privatestaticbool msg = false;

public MySqlUsing()

{

ConnectionStringDb = Properties.Settings.Default.SaveConnectionString;

if (!Connected())

{

if (!msg)

{

System.Windows.Forms.MessageBox.Show("Буловстановленорядокпід*єднаннядоБДпозамовченю...", "System", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);

msg = true;

}

};

}

publicstring getConnectingString()

{

returnthis.ConnectionStringDb;

}

///<summary>

///ФункціядляперевіркинаявностіпідключеннядоБД

///</summary>

///<returns></returns>

publicbool Connected()

{

try

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

con.Open();

con.Close();

returntrue;

}

catch

{

returnfalse;

};

}

///<summary>

/// Встановлення заданого підключення, зберігання у настройки проекту

///</summary>

///<param name="ConStr"></param>

publicvoid SetConnectionString(string ConStr)

{

Properties.Settings.Default.SaveConnectionString = ConStr;

Properties.Settings.Default.Save();

ConnectionStringDb = Properties.Settings.Default.SaveConnectionString;

}

///<summary>

/// Функція для вибірки даних запитом і повертає масив значень

///</summary>

///<param name="query">Самзапит</param>

///<param name="nil">Ти вставляти пустий рядок у масив, для комбобоксів</param>

///<returns></returns>

publicArrayList GetDataQuery(string query, bool nil)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand oda = newMySqlCommand();

oda.Connection = con;

oda.CommandText = query;

try

{

con.Open();

MySqlDataReader reader;

reader = oda.ExecuteReader();

ArrayList arr = newArrayList(0);

if (nil) arr.Add("");

foreach (DbDataRecord rec in reader)

{

arr.Add(rec.GetValue(0));

}

con.Close();

return arr;

}

catch

{

returnnull;

}

}

///<summary>

/// Функція для вибірки даних запитом і повертає Датасет, віртуальну базу з однією табличкою "Табле1"

///</summary>

///<param name="query">Запит</param>

///<returns>Датасет</returns>

publicDataSet GetaDataQuery(string query)

{

MySqlDataAdapter oda = newMySqlDataAdapter();

DataSet ds = newDataSet();

ds.Tables.Add("Table1");

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

oda.SelectCommand = newMySqlCommand();

oda.SelectCommand.Connection = con;

oda.SelectCommand.CommandText = query;

try

{

con.Open();

oda.Fill(ds.Tables[0]);

con.Close();

return ds;

}

catch

{

returnnull;

}

}

///<summary>

///Запитнадодання

///</summary>

///<param name="DBTable">Назватаблиці</param>

///<param name="DBPolya">Перелічити в рядку через кому поля для вставки</param>

///<param name="DBValue">Перелічити в рядку значення в лапках</param>

publicvoid Insert(string DBTable, string DBPolya, string DBValue)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand Command = newMySqlCommand();

Command.Connection = con;

Command.CommandText = "INSERT INTO " + DBTable + " (" + DBPolya + ") VALUES(" + DBValue + ")";

con.Open();

Command.ExecuteNonQuery();

con.Close();

}

///<summary>

/// Запит на оновлення

///</summary>

///<param name="DBTable">Назватаблиціоновлення</param>

///<param name="DBSet">Прописати в рядку в які поля які значення занести</param>

///<param name="DBWhere">Умованаоновлення</param>

publicvoid Update(string DBTable, string DBSet, string DBWhere)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand Command = newMySqlCommand();

Command.Connection = con;

Command.CommandText = "UPDATE " + DBTable + " SET " + DBSet + " WHERE " + DBWhere;

con.Open();

Command.ExecuteNonQuery();

con.Close();

}

///<summary>

/// Запит на видалення

///</summary>

///<param name="DBTable">Назватаблиці</param>

///<param name="DBWhere">Умованавидалення</param>

publicvoid Delete(string DBTable, string DBWhere)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand Command = newMySqlCommand();

Command.Connection = con;

Command.CommandText = "DELETE FROM " + DBTable + " WHERE " + DBWhere;

con.Open();

Command.ExecuteNonQuery();

con.Close();

}

///<summary>

///Запитщоповертаєключовеполе

///</summary>

///<param name="DBTable">Назватаблиці</param>

///<param name="DBWhere">Умованавиборкуелемента</param>

///<returns>КлючовеполеІД</returns>

publicint GetId(string DBTable, string polename, string DBWhere)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand oda = newMySqlCommand();

oda.Connection = con;

oda.CommandText = "Select " + polename + " From " + DBTable + " Where " + DBWhere;

try

{

con.Open();

MySqlDataReader reader;

reader = oda.ExecuteReader();

ArrayList arr = newArrayList(0);

foreach (DbDataRecord rec in reader)

{

arr.Add(rec.GetValue(0));

}

con.Close();

returnConvert.ToInt16(arr[0]);

}

catch

{

return -1;

}

}

publicstring GetnoId(string DBTable, string polename, string DBWhere)

{

MySqlConnection con = newMySqlConnection(ConnectionStringDb);

MySqlCommand oda = newMySqlCommand();

oda.Connection = con;

oda.CommandText = "Select " + polename + " From " + DBTable + " Where " + DBWhere;

try

{

con.Open();

MySqlDataReader reader;

reader = oda.ExecuteReader();

ArrayList arr = newArrayList(0);

foreach (DbDataRecord rec in reader)

{

arr.Add(rec.GetValue(0));

}

con.Close();

return arr[0].ToString();

}

catch

{

return"None";

}

}

}

}

Модуль для створення та редагування підстанцій.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace SubStation

{

publicpartialclassEditSubStation : Form

{

public EditSubStation()

{

InitializeComponent();

}

publicint Idstation = -1;

publicbool insert = true;

privatevoid tabPage1_Click(object sender, EventArgs e)

{

}

privatevoid radioButton1_CheckedChanged(object sender, EventArgs e)

{

string x1 = ((sender asRadioButton).Name[(sender asRadioButton).Name.Length-1]).ToString();

int x = int.Parse(x1);

tp2panel.Controls.Clear();

for (int i = 0; i < x; i++) {

TransfUI tr2 = newTransfUI();

tr2.Dock = DockStyle.Left;

tr2.setNum((i+1).ToString());

tp2panel.Controls.Add(tr2);

tr2.BringToFront();

}

}

privatevoid EditSubStation_FormClosing(object sender, FormClosingEventArgs e)

{

}

privatevoid EditSubStation_Load(object sender, EventArgs e)

{

if (insert)

{

(newMySqlUsing()).Insert("`stantion`", "`Name`", "''");

Idstation = (newMySqlUsing()).GetId("`stantion`", "max(`idStantion`)", "1<2");

//vkladka 2

TransfUI tr2 = newTransfUI();

tr2.Dock = DockStyle.Left;

tr2.setNum((1).ToString());

tp2panel.Controls.Add(tr2);

}

else

{

textBox1.Text = ((newMySqlUsing()).GetDataQuery("select Name from stantion where idStantion=" + Idstation.ToString(), false).ToArray())[0].ToString();

//vkladka 2

DataTable dt = (newMySqlUsing()).GetaDataQuery("select * from `powertransformator` where `idStantion`=" + Idstation.ToString()).Tables[0];

switch (dt.Rows.Count)

{

case 1: radioButton1.Checked = true; break;

case 2: radioButton2.Checked = true; break;

case 3: radioButton3.Checked = true; break;

case 4: radioButton4.Checked = true; break;

}

tp2panel.Controls.Clear();

for (int i = 0; i < dt.Rows.Count; i++)

{

TransfUI tr = newTransfUI();

tr.Dock = DockStyle.Left;

tr.setNum((i+1).ToString());

tr.label8.Text = dt.Rows[i][0].ToString();

tr.comboBox1.Text = dt.Rows[i][1].ToString();

tr.comboBox2.Text = dt.Rows[i][2].ToString();

tr.comboBox3.Text = dt.Rows[i][6].ToString();

tr.comboBox4.Text = dt.Rows[i][5].ToString();

tr.comboBox5.Text = dt.Rows[i][3].ToString();

tr.comboBox6.Text = dt.Rows[i][4].ToString();

tp2panel.Controls.Add(tr);

tr.BringToFront();

if (dt.Rows[i][7].ToString() == "2")

tr.radioButton1.Checked = true;

else

{

tr.radioButton2.Checked = true;

tr.radioButton2_CheckedChanged(tr.radioButton2, e);

}

}

}

//vkladka 1

//vkladka 3

dataGridView1.EnableHeadersVisualStyles = false;

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Number` as 'Номер', `name` as 'Назва', `ComutationAparate` as 'Ком.Апарат' from line10kv where `idStantion`="+Idstation.ToString()).Tables[0];

//vkladka 4

dataGridView2.EnableHeadersVisualStyles = false;

dataGridView2.DataSource = (newMySqlUsing()).GetaDataQuery("select `PKA` as 'Назва' from voltagetransformator where `Idstation`=" + Idstation.ToString()).Tables[0];

//vkladka 5

dataGridView3.EnableHeadersVisualStyles = false;

dataGridView3.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Назва' from panel where `idstantion`=" + Idstation.ToString()).Tables[0];

//vkladka 6

//vkladka 7

dataGridView4.EnableHeadersVisualStyles = false;

dataGridView4.DataSource = (newMySqlUsing()).GetaDataQuery("select `TypePowerOff` as 'Типвимикача', `TC` as 'Трансформатор', `Security` as 'Захист' from line110kv where `idstantion`=" + Idstation.ToString()).Tables[0];

comboBox5.DataSource = (newMySqlUsing()).GetDataQuery("select Name from rele", false);

}

privatevoid button1_Click(object sender, EventArgs e)

{

Line10 l10 = newLine10();

l10.Tag = Idstation;

l10.ShowDialog();

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Number` as 'Номер', `name` as 'Назва', `ComutationAparate` as 'Ком.Апарат' from line10kv where `idStantion`=" + Idstation.ToString()).Tables[0];

}

privatevoid tabControl1_SelectedIndexChanged(object sender, EventArgs e)

{

}

privatevoid button7_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Insert("voltagetransformator", "PKA, Idstation", "'"+comboBox2.Text+"',"+Idstation.ToString());

dataGridView2.DataSource = (newMySqlUsing()).GetaDataQuery("select `PKA` as 'Назва' from voltagetransformator where `Idstation`=" + Idstation.ToString()).Tables[0];

}

privatevoid button10_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Insert("panel", "Name, idstantion", "'" + textBox2.Text + "'," + Idstation.ToString());

dataGridView3.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Назва' from panel where `idstantion`=" + Idstation.ToString()).Tables[0];

}

privatevoid button13_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Insert("line110kv", "`TypePowerOff`, `TC`, `Security`, `idstantion`", "'" + comboBox3.Text + "','" + comboBox4.Text + "','" + comboBox5.Text + "'," + Idstation.ToString());

dataGridView4.DataSource = (newMySqlUsing()).GetaDataQuery("select `TypePowerOff` as 'Типвимикача', `TC` as 'Трансформатор', `Security` as 'Захист' from line110kv where `idstantion`=" + Idstation.ToString()).Tables[0];

}

privatevoid button3_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Виточнохочетездійснитивидалення?", "Система", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{

(newMySqlUsing()).Delete("line10kv", "Number='" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "'");

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Number` as 'Номер', `name` as 'Назва', `ComutationAparate` as 'Ком.Апарат' from line10kv where `idStantion`=" + Idstation.ToString()).Tables[0];

}

}

privatevoid button2_Click(object sender, EventArgs e)

{

Line10 l10 = newLine10();

l10.Tag = "N" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

l10.ShowDialog();

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Number` as 'Номер', `name` as 'Назва', `ComutationAparate` as 'Ком.Апарат' from line10kv where `idStantion`=" + Idstation.ToString()).Tables[0];

}

privatevoid button5_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Виточнохочетездійснитивидалення?", "Система", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{

(newMySqlUsing()).Delete("voltagetransformator", "PKA='" + dataGridView2.SelectedRows[0].Cells[0].Value.ToString() + "'");

dataGridView2.DataSource = (newMySqlUsing()).GetaDataQuery("select `PKA` as 'Назва' from voltagetransformator where `Idstation`=" + Idstation.ToString()).Tables[0];

}

}

privatevoid button11_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Виточнохочетездійснитивидалення?", "Система", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{

(newMySqlUsing()).Delete("line110kv", "TypePowerOff='" + dataGridView4.SelectedRows[0].Cells[0].Value.ToString() + "' and `TC`='" + dataGridView4.SelectedRows[0].Cells[1].Value.ToString() + "'and `Security`='" + dataGridView4.SelectedRows[0].Cells[2].Value.ToString() + "'");

dataGridView4.DataSource = (newMySqlUsing()).GetaDataQuery("select `TypePowerOff` as 'Типвимикача', `TC` as 'Трансформатор', `Security` as 'Захист' from line110kv where `idstantion`=" + Idstation.ToString()).Tables[0];

}

}

privatevoid button6_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Update("voltagetransformator", "PKA='"+comboBox2.Text+"'", "PKA='" + dataGridView2.SelectedRows[0].Cells[0].Value.ToString() + "'");

dataGridView2.DataSource = (newMySqlUsing()).GetaDataQuery("select `PKA` as 'Назва' from voltagetransformator where `Idstation`=" + Idstation.ToString()).Tables[0];

MessageBox.Show("Данізмінено", "Система", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

privatevoid button8_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Виточнохочетездійснитивидалення?", "Система", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{

(newMySqlUsing()).Delete("panel", "Name='" + dataGridView3.SelectedRows[0].Cells[0].Value.ToString() + "'");

dataGridView3.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Назва' from panel where `idstantion`=" + Idstation.ToString()).Tables[0];

}

}

privatevoidзберегтиToolStripMenuItem_Click(object sender, EventArgs e)

{

if (textBox1.Text == "")

{

if (MessageBox.Show("Длятогощобданізберегти, потрібноввестиназвупідстанції." + Environment.NewLine + " Якщонатиснете [ок] данібудутьвтрачені", "Система", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)

(newMySqlUsing()).Delete("`stantion`", "`Name`=''");

//else

// e.Cancel = true;

}

else

{

(newMySqlUsing()).Update("`stantion`", "`Name`='" + textBox1.Text + "'", "idStantion=" + Idstation.ToString());

if (insert)

{

for (int i = 0; i < tp2panel.Controls.Count; i++)

{

TransfUI tr = (TransfUI)tp2panel.Controls[i];

int x = 0;

if (tr.radioButton1.Checked)

x = 2;

else

x = 3;

if (tr.comboBox1.Text == "" || tr.comboBox2.Text == "" || tr.comboBox3.Text == "" || tr.comboBox4.Text == "" || tr.comboBox5.Text == "" || tr.comboBox6.Text == "")

{

MessageBox.Show("Не заповнені дані про трансформатори");

return;

}

(newMySqlUsing()).Insert("`powertransformator`", "`Marka`, `Power`, `RPN`, `Securiry`, `ConnectingGroup`, `InTransformatorTok`, `TransformatorCount`, `TypeOfTransformator`, `idstantion`",

"'" + tr.comboBox1.Text + "'," + tr.comboBox2.Text + "," + tr.comboBox5.Text + ",'" + tr.comboBox6.Text + "','" + tr.comboBox4.Text + "','" + tr.comboBox3.Text + "'," + x.ToString() + ",'" + x.ToString() + "'," + Idstation.ToString());

}

}

else

{

try

{

(newMySqlUsing()).Delete("`powertransformator`", "`idstantion`=" + Idstation.ToString());

for (int i = 0; i < tp2panel.Controls.Count; i++)

{

TransfUI tr = (TransfUI)tp2panel.Controls[i];

int x = 0;

if (tr.radioButton1.Checked)

x = 2;

else

x = 3;

if (tr.comboBox1.Text == "" || tr.comboBox2.Text==""||tr.comboBox3.Text == "" || tr.comboBox4.Text==""||tr.comboBox5.Text == "" || tr.comboBox6.Text=="")

{

MessageBox.Show("Не заповнені дані про трансформатори");

return;

}

(newMySqlUsing()).Insert("`powertransformator`", "`Marka`, `Power`, `RPN`, `Securiry`, `ConnectingGroup`, `InTransformatorTok`, `TransformatorCount`, `TypeOfTransformator`, `idstantion`",

"'" + tr.comboBox1.Text + "'," + tr.comboBox2.Text + "," + tr.comboBox5.Text + ",'" + tr.comboBox6.Text + "','" + tr.comboBox4.Text + "','" + tr.comboBox3.Text + "'," + x.ToString() + ",'" + x.ToString() + "'," + Idstation.ToString());

}

}

catch {

//e.Cancel = true;

}

}

}

MessageBox.Show("Інформаціюпропідстанціюзбереженно!");

}

}

}

Модуль опрацювання даних при перегляді усіх підстанцій

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace SubStation

{

publicpartialclassAllSubStantion : Form

{

public AllSubStantion()

{

InitializeComponent();

}

int num = -1;

privatevoid AllSubStantion_Load(object sender, EventArgs e)

{

dataGridView1.EnableHeadersVisualStyles = false;

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion").Tables[0];

//

}

privatevoid dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

{

EditSubStation sstion = newEditSubStation();

sstion.WindowState = FormWindowState.Maximized;

sstion.MdiParent = this.MdiParent;

sstion.insert = false;

sstion.Idstation = (newMySqlUsing()).GetId("`stantion`", "`idStantion`", "Name='" + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString()+"'");

sstion.Show();

}

privatevoid dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

}

privatevoid AllSubStantion_Activated(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion").Tables[0];

}

privatevoid button2_Click(object sender, EventArgs e)

{

EditSubStation sstion = newEditSubStation();

sstion.WindowState = FormWindowState.Maximized;

sstion.MdiParent = this.MdiParent;

sstion.Show();

}

privatevoid button4_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion order by 1 asc").Tables[0];

}

privatevoid button1_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion order by 1 desc").Tables[0];

}

privatevoid button5_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion").Tables[0];

}

privatevoid textBox1_TextChanged(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion where Name Like '%"+textBox1.Text+"%'").Tables[0];

}

privatevoid button3_Click(object sender, EventArgs e)

{

if (num == -1) return;

EditSubStation sstion = newEditSubStation();

sstion.WindowState = FormWindowState.Maximized;

sstion.MdiParent = this.MdiParent;

sstion.insert = false;

sstion.Idstation = (newMySqlUsing()).GetId("`stantion`", "`idStantion`", "Name='" + dataGridView1.Rows[num].Cells[0].Value.ToString() + "'");

sstion.Show();

}

privatevoid dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{

num = e.RowIndex;

}

privatevoid delToolStripMenuItem_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Виточнохочетездійснитивидалення?", "Система", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)

{

(newMySqlUsing()).Delete("stantion", "Name='" + dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + "'");

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `Name` as 'Підстанція' from stantion").Tables[0];

}

}

privatevoid infoToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("Нажаль інформація зараз не доступна.");

}

}

}

Модуль перегляду усіх перевірок

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace SubStation

{

publicpartialclassAlljob : Form

{

public Alljob()

{

InitializeComponent();

}

int Sel = 0;

privatevoid Alljob_Load(object sender, EventArgs e)

{

dataGridView1.EnableHeadersVisualStyles = false;

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` ").Tables[0];

}

privatevoid dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)

{

Jobs sstion = newJobs();

sstion.WindowState = FormWindowState.Maximized;

sstion.MdiParent = this.MdiParent;

sstion.insert = false;

sstion.Idjob = (newMySqlUsing()).GetId("`jobs`", "`id`", "header='" + dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() + "'");

sstion.Show();

}

privatevoid button1_Click(object sender, EventArgs e)

{

Jobs jb = newJobs();

jb.MdiParent = this.MdiParent;

jb.WindowState = FormWindowState.Maximized;

jb.Show();

}

privatevoid button5_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` ").Tables[0];

}

privatevoid textBox1_TextChanged(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` and header Like '%" + textBox1.Text + "%'").Tables[0];

}

privatevoid button4_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` order by 1 asc").Tables[0];

}

privatevoid button2_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` order by 2 asc").Tables[0];

}

privatevoid button3_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = (newMySqlUsing()).GetaDataQuery("select `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип' from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` order by 3 asc").Tables[0];

}

privatevoid button6_Click(object sender, EventArgs e)

{

try

{

DataTable dt = (newMySqlUsing()).GetaDataQuery("select id, `header` as 'Завдання', `Name` as 'Станція', `jobs`.`type` as 'Тип', `jobs`.`about` from `jobs`, `stantion` where `jobs`.`idstantion`=`stantion`.`idStantion` and header='" + dataGridView1.Rows[Sel].Cells[0].Value.ToString() + "'").Tables[0];

Microsoft.Office.Interop.Word.Application wordapp;

Microsoft.Office.Interop.Word.Paragraph wordparagraph;

Microsoft.Office.Interop.Word.Document worddocument;

wordapp = new Microsoft.Office.Interop.Word.Application();

Object template = Type.Missing;

Object newTemplate = false;

Object documentType = Microsoft.Office.Interop.Word.WdNewDocumentType.wdNewBlankDocument;

Object visible = true;

worddocument = wordapp.Documents.Add(

ref template, ref newTemplate, ref documentType, ref visible);

Object begin = Type.Missing;

Object end = Type.Missing;

Microsoft.Office.Interop.Word.Range wordrange = worddocument.Range(ref begin, ref end);

wordrange.Select();

wordrange.Font.Size = 16;

wordrange.Font.Name = "Times New Roman";

wordrange.Font.Color = Microsoft.Office.Interop.Word.WdColor.wdColorBlack;

wordrange.Text = "Направленнянароботу №" + dt.Rows[0][0].ToString();

object oMissing = System.Reflection.Missing.Value;

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

wordparagraph = worddocument.Paragraphs[2];

wordrange = wordparagraph.Range;

wordrange.Text = "Суть: " + dt.Rows[0][1].ToString();

wordparagraph = worddocument.Paragraphs[3];

wordrange = wordparagraph.Range;

wordrange.Text = "Типзавдання " + dt.Rows[0][3].ToString();

wordparagraph = worddocument.Paragraphs[4];

wordrange = wordparagraph.Range;

wordrange.Text = "Об'єктнастанції: `" + dt.Rows[0][2].ToString()+"`";

wordparagraph = worddocument.Paragraphs[5];

wordrange = wordparagraph.Range;

wordrange.Text = "Бригада працівників назначенна на завдання:";

wordparagraph = worddocument.Paragraphs[6];

wordrange = wordparagraph.Range;

string st = dt.Rows[0][4].ToString();

dt = (newMySqlUsing()).GetaDataQuery("select w.Name from worker w, jobworkers j where j.idworker=w.id and j.idjob=" + (newMySqlUsing()).GetId("`jobs`", "`id`", "header='" + dataGridView1.Rows[Sel].Cells[0].Value.ToString() + "'").ToString()).Tables[0];

Object defaultTableBehavior =

Microsoft.Office.Interop.Word.WdDefaultTableBehavior.wdWord9TableBehavior;

Object autoFitBehavior =

Microsoft.Office.Interop.Word.WdAutoFitBehavior.wdAutoFitFixed;

Microsoft.Office.Interop.Word.Table wordtable1 = worddocument.Tables.Add(wordrange, dt.Rows.Count + 1, 3,

ref defaultTableBehavior, ref autoFitBehavior);

Microsoft.Office.Interop.Word.Range wordcellrange = worddocument.Tables[1].Cell(1, 1).Range;

wordcellrange.Text = "№";

wordcellrange = wordtable1.Cell(1, 2).Range;

wordcellrange.Text = "ПІБ";

wordcellrange = wordtable1.Cell(1, 3).Range;

wordcellrange.Text = "Підпис";

for (int m = 1; m <= dt.Rows.Count; m++)

{

wordcellrange = wordtable1.Cell(m + 1, 1).Range;

wordcellrange.Text = m.ToString();

wordcellrange = wordtable1.Cell(m + 1, 2).Range;

wordcellrange.Text = dt.Rows[m - 1][0].ToString();

//worddocument.Paragraphs.Add(ref oMissing);

}

try

{

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

worddocument.Paragraphs.Add(ref oMissing);

wordparagraph = worddocument.Paragraphs[worddocument.Paragraphs.Count - 4];

wordrange = wordparagraph.Range;

wordrange.Text = "Детально: "+st ;

worddocument.Paragraphs.Add(ref oMissing);

wordparagraph = worddocument.Paragraphs[worddocument.Paragraphs.Count - 4];

wordrange = wordparagraph.Range;

wordrange.Text = "_____ _____ Підпис ____ Дата ___ _____''20___''";

wordrange = worddocument.Range(ref oMissing);

}

catch { }

wordapp.Visible = true;

}

catch (Exception ex)

{

Text = ex.Message;

}

}

privatevoid dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

{

Sel = e.RowIndex;

}

}

}

Модуль створення нової перевірки із зазначенням бригади працівників.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace SubStation

{

publicpartialclassJobs : Form

{

public Jobs()

{

InitializeComponent();

}

publicint Idjob = -1;

publicbool insert = true;

privatevoid Jobs_Load(object sender, EventArgs e)

{

comboBox2.DataSource = (newMySqlUsing()).GetDataQuery("select Name from stantion", false);

comboBox3.DataSource = (newMySqlUsing()).GetDataQuery("select Name from worker", false);

if (insert)

{

(newMySqlUsing()).Insert("`jobs`", "`header`, `date`", "'','"+DateTime.Now.ToString("yyyy-MM-dd")+"'");

Idjob = (newMySqlUsing()).GetId("`jobs`", "max(`id`)", "1<2");

}

else

{

comboBox1.Text = (newMySqlUsing()).GetnoId("`jobs`", "`type`", "id=" + Idjob.ToString() ).ToString();

comboBox2.Text = (newMySqlUsing()).GetnoId("`stantion`", "`Name`", "idStantion=" + (newMySqlUsing()).GetId("`jobs`", "`idstantion`", "id=" + Idjob.ToString()).ToString()).ToString();

textBox1.Text = (newMySqlUsing()).GetnoId("`jobs`", "`header`", "id=" + Idjob.ToString()).ToString();

textBox4.Text = (newMySqlUsing()).GetnoId("`jobs`", "`about`", "id=" + Idjob.ToString()).ToString();

listBox1.DataSource = (newMySqlUsing()).GetDataQuery("select w.Name from worker w, jobworkers j where j.idworker=w.id and j.idjob=" + Idjob.ToString(), false);

}

}

privatevoid button3_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Insert("`jobworkers`", "`idjob`, `idworker`", Idjob.ToString()+", "+(newMySqlUsing()).GetId("`worker`", "`id`", "`Name`='"+comboBox3.Text+"'").ToString());

listBox1.DataSource = (newMySqlUsing()).GetDataQuery("select w.Name from worker w, jobworkers j where j.idworker=w.id and j.idjob="+Idjob.ToString(), false);

}

privatevoid button4_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Delete("`jobworkers`", "idjob=" + Idjob.ToString() + " and idworker=" + (newMySqlUsing()).GetId("`worker`", "`id`", "`Name`='" + listBox1.Text + "'").ToString());

listBox1.DataSource = (newMySqlUsing()).GetDataQuery("select w.Name from worker w, jobworkers j where j.idworker=w.id and j.idjob=" + Idjob.ToString(), false);

}

privatevoid button1_Click(object sender, EventArgs e)

{

(newMySqlUsing()).Update("`jobs`", "`header`='" + textBox1.Text + "', `type`='" + comboBox1.Text + "', `about`='" + textBox4.Text + "', `idstantion`=" + (newMySqlUsing()).GetId("`stantion`", "`idStantion`", "`Name`='" + comboBox2.SelectedValue.ToString() + "'").ToString(), "id=" + Idjob.ToString());

MessageBox.Show("Інформаціюпрозавданнязбереженно!");

Close();

}

privatevoid button2_Click(object sender, EventArgs e)

{

Close();

}

privatevoid Jobs_FormClosing(object sender, FormClosingEventArgs e)

{

if (textBox1.Text == "")

{

if (MessageBox.Show("Длятогощобданізберегти, потрібноввестиназвузавдання." + Environment.NewLine + " Якщонатиснете [ок] данібудутьвтрачені", "Система", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)

(newMySqlUsing()).Delete("`jobs`", "`header`=''");

else

e.Cancel = true;

}

}

}

}

5. ЕКОНОМІЧНИЙ РОЗДІЛ

5.1 Визначення витрат на створення програмного продукту

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

Для цього спершу розглянемо основні етапи робіт при складанні програмного продукту, які наведені у таблиці 5.1.

Таблиця 5.1 - Етапи робіт при складанні програмного продукту

Етап

Вид виконуваних робіт

1

Планування

2

Пошук схожих методів та рішень

3

Розробка бази даних

4

Розробка алгоритму роботи програми

5

Розробка програмного інтерфейсу

6

Тестування та налагодження готового продукту

7

Складення документації

Розрахунок тривалості кожного етапу виробляється на підставі даних, приведених у таблиці 5.2.

Таблиця 5.2 - Розрахунок тривалості робіт (загальна трудомісткість)

Номер етапу

Мінімальна тривалість, днів (tmin)

Максимальна тривалість, днів (tmax)

Очікувана тривалість, днів tот=(3tmin+2tmax)/5

1

5

9

7

2

3

5

4

3

8

11

9

4

20

25

22

5.

4

6

5

6.

4

5

4

7.

4

5

4

Разом:

48

66

55

До складу витрат на розробку і реалізацію проекту включається вартість усіх витрат, необхідних для реалізації комплексу робіт, що складають зміст даної розробки. Витрати містять у собі наступні елементи:

- заробітна плата;

- відрахування на соціальні заходи;

- амортизація;

- інші операційні витрати.

Розрахуємо заробітну плату виконавця:

, грн. (5.1)

де, М - місячний посадовий окладпрограміста, грн. В 2017 році величини окладів коливались в межах 7500 грн. за місяць;

Тр - число робочих днів в місяці, приблизно Тр = 21 дні;

t - число днів роботи програміста.

грн.

Додаткова заробітна плата Зд розраховується як 10% від основної заробітної плати.

Зд = 19642,86*0,1 =1964.29 грн.

Відрахування на соціальні потреби розробника, який приймав участь в розробці нового технічного рішення розраховуються у розмірі 22 % (ставка ЄСВ) від суми основної та додаткової заробітної плати розробника.

грн.

Обчислимо витрати на амортизацію обчислювальної техніки за наступною формулою:

(5.2)

Амортизація основних фондів розраховується за формулою, грн.:

, (5.3)

де, Ц - балансова вартість обладнання, грн. Для комп'ютерів Ц = 18500 грн.; На - річна норма амортизаційних відрахувань для даного виду обладнання, приміщень, %;

Тек - термін експлуатації обладнання, роки.

3700 грн.

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

Разом інші витрати становлять 280,96 грн.

На основі вище наведених розрахунків у таблиці 5.3 складемо повний перелік витрат на розробку програмного продукту.

Таблиця 5.3 - Витрати на розробку програмного продукту

Елементи витрат

Сума,грн.

Заробітна плата

19642,86

Відрахування на соціальні потреби

4753,57

Амортизація основних фондів

3700

Інші витрати

280,96

Разом

28377,39

Отже, після проведення усіх необхідних розрахунків кошторису розробки програмного продукту можна зробити висновок що в загальному витрати на написання програми становлять28377,39 гривень.

ВИСНОВКИ

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

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

В дипломному проекті здійснено проектування та реалізацію програмного засобу, що супроводжувались візуальним проектуванням UML діаграм.

Програмне забезпечення розроблене з використанням проекту WindowsFormApplication, мови програмування C#, СУБД MySQL, технології доступу до даних ADO.NET та клієнт-серверну архітектуру ПЗ.

Розробка програмної системи пройшла всі основні стадії життєвого циклу розроблення програмного забезпечення.

Спроектовано інтерфейс користувача, який забезпечує максимальну зручність та інтуїтивну зрозумілість користування програмою.

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

Програмне забезпечення може бути впроваджене у спеціалізованих компаніях по наданню послуг енергопостачання.

ПЕРЕЛІК ДЖЕРЕЛ ПОСИЛАННЯ

1 Катренко А.В. Системний аналіз об'єктів та процесів комп'ютеризації: навчальний посібник. - Львів: “Новий світ-2000”, 2003.

2 Прохоренко Н.А. Программирование на С++ в Visual Studio 2010 Express. 2010. - СПб. : Питер, 2010 - 759с.

3 Рихтер Д. CLR via C#. Программирование на платформе Microsoft .NET Framework 3.5 на языке С# / Д. Рихтер. - 2008. - № 1. - 950 с.

4 Эдриан Кингсли-Хьюджес. C# 2005. Справочник программиста С#. Эдриан Кингсли-Хьюджес, Кэти Кингсли-Хьюджес. - М.: Диалектика.2007, 3 кв. - 368 с.

5 ENERGO SOFT полезная информация [Електронний ресурс]. Ї Режим доступу:http://energosoft.info/soft_electrotex_161_170(2014).

6 Вікіпедія - електронна екнциклопедіяhttp://uk.wikipedia.org/(2014).

7 Навчальні матеріали онлайн [Електронний ресурс]. Ї Режим доступу:http://pidruchniki.com/2002061047742/informatika/aparatne_zabezpechennya(2014).

8 Справочник електрика [Електронний ресурс]. Ї Режим доступу: http://electricalschool.info/(2014).

9 Техническая литература [Електронний ресурс]. Ї Режим доступу: http://www.skunksworks.net/(2014).

10 Электроснабжение промышленных и сельскохозяйственных предприятий, районов, потребителей [Електронний ресурс]. Ї Режим доступу: http://elsnabgenie.narod.ru/Opisanieelsnab12.htm(2014).

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


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

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