Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

1.1 Аналіз предметної області 7 4 страница



if (result == DialogResult.No)

{

e.Cancel = true;

}

}


 

Рисунок 2.32 – Закриття форми «Determinant»

 

На рисунку 2.33 представлено процедуру виклику довідки про знаходження визначника матриці.

 

private void button3_Click(object sender, EventArgs e)

{

Process.Start(@"Определитель.docx");

}

 

Рисунок 2.33 – Процедура виклику довідки про знаходження визначника

 

На рисунку 2.34 представлено процедуру, що викликається після закриття форми «Determinant» та знімає блокування її повторного виклику, що застосовується для уникнення відкриття безлічі дублікатів форми.

 

private void Determinant _FormClosed(object sender, FormClosedEventArgs e)

{

MainMenu.Control[3] = 0;

}

 

Рисунок 2.34 – Процедура, що знімає заборону на повторне відкриття форми «Determinant»

 

Модуль «InventMatrix» призначений для знаходження зворотної матриці. Цей модуль описує окрему форму, що містить алгоритм для знаходження зворотних матриць для матриць різної розмірності.

 

На рисунку 2.35 представлено процедуру завантаження форми «InventMatrix».

 

private void InventMatrix_Load(object sender, EventArgs e)

{

comboBox1.SelectedIndex = 0;

}

 

Рисунок 2.35 – Процедура завантаження форми «InventMatrix».

 

На рисунку 2.36 представлено процедуру виклику довідки про знаходження зворотної матриці.

 

private void button3_Click(object sender, EventArgs e)

{

Process.Start(@"Обратная матрица.docx");

}

 

Рисунок 2.36 – Процедура виклику довідки про знаходження визначника

 

На рисунку 2.37 представлена процедура знаходження зворотної матриці та виведення ходу цього процесу в текстове поле.

 

 


private void button1_Click(object sender, EventArgs e)

{

richTextBox1.Text = "";

float[,] MatrixMembers = new float[MatrixSize, MatrixSize*2];

float Value;

float[] Temp = new float[MatrixSize + 1];

string[] Description = { "Общий", "Первый", "Второй", "Третий", "Четвертый", "Пятый" };

int Iteration, IsEmptyM, IsEmptyF, Counteri, Counterj;

int Cell1, Cell2, Cell3, Cell4, Cell5, Row1, Row2, Row3, Counter;

float[] opr = new float[MatrixSize + 1];

float[] opr4 = new float[MatrixSize + 1];

float[] opr5 = new float[MatrixSize + 1];

IsEmptyM = 0;

for (Row = 0; Row < MatrixSize; Row++)

{

for (Cell = 0; Cell < MatrixSize; Cell++)

{

if (Koefficients[Cell, Row].Text == "") IsEmptyM = 1;

}

}

IsEmptyF = 0;

if (IsEmptyM == 0 && IsEmptyF == 0)

{

ExitOrNot = 0;

for (Row = 0; Row < MatrixSize; Row++)

{

for (Cell = 0; Cell < MatrixSize; Cell++)

{

try

{

MatrixMembers[Row, Cell] = Convert.ToSingle(Koefficients[Cell, Row].Text);}

catch

{

ExitOrNot = 1;}

}

}

if (ExitOrNot == 1) MessageBox.Show("Неверный формат введенных чисел! Проверьте правильность введенных данных! Bводить можно только цифры от 0 до 9, знак минус и запятую");

if (ExitOrNot == 0)

{

richTextBox1.Text += "Имеем начальную матрицу\n\n";

for (Counteri = 0; Counteri < MatrixSize; Counteri++)

{

richTextBox1.Text += "\t";



for (Counterj = 0; Counterj < MatrixSize; Counterj++)

{

richTextBox1.Text += Math.Round(MatrixMembers[Counteri, Counterj], 3).ToString() + "\t";

}

richTextBox1.Text += "\n\n";

}

for (Row = 0; Row < MatrixSize; Row++)

{

for (Cell = MatrixSize; Cell < MatrixSize * 2; Cell++)

{

MatrixMembers[Row, Cell] = 0;

if (Row == Cell - MatrixSize) MatrixMembers[Row, Cell] = 1;

}

}

richTextBox1.Text += "Чтобы найти обратную матрицу, допишем к данной матрице справа единичную\n\n";

for (Counteri = 0; Counteri < MatrixSize; Counteri++)

{

richTextBox1.Text += "\t";

for (Counterj = 0; Counterj < MatrixSize * 2; Counterj++)

{

richTextBox1.Text += Math.Round(MatrixMembers[Counteri, Counterj], 3).ToString() + "\t";

if (Counterj == MatrixSize - 1) richTextBox1.Text += "|\t";

}

richTextBox1.Text += "\n\n";}

………………………………………………………..

richTextBox1.Text += "\n\nУмножим " + (Iteration + 1).ToString() + " строку на " + Math.Round(Value, 3) + " и сложим ее с " + (Row + 1).ToString() + " строкой\n\n";

for (Cell = 0; Cell < MatrixSize * 2; Cell++)

{

MatrixMembers[Row, Cell] = MatrixMembers[Row, Cell] + MatrixMembers[Iteration, Cell] * Value;}

for (Counteri = 0; Counteri < MatrixSize; Counteri++)

{richTextBox1.Text += "\t";

for (Counterj = 0; Counterj < MatrixSize * 2; Counterj++)

{richTextBox1.Text += Math.Round(MatrixMembers[Counteri, Counterj], 3).ToString() + "\t";

if (Counterj == MatrixSize - 1) richTextBox1.Text += "|\t";}

richTextBox1.Text += "\n\n";

}}}}

richTextBox1.Text += "Обратная матрица равна\n\n";

for (Counteri = 0; Counteri < MatrixSize; Counteri++)

{richTextBox1.Text += "\t";

for (Counterj = MatrixSize; Counterj < MatrixSize * 2; Counterj++)

{richTextBox1.Text += Math.Round(MatrixMembers[Counteri, Counterj], 3).ToString() + "\t";}

richTextBox1.Text += "\n\n";}}}}

else MessageBox.Show("Заполните все поля!");

}


 

Рисунок 2.37 – Процедура знаходження зворотної матриці


На рисунку 2.38 представлено процедуру закриття форми «InventMatrix».

 


private void InventMatrix _FormClosing(object sender, FormClosingEventArgs e)

{

DialogResult result = MessageBox.Show("Закрыть окно?", "Закрытие формы", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == DialogResult.No)

{

e.Cancel = true;

}

}


 

Рисунок 2.38 – Закриття форми «InventMatrix»

 

На рисунку 2.39 представлено процедуру, що викликається після закриття форми «InventMatrix» та знімає блокування її повторного виклику, що застосовується для уникнення відкриття безлічі дублікатів форми.

 

private void InventMatrix_FormClosed(object sender, FormClosedEventArgs e)

{

MainMenu.Control[4] = 0;

}

 

Рисунок 2.39 – Процедура, що знімає заборону на повторне відкриття форми «Determinant»


 

 

2.3 Елементи інтерфейсу програмного продукту

 

 

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

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

Головною формою програми «Есть решение!», а за сумісністю і головним меню, є початкова форма (рисунок 2.1). З неї користувач запускає необхідні йому модулі (для вирішення систем лінійних рівнянь, виконання операцій над матрицями або отримання інформації про програму). Так як всі модулі програми мають ідентичний інтерфейс, буде розібрано роботу з одним модулем – модулем для вирішення систем лінійних рівнянь методом Гауса.

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

 

 

Рисунок 2.40 – Модуль «Метод Гауса» після завантаження

 

Для початку роботи користувачу необхідно обрати розмірність матриці. Для цього необхідно клікнути на компонент з випадаючим списком з написом «Размерность матрицы» та у випадаючому списку обрати необхідну розмірність (рисунок 2.41).

 

 

Рисунок 2.41 – Вибір розмірності матриці у випадаючому списку

 

Після вибору розмірності матриці необхідно заповнити поля з коефіцієнтами та, у випадку з модулями для рішення систем лінійних рівнянь, вільними членами (рисунок 2.42). Програма «Есть решение!» підтримує введення як цілих чисел, так і чисел з плаваючою крапкою. Поля для вводу підтримують введення цифр, коми та знака мінус.

 

 

Рисунок 2.42 – Заповнення полів для виконання обчислення

 

Після заповнення полів для отримання рішення необхідно натиснути кнопку «Решить». Після цього рішення буде виведено в поле під назвою «Решение» (рисунок 2.43).

 

 

Рисунок 2.43 – Відображення ходу рішення

Якщо користувач введе некоректні дані, наприклад букви, або двічі введе кому в числі, то програма попередить його про це відповідним повідомленням (рисунок 2.44).

 

 

Рисунок 2.44 – Повідомлення про введення некорректних даних

 

Для того, щоб зберегти результат рішення до текстового файлу, необхідно натиснути на кнопку «Сохранить» (якщо не буде даних для збереження, система сповістить про це відповідним повідомленням), у вікні, що відкриється, задати ім’я файлу, папку для його збереження, та натиснути кнопку «Сохранить» (рисинок 2.45).

 

 

Рисунок 2.45 – Збереження рішення в текстовий файл

 

Для того, щоб очистити дані, введені в полях для коефіцієнтів матриці та вільних членів, та отримані в полі для виводу рішення, необхідно натиснути кнопку «Очистить все».

Для того, щоб отримати довідкову інформацію, необхідно натиснути на кнопку «Справка», після чого відкриється довідкова інформація про поточний тип задачі в форматі файлу «.rtf», для чого потребується встановлена програма «WordPad» або «Microsoft Office Word».

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


 

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

3.1 Розрахунок капітальних витрат на створення програмного продукту

 

 

Капітальні витрати «К» на створення програмного виробу (ПВ) мають одноразовий характері розраховуються за формулою (3.1):

 

К = К1 + К2 + К3,

(3.1)

 

де К1 – витрати на обладнання з урахуванням транспортно-заготівельних витрат, грн.;

К2 – витрати на ліцензійні програмні продукти, грн.;

К3 – витрати на створення програмного продукту, грн.

Примітка: Транспортно-заготівельні витрати прийняти 1– 5 % від вартості обладнання.

Розрахунок витрат на створення ПВ – К3 розраховуються за формулою (3.2):

 

К3 = З1 + З2 + З3,

(3.2)

 

де З1– витрати праці програмістів-розробників, грн.;

З2– витрати комп'ютерного часу, грн.;

З3– непрямі (накладні) витрати, грн.

Витрати праці програмістів-розробників «З1» розраховуються за формулою (3.3):

 

,

(3.3)

 

де Nk – кількість розробників k-й професії, чол;

rk – годинна зарплата розробника k-й професії, грн.;

Tk – трудомісткість розробки для k-го розробника (кількість витраченого розробником часу), годин;

Кзар – коефіцієнт нарахувань на фонд заробітної плати, (1,2 – 1,45).

Годинна зарплата розробника «rk» визначається за формулою (3.4):

 

,

(3.4)

 

де Мк – місячна зарплата-го розробника, грн.;

Fkмес – місячний фонд часу його роботи, год.

Трудомісткість розробки включає час виконання робіт, представлених в таблиці 3.1.

 

Таблиця 3.1 – Трудомісткість робіт

 

Стадії розробки

Етапи робіт

Зміст робіт

     

Технічне завдання

11.05.15 – 17.05.15

Обґрунтування необхідності розробки програми

Програма «Есть решение!» призначена для спрощення навчання багатьом студентам цієї країни. Дана програма дозволяє швидко, а головне ефективно, навчитися розв’язувати системи лінійних рівнянь різними найпопулярнішими методами та виконувати операції над матрицями. Це досягається завдяки простому та зрозумілому інтерфейсу програми, через який користувач обирає тип задачі, яку йому необхідно вирішити, потім вводить параметри для обчислення та через один клік миші отримує готове покрокове рішення задачі, яке можна потім зберегти на жорсткий диск або змінний носій у вигляді документу. Також користувач може скористатися довідковою інформацією, що міститься у програмі, та більш детально ознайомитися з певним методом вирішення задач.

Науково-дослідні роботи

Розробка і затвердження технічного завдання

Ескізний проект

18.05.15 – 24.05.15

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

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

Затвердження ескізного проекту

Технічний проект

25.05.15 – 31.05.15

Розробка технічного проекту

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

Затвердження технічного проекту

 


 

Продовження таблиці 3.1

 

     

Робочий проект

01.06.15 – 07.06.15

Розробка програми

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

Розробка програмної документації

Випробування програми

Впровадження

08.06.15 – 10.06.15

Підготовка і передача програми

Для надання інформації щодо використання програми було створено керівництво користувача, в якому детально описуються принципи та особливості роботи з програмою «Есть решение!»

 

Розрахунок трудомісткість розробки «Tk» для кожного розробника здійснюється за формулою (3.5):

 

Tk= t1k + t2k + t3k + t4k + t5k ,

(3.5)

 

де t1k, t2k, t3k, t4k, t5k – час, витрачений на кожному етапі розробки k-м розробником, год.

Трудомісткість розробки включає час виконання робіт, представлених в таблиці 3.2.

 

Таблиця 3.2 – Загальна тривалість етапів роботи

 

Етапи робіт

Трудомісткість, годин

Технічне завдання

 

Ескізний проект

 

Технічний проект

 

Робочий проект

 

Впровадження

 

Разом:

 

 

Витрати комп'ютерного часу «З2» розраховуються за формулою (3.6):

 

З2 = Ск·F0 ,

(3.6)

 

де Ск – собівартість комп'ютерного години, грн.;

F0 – витрати комп'ютерного часу на розробку програми, год.

Собівартість комп'ютерного години «СК» розраховується за формулою (3.7):

 

СК= СА + СЭ + СТО,

(3.7)

 

де СА – амортизаційні відрахування, грн.;

СЕ – енерговитрати, грн.;

СТО – витрати на техобслуговування, грн.

Амортизаційні відрахування «СА» розраховуються за формулою (3..8):

 

СА = = СiNАi/ Fгоді,

(3.8)

 

де Сі – балансова вартість i-го обладнання, яке використовується для створення ПК, грн.;

NА – річна норма амортизації i-го устаткування, частки;

Fгод – річний фонд часу роботи i-го устаткування, год.

Енерговитрати «СЭ» розраховуються за формулою (3.9):

 

СЭ= РЭ·СкВт,

(3.9)

 

де РЭ – витрата електроенергії, споживаної комп'ютером;

СкВт – вартість 1 кВт/ч електроенергії, грн.

Витрати на технічне обслуговування «СТО» розраховуються за формулою (3.10):

 

СТО= rТО·l,

(3.10)

 

де гТО – годинна зарплата працівника обслуговуючого устаткування, грн.;

λ – періодичність обслуговування.

Періодичність обслуговування «λ» розраховується за формулою (3.11):

 

,

(3.11)

 

де Nто – кількість разів обслуговування обладнання в місяць;

Fмес – місячний фонд часу роботи устаткування, год.

Непрямі витрати «З3» визначаються за формулою (3.12):

 

З3 = С1 + С2 + С3,

(3.12)

де С1 – витрати на утримання приміщень, грн.;

С2 – витрати на освітлення, опалення охорону і прибирання приміщень, грн.;

C3 – інші витрати (вартість різних матеріалів, використовуваних при розробці проекту, послуги сторонніх організацій тощо)

За формулою (3.5) визначаємо розрахунок трудомісткість розробки:

Tk=49+89+79+119+59=395

За формулою (3.4) визначаємо годинну зарплата розробника:

= 2456 / 23 8 = 13,35

За формулою (3.3) визначаємо витрати праці програмістів-розробників:

З1 = 1 13,35 395 1,3 = 6855,23

За формулою (3.11) визначаємо періодичність обслуговування:

= 1 / (8 23) = 0,005

За формулою (3.10) визначаємо витрати на технічне обслуговування:

СТО = 12,75 0,005 = 0,064

За формулою (3.9) визначаємо енерговитрати:

СЭ = 1,075 0,41 = 0,44

За формулою (3.8) визначаємо амортизаційні відрахування:

СА = (5350 0,55) / (23 8 12) = 1,33

За формулою (3.7) визначаємо собівартість комп'ютерного часу:

СК = 1,33 + 0,44 + 0,064 = 1,834

За формулою (3.6) визначаємо витрати комп'ютерного часу:

З2 = 1,834 395 = 724,43

За формулою (3.12) визначаємо непрямі витрати:

З3 = 1716,48 + 171,65 + 6420 = 8308,13

За формулою (3.2) визначаємо розрахунок витрат на створення ПВ:

К3 = 6855,23 + 724,43 + 8308,13 = 15887,79

За формулою (3.1) визначаємо капітальні витрати «К» на створення програмного виробу:

К = (5350 + 107) + 1832 + 15887,79 = 23176,79

 

 

3.2 Розрахунок річної економії поточних витрат

 

 

Витрати на розробку проекту «Вр» обчислюються за формулою (3.13):

 

,

(3.13)

 

де Тр – трудомісткість i-го розрахунку, год.;

Ср – годинна собівартість i-го розрахунку, грн.;

n – число експериментів, зроблених за рік, шт.

Собівартість проектування «Ср» обчислюється за формулою (3.14):

 

,

(3.14)

 

де Ср1 – витрати на оплату праці персоналу, грн.;

Ср2 – непрямі витрати, грн.

Витрати на оплату праці персоналу «Ср1» розраховуються за формулою (3.15):

 

,

(3.15)

 

де Nk – кількість працівників k-й професії, які беруть участь у розробці проекту;

Rk – годинна зарплата одного працівника k-й професії, грн.;

кзар – коефіцієнт нарахувань на фонд зарплати;

k – кількість різних професій.

Годинна зарплата працівника «Rk» розраховується наступним чином за формулою (3.16):

 

,

(3.16)

 

де Mk – місячний оклад обліковця, грн.;

Fkm – місячний фонд часу роботи працівників, год.

Непрямі витрати «Ср2» визначаються за формулою (3.17):

 

,

(3.17)

 

де С1 – витрати на утримання приміщень за місячний фонд часу роботи, грн.;

С2 – витрати на освітлення, опалення охорону і прибирання приміщень за місячний фонд часу роботи, грн.;

C3 – інші витрати (вартість різних матеріалів, використовуваних при розробці проекту, послуги сторонніх організацій тощо)

За формулою (3.16) визначаємо годинну зарплату працівника:

За формулою (3.15) визначаємо витрати на оплату праці персоналу:

За формулою (3.17) визначаємо непрямі витрати:

За формулою (3.14) визначаємо собівартість проектування:

За формулою (3.13) визначаємо витрати на розробку проекту:

У разі створення одного ПВ економічний ефект «Еф» визначається за формулою (3.18):

 

,

(3.18)

 

 

де Вр – поточні витрати, грн.;

KЗатр – капітальні витрати на створення програмного виробу, грн;

Ен – нормативний коефіцієнт економічної ефективності капіталовкладень, 0,15 частки.

Коефіцієнт економічної ефективності капіталовкладень «ЕР» показує величину річного приросту прибутку або зниження собівартості в результаті використання програмного виробу на одну гривню одноразових витрат (капіталовкладень), розраховується за формулою (3.19):

 

,

(3.19)

 

де Вр – поточні витрати, грн.;

KЗатр – капітальні витрати на створення програмного виробу, грн;

Примітка: Проект вважається ефективним, якщо виконується нерівність, яка розраховується за формулою (3.20):

 

(3.20)

 

Термін окупності капіталовкладень «ТР»– період часу, протягом якого окупаються витрати на ПВ розраховується за формулою (3.21):

 

(3.21)

 

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

­ поточні витрати при впровадженні підсистеми проектування складуть 17744,23 грн;

­ економічний ефект складає 14267,71 грн;

­ термін окупності капіталовкладень в ПК складе 1 рік і 4 місяці.


 

4 РОЗДІЛ З ОХОРОНИ ПРАЦІ

4.1 Теоретична частина

4.1.1 Вимоги до освітлення

 

 

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


Дата добавления: 2015-09-28; просмотров: 17 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.066 сек.)







<== предыдущая лекция | следующая лекция ==>