Смекни!
smekni.com

Определение срока поломки компьютера (стр. 2 из 3)

Модель: Geforce 6100 256/64

Оперативная память:

Фирма производитель: Hynix

Модель: DDR-1 256Mb

Монитор:

Фирма производитель: Samsung

Модель: 757MB(17")CRT

Блок питания:

Фирма производитель: CoolerMaster

Модель: RS400-PSAPJ3-EU-Elite-300W

Жесткий диск:

Фирма производитель: Hitachi

Модель: IDE-120GB/7200/16Mb

Условия эксплуатации:

Температурный режим: 20-35°С

Среднее время работы компьютера в сутки: Офисный компьютер[8 часов]

Источник питания: ИБП

Дополнительные параметры:

+Техническое облуживание

-Увеличение тактовой частоты

В соответствии с правилами определяем:

1) Срок службы=min(timeCPU, timeMB, timeVideo, timeOZY, timeHDD,

timeDisp, timePower)

Наименьший срок службы из выбранных комплектующих имеет «Материнская плата».

Строка данных: «ASUS M667-2xDDR,2xPCI,1xAGP,VGA,SB,LAN 515»

Согласно базе данных поломка материнской платы наступила спустя 515 дней со дня ввода в эксплуатацию.

Учитывая выбранные условия эксплуатации и дополнительные параметры

Дата поломки материнской платы наступит:

Срок службы= timeMB-( timeMB*0,35)-( timeMB*0,15)+( timeMB*0,45)+

+( timeMB*0,25)=515-180,25-77,25+231+128,75=617,25

Итог: Дата поломки с учётом входных параметров составила 617 дней спустя ввода в эксплуатацию.


3. Математическая модель редактора базы знаний

3.1 Математическая модель принятия решения

После того, как база фактов преобразована в базу знаний, инициализируется набор переменных, которые соответствуют столбцам в базе данных:

timeCPU=0,timeMB=0,timeVideo=0,timeOZY=0,timeHDD=0,timeDisp=0,

timePower=0, timeWork=0.

Переменным присваиваются значения следующим образом:

1) timeCPU присваивается значение соответствующее выбранной модели процессора.

2) timeMB присваивается значение соответствующее выбранной модели материнской платы.

3) timeVideo присваивается значение соответствующее выбранной модели графического процессора.

4) timeOZY присваивается значение соответствующее выбранной модели оперативной памяти.

5) timeHDD присваивается значение соответствующее выбранной модели жесткого диска.

6) timeDisp присваивается значение соответствующее выбранной модели монитора.

7) timePower присваивается значение соответствующее выбранной модели блока питания.

На следующем этапе происходит определение наименьшего срока службы из выбранных пользователем комплектующих:

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;

Далее инициализируется набор дополнительных параметров:

1) Техобслуживание:

Если checkBox1=true, то timeWork+=0.25*timeWork

2) Увеливение тактовой частоты:

Если checkBox2=true, то timeWork-=0.4*timeWork

3) Температурный режим:

(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

4) Среднее время работы компьютера в сутки:

(Офисный компьютер)

Если checkBox7=true, то timeWork-=0.15*timeWork

(Домашний компьютер)

Если checkBox8=true, то timeWork=timeWork

(Сервер)

Если checkBox9=true, то timeWork -=0.6* timeWork

5) Источник питания:

(ИБП)

Если checkBox10=true, то timeWork +=0.45* timeWork

(Сетевой фильтр)

Если checkBox11=true, то timeWork +=0.15* timeWork

3.2 Разработка схемы алгоритма блока принятия решений



4. Разработка программного обеспечения

4.1 Выбор среды разработки системы

Для написания программного модуля данной курсовой работы была выбрана среда программирования MSVisualC++ 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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeCPU=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeMB=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeVideo=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeOZY=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeHDD=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timeDisp=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("&bsol;n");

String ^p=s->Substring(0,i);

timeWork2_int=Int32::Parse(p);

timePower=timeWork2_int;

k++; }

}

int j=s->IndexOf("&bsol;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("Вы не указали модель процессора! &bsol;nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);

return;}

if (this->comboBox4->Text==""&&this->comboBox3->Text!="") //проверка корректности ввода данных

{MessageBox::Show("Вы не указали модель материнской платы! &bsol;nСделайте выбор!","",MessageBoxButtons::OK,MessageBoxIcon::Warning);