Наименование статей затрат
|
Сумма, руб.
|
Стоимость материалов
|
5,6
|
Стоимость машинного времени
|
36,41
|
Расходы на оплату труда
|
552,63
|
Накладные расходы
|
52,03
|
Полная себестоимость разработанного ПО
|
646,67
|
Таким образом, полная себестоимость разработанного программного продукта
по произведенным расчетам составляет 646,67 рублей.
Проанализировав эти сведения, было принято решение о разработке
собственного узкоспециализированного программного обеспечения для автоматизации
расчета себестоимости и длительности разработки ПО. Это позволит экономить
средства в сравнении с покупным ПО.
6. СВЕДЕНИЯ ПО ОХРАНЕ ТРУДА
Правовое регулирование деятельности по обеспечению
пожарной безопасности. Деятельность по обеспечению пожарной безопасности
осуществляется в соответствии с настоящим законом и другими актами
законодательства Республики Беларусь, в том числе техническими нормативными
правовыми актами системы противопожарного нормирования и стандартизации,
действующими на территории Республики Беларусь [13].
Концентрация паров бензина в воздухе до 0,3% уже через 10 - 15 мин
вызывает головокружение, а концентрация 35 - 40 мг на 1 л воздуха при вдыхании
в течение 5 - 10 мин может вызвать смертельное отравление.
Систематическая работа в среде с высокой концентрацией паров
нефтепродуктов вызывает хроническое отравление организма, характеризующееся
головными болями, головокружением и недомоганием. Предельно допустимая
концентрация паров нефтепродуктов в рабочих помещениях и на рабочих площадках
не должна превышать следующих величин, указанных в мг на 1 л воздуха:
- ацетон - 0,2;
- бензин, керосин - 0,3;
- бензол - 0,05;
- тетраэтилсвинец - 0,0001.
При обращении с нефтепродуктами нельзя допускать появления аэрозоля
(тумана) и следует остерегаться попадания на кожу и в дыхательные пути.
Запрещается засасывать этилированный бензин ртом через шланг. В случае
проникновения бензина в желудок следует вызвать рвоту и промыть желудок содовым
раствором. На заправочном посту должен быть умывальник, бидон с керосином, мыло
и чистая вата.
При хранении и замерах нефтепродуктов необходимо соблюдать следующие меры
предосторожности:
а) при открывании люка резервуара или цистерны следует находиться с
подветренной стороны, чтобы избежать вдыхания нефтепродуктов;
б) замерять уровень нефтепродукта в резервуарах только специальными
измерительными приборами, не опуская при этом голову в люк;
в) при сливо-наливных операциях необходимо надежно закреплять на
месте транспортные средства, предназначенные для сливания или налива
нефтепродуктов;
г) при включении перекачивающих средств убедиться в том, что все
механизмы и резервуары, участвующие в сливных и наливных операциях заземлены;
д) если при заполнении емкости наконечник сливного рукава не достает
до уровня нефтепродукта, то скорость заполнения должна быть минимальной до тех
пор, пока наконечник не погрузиться в нефтепродукт;
е) не допускать переполнения емкости, по окончании наливные трубы,
шланги и рукава выводить из наливной горловины только после полного слива из
них нефтепродуктов;
ж) люки и пробки закрывать плотно, но без ударов, применяя при этом
специальные ключи [14].
Работы по осмотру и зачистке емкостей и резервуаров особенно опасны,
поэтому к ним допускаются только мужчины старше 18 лет, прошедшие медицинский
осмотр. Работу должна проводить бригада в составе не менее 3 человек при
одновременной обработке только одного резервуара.
Рабочий внутри резервуара должен работать в спецодежде и шланговом
противогазе, между ним и находящимся у горловины резервуара должна быть
согласованная сигнализация.
Время пребывания рабочего внутри резервуара в шланговом противогазе не
должно превышать 15 мин с последующим отдыхом на свежем воздухе не менее 15
мин, общее время работы внутри резервуара не должно быть более 2 часов. На
рабочего, спускающегося в резервуар, обязательно надевают спасательный пояс, к
которому крепят по две спасательные веревки. Запрещается спускаться внутри
резервуара, если уровень нефтепродуктов в нем более 5 см и температура воздуха
выше 40°С.
Первичные средства пожаротушения - это инструменты и материалы,
применяемые для огнетушения, эффективные в начальной стадии возгорания. Важно
понимать, что противостоять разыгравшейся огненной стихии посредством
применения ПСП опасно для жизни. Эти средства могут быть использованы людьми,
не обладающими профессиональными знаниями борьбы с огнем, до прибытия на объект
пожарной бригады. ПСП размещают в местах, специально для этого оборудованных -
в пожарных шкафах, на пожарных стендах и пожарных щитах [15].
Виды первичных средств пожаротушения:
Вода - самое популярное средство борьбы с огнем. Когда вода подается на
очаг возгорания, часть не испарившейся жидкости впитывается и снижает
температуру горящего объекта. Растекаясь по полу, вода препятствует возгоранию
не охваченных пламенем частей интерьера. Поскольку вода является
электропроводником, она не пригодна для тушения оборудования и сетей, которые
находятся под напряжением. Категорически запрещается лить воду на
легковоспламеняющиеся жидкости. Такие жидкости образуют на поверхности воды
маслянистые пятна, и, растекаясь вместе с водой, продолжают гореть на ее
поверхности;
Песок и земля - вещества, которые эффективно борются с воспламенением
горючих жидкостей (бензин, масла, смолы, керосин и др.) Насыпая землю по
периметру горящей зоны, пытайтесь окружить место возгорания и воспрепятствовать
растеканию горящей жидкости. После этого следует забросать горящую поверхность
слоем земли, которая перекроет доступ кислорода, необходимого для процесса
горения, и впитает жидкость.
Кошма, металлические мелко ячеечные сетки, асбестовые полотна -
предназначены для того, чтобы оградить очаг возгорания от доступа кислорода.
Это достаточно эффективно, если очаг возгорания имеет небольшую площадь;
Пожарный ручной инструмент и пожарный инвентарь. На пожарных стендах и
пожарных щитах располагается пожарный инструмент - ломы, лопаты, багры, крюки,
топоры и пр. Пожарный инвентарь, как правило, устанавливается рядом с пожарным
щитом или стендом - это может быть ящик с песком, бочка или чан с водой и др.
Пожарный инструмент используется для транспортировки огнетушащих веществ в зону
возгорания, а также для разбора тлеющих конструкций, вскрытия дверей и пр.
Кран пожарный - применяются в комплекте с пожарным стволом и пожарным
рукавом на внутреннем противопожарном водоснабжении. Может использоваться как
для тушения небольшого пожара, так и для серьезного противостояния огню в
качестве дополнительного средства пожаротушения. Располагаются пожарные краны в
пожарных шкафах. Они просты в применении и не требуют специальных навыков и
умений. При установлении факта возгорания, необходимо открыть шкаф, соединить
последовательно пожарный ствол, пожарный рукав и кран. Повернуть вентиль крана
и приступить непосредственно к тушению пожара;
Огнетушитель - стационарное или ручное устройство, предназначенное для
пожаротушения путем выброса запасенного огнетушащего состава. При введении
огнетушителя в активное состояние выпускается пожар подавляющее вещество,
которое под большим давлением выходит из сопла. Этим пожар подавляющим
веществом может быть вода, пена, порошковые или газовые химические соединения.
Согласно нормам пожарной безопасности, все производственные помещения
предприятий, расположенных на территории РБ, должны быть оснащены
огнетушителями. Требование об обязательном наличии огнетушителя в автомобильном
транспорте есть в правилах дорожного движения многих государств мира.
Огнетушители различаются в зависимости от вида, используемого пожар
подавляющего вещества и способа его подачи, методу срабатывания и виду
пускового устройства, а также - от объема корпуса огнетушителя.
Эксплуатация ПСП на территории предприятия проводится согласно
утвержденной приказом руководителя инструкции «По содержанию и применению
средств пожаротушения», которая разрабатывается на базе Правил пожарной
безопасности. Все работники предприятия, в обязательном порядке должны ознакомиться
с положениями данной инструкции. Лица, несущие ответственность за наличие и
готовность ПСП, проводят их ежеквартальный осмотр, с занесением данных
результата осмотра в специальный журнал. Выявленные в ходе осмотра неполадки и
несоответствия должны быть оперативно устранены в кратчайшие сроки.
ЗАКЛЮЧЕНИЕ
В процессе выполнения дипломного проекта была разработана
«Автоматизированная система расчета себестоимости и длительности разработки ПО
РУП «Производственное объединение «Белоруснефть». Данный проект позволил лучше
изучить процесс расчета себестоимости программного обеспечения.
На первом этапе выполнения дипломной проекта был проведён анализ
соответствующей литературы и существующих методик расчета. Затем была
разработана информационная модель поставленной задачи, функциональная схема
программы.
В процессе написания дипломного проекта были собраны и изучены следующие
документы:
а) постановление Министерства труда и социальной защиты Республики
Беларусь от 27.06.2007 N 91 "Об утверждении укрупненных норм затрат труда
на разработку программного обеспечения"
б) методика расчета себестоимости программного обеспечения;
в) трудовой кодекс РБ;
г) Постановление Министерства труда и социальной защиты Республики
Беларусь от 20.09.2002 №123 "Об утверждении Инструкции о порядке
применения Единой тарифной сетки работников Республики Беларусь"
Применение современных компьютеров для развития интеллектуальных систем,
оптимизации и автоматизации производства, является перспективным и позволяет
повысить интеллектуальное развитие общества, увеличить производительность труда
и облегчить выполнение повседневных задач на производстве.
Разработанное программное средство позволяет рассчитывать себестоимость и
длительность программного обеспечения, что значительно сэкономит средства
организации.
В процессе тестирования автоматизированной системы расчета ошибки не
выявлены, выбор коэффициентов и их расчёт осуществляется корректно. Выполнена
верификация выбора коэффициентов путём вычисления вручную и сравнения с
результатами программы.
Результатом работы является готовое к эксплуатации программное средство,
имеющее простой и понятный интерфейс, которое удовлетворяет все предъявленные
требования и условия.
Данное программное средство рекомендуется для использования при
возникновении вопроса приобретения или разработки программного обеспечения.
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ И
СОКРАЩЕНИЙ
В настоящей пояснительной записке применяются следующие термины,
обозначения и сокращения.
РУП - Республиканское Унитарное Предприятие.
БД - База Данных.
СУБД - Система Управления Базами Данных.
ГОСТ - межГОсударственный СТандарт.
ЕТС - Единая Тарифная Сетка.
НДС - Налог на Добавленную Стоимость.
ОС - Операционная Система.
ПК - Персональный Компьютер.
ПО - Программное Обеспечение.(Data Flow Diagram) - диаграмма потока
данных.(Integrated DEFinition) - методология функционального
моделирования.(англ. computer-aided software engineering) - набор инструментов
и методов программной инженерии для проектирования программного обеспечения,
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Фатрелл, Р.Т. Управление программными проектами /
Роберт Т. Фатрелл, Дональд Ф. Шафер, Линда И. Шафер - М. : Вильямс, 2004. - 692
с.
2. Расчет себестоимости [Электронный ресурс] /
Планирование затрат на производство работ и услуг, автоматизация
калькулирования и финансовых расчетов. - Режим доступа: #"896355.files/image053.jpg">
ПРИЛОЖЕНИЕ Б
DFD диаграмма
ПРИЛОЖЕНИЕ В
Функциональная модель программы
ПРИЛОЖЕНИЕ В
Листинг программы
Текст файла Form1.cs:
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form1 : Form
{obshsum = 0;per = 0;sebest = 0;flag = 0;Form1()
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select Название, Стоимость,
Длительность, Руководитель_проекта, Дата_расчета FROM [Расчеты]";comm =
new OleDbCommand(commText, cn);table = new DataTable();adapter = new
OleDbDataAdapter(comm);.Fill(table);.DataSource = table;
}.Close();cn1 = new OleDbConnection();cnstr1 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource = @"Dip.mdb";.ConnectionString
= cnstr1.ToString();(cn1.State == ConnectionState.Closed)
{.Open();commText1 = "Select Объем_ПО, Первая,
Вторая, Третья FROM [Нормативная_трудоемкость]";comm1 = new
OleDbCommand(commText1, cn1);table1 = new DataTable();adapter1 = new OleDbDataAdapter(comm1);.Fill(table1);.DataSource
= table1;
}.Close();cn2 = new OleDbConnection();cnstr2 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr2.ToString();(cn2.State == ConnectionState.Closed)
}.Close();cn3 = new OleDbConnection();cnstr3 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr3.ToString();(cn3.State ==
ConnectionState.Closed)
{.Open();commText3 = "Select Ктз_Кэп_Ктп, Крп, Квн
FROM [Значение_коэффициентов_с_CASE]";comm3 = new OleDbCommand(commText3,
cn3);table3 = new DataTable();adapter3 = new
OleDbDataAdapter(comm3);.Fill(table3);.DataSource = table3;
}.Close();cn4 = new OleDbConnection();cnstr4 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr4.ToString();(cn4.State ==
ConnectionState.Closed)
{.Open();commText4 = "Select Значение FROM
[Показатели]";comm4 = new OleDbCommand(commText4, cn4);table4 = new
DataTable();adapter4 = new OleDbDataAdapter(comm4);.Fill(table4);.DataSource =
table4;
}.Close();cn5 = new OleDbConnection();cnstr5 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr5.ToString();(cn5.State ==
ConnectionState.Closed)
{.Open();commText5 = "Select Ставка1разряда FROM
[Ставка]";comm5 = new OleDbCommand(commText5, cn5);table5 = new
DataTable();adapter5 = new OleDbDataAdapter(comm5);.Fill(table5);.DataSource =
table5;
}.Close();
}void button4_Click(object sender, EventArgs e)
{sum = 0;sum1 = 0;del = 0;(flag == 0)
{.Visible = true;(textBox5.Text == "А"
&& radioButton2.Checked == true)
{.Rows[0].Cells[1].Value =
dataGridView4.Rows[0].Cells[0].Value;.Rows[0].Cells[2].Value =
dataGridView4.Rows[0].Cells[1].Value;.Rows[0].Cells[3].Value =
dataGridView4.Rows[0].Cells[2].Value;.Rows[0].Cells[4].Value =
dataGridView4.Rows[0].Cells[3].Value;.Rows[0].Cells[5].Value =
dataGridView4.Rows[0].Cells[4].Value;(int i = 0; i < dataGridView4.ColumnCount;
i++)
{+=
Convert.ToDouble(dataGridView4.Rows[0].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
{(textBox5.Text == "Б" &&
radioButton2.Checked == true)
{.Rows[0].Cells[1].Value =
dataGridView4.Rows[1].Cells[0].Value;.Rows[0].Cells[2].Value =
dataGridView4.Rows[1].Cells[1].Value;.Rows[0].Cells[3].Value =
dataGridView4.Rows[1].Cells[2].Value;.Rows[0].Cells[4].Value =
dataGridView4.Rows[1].Cells[3].Value;.Rows[0].Cells[5].Value =
dataGridView4.Rows[1].Cells[4].Value;(int i = 0; i <
dataGridView4.ColumnCount; i++)
{+=
Convert.ToDouble(dataGridView4.Rows[1].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
{(textBox5.Text == "В" &&
radioButton2.Checked == true)
{.Rows[0].Cells[1].Value =
dataGridView4.Rows[2].Cells[0].Value;.Rows[0].Cells[2].Value =
dataGridView4.Rows[2].Cells[1].Value;.Rows[0].Cells[3].Value =
dataGridView4.Rows[2].Cells[2].Value;.Rows[0].Cells[4].Value =
dataGridView4.Rows[2].Cells[3].Value;.Rows[0].Cells[5].Value =
dataGridView4.Rows[2].Cells[4].Value;(int i = 0; i <
dataGridView4.ColumnCount; i++)
{+=
Convert.ToDouble(dataGridView4.Rows[2].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
{(textBox5.Text == "А" &&
radioButton1.Checked == true)
{=
Convert.ToDouble(dataGridView5.Rows[0].Cells[0].Value) / 3;.Rows[0].Cells[1].Value
= del;.Rows[0].Cells[2].Value = del;.Rows[0].Cells[3].Value =
del;.Rows[0].Cells[4].Value =
dataGridView5.Rows[0].Cells[1].Value;.Rows[0].Cells[5].Value =
dataGridView5.Rows[0].Cells[2].Value;(int i = 1; i < dataGridView5.ColumnCount;
i++)
{+=
Convert.ToDouble(dataGridView5.Rows[0].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
{(textBox5.Text == "Б" &&
radioButton1.Checked == true)
{=
Convert.ToDouble(dataGridView5.Rows[1].Cells[0].Value) /
3;.Rows[0].Cells[1].Value = del;.Rows[0].Cells[2].Value =
del;.Rows[0].Cells[3].Value = del;.Rows[0].Cells[4].Value =
dataGridView5.Rows[1].Cells[1].Value;.Rows[0].Cells[5].Value =
dataGridView5.Rows[1].Cells[2].Value;(int i = 1; i <
dataGridView5.ColumnCount; i++)
{+= Convert.ToDouble(dataGridView1.Rows[1].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
{(textBox5.Text == "В" &&
radioButton1.Checked == true)
{=
Convert.ToDouble(dataGridView5.Rows[2].Cells[0].Value) /
3;.Rows[0].Cells[1].Value = del;.Rows[0].Cells[2].Value = del;.Rows[0].Cells[3].Value
= del;.Rows[0].Cells[4].Value =
dataGridView5.Rows[2].Cells[1].Value;.Rows[0].Cells[5].Value =
dataGridView5.Rows[2].Cells[2].Value;(int i = 1; i <
dataGridView5.ColumnCount; i++)
{+=
Convert.ToDouble(dataGridView5.Rows[2].Cells[i].Value);
}.Rows[0].Cells[6].Value = sum;
}
}
}
}
}
}
{.Rows[1].Cells[1].Value =
Math.Round((Convert.ToDouble(textBox4.Text) *
(Convert.ToDouble(dataGridView1.Rows[0].Cells[1].Value))),
2);.Rows[1].Cells[2].Value = Math.Round((Convert.ToDouble(textBox4.Text) *
(Convert.ToDouble(dataGridView1.Rows[0].Cells[2].Value))),
2);.Rows[1].Cells[3].Value = Math.Round((Convert.ToDouble(textBox4.Text) *
(Convert.ToDouble(dataGridView1.Rows[0].Cells[3].Value))),
2);.Rows[1].Cells[4].Value = Math.Round((Convert.ToDouble(textBox4.Text) *
(Convert.ToDouble(dataGridView1.Rows[0].Cells[4].Value))),
0);.Rows[1].Cells[5].Value = Math.Round((Convert.ToDouble(textBox4.Text) *
(Convert.ToDouble(dataGridView1.Rows[0].Cells[5].Value))), 0);(int i = 1; i
< dataGridView1.ColumnCount; i++)
{+= Convert.ToDouble(dataGridView1.Rows[1].Cells[i].Value);
}.Rows[1].Cells[6].Value =
Math.Round(sum1,0);.Rows[2].Cells[1].Value =
textBox6.Text;.Rows[2].Cells[2].Value = textBox6.Text;.Rows[2].Cells[3].Value =
textBox6.Text;.Rows[2].Cells[4].Value = textBox6.Text;.Rows[2].Cells[5].Value =
textBox6.Text;.Rows[2].Cells[6].Value = "-";.Rows[4].Cells[1].Value =
"-";.Rows[4].Cells[2].Value = "-";.Rows[4].Cells[3].Value =
"-";.Rows[4].Cells[4].Value = textBox7.Text; ;.Rows[4].Cells[5].Value
= "-";.Rows[4].Cells[6].Value = "-";.Rows[5].Cells[1].Value
= textBox8.Text;.Rows[5].Cells[2].Value = textBox8.Text;.Rows[5].Cells[3].Value
= textBox8.Text;.Rows[5].Cells[4].Value = textBox8.Text;.Rows[5].Cells[5].Value
= textBox8.Text;.Rows[5].Cells[6].Value = "-";(flag == 0)
{.Rows[6].Cells[1].Value =
Math.Round(Convert.ToDouble(dataGridView1.Rows[1].Cells[1].Value) *
Convert.ToDouble(dataGridView1.Rows[5].Cells[1].Value) *
Convert.ToDouble(dataGridView1.Rows[2].Cells[1].Value) *
Convert.ToDouble(dataGridView1.Rows[3].Cells[1].Value),
0);.Rows[6].Cells[2].Value =
Math.Round(Convert.ToDouble(dataGridView1.Rows[1].Cells[2].Value) *
Convert.ToDouble(dataGridView1.Rows[2].Cells[2].Value) *
Convert.ToDouble(dataGridView1.Rows[3].Cells[2].Value) *
Convert.ToDouble(dataGridView1.Rows[5].Cells[2].Value),
0);.Rows[6].Cells[3].Value =
Math.Round(Convert.ToDouble(dataGridView1.Rows[1].Cells[3].Value) *
Convert.ToDouble(dataGridView1.Rows[2].Cells[3].Value) *
Convert.ToDouble(dataGridView1.Rows[3].Cells[3].Value) *
Convert.ToDouble(dataGridView1.Rows[5].Cells[3].Value),
0);.Rows[6].Cells[4].Value =
Math.Round(Convert.ToDouble(dataGridView1.Rows[1].Cells[4].Value) *
Convert.ToDouble(dataGridView1.Rows[2].Cells[4].Value) *
Convert.ToDouble(dataGridView1.Rows[3].Cells[4].Value) * Convert.ToDouble(dataGridView1.Rows[4].Cells[4].Value)
* Convert.ToDouble(dataGridView1.Rows[5].Cells[4].Value),
0);.Rows[6].Cells[5].Value =
Math.Round(Convert.ToDouble(dataGridView1.Rows[1].Cells[5].Value) *
Convert.ToDouble(dataGridView1.Rows[2].Cells[5].Value) * Convert.ToDouble(dataGridView1.Rows[3].Cells[5].Value)
* Convert.ToDouble(dataGridView1.Rows[5].Cells[5].Value), 0);(int i = 1; i <
dataGridView1.ColumnCount; i++)
{+=
Convert.ToDouble(dataGridView1.Rows[6].Cells[i].Value);
}
.Rows[6].Cells[6].Value = obshsum;= 1;
}.Visible = true;x = "ТЗ ЭП ТП РП ВН";y =
Convert.ToDouble(dataGridView1.Rows[6].Cells[1].Value);.Series[0].Points.AddXY(x,
y);y1 =
Convert.ToDouble(dataGridView1.Rows[6].Cells[2].Value);.Series[1].Points.AddXY(x,
y1);y2 = Convert.ToDouble(dataGridView1.Rows[6].Cells[3].Value);.Series[2].Points.AddXY(x,
y2);y3 =
Convert.ToDouble(dataGridView1.Rows[6].Cells[4].Value);.Series[3].Points.AddXY(x,
y3);y4 =
Convert.ToDouble(dataGridView1.Rows[6].Cells[5].Value);.Series[4].Points.AddXY(x,
y4);= 1;.Size = new Size(1091, 555);.Size = new Size(1055, 500);.Size = new
Size(1050, 495);.Visible = false;.Visible = true;.Visible = true;.Visible =
true;.Visible = true;.Visible = true;.Visible = true;.Visible = true;.Visible =
true;.Visible = true;.Visible = true;
}
{.Show("Не хватает параметров!",
"Ошибка!");
}
}
}void textBox1_TextChanged(object sender, EventArgs e)
{form2 = new Form2();.ShowDialog();.Text =
form2.textBox1.Text;
{yt = Int32.Parse(textBox1.Text);.Text = (yt *
0.10).ToString();
}
{.Show("Нужно передать параметр!",
"Ошибка!");
}
}void textBox3_Click(object sender, EventArgs e)
{form4 = new Form4();.ShowDialog();(form4.DialogResult
== DialogResult.OK).Text = form4.kat();temp = 0,= double.MaxValue;a = 0;b = 0;
{(int i = 0; i < dataGridView3.RowCount; i++)
{= Math.Abs(Convert.ToDouble(dataGridView3.Rows[i].Cells[0].Value)
- Convert.ToDouble(textBox2.Text));(a < t)
{=
Convert.ToDouble(dataGridView3.Rows[i].Cells[0].Value);= a;= i;
}
}
}
{.Show("Нет предыдущего параметра",
"Ошибка!");
}
{(textBox3.Text == "Первая")
{.Text =
(dataGridView3.Rows[b].Cells[1].Value.ToString());
}
{(textBox3.Text == "Вторая")
{.Text =
(dataGridView3.Rows[b].Cells[2].Value.ToString());
}
{(textBox3.Text == "Третья")
{.Text =
(dataGridView3.Rows[b].Cells[3].Value.ToString());
}
}
}
}
{.Show("Нет такого параметра!",
"Ошибка!");
}.Enabled = true;
}void textBox5_Click(object sender, EventArgs e)
{form5 = new Form5();.ShowDialog();(form5.DialogResult
== DialogResult.OK)
{.Rows.Add(7);.Rows[0].Cells[0].Value =
"Коэффициенты удельных весов трудоемкости стадий разработки ПО (Ктз, Кэп,
Ктп, Крп, Квн) ";.Rows[1].Cells[0].Value = "Распределение нормативной
уточненной трудоемкости ПО по стадиям, чел.-дн.";.Rows[2].Cells[0].Value =
"Коэффициент повышения сложности ПО (Кс)";.Rows[3].Cells[0].Value =
"Коэффициент, учитывающий новизну ПО (Кн)";.Rows[4].Cells[0].Value =
"Коэффициент, учитывающий степень использования стандартных модулей
(Кт)";.Rows[5].Cells[0].Value = "Коэффициент, учитывающий средства
разработки ПО (Кур)";.Rows[6].Cells[0].Value = "Распределение
скорректированной (с учетом Кс,Кн,Кт,Кур) Трудоемкости ПО по стадиям,
чел.-дн.";.Rows[3].Cells[1].Value = form5.zn();.Rows[3].Cells[2].Value =
form5.zn();.Rows[3].Cells[3].Value = form5.zn();.Rows[3].Cells[4].Value =
form5.zn();.Rows[3].Cells[5].Value = form5.zn();.Rows[3].Cells[6].Value =
"-";.Text = form5.Kateg();
}(textBox5.Text == "")
{.Enabled = false;.Enabled = false;
}
{.Enabled = true;.Enabled = true;
}.Checked = false;.Checked = false;
}void radioButton1_CheckedChanged(object sender,
EventArgs e)
{(radioButton1.Checked == true || radioButton2.Checked
== true)
{.Enabled = true;
}
}void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{.RowTemplate.DefaultCellStyle.WrapMode =
System.Windows.Forms.DataGridViewTriState.True;
}void button1_Click_1(object sender, EventArgs e)
{.Rows.Add(9);.Rows[0].Cells[0].Value = "Балансовая
стоимость компьютера";.Rows[1].Cells[0].Value = "Мощность
потребляемая компьютером";.Rows[2].Cells[0].Value = "Полезный фонд
времени работы компьютера за год";.Rows[3].Cells[0].Value =
"Стоимость 1квт/час";.Rows[4].Cells[0].Value = "Площадь на 1
рабочее место";.Rows[5].Cells[0].Value = "Стоимость 1м2
производственной площади";.Rows[6].Cells[0].Value = "Норма амортизации
для оборудования";.Rows[7].Cells[0].Value = "Норма амортизации для
зданий";.Rows[8].Cells[0].Value = "Отчисления на текущий ремонт
оборудования (в % от балансовой стоимости)";.Rows[0].Cells[1].Value =
"БК";.Rows[1].Cells[1].Value = "МК";.Rows[2].Cells[1].Value
= "FК";.Rows[3].Cells[1].Value =
"C";.Rows[4].Cells[1].Value = "Sру";.Rows[5].Cells[1].Value
= "Спл";.Rows[6].Cells[1].Value =
"Нао";.Rows[7].Cells[1].Value =
"Напл";.Rows[8].Cells[1].Value =
"РО";.Rows[0].Cells[2].Value = "Рубль";.Rows[1].Cells[2].Value
= "кВт";.Rows[2].Cells[2].Value =
"Дней";.Rows[3].Cells[2].Value =
"Рубль";.Rows[4].Cells[2].Value =
"М2";.Rows[5].Cells[2].Value =
"Рубль";.Rows[6].Cells[2].Value =
"Процент";.Rows[7].Cells[2].Value =
"Процент";.Rows[8].Cells[2].Value =
"Процент";.Rows[0].Cells[3].Value = dataGridView8.Rows[1].Cells[0].Value;.Rows[1].Cells[3].Value
= dataGridView8.Rows[2].Cells[0].Value;.Rows[2].Cells[3].Value =
dataGridView8.Rows[3].Cells[0].Value;.Rows[3].Cells[3].Value =
dataGridView8.Rows[4].Cells[0].Value;.Rows[4].Cells[3].Value = Math.Round(Convert.ToDouble(dataGridView8.Rows[7].Cells[0].Value)
/ Convert.ToDouble(dataGridView8.Rows[5].Cells[0].Value),
2);.Rows[5].Cells[3].Value =
Math.Round(Convert.ToDouble(dataGridView8.Rows[6].Cells[0].Value) /
Convert.ToDouble (dataGridView8.Rows[7].Cells[0].Value),
2);.Rows[6].Cells[3].Value =
dataGridView8.Rows[8].Cells[0].Value;.Rows[7].Cells[3].Value =
dataGridView8.Rows[9].Cells[0].Value;.Rows[8].Cells[3].Value =
dataGridView8.Rows[0].Cells[0].Value;el =0;= Math.Round(Convert.ToDouble
(dataGridView7.Rows[1].Cells[3].Value) * 192 * Convert.ToDouble(
dataGridView7.Rows[3].Cells[3].Value) * 0.80 * 1.05, 2 );.Text =
el.ToString();zap = 0;= Math.Round
(Convert.ToDouble(dataGridView7.Rows[0].Cells[3].Value) *
Convert.ToDouble(dataGridView7.Rows[6].Cells[3].Value) / 100 +
(Convert.ToDouble(dataGridView7.Rows[4].Cells[3].Value) *
Convert.ToDouble(dataGridView7.Rows[5].Cells[3].Value) *
(Convert.ToDouble(dataGridView7.Rows[7].Cells[3].Value) / 100)), 2);.Text =
zap.ToString();(obshsum > 0)
{= Math.Round((zap / Convert.ToDouble(dataGridView7.Rows[2].Cells[3].Value))
* obshsum, 2);.Text = per.ToString();
}
{.Show("Рассчитайте значения на первой вкладке для
расчета значений поля 'Аммортизационные отчисления за период
разработки!'", "Ошибка!");
}fond = 0;= Math.Round((Convert.ToDouble(
dataGridView7.Rows[0].Cells[3].Value) *
Convert.ToDouble(dataGridView7.Rows[8].Cells[3].Value))/100, 2);.Text =
fond.ToString();fondzap = 0;(obshsum > 0)
{= Math.Round(fond /
Convert.ToDouble(dataGridView7.Rows[2].Cells[3].Value) * obshsum, 2);.Text =
fondzap.ToString();
}
{.Show("Рассчитайте значения на первой вкладке
'Резервный денежный фонд за период разработки!'", "Ошибка!");
}mashvr = 0;= el + per + fondzap;.Text =
mashvr.ToString();
}void button2_Click(object sender, EventArgs e)
{zn = 0;(comboBox1.Text == "1")
{= 1.0;
}
{(comboBox1.Text == "2")
{= 1.16;
}
{(comboBox1.Text == "3")
{= 1.35;
}
{(comboBox1.Text == "4")
{= 1.57;
}
{(comboBox1.Text == "5")
{= 1.73;
}
{(comboBox1.Text == "6")
{= 1.90;
}
{(comboBox1.Text == "7")
{= 2.03;
}
{(comboBox1.Text == "8")
{= 2.17;
}
{(comboBox1.Text == "9")
{= 2.33;
}
{(comboBox1.Text == "10")
{= 2.48;
}
{(comboBox1.Text == "11")
{= 2.65;
}
{(comboBox1.Text == "12")
{= 2.84;
}
{(comboBox1.Text == "13")
{= 3.04;
}
{(comboBox1.Text == "14")
{= 3.25;
}(comboBox1.Text == "15")
{= 3.48;
}
{(comboBox1.Text == "16")
{= 3.72;
}
{(comboBox1.Text == "17")
{= 3.98;
}
{(comboBox1.Text == "18")
{= 4.26;
}
{(comboBox1.Text == "19")
{= 4.56;
}
{(comboBox1.Text == "20")
{= 4.88;
}
{(comboBox1.Text == "21")
{= 5.22;
}
{(comboBox1.Text == "22")
{= 5.59;
}
{(comboBox1.Text == "23")
{= 5.98;
}
{(comboBox1.Text == "24")
{= 6.40;
}
{(comboBox1.Text == "25")
{= 6.85;
}
else
{(comboBox1.Text == "26")
{= 7.33;
}
{(comboBox1.Text == "27")
{= 7.84;
}
{(comboBox1.Text == "28")
{= 8.39;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}tarst = 0;(comboBox1.SelectedIndex > 0)
{=
Math.Round(Convert.ToDouble(dataGridView9.Rows[0].Cells[0].Value) * zn,
2);.Text = tarst.ToString();
}
{.Show("Выберите разряд для расчета тарифной ставки!",
"Ошибка!");
}oklad = 0;(textBox15.Text != "")
{= tarst * 1.50;.Text = oklad.ToString();
}
{.Show("Выберите разряд для расчета оклада!",
"Ошибка!");
}zarpl = 0;
{(textBox16.Text != "")
{= Math.Round(((oklad * 12) /
Convert.ToDouble(dataGridView7.Rows[2].Cells[3].Value)) * obshsum,2);.Text =
zarpl.ToString();
}
{.Show("Выберите разряд для расчета заработной
платы!", "Ошибка!");
}
}
{.Show("Рассчитайте параметры на первой вкладке для
расчета заработной платы!", "Ошибка!");
}procpov = 0;(textBox18.Text != "")
{= Math.Round((Convert.ToDouble(textBox18.Text) * zarpl)
/ 100 ,2);.Text = procpov.ToString();
}
{.Show("Введите процент повышения ЗП, для расчета
дополнительной ЗП!", "Ошибка!");
}otchisl = 0;(textBox18.Text != "")
{= Math.Round(((zarpl + procpov) * 35) / 100, 2);.Text =
otchisl.ToString();
}
{.Show("Введите процент повышения ЗП, для расчета
отчислений из ЗП!", "Ошибка!");
}opltruda = 0;= Math.Round(zarpl + procpov + otchisl
,2);.Text = opltruda.ToString();naklrash = 0;(textBox22.Text != "")
{= Math.Round((Convert.ToDouble(textBox22.Text) * zarpl)
/ 100, 2);.Text = naklrash.ToString();
}
{.Show("Введите процент накладных расходов, для
расчета накладных расходов!", "Ошибка!");
}
{.Rows.Add(4);.Rows[0].Cells[0].Value = "Стоимость
машинного времени";.Rows[1].Cells[0].Value = "Расходы на оплату
труда";.Rows[2].Cells[0].Value = "Накладные
расходы";.Rows[3].Cells[0].Value = "Полная себестоимость
разрабатываемого ПО";.Rows[0].Cells[1].Value = textBox14.Text;.Rows[1].Cells[1].Value
= textBox21.Text;.Rows[2].Cells[1].Value = textBox23.Text;(int i = 0; i <
dataGridView10.RowCount; i++)
{+=
Convert.ToDouble(dataGridView10.Rows[i].Cells[1].Value);
}.Rows[3].Cells[1].Value = sebest;
}
{.Show("Введите параметры");
}
}void textBox6_TextChanged(object sender, EventArgs e)
{form6 = new Form6();.ShowDialog();.Text =
form6.Summa();
}void textBox7_TextChanged(object sender, EventArgs e)
{form7 = new Form7();.ShowDialog();(form7.DialogResult
== DialogResult.OK).Text = form7.kt();
}void textBox8_TextChanged(object sender, EventArgs e)
{form8 = new Form8();.ShowDialog();(form8.DialogResult
== DialogResult.OK).Text = form8.raz();
}
}
}
Текст файла Form2.cs:
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Расчет_себестоимости
{partial class Form2 : Form
{Form2()
{();
}void button1_Click(object sender, EventArgs e)
{r1 = radioButton1.Checked;r2 = radioButton2.Checked;r3
= radioButton3.Checked;r4 = radioButton4.Checked;form3 = new Form3(r1, r2, r3,
r4);.ShowDialog();();(form3.DialogResult == DialogResult.OK).Text =
form3.Summ();
}
}
}
Текст файла Form3.cs:
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form3 : Form
{sum = 0;Form3(bool r1, bool r2, bool r3, bool r4)
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select Наименование_функции,
Delphi FROM [Каталог_функций]";comm = new OleDbCommand(commText, cn);table
= new DataTable();adapter = new OleDbDataAdapter(comm);.Fill(table);.DataSource
= table;
}.Close();cn1 = new OleDbConnection();cnstr1 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource = @"Dip.mdb";.ConnectionString
= cnstr1.ToString();(cn1.State == ConnectionState.Closed)
{.Open();commText1 = "Select Наименование_функции,
Builder FROM [Каталог_функций]";comm1 = new OleDbCommand(commText1,
cn1);table1 = new DataTable();adapter1 = new OleDbDataAdapter(comm1);.Fill(table1);.DataSource
= table1;
}.Close();cn2 = new OleDbConnection();cnstr2 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr2.ToString();(cn2.State ==
ConnectionState.Closed)
{.Open();commText2 = "Select Наименование_функции,
Builder FROM [Каталог_функций]";comm2 = new OleDbCommand(commText2,
cn2);table2 = new DataTable();adapter1 = new
OleDbDataAdapter(comm2);.Fill(table2);.DataSource = table2;
}.Close();cn3 = new OleDbConnection();cnstr3 = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr3.ToString();(cn3.State ==
ConnectionState.Closed)
{.Open();commText3 = "Select Наименование_функции,
Visual_C FROM [Каталог_функций]";comm3 = new OleDbCommand(commText3,
cn3);table3 = new DataTable();adapter3 = new
OleDbDataAdapter(comm3);.Fill(table3);.DataSource = table3;
}.Close();cn4 = new OleDbConnection();cnstr4 = new
OleDbConnectionStringBuilder();.Provider = "Microsoft.Jet.OLEDB.4.0";.DataSource
= @"Dip.mdb";.ConnectionString = cnstr4.ToString();(cn4.State ==
ConnectionState.Closed)
{.Open();commText4 = "Select Наименование_функции,
Java FROM [Каталог_функций]";comm4 = new OleDbCommand(commText4,
cn4);table4 = new DataTable();adapter4 = new
OleDbDataAdapter(comm4);.Fill(table4);.DataSource = table4;
}.Close();(r1 == true)
{.Visible = true;.Location = new Point(12, 15);
}
{(r2 == true)
{.Visible = true;.Location = new Point(12, 15);
}
{(r3 == true)
{.Visible = true;.Location = new Point(12, 15);
}
{(r4 == true)
{.Visible = true;.Location = new Point(12, 15);
}
}
}
}
}void button1_Click(object sender, EventArgs e)
{(dataGridView1.Visible == true)
{(int i = 0; i < dataGridView1.RowCount; i++)
{(dataGridView1.Rows[i].Cells[0].Selected == true)
{.Rows.Add();(int k = 0; k < dataGridView4.RowCount;
k++)
{(dataGridView1.Rows[i].Cells[0].Value !=
dataGridView4.Rows[k].Cells[0].Value)
{.Rows[dataGridView4.RowCount - 1].Cells[0].Value =
dataGridView1.Rows[i].Cells[0].Value.ToString();.Rows[dataGridView4.RowCount -
1].Cells[1].Value = dataGridView1.Rows[i].Cells[1].Value.ToString();
}
}
}
}
}
{(dataGridView2.Visible == true)
{(int i = 0; i < dataGridView2.RowCount; i++)
{(dataGridView2.Rows[i].Cells[0].Selected == true)
{.Rows.Add();(int k = 0; k < dataGridView4.RowCount;
k++)
{(dataGridView2.Rows[i].Cells[0].Value !=
dataGridView4.Rows[k].Cells[0].Value)
{.Rows[dataGridView4.RowCount - 1].Cells[0].Value =
dataGridView2.Rows[i].Cells[0].Value.ToString();.Rows[dataGridView4.RowCount -
1].Cells[1].Value = dataGridView2.Rows[i].Cells[1].Value.ToString();
}
}
}
}
}
{(dataGridView3.Visible == true)
{(int i = 0; i < dataGridView3.RowCount; i++)
{(dataGridView3.Rows[i].Cells[0].Selected == true)
{.Rows.Add();(int k = 0; k < dataGridView4.RowCount;
k++)
{(dataGridView3.Rows[i].Cells[0].Value !=
dataGridView4.Rows[k].Cells[0].Value)
{.Rows[dataGridView4.RowCount - 1].Cells[0].Value =
dataGridView3.Rows[i].Cells[0].Value.ToString();.Rows[dataGridView4.RowCount -
1].Cells[1].Value = dataGridView3.Rows[i].Cells[1].Value.ToString();
}
}
}
}
}
{(dataGridView5.Visible == true)
{(int i = 0; i < dataGridView5.RowCount; i++)
{(dataGridView5.Rows[i].Cells[0].Selected == true)
{.Rows.Add();(int k = 0; k < dataGridView4.RowCount;
k++)
{(dataGridView5.Rows[i].Cells[0].Value !=
dataGridView5.Rows[k].Cells[0].Value)
{.Rows[dataGridView4.RowCount - 1].Cells[0].Value =
dataGridView5.Rows[i].Cells[0].Value.ToString();.Rows[dataGridView4.RowCount -
1].Cells[1].Value = dataGridView5.Rows[i].Cells[1].Value.ToString();
}
}
}
}
}
}
}
}void button2_Click(object sender, EventArgs e)
{(dataGridView1.Visible == true)
{(int i = 0; i < dataGridView4.RowCount; i++)
{(dataGridView4.Rows[i].Cells[0].Selected == true)
{.Rows.RemoveAt(i);
}
}
}
{(dataGridView2.Visible == true)
{(int i = 0; i < dataGridView4.RowCount; i++)
{(dataGridView4.Rows[i].Cells[0].Selected == true)
{.Rows.RemoveAt(i);
}
}
}
{(dataGridView3.Visible == true)
{(int i = 0; i < dataGridView4.RowCount; i++)
{(dataGridView4.Rows[i].Cells[0].Selected == true)
{.Rows.RemoveAt(i);
}
}
}
}
}
}void button3_Click(object sender, EventArgs e)
{(int i = 0; i < dataGridView4.RowCount; i++)
{+=
Convert.ToInt32(dataGridView4.Rows[i].Cells[1].Value);
}.DialogResult = DialogResult.OK;
}string Summ()
{sum.ToString();
}
}
}
Текст файла Form4.cs:
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;Расчет_себестоимости
{partial class Form4 : Form
{p;Form4()
{();
}string kat()
{(radioButton1.Checked == true)
{= "Первая";
}{(radioButton2.Checked == true)
{= "Вторая";
}
{= "Третья";
}
}p;
}void button1_Click(object sender, EventArgs e)
{.DialogResult = DialogResult.OK;
}
}
}
Текст файла Form5.cs:
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form5 : Form
{kategor;znach;Form5()
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select Категория_новизны,
Использование_на_основании_нового_типа_ПК, Использование_в_среде_новой_ОС,
Значение_Кн FROM [Коэффициент_новизны]";comm = new OleDbCommand(commText,
cn);table = new DataTable();adapter = new OleDbDataAdapter(comm);.Fill(table);.DataSource
= table;
}.Close();
}void radioButton3_CheckedChanged(object sender,
EventArgs e)
{.Enabled = false;.Enabled = false;
}void button1_Click(object sender, EventArgs e)
{(radioButton1.Checked == true &&
checkBox1.Checked == true && checkBox2.Checked == true)
{= dataGridView1.Rows[0].Cells[3].Value.ToString();=
dataGridView1.Rows[0].Cells[0].Value.ToString();
}
{(radioButton1.Checked == true &&
checkBox1.Checked == false && checkBox2.Checked == true)
{= dataGridView1.Rows[1].Cells[3].Value.ToString();=
dataGridView1.Rows[1].Cells[0].Value.ToString();
}
{(radioButton1.Checked == true &&
checkBox1.Checked == true && checkBox2.Checked == false)
{= dataGridView1.Rows[2].Cells[3].Value.ToString();=
dataGridView1.Rows[2].Cells[0].Value.ToString();
}
{(radioButton1.Checked == true &&
checkBox1.Checked == false && checkBox2.Checked == false)
{= dataGridView1.Rows[3].Cells[3].Value.ToString();=
dataGridView1.Rows[3].Cells[0].Value.ToString();
}
{(radioButton2.Checked == true &&
checkBox1.Checked == true && checkBox2.Checked == true)
{= dataGridView1.Rows[4].Cells[3].Value.ToString();=
dataGridView1.Rows[4].Cells[0].Value.ToString();
}
{(radioButton2.Checked == true &&
checkBox1.Checked == false && checkBox2.Checked == true)
{= dataGridView1.Rows[5].Cells[3].Value.ToString();=
dataGridView1.Rows[5].Cells[0].Value.ToString();
}
{(radioButton2.Checked == true &&
checkBox1.Checked == true && checkBox2.Checked == false)
{= dataGridView1.Rows[6].Cells[3].Value.ToString();=
dataGridView1.Rows[6].Cells[0].Value.ToString();
}
{(radioButton3.Checked == true)
{= dataGridView1.Rows[7].Cells[3].Value.ToString();=
dataGridView1.Rows[7].Cells[0].Value.ToString();
}
}
}
}
}
}
}
}.DialogResult = DialogResult.OK;
}void radioButton2_CheckedChanged(object sender,
EventArgs e)
{.Enabled = true;.Enabled = true;
}void radioButton1_CheckedChanged(object sender,
EventArgs e)
{.Enabled = true;.Enabled = true;
}string Kateg()
{(kategor);
}string zn()
{(znach);
}
}
}
Текст файла Form6.cs:
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form6 : Form
{sum = 0;Form6()
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select
Характеристика_повышения_сложности_ПО, Значение_Кс FROM
[Коэффициент_сложности]";comm = new OleDbCommand(commText, cn);table = new
DataTable();adapter = new OleDbDataAdapter(comm);.Fill(table);.DataSource =
table;
}.Close();
}void button1_Click(object sender, EventArgs e)
{(int i = 0; i < dataGridView1.RowCount; i++)
{(dataGridView1.Rows[i].Cells[0].Selected == true)
{.Rows.Add();(int k = 0; k < dataGridView4.RowCount;
k++)
{(dataGridView1.Rows[i].Cells[0].Value !=
dataGridView4.Rows[k].Cells[0].Value)
{.Rows[dataGridView4.RowCount - 1].Cells[0].Value =
dataGridView1.Rows[i].Cells[0].Value.ToString();.Rows[dataGridView4.RowCount -
1].Cells[1].Value = dataGridView1.Rows[i].Cells[1].Value.ToString();
}
}
}
}
}void button2_Click(object sender, EventArgs e)
{(dataGridView1.Visible == true)
{(int i = 0; i < dataGridView4.RowCount; i++)
{(dataGridView4.Rows[i].Cells[0].Selected == true)
{.Rows.RemoveAt(i);
}
}
}
}void button3_Click(object sender, EventArgs e)
{(int i = 0; i < dataGridView4.RowCount; i++)
{+= Convert.ToDouble(dataGridView4.Rows[i].Cells[1].Value);
}.DialogResult = DialogResult.OK;
}string Summa()
{(1 + sum).ToString();
}
}
}
Текст файла Form7.cs:
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form7 : Form
{s;Form7()
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider = "Microsoft.Jet.OLEDB.4.0";.DataSource
= @"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select
Степень_охвата_реализауемых_функций_ПО_стандартными_модулями, Значение_Кт FROM
[Коэффициент_использования_стандартных_модулей]";comm = new
OleDbCommand(commText, cn);table = new DataTable();adapter = new
OleDbDataAdapter(comm);.Fill(table);.DataSource =
table;.Columns["Значение_Кт"].Visible = false;
}.Close();
}void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{(int i = 0; i < dataGridView1.RowCount; i++)
{(dataGridView1.Rows[i].Cells[0].Selected == true)
{= dataGridView1.Rows[i].Cells[1].Value.ToString();
}
}.DialogResult = DialogResult.OK;
}string kt ()
{(s);
}
}
}
Текст файла Form8.cs:
using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;System.Data.OleDb;System.IO;System.Diagnostics;Расчет_себестоимости
{partial class Form8 : Form
{kof;Form8()
{();cn = new OleDbConnection();cnstr = new
OleDbConnectionStringBuilder();.Provider =
"Microsoft.Jet.OLEDB.4.0";.DataSource =
@"Dip.mdb";.ConnectionString = cnstr.ToString();(cn.State ==
ConnectionState.Closed)
{.Open();commText = "Select Значения_Кур_IBMPC_Windows,
Значение_Кур_для_локальных_сетей, Значение_Кур_для_глобальных_сетей FROM
[Коэффициент_средства_разработки]";comm = new OleDbCommand(commText,
cn);table = new DataTable();adapter = new
OleDbDataAdapter(comm);.Fill(table);.DataSource = table;
}.Close();
}void button1_Click(object sender, EventArgs e)
{(radioButton1.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[0].Cells[0].Value.ToString();
}
{(radioButton2.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[1].Cells[0].Value.ToString();
}
{(radioButton3.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[2].Cells[0].Value.ToString();
}
{(radioButton4.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[3].Cells[0].Value.ToString();
}
{(radioButton5.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[4].Cells[0].Value.ToString();
}
{(radioButton6.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[5].Cells[0].Value.ToString();
}
{(radioButton7.Checked == true &&
radioButton8.Checked == true)
{= dataGridView1.Rows[6].Cells[0].Value.ToString();
}
{(radioButton1.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[0].Cells[1].Value.ToString();
}
{(radioButton2.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[1].Cells[1].Value.ToString();
}
{(radioButton3.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[2].Cells[1].Value.ToString();
}
{(radioButton4.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[3].Cells[1].Value.ToString();
}
{(radioButton5.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[4].Cells[1].Value.ToString();
}
{(radioButton6.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[5].Cells[1].Value.ToString();
}
{(radioButton7.Checked == true &&
radioButton9.Checked == true)
{= dataGridView1.Rows[6].Cells[1].Value.ToString();
}
{(radioButton1.Checked == true && radioButton10.Checked
== true)
{= dataGridView1.Rows[0].Cells[2].Value.ToString();
}
{(radioButton2.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[1].Cells[2].Value.ToString();
}
{(radioButton3.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[2].Cells[2].Value.ToString();
}
{(radioButton4.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[3].Cells[2].Value.ToString();
}
{(radioButton5.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[4].Cells[2].Value.ToString();
}
{(radioButton6.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[5].Cells[2].Value.ToString();
}
{(radioButton7.Checked == true &&
radioButton10.Checked == true)
{= dataGridView1.Rows[6].Cells[2].Value.ToString();
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}.DialogResult = DialogResult.OK;
}string raz()
{(kof);
}
}
}
ПРИЛОЖЕНИЕ Д
Руководство пользователя
1. Введение
Программное средство предназначено для автоматизированного расчета себестоимости
и длительности программного обеспечения. Для работы в системе пользователю
достаточно базовых знаний работы за компьютером и ознакомление с данным
руководством.
2. Назначение и условия применения.
Основные функции выполняемы программой:
а) расчет длительности ПО;
б) вывод статистики расчетов длительности;
в) расчет себестоимости ПО;
г) ведение справочников экономических показателей.
3. Подготовка к работе.
Для работы с программой необходимо запустить файл «Расчет
себестоимости.exe», который находится в корневой папке программы.
4. Описание операций.
Основные операции, доступные в программном комплексе:
а) выбор показателей из БД;
б) расчет длительности;
в) вывод графика расчетов;
г) расчет себестоимости;
д) запись данных о себестоимости и длительности в отчет.
. Аварийные ситуации.
В случае кода в программе возникают аварийные ситуации на экран выводятся
сообщения о возникших ошибках.
6. Рекомендации по освоению.
Если пользователь не обладает базовыми навыками, то их следует приобрести
для беспроблемной работы с программой расчета себестоимости и длительности ПО.
ПРИЛОЖЕНИЕ Е
Руководство программиста
. Назначение и условия применения программы.
Программа «Автоматизированная система расчета
себестоимости и длительности разработки ПО РУП «Производственное объединение
«Белоруснефть» предназначен для расчета
себестоимости и длительности разработки ПО. Основные функции:
д) расчет длительности ПО;
е) вывод статистики расчетов длительности;
ж) расчет себестоимости ПО;
з) ведение справочников экономических показателей.
Программа написана на языке программирования C# и предназначена для
использования на персональных компьютерах в операционных системах Microsoft
Windows 7/8/10 c установленным пакетом .NET Framework 3.5 и выше.
2. Характеристики программного комплекса.
Программа состоит 2 основных классов:
- приложения-клиента;
- приложения сервера.
. Обращение к программному комплексу.
Для внесения изменений в автоматизированную систему необходимо
использовать среду Visual Studio 2013 или совместимое с ней ПО. Обращение к
приложению выполняется через запуск файла «Расчет себестоимости.exe».
. Входные и выходные данные.
Входной информацией являются экономические показатели взятые из базы
данных, а выходными являются печатные формы и график расчета длительности
разработки по стадиям.
ПРИЛОЖЕНИЕ Ж
Экономические данные
Таблица Ж.1 - Каталог функций программного обеспечения
|
Код функции
|
Наименование (содержание) функции
|
Объем функций (строк исходного кода (LOC))
|
|
|
|
с использованием среды разработки приложений
|
|
|
|
Delphi (Borland)
|
C++ Builder (Borland)
|
Visual C++ (Microsoft)
|
Java
|
|
1
|
2
|
3
|
4
|
5
|
6
|
|
1. Ввод, анализ входной информации, генерация кодов и
процессор входного языка
|
|
101
|
Организация ввода информации
|
100
|
110
|
150
|
130
|
|
102
|
Контроль, предварительная обработка и ввод информации
|
290
|
430
|
550
|
490
|
|
103
|
Преобразование операторов входного языка в команды другого
языка
|
730
|
850
|
980
|
740
|
|
104
|
Обработка входного языка и формирование таблиц
|
630
|
900
|
1340
|
1040
|
|
105
|
Преобразование входного языка в машинные команды
|
2950
|
3100
|
4200
|
3620
|
|
106
|
Синтаксический и анализ входного языка и генерация кодов
команд
|
3750
|
4900
|
5700
|
5350
|
|
107
|
Организация ввода-вывода информации в интерактивном режиме
|
170
|
220
|
280
|
|
108
|
Организация ввода-вывода информации с сети терминалов
|
2780
|
2920
|
3200
|
2950
|
|
109
|
Управление вводом-выводом
|
2700
|
1980
|
2400
|
1970
|
|
2. Формирование, ведение и обслуживание базы данных
|
|
201
|
Генерация структуры базы данных
|
3450
|
3950
|
4300
|
3500
|
|
202
|
Формирование базы данных
|
1700
|
1750
|
2180
|
1980
|
|
203
|
Обработка наборов и записей базы данных
|
2050
|
2350
|
2670
|
2370
|
|
204
|
Обслуживание базы данных в пакетном режиме
|
1030
|
1100
|
1260
|
1070
|
|
205
|
Обслуживание базы данных в интерактивном режиме
|
3800
|
4400
|
6950
|
4840
|
|
206
|
Манипулирование данными
|
8400
|
8670
|
9550
|
7860
|
|
207
|
Организация поиска и поиск в базе данных
|
5230
|
5460
|
5480
|
4720
|
|
208
|
Реорганизация базы данных
|
130
|
190
|
220
|
170
|
1
|
2
|
3
|
4
|
5
|
6
|
209
|
Загрузки базы данных
|
3150
|
2950
|
2780
|
2360
|
3. Формирование и обработка файлов
|
301
|
Формирование последовательного файла
|
340
|
560
|
780
|
590
|
302
|
Автоматическая сортировка файлов
|
1040
|
1150
|
930
|
890
|
303
|
Обработка файлов
|
750
|
800
|
1100
|
1050
|
304
|
Управление файлами
|
4130
|
5380
|
5750
|
5240
|
305
|
Формирование файла
|
1100
|
1780
|
2460
|
2130
|
4. Генерация программ и ПО, а также настройка программного
обеспечения
|
401
|
Генерация рабочих программ
|
3680
|
3920
|
3360
|
3120
|
402
|
Генерация программ по описанию
|
7450
|
8430
|
9880
|
6740
|
403
|
Формирование служебных таблиц
|
570
|
620
|
1070
|
1140
|
404
|
Система генерации ПО
|
2950
|
4340
|
4980
|
3250
|
405
|
Система настройки ПО
|
250
|
300
|
370
|
340
|
5. Управление ПО, компонентами ПО и внешними устройствами
|
501
|
Монитор ПО (управление работой компонентов)
|
670
|
980
|
1340
|
1230
|
502
|
Монитор системы
|
3750
|
3880
|
7740
|
5760
|
503
|
Управление внешними устройствами и объектами
|
5850
|
6340
|
5900
|
4730
|
504
|
Обработка прерываний
|
980
|
1260
|
1680
|
1760
|
505
|
Управление внешней памятью
|
250
|
210
|
200
|
180
|
506
|
Обработка ошибочных сбойных ситуаций
|
970
|
1310
|
1720
|
1540
|
507
|
Обеспечение интерфейса между компонентами
|
1120
|
1540
|
1820
|
1680
|
6. Тестирование, проведение тестовых испытаний прикладных
программ, вспомогательные программные функции
|
601
|
Проведение тестовых испытаний прикладных программ в
интерактивном режиме
|
4500
|
4700
|
4300
|
3780
|
602
|
Вспомогательные и сервисные программы
|
460
|
490
|
580
|
470
|
7. Расчётные задачи, формирование и вывод на внешние
носители документов сложной формы и файлов
|
1
|
2
|
3
|
4
|
5
|
6
|
|
701
|
Математическая статистика и прогнозирование
|
2890
|
3620
|
4560
|
3780
|
|
702
|
Расчётные задачи (расчёт режимов обработки)
|
9260
|
13300
|
14800
|
11700
|
|
703
|
Расчёт показателей
|
410
|
500
|
460
|
420
|
|
705
|
Формирование и вывод на внешние носители
|
2650
|
2850
|
3500
|
3150
|
|
706
|
Предварительная обработка печать файлов
|
390
|
410
|
470
|
420
|
|
707
|
Графический вывод результатов
|
300
|
330
|
590
|
420
|
|
708
|
Интерактивный редактор текста
|
2800
|
3910
|
4540
|
3780
|
|
709
|
Изменение состояния ресурсов в интерактивном режиме
|
390
|
440
|
630
|
570
|
|
701
|
Математическая статистика и прогнозирование
|
2890
|
3620
|
4560
|
3780
|
|
8. Создание Internet-портала
|
|
801
|
Простой поиск контента портала
|
|
|
|
55
|
|
802
|
Многокритериальный поиск контента портала
|
|
|
|
85
|
|
803
|
Разработка системы оплаты услуг сайта при внедрении интерфейса
системы в дизайн сайта
|
|
|
|
820
|
|
804
|
Создание гостевой книги
|
|
|
|
50
|
|
805
|
Создание карты сайта
|
|
|
|
76
|
|
806
|
Сбор статистики о посетителях портала
|
|
|
|
95
|
|
807
|
Интеграция модуля опроса посетителей сайта
|
|
|
|
390
|
|
808
|
Создание системы внутренней рекламы
|
|
|
|
58
|
|
809
|
Создание системы управлением контентом
|
|
|
|
970
|
|
810
|
Формирование базы данных портала
|
|
|
|
1480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица Ж.2 -Характеристика категорий сложности ПО
Категория сложности
|
Характеристики программного обеспечения
|
1
|
ПО, обладающее одной или несколькими из следующих
характеристик: 1. Наличие сложного интеллектуального языкового интерфейса с
пользователем. 2. Обеспечение телекоммуникационной обработки данных и
управление удалёнными объектами. 3. Обеспечение существенного
распараллеливания вычислений. 4. Криптография и другие методы защиты
информации
|
2
|
ПО, обладающее одной или несколькими из следующих
характеристик: 1. Моделирование объектов и процессов. 2. Обеспечение
настройки ПО на изменение структур входных и выходных данных. 3. Обеспечение
переносимости ПО. 4. Реализация особо сложных инженерных и научных расчётов
|
3
|
ПО, не обладающее перечисленными характеристиками
|
Таблица Ж.3 - Нормативная трудоёмкость на разработку ПО
Объем ПО (строки исходного кода (LOC)), Vу
|
Категория сложности ПО
|
Номер нормы
|
|
1-я
|
2-я
|
3-я
|
|
1
|
2
|
3
|
4
|
5
|
400
|
30
|
25
|
21
|
1
|
420
|
31
|
26
|
22
|
2
|
440
|
32
|
28
|
23
|
3
|
470
|
34
|
29
|
25
|
4
|
490
|
36
|
30
|
26
|
5
|
520
|
38
|
32
|
27
|
6
|
550
|
40
|
34
|
29
|
7
|
580
|
42
|
35
|
30
|
8
|
610
|
44
|
37
|
32
|
9
|
46
|
39
|
33
|
10
|
680
|
48
|
41
|
35
|
11
|
710
|
50
|
43
|
36
|
12
|
750
|
53
|
45
|
38
|
13
|
790
|
56
|
47
|
40
|
14
|
1
|
2
|
3
|
4
|
5
|
840
|
59
|
50
|
42
|
15
|
880
|
61
|
52
|
44
|
16
|
930
|
65
|
55
|
46
|
17
|
980
|
68
|
57
|
49
|
18
|
1040
|
72
|
61
|
51
|
19
|
1090
|
75
|
63
|
53
|
20
|
1150
|
79
|
66
|
56
|
21
|
1210
|
82
|
69
|
59
|
22
|
1280
|
87
|
73
|
62
|
23
|
1350
|
91
|
77
|
65
|
24
|
1420
|
95
|
80
|
68
|
25
|
1500
|
100
|
85
|
71
|
26
|
1580
|
105
|
89
|
75
|
27
|
1670
|
111
|
93
|
79
|
28
|
1760
|
116
|
98
|
83
|
29
|
1850
|
122
|
102
|
86
|
30
|
1960
|
128
|
108
|
91
|
31
|
2060
|
134
|
113
|
95
|
32
|
2170
|
141
|
119
|
100
|
33
|
2290
|
148
|
125
|
105
|
34
|
2420
|
156
|
131
|
110
|
35
|
2550
|
163
|
137
|
116
|
36
|
2690
|
172
|
144
|
122
|
37
|
2800
|
178
|
150
|
126
|
38
|
2990
|
189
|
159
|
134
|
39
|
3150
|
198
|
167
|
140
|
40
|
3320
|
208
|
175
|
147
|
41
|
3500
|
219
|
184
|
154
|
42
|
1
|
2
|
3
|
4
|
5
|
3700
|
230
|
193
|
162
|
43
|
3900
|
242
|
193
|
162
|
43
|
4110
|
253
|
213
|
179
|
45
|
4330
|
266
|
223
|
187
|
46
|
4570
|
279
|
234
|
197
|
47
|
4820
|
293
|
246
|
207
|
48
|
13200
|
741
|
619
|
517
|
67
|
13920
|
779
|
650
|
543
|
68
|
14680
|
818
|
682
|
570
|
69
|
15470
|
858
|
715
|
597
|
70
|
16320
|
901
|
751
|
627
|
71
|
17210
|
946
|
789
|
658
|
72
|
18140
|
993
|
828
|
690
|
73
|
19130
|
1043
|
869
|
725
|
74
|
20170
|
1095
|
912
|
760
|
75
|
21270
|
1150
|
957
|
798
|
76
|
22430
|
1208
|
1005
|
838
|
77
|
23650
|
1268
|
1055
|
879
|
78
|
24940
|
1331
|
1108
|
922
|
79
|
26300
|
1398
|
1163
|
968
|
80
|
27730
|
1468
|
1220
|
1016
|
81
|
29240
|
1541
|
1281
|
1066
|
82
|
30830
|
1618
|
1345
|
1119
|
83
|
32510
|
1699
|
1412
|
1174
|
84
|
34290
|
1785
|
1482
|
1233
|
85
|
36150
|
1873
|
1555
|
1293
|
86
|
38120
|
1967
|
1633
|
1357
|
87
|
40200
|
2066
|
1714
|
1424
|
88
|
1
|
2
|
3
|
4
|
5
|
42390
|
2169
|
1799
|
1495
|
89
|
44700
|
2278
|
1889
|
1569
|
90
|
47130
|
2391
|
1983
|
1646
|
91
|
49700
|
2511
|
2081
|
1728
|
92
|
50000
|
2525
|
2093
|
1737
|
93
|