на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Определение стоимости компьютера
p align="left">2.2 Математическая модель преобразования базы фактов в базу знаний

Преобразование базы фактов в базу знаний происходит следующим образом: При нажатии на кнопку «ОК» на пользовательском интерфейсе, инициализируются 12 переменных : markaCPU, my_chast_s, markaMB, modelMB, markaVIDEO, modelVIDEO, typeOZY, sizeOZY, typeHDD, sizeHDD, markaDisp, modelDisp. Далее, всоответствии с выбранными пользователем характеристиками, выбераются строки из БД, откуда далее поочерёдно считываются значения.

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

По заданным входным параметрам, определяются соответствующие строки в базе данных. В строке данных считывается цена выбранных комплектующих, рассчитывается средняя цена и заносится в соответствующую ему переменную. Рассмотрим данное правило на примере: Пусть входные параметры (ВП) определены как:

Процессор: Athlon

Частота: 2800

Марка материнской платы: Asus

Модель материнской платы: M2N-MX

Марка видеокарты: Radeon

Модель видеокарты: 9200

Тип модуля памяти: DDR

Объем памяти: 256

Интерфейс жесткого диска: IDE

Объем диска: 160

Марка монитора: LG

Модель монитора: Flatron F700P 17” CRT

Привод: DVD-RW

Клавиатура, мышка. В соответствии с правилами определяем: Цена = Ср. Цена процессора + Ср. Цена материнской платы + Ср Цена видеокарты + Ср. Цена модуля памяти + Ср. Цена жесткого диска + Ср. Цена монитора + Цена привода + Цена клавиатуры + Цена мышки = 14 + 39,4 + 15,6 + 7,75 + 39,3 + 17 + 13 + 6 + 4= 156 долларов. Итог: цена компьютера с учётом входных параметров составила 156 долларов.

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

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

После того, как база фактов преобразована в базу знаний, инициализируется набор переменных, которые соответствуют параметрам, введённым пользователем: markaCPU, my_chast_s, markaMB, modelMB, markaVIDEO, modelVIDEO, typeOZY, sizeOZY, typeHDD, sizeHDD, markaDisp, modelDisp. Если некоторые параметры не будут введены, то СППР посчитает стоимость компьютера без учета этих параметров, тоесть по комплектующим. Переменным присваиваются значения следующим образом: 1) markaCPU присваивается значение марки процессора 2) my_chast_s присваивается значение частоты процессора 3) markaMB присваивается значение марки материнской платы 4) modelMB присваивается значение модели материнской платы 5) markaVIDEO присваивается значение марки видеокарты 6) modelVIDEO присваивается значение модели видеокарты 7) typeOZY присваивается значение тип оперативной памяти 8) sizeOZY присваивается значение размер оперативной памяти 9) typeHDD присваивается значение тип жесткого диска 10) sizeHDD присваивается значение размер жесткого диска 11) markaDisp присваивается значение марки монитора 12) modelDisp присваивается значение модели монитора

На следующем этапе происходит определение цены компьютера по комплектующим:

1) Определяем стоимость процессора

if ( ((my_chast%50)!=0) || (my_chast<0) )

{

MessageBox::Show("Частота процессора введена некорректно.\nТакой частоты нет.","",MessageBoxButtons::OK,MessageBoxIcon::Warning);

return;}

float my_cena;

bool h=true;

while(s->Length >50)

{

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);

chast1_s=dd;

chast1=Int32::Parse(dd);

s=s->Substring(i+1,s->Length-dd->Length-1);

i=s->IndexOf("\n");

cena1_s=s->Substring(0,i);

cena1=Int32::Parse(cena1_s);

//Выполняем один раз.

if (h==true)

{chast0=chast1;

cena0=cena1;

h=false;}

}

int j=s->IndexOf("\n");

s=s->Substring(j+1,s->Length-j-1);

}

my_cena=approcsim(my_chast, chast0, cena0, chast1, cena1);

cena=cena+my_cena;

}

Стоимость процессора зависит от марки. В базе данных baseCPU.txt в зависимости от выбранной марки строится функция аппроксимации по двум точкам А и В из базы (Координаты (частота, цена)). Координаты точки А(х0,у0), точки В(х1,у1). Таким образом, мы можем найти цену процессора (y) с произвольно заданной частотой x. Для этого запишем уравнение прямой, проходящей через 2 точки:

(y1-y)/(y1-y0)= (x1-x)/(x1-x0)

y=(x-x0)*(y1-y0)/(x1-x0)+y0

Программная реализация функции:

float approcsim(int my_chast, int chast0, int cena0, int chast1, int cena1)

{

float my_cena;

//Уравнение прямой проходящей через 2 точки

my_cena=(my_chast-chast0)*(cena1-cena0)/(chast1-chast0)+cena0;

return my_cena;

}

2) Определяем стоимость материнской платы

if (this->comboBox4->Text!=""&&this->comboBox3->Text!="")

{ String ^d, ^dd="", ^s=File::ReadAllText("baseMother.txt");

while(s->Length >50)

{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);

cena2_int=Int32::Parse(p);

cena2=cena2+cena2_int;

k++;

}

}

int j=s->IndexOf("\n");

s=s->Substring(j+1,s->Length-j-1);

}

cena2=cena2/(k*ed);

cena=cena+cena2;

cena2=0;k=0;

}

3) Определяем стоимость видеокарты

if (this->comboBox6->Text!=""&&this->comboBox5->Text!="")

{ String ^d, ^dd="", ^s=File::ReadAllText("baseVideo.txt");

while(s->Length >50)

{

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);

cena2_int=Int32::Parse(p);

cena2=cena2+cena2_int;

k++;

}

}

int j=s->IndexOf("\n");

s=s->Substring(j+1,s->Length-j-1);

}

cena2=cena2/(k*ed);

cena=cena+cena2;

cena2=0;k=0;

}

4) Определяем стоимость оперативной памяти

if (this->comboBox8->Text!=""&&this->comboBox7->Text!="")

{ String ^d, ^dd="", ^s=File::ReadAllText("baseMemory.txt");

while(s->Length >50)

{

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);

cena2_int=Int32::Parse(p);

cena2=cena2+cena2_int;

k++;

}

}

int j=s->IndexOf("\n");

s=s->Substring(j+1,s->Length-j-1);

}

cena2=cena2/(k*ed);

cena=cena+cena2;

cena2=0;k=0;

}

5) Определяем стоимость жесткого диска

if (this->comboBox10->Text!=""&&this->comboBox9->Text!="")

{ String ^d, ^dd="", ^s=File::ReadAllText("baseHDD.txt");

while(s->Length >50)

{

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);

cena2_int=Int32::Parse(p);

cena2=cena2+cena2_int;

k++;

}

}

int j=s->IndexOf("\n");

s=s->Substring(j+1,s->Length-j-1);

}

cena2=cena2/(k*ed);

cena=cena+cena2;

cena2=0;k=0;

}

6) Определяем стоимость монитора

if (this->comboBox12->Text!=""&&this->comboBox11->Text!="")

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.