50112 (609930), страница 2
Текст из файла (страница 2)
if ((timeVideo { this->textBox1->Text="Видеокарта"; timeWork=timeVideo;} if ((timeOZY { this->textBox1->Text="Оперативная память"; timeWork=timeOZY;} if ((timeDisp { this->textBox1->Text="Монитор"; timeWork=timeDisp;} if ((timePower {this->textBox1->Text="Блок питания"; timeWork=timePower; Далее инициализируется набор дополнительных параметров: Техобслуживание: Если checkBox1=true, то timeWork+=0.25*timeWork Увеливение тактовой частоты: Если checkBox2=true, то timeWork-=0.4*timeWork Температурный режим: (5-10 °С) Если checkBox3=true, то timeWork -=0.05* timeWork (10-15 °С) Если checkBox4=true, то timeWork -=0.03* timeWork (15-20 °С) Если checkBox5=true, то timeWork = timeWork (20-35 °С) Если checkBox6=true, то timeWork -=0.35* timeWork Среднее время работы компьютера в сутки: (Офисный компьютер) Если checkBox7=true, то timeWork -=0.15* timeWork (Домашний компьютер) Если checkBox8=true, то timeWork = timeWork (Сервер) Если checkBox9=true, то timeWork -=0.6* timeWork Источник питания: (ИБП) Если checkBox10=true, то timeWork +=0.45* timeWork (Сетевой фильтр) Если checkBox11=true, то timeWork +=0.15* timeWork 3.2 Разработка схемы алгоритма блока принятия решений нет да this->textBox1->Text="Центральный процессор" timeWork=timeCPU да нет
this->textBox1->Text="Материнская плата"

timeWork=timeMB
да
нет
this->textBox1->Text="Жесткий диск"

timeWork=timeHDD


да

нет
this->textBox1->Text="Графический процессор"

timeWork=timeVideo
да

нет
this->textBox1->Text="Оперативная память"

timeWork=timeOZY
да

нет
this->textBox1->Text="Монитор"

timeWork=timeDisp
да



нет
this->textBox1->Text="Блок питания"

timeWork=timeBP
нет
да
да

нет
да

нет
нет
да
нет
да

нет
да
нет
да
нет
да
нет
да
нет
да
нет
да
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 { this->textBox1->Text="Центральный процессор"; timeWork=timeCPU;} if ((timeMB {this->textBox1->Text="Материнская плата"; timeWork=timeMB;} if ((timeHDD { this->textBox1->Text="Жесткий диск"; timeWork=timeHDD;} if ((timeVideo { this->textBox1->Text="Видеокарта"; timeWork=timeVideo;} if ((timeOZY { this->textBox1->Text="Оперативная память"; timeWork=timeOZY;} if ((timeDisp { this->textBox1->Text="Монитор"; timeWork=timeDisp;} if ((timePower {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.