Определение срока поломки компьютера

Министерство образования Республики Беларусь

Министерство образования и науки Российской Федерации



Государственное учреждение высшего профессионального образования

«БЕЛОРУССКО–РОССИЙСКИЙ УНИВЕРСИТЕТ»

Кафедра «Автоматизированные системы управления»













Определение срока поломки компьютера



Курсовой проект

по дисциплине «Теория принятия решений»

051.23.0201.081445.23.81-01























Могилев 2010

	
Содержание

	

	Введение

	1. Анализ предметной области и выявление факторов, влияющих на принятие решения.

	1.1 Анализ и обоснование выбора входных параметров системы.

	1.2 Определение возможных состояний системы и откликов, генерируемых системой.

	1.3 Разработка интерфейса пользователя для ввода, редактирования входных параметров системы и вывода результатов работы системы.

	2. Разработка базы знаний.

	2.1 Структура базы фактов.

	2.2 Математическая модель преобразования базы фактов в базу знаний.

	2.3 Разработка правил вывода системы принятия решений.

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

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

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

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

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

	4.2 Программная реализация блока принятия решений.

	5. Тестирование программного продукта и оценка качества решений.

	Заключение.

	Список используемых источников.

	

	

Введение



Определение срока поломки компьютера чрезвычайно важная задача. Решив её можно прогнозировать расходы на замену вышедшего из строя оборудования, выбрать при покупке наиболее надёжный вариант комплектации компьютера, избежать проблем с выбором тех или иных комплектующих.

Целью курсового проекта является разработка системы поддержки принятия решения по определению срока поломки компьютера.


1. Анализ предметной области и выявление факторов, влияющих на принятие решения

	

	1.1 Анализ и обоснование выбора входных параметров системы

	

В последние годы информационные технологии стремительно развиваются. Ассортимент компьютерной техники растёт с каждым днём. Уже невозможно представить современного человека без ПЭВМ.

Данный курсовой проект поможет выбрать из всего разнообразия наиболее качественные модели и предупредить время поломки конкретной детали.

	При анализе входных параметров, использовались базы данных компьютерных мастерских, представленные в сети интернет, прайс-листы интернет-магазинов, отзывы покупателей о конкретных моделях комплектующих.

	Был выявлен ряд параметров, влияющих в разной степени срок службы компьютера. Параметры были разделены на 2 категории: условия эксплуатации и дополнительные параметры.

К условиям эксплуатации относят:

	-Температурный режим в помещении

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

	-Источник питания

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

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

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

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

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

	-5-10 °С - уменьшает срок службы компьютера на 5%

	-10-15°С - уменьшает срок службы компьютера на 3%

	-15-20°С - является нормальным температурным режимом. На срок службы компьютера отрицательно не влияет.

	-20-35°С - уменьшает срок службы компьютера на 35%

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

	-Офисный компьютер[8 часов] - уменьшает срок службы на 15%

	-Домашний компьютер[4 часа] - является нормальным режимом работы, на срок службы компьютера отрицательно не влияет.

	-Сервер[24 часа] - уменьшает срок службы на 60%

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

	-Источник бесперебойного питания увеличивает срок службы на 45%

	-Сетевой фильтр - увеличивает срок службы на 15%

	

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

	-Техническое обслуживание - увеличивает срок службы на 25%

	-Увеличение тактовой частоты - уменьшает срок службы на 40%

	Эти параметры были выделены согласно отчетам сервисных центров по ремонту и обслуживанию компьютеров и орг. техники. Так же из анализа компьютеров, бывших в эксплуатации, были выделены характеристики, которые существенно влияют на работу и нормальное функционирование комплектующих и компьютера в целом.

	

	1.2 Определение возможных состояний системы и откликов, генерируемых системой

	

	Невозможно учесть всех возможных состояний системы, так как в ходе эксплуатации условия работы могут меняться, а так же следует учитывать заводской брак в течение времени.

	Для оценки срока работы компьютера следует учесть следующие состояния системы:

	-Условия эксплуатации ПЭВМ (п.1.1)

	-Проводилось ли техническое обслуживание компьютера

	-Не подвергались ли процессор/оперативная память/видеокарта увеличению тактовой частоты

	Система для принятия решения нужен набор основных параметров (п.1.1),

	так как без них система не сможет рассчитать стоимость. Вследствие этого, при неопределённых основных параметрах система должна выдавать сигнал, что необходимо их ввести.

	Полю «Фирма производитель процессора» соответствует ComboBox, т.е. выпадающий список, который формируется следующем образом: из файла input_CPU.txt считываются все производители, причём повторяющиеся записи не учитываются, и заносятся в ComboBox. В СППР предусмотрены следующие производители процессоров:

	-AMD

	-Intel

	Далее, в соответствии с выбранным производителем, формируется ComboBox «Модель процессора». Выпадающий список «Модель» формируется следующим образом: в файле input_CPU.txt осуществляется поиск записей, которые соответствуют выбранной марке и из этих записей выбираются поля «Модель», которые заносятся в выпадающий список.

	К примеру производителю AMD соответствуют модели:

	-Athlon 1.667Ghz/256k/533FSB/SL7QA,

	-Athlon 1.8Ghz/256k/800FSB/SL6QA,

	-Athlon 2.0Ghz/512k/400FSB/SL5QA,

	-Athlon 2.4Ghz/512k/533FSB/SL6QA,

	-Athlon 2.5Ghz/1024k/600FSB/SL6QA,

	-Athlon 3.0Ghz/1024k/533FSB/SL6QA,

	-Duron 0.8Ghz/128k/533FSB/SL6QA,

	-Duron 1.2Ghz/256k/533FSB/SL6QA,

	-Sempron 2.6Ghz/512k/533FSB/SL6QA,

	-Sempron 2.8Ghz/512k/533FSB/SL6QA,

	-Sempron 3.0Ghz/256k/533FSB/SL6QA,

	-Sempron 3.2Ghz/512k/533FSB/SL6QA.

	Отклик на нажатие кнопки «Пуск» приводит в действие реализацию математической модели, в которой в соответствии со всеми введёнными параметрами рассчитывается стоимость. Далее стоимость выводится в TextBox «Компьютер при выбранных условиях прослужит»

	

	1.3 Разработка интерфейса пользователя для ввода, редактирования входных параметров системы и вывода результатов работы

	

	Исходя из того, что определено 2 вида входных параметров, пользовательский интерфейс был разделён на 4 части:

	-Выбор комплектации компьютера

	-Ввод условий эксплуатации

	-Ввод дополнительных параметров

	-Вывод результата

	Придерживаясь вышеперечисленного плана, разработан следующий графический интерфейс:

	

	

	Рисунок 1-Главное окно

	
2. Разработка базы знаний

	

	2.1 Структура базы фактов

	

	База фактов представляет собой базу данных (далее БД), в которой собраны статистические данные о сроке поломки каждой из имеющих моделей комплектующих. Статистические данные взяты из базы данных о ремонте компьютеров сервисного центра.

	БД имеет следующие столбцы:

	-Дата начала эксплуатации

	-Дата выхода из строя

	-Объект поломки

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

	-Модель

	Все данные внесены в соответствии с названиями столбцов.

	

	2.2 Математическая модель преобразования базы фактов в базу знаний

	

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

	При нажатии на кнопку «ПУСК» на пользовательском интерфейсе, инициализируются 8 переменных: timeWork, timeCPU, timeMB, timeOZY, timeVideo, timeHDD, timeDisp, timePower.

	Далее, всоответствии с выбранной пользователем фирмой производителем каждого комплектующего и моделью, выберается строка и БД, откуда далее поочерёдно считываются значения и присваиваются соответствующим переменным, перечисленым выше.

	
2.3 Разработка правил вывода системы принятия решений

	

	По заданным входным параметрам, определяется соответствующая строка в базе данных.

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

	Далее пользователю будет предложено выбрать условия эксплуатации и дополнительные параметры.

	Если температурный режим варьируется между 5-10 °С, то срок службы будет сокращён на 5%.

	Если температурный режим варьируется между 10-15°С, то срок службы будет сокращён на 3%.

	Если температурный режим варьируется между 15-20°С, то срок службы останется без изменений.

	Если температурный режим варьируется между 20-35°С, то срок службы будет сокращён на 35%.

	Если среднее время работы компьютера в сутки составляет 8 часов, то срок службы будет сокращён на 15%.

	Если среднее время работы компьютера в сутки составляет 4 часа, то срок службы останется без изменений.

	Если среднее время работы компьютера в сутки составляет 24 часа, то срок службы будет сокращен на 60%.

	Если источником питания компьютера служит ИБП, то срок службы будет увеличен на 45%.

	Если источником питания компьютера служит сетевой фильтр, то срок службы будет увеличен на 15%.

	Если проводится регулярное техническое обслуживание, то срок службы будет увеличен на 25%.

	Если пользователь в процессе эксплуатации увеличивал вольтаж или тактовую частоту комплектующего, то срок службы будет сокращен на 40%.

	Рассмотрим данное правило на конкретном примере:

	Пусть входные параметры заданы как:

	Процессор:

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

	Модель: 1.667Ghz/256k/533FSB/SL7QA

	Материнская плата:

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

	Модель: M667-2xDDR-2xPCI,-1xAGP,-VGA,-SB,-LAN

	Графический процессор:

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

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

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

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

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

	Монитор:

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

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

	

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

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

	Модель: 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.

	

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

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

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

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

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

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

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

	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;



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

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

	Если 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 Разработка схемы алгоритма блока принятия решений

	

	

  Начало 

	

	

	

Ввод фирмы производителя и модели каждого из комплектующих

	

	

	

Ввод из базы данных срока службы каждого из выбранных комплектующих

	

	

	

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

	

	

	

да

нет

(timeCPU<timeMB)&(timeCPU<timeHDD)&(timeCPU<timeVideo)&(timeCPU<timeOZY)&(timeCPU<timeDisp)&(timeCPU<timePower)

	

	

	

	

this->textBox1->Text="Центральный процессор"

	





timeWork=timeCPU







	

да

нет

(timeMB<timeCPU)&(timeMB<timeHDD)&(timeMB<timeVideo)&(timeMB<timeOZY)&(timeMB<timeDisp)&(timeMB<timePower)

	

	

	

	

this->textBox1->Text="Материнская плата"



	





timeWork=timeMB









(timeHDD<timeCPU)&(timeHDD<timeMB)&(timeHDD<timeVideo)&(timeHDD<timeOZY)&(timeHDD<timeDisp)&(timeHDD<timePower)

	

да

нет

	

	

	

this->textBox1->Text="Жесткий диск"



	

3

1



2



timeWork=timeHDD









	

да

нет

(timeVideo<timeCPU)&(timeVideo<timeHDD)&(timeVideo<timeMB)&(timeVideo<timeOZY)&(timeVideo<timeDisp)&(timeVideo<timePower)

	

	

	

	

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



	





timeWork=timeVideo









	

да

нет

(timeOZY<timeCPU)&(timeOZY<timeHDD)&(timeOZY<timeMB)&(timeOZY<timeVideo)&(timeOZY<timeDisp)&(timeOZY<timePower)

	

	

	

	

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



	





timeWork=timeOZY









	

да

нет

(timeDisp<timeCPU)&(timeDisp<timeHDD)&(timeDisp<timeMB)&(timeDisp<timeVideo)&(timeDisp<timeOZY)&(timeDisp<timePower)

	

	

	

	

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



	





timeWork=timeDisp

















4







да

нет

(timePower<timeCPU)&(timePower<timeHDD)&(timePower<timeMB)&(timePower<timeVideo)&(timePower<timeDisp)&(timePower<timeOZY)

4

	

	

	

	

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



	





timeWork=timeBP











нет

да

this->checkBox1->Checked

	







timeWork+=0.025*timeWork









нет

да

this->checkBox2->Checked

	







timeWork-=0.4*timeWork











нет

да

this->checkBox3->Checked

	







timeWork=timeWork











да

нет

this->checkBox4->Checked

	







timeWork-=0.03*timeWork











5

нет

да

	

5

	

this->checkBox5->Checked

	







timeWork-=0.05*timeWork













нет

да

this->checkBox6->Checked

	







timeWork-=0.35*timeWork













нет

да

this->checkBox7->Checked

	







timeWork-=0.15*timeWork













нет

да

this->checkBox8->Checked

	







timeWork=timeWork













нет

да

this->checkBox9->Checked

	







timeWork-=0.6*timeWork













6





да

нет



	

this->checkBox10->Checked







timeWork+=0.45*timeWork













нет

да

this->checkBox11->Checked

	







timeWork+=0.15*timeWork











Вывод результатов в соответствующие поля формы









  Конец








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.