3.2 Разработка схемы алгоритма блока принятия решений
![]() | |||||||
|
| ||||||
![]() |
4. Разработка программного обеспечения
4.1 Выбор среды разработки системы
Для написания программного модуля данной курсовой работы была выбрана среда программирования MS Visual C++ 2008.
4.2 Программная реализация блока принятия решения.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
float timeWork=0, timeWork2=0; int timeWork2_int;
int i=0, k=0; float ed=1;
float timeCPU=0,timeMB=0,timeVideo=0,timeOZY=0,timeHDD=0,timeDisp=0,timePower=0;
if (this->comboBox2->Text!=""&&this->comboBox1->Text!="")//считывание срока службы выбранного процессора
{ String ^d, ^dd="", ^s=File::ReadAllText("input_CPU.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==markaCPU)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==chastCPU)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeCPU=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox4->Text!=""&&this->comboBox3->Text!="")//считывание срока службы выбранной мат. платы
{ String ^d, ^dd="", ^s=File::ReadAllText("input_MB.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==markaMB)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==modelMB)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeMB=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox6->Text!=""&&this->comboBox5->Text!="") //считывание срока службы выбранной видеокарты
{ String ^d, ^dd="", ^s=File::ReadAllText("input_Vidik.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==markaVideo)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==modelVideo)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeVideo=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox8->Text!=""&&this->comboBox7->Text!="") //считывание срока службы выбранного ОЗУ
{ String ^d, ^dd="", ^s=File::ReadAllText("input_DDR.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==typeOZY)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==sizeOZY)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeOZY=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox10->Text!=""&&this->comboBox9->Text!="") //считывание срока службы выбранного HDD
{ String ^d, ^dd="", ^s=File::ReadAllText("input_HDD.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==typeHDD)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==sizeHDD)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeHDD=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox12->Text!=""&this->comboBox11->Text!="")//считывание срока службы выбранного монитора
{ String ^d, ^dd="", ^s=File::ReadAllText("input_Monitor.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==markaDisp)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==modelDisp)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timeDisp=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
if (this->comboBox13->Text!=""&&this->comboBox14->Text!="")//считывание срока службы блока питания
{ String ^d, ^dd="", ^s=File::ReadAllText("input_BP.txt");
while(s->Length >200)
{ int i=s->IndexOf(" ");
d=s->Substring(0,i);
if (d==markaPower)
{ s=s->Substring(i+1,s->Length-d->Length-1);
i=s->IndexOf(" ");
dd=s->Substring(0,i);
if (dd==modelPower)
{ s=s->Substring(i+1,s->Length-dd->Length-1);
i=s->IndexOf("\n");
String ^p=s->Substring(0,i);
timeWork2_int=Int32::Parse(p);
timePower=timeWork2_int;
k++; }
}
int j=s->IndexOf("\n");
s=s->Substring(j+1,s->Length-j-1);
}
}
//Определение наименьшего срока службы у выранных комплектующих
if ((timeCPU<timeMB)&(timeCPU<timeHDD)&(timeCPU<timeVideo)&(timeCPU<timeOZY)&(timeCPU<timeDisp)&(timeCPU<timePower))
{ this->textBox1->Text="Центральный процессор";
timeWork=timeCPU;}
if ((timeMB<timeCPU)&(timeMB<timeHDD)&(timeMB<timeVideo)&(timeMB<timeOZY)&(timeMB<timeDisp)&(timeMB<timePower))
{this->textBox1->Text="Материнская плата";
timeWork=timeMB;}
if ((timeHDD<timeCPU)&(timeHDD<timeMB)&(timeHDD<timeVideo)&(timeHDD<timeOZY)&(timeHDD<timeDisp)&(timeHDD<timePower))
{ this->textBox1->Text="Жесткий диск";
timeWork=timeHDD;}
if ((timeVideo<timeCPU)&(timeVideo<timeHDD)&(timeVideo<timeMB)&(timeVideo<timeOZY)&(timeVideo<timeDisp)&(timeVideo<timePower))
{ this->textBox1->Text="Видеокарта";
timeWork=timeVideo;}
if ((timeOZY<timeCPU)&(timeOZY<timeHDD)&(timeOZY<timeMB)&(timeOZY<timeVideo)&(timeOZY<timeDisp)&(timeOZY<timePower))
{ this->textBox1->Text="Оперативная память";
timeWork=timeOZY;}
if ((timeDisp<timeCPU)&(timeDisp<timeHDD)&(timeDisp<timeMB)&(timeDisp<timeVideo)&(timeDisp<timeOZY)&(timeDisp<timePower))
{ this->textBox1->Text="Монитор";
timeWork=timeDisp;}
if ((timePower<timeCPU)&(timePower<timeHDD)&(timePower<timeMB)&(timePower<timeVideo)&(timePower<timeDisp)&(timePower<timeOZY))
{this->textBox1->Text="Блок питания";
timeWork=timePower;}
if (this->comboBox2->Text==""&&this->comboBox1->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель процессора! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox4->Text==""&&this->comboBox3->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель материнской платы! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox6->Text==""&&this->comboBox5->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель видеокарты! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox8->Text==""&&this->comboBox7->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель оперативной памяти! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox10->Text==""&&this->comboBox9->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель жесткого диска! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox12->Text==""&&this->comboBox11->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель монитора! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
if (this->comboBox14->Text==""&&this->comboBox13->Text!="") //проверка корректности ввода данных
{MessageBox::Show("Вы не указали модель блока питания! \nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);
return;}
//Определение параметров введенных пользователем
if(this->checkBox1->Checked) timeWork+=0.25*timeWork;
if(this->checkBox2->Checked) timeWork-=0.4*timeWork;
if(this->checkBox3->Checked) timeWork+=0;
if(this->checkBox4->Checked) timeWork-=0.03*timeWork;
if(this->checkBox5->Checked) timeWork-=0.05*timeWork;
if(this->checkBox6->Checked) timeWork-=0.35*timeWork;
if(this->checkBox7->Checked) timeWork-=0.15*timeWork;
if(this->checkBox8->Checked) timeWork+=0;
if(this->checkBox9->Checked) timeWork-=0.6*timeWork;
if(this->checkBox10->Checked) timeWork+=0.45*timeWork;
if(this->checkBox11->Checked) timeWork+=0.15*timeWork;
this->textBox2->Text=timeWork.ToString(); //вывод результата в форму
}
5. Тестирование программного продукта и оценка качества решения
Произведём тестирование разработанного программного продукта:
Рисунок 2-Главное окно
Заключение
В соответствии с результатами работы программы при заданной комплектации и условиями эксплуатаций с наибольшей вероятностью первой выйдет из строя видеокарта. Поломка произойдет предположительно через 835 дней с начала использования.
Список используемых источников
1 Саттер Герб. Стандарты программирования на C++. 101 правило и рекомендация / Андрей Александреску. – М.: Вильямс, 2005.
2 Дейтел Харви. Как программировать на С++ / Пол Дейтел – М.: Бином, 2003. 3 Шилдт Герберт. Самоучитель С++. – СПб. : БХВ-Петербург, 2003.... важно наличие в правовой системе норм, гарантирующих механизм рассмотрения конфликтов, их справедливого разрешения и реализации вынесенных решений. Рассмотрев и детально изучив тему «Понятие, исчисление и виды сроков в Гражданском праве», во многих аспектах, можно сделать следующие выводы о том насколько важна регламентация сроков, в течение которых обладатель нарушенного права может добиваться ...
... дверях помещений, означают, что их зона действия охватывает все помещение. Знаки безопасности подразделяются на запрещающие, предупреждающие, предписывающие, указательные. Меры безопасности при работе с инструментом Применяют инструмент как ручной, так и электрифицированный (электроинструмент) . Для обеспечения безопасности труда и предупреждения несчастных случаев к ручному инструменту ...
... с потребителями в контактной зоне. Контактная зона (зона видимости) – общая сфера, окружающая заказчиков (клиентов) в период нахождения их на предприятии сервиса. Особенностью сервисной деятельности является коммуникативное взаимодействие, общение с потребителями. К числу основных составляющих феномена общения относят три взаимосвязанные стороны общения: коммуникативную, интерактивную и ...
... сумму, превышающую его средний заработок, а оставшуюся (уже в размере среднего месячного заработка) удерживает из заработной платы своим распоряжением. Привлечение работника к материальной ответственности за ущерб, причиненный работодателю, не исключает возможности привлечения его к иным видам юридической ответственности – дисциплинарной (со стороны работодателя), а также административной или ...
0 комментариев