Автор работы: Пользователь скрыл имя, 24 Марта 2012 в 09:30, курсовая работа
В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний – как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.
Обычно факты в базе знаний описывают те явления, которые являются постоянными для данной предметной области.
ВВЕДЕНИЕ 3
РАЗДЕЛ 1. КОНДИТЕРСКАЯ «DOLCE VITA» 7
1.1. ОБЩИЕ СВЕДЕНИЯ 7
1.2. СПЕЦИФИКАЦИЯ ПРЕДПРИЯТИЯ 9
1.3. ДЕЯТЕЛЬНОСТЬ КОНДИТЕРСКОЙ В ПЕРИОД КРИЗИСА 9
РАЗДЕЛ 2. ПОСТАНОВКА ПРОБЛЕМЫ И ЗАДАЧИ 10
2.1. ПОСТАНОВКА ПРОБЛЕМЫ 10
2.2. ПОСТАНОВКА ЗАДАЧИ 10
2.3. ТРЕБОВАНИЯ К СОЗДАВАЕМОЙ ЭКСПЕРТНОЙ СИСТЕМЕ 10
РАЗДЕЛ 3. ОСНОВА ДЛЯ СОЗДАНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ 12
3.1. РАЗРАБОТКА КОМПЛЕКСА МЕР ДЛЯ ВЫХОДА ИЗ КРИЗИСА И 12
3.2. СПОСОБ ПРИМЕНЕНИЯ РАЗРАБОТАННЫХ МЕР 14
РАЗДЕЛ 4. ОБЗОР ПРОГРАММЫ 18
4.1. БЛОК-СХЕМА ПРОГРАММЫ 18
4.2. ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 19
4.3. ЭСКИЗНЫЙ ПРОЕКТ ПРОГРАММЫ 21
4.4. ТЕСТИРОВАНИЕ ПРОГРАММЫ 27
ЗАКЛЮЧЕНИЕ 33
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 34
ПРИЛОЖЕНИЕ. КОД ПРОГРАММЫ ОШИБКА! ЗАКЛАДКА НЕ ОПРЕДЕЛЕНА.
a=Form1->CSpinEdit12->Value;
a+=Form1->CSpinEdit14->Value;
a+=Form1->CSpinEdit16->Value;
a+=Form1->CSpinEdit18->Value;
StringGrid1->Cells[2][2]=
StringGrid1->Cells[2][3]=
StringGrid1->Cells[2][4]=
StringGrid1->Cells[2][5]=
a=Form1->CSpinEdit13->Value;
a+=Form1->CSpinEdit15->Value;
a+=Form1->CSpinEdit17->Value;
a+=Form1->CSpinEdit19->Value;
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][2]=
else StringGrid1->Cells[4][2]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][3]=
else StringGrid1->Cells[4][3]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][4]=
else StringGrid1->Cells[4][4]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][5]=
else StringGrid1->Cells[4][5]="0";
a=StrToInt(StringGrid1->Cells[
Label1->Caption="Новый расход на ингридиенты: "+IntToStr(a)+" руб";
StringGrid1->Cells[4][6]=
a=Form1->CSpinEdit8->Value+
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a=Form1->sp-a;
if (a>0) Label3->Caption="Новая прибыль: "+IntToStr(a)+" руб";
else Label3->Caption="Новый убыток: "+IntToStr(a*-1)+" руб";
}
//----------------------------
void __fastcall TForm6::StringGrid1KeyUp(
TShiftState Shift)
{
if ((StringGrid1->Cells[
{
StringGrid1->Cells[
}
else if (Key!=VK_BACK)
{
int a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][2]=
else StringGrid1->Cells[4][2]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][3]=
else StringGrid1->Cells[4][3]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][4]=
else StringGrid1->Cells[4][4]="0";
a=(StrToInt(StringGrid1->
if (a>0) StringGrid1->Cells[4][5]=
else StringGrid1->Cells[4][5]="0";
a=StrToInt(StringGrid1->Cells[
Label1->Caption="Новый расход на ингридиенты: "+IntToStr(a)+" руб";
StringGrid1->Cells[4][6]=
a=Form1->CSpinEdit8->Value+
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a+=(StrToInt(StringGrid1->
a=Form1->sp-a;
if (a>0) Label3->Caption="Новая прибыль: "+IntToStr(a)+" руб";
else Label3->Caption="Новый убыток: "+IntToStr(a*-1)+" руб";
}
}
//----------------------------
void __fastcall TForm6::SpeedButton1Click(
{
Form6->Close();
}
//----------------------------
void __fastcall TForm6::FormClose(TObject *Sender, TCloseAction &Action)
{
if (Label3->Caption.SubString(0,
{
ShowMessage("Попробуйте другие варианты выхода из кризиса либо рассмотрите комбинации нескольких вариантов.");
}
}
//----------------------------
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit7.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm7 *Form7;
//----------------------------
__fastcall TForm7::TForm7(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
template<class T>
void bubbleSort(T a[], long size) {
long i, j;
T x;
for( i=0; i < size; i++) { // i - номер прохода
for( j = size-1; j > i; j-- ) { // внутренний цикл прохода
if ( a[j-1] > a[j] ) {
x=a[j-1]; a[j-1]=a[j]; a[j]=x;
}
}
}
}
//----------------------------
void __fastcall TForm7::StringGrid1DrawCell(
int ARow, TRect &Rect, TGridDrawState State)
{
int left = 0;
if(StringGrid1->Canvas->
StringGrid1->Canvas->FillRect(
int pos = (StringGrid1->Cells[ACol][
AnsiString txt = StringGrid1->Cells[ACol][ARow]
left = Rect.Left + ((Rect.Right - Rect.Left) - StringGrid1->Canvas->
StringGrid1->Canvas->TextOut(
StringGrid1->Canvas->TextOut(
}else if(StringGrid1->RowHeights[
left = Rect.Left + ((Rect.Right - Rect.Left) - StringGrid1->Canvas->
int top = Rect.Top + ((Rect.Bottom - Rect.Top + 2) - StringGrid1->Canvas->
StringGrid1->Canvas->TextRect(
}else{
left = Rect.Left + ((Rect.Right - Rect.Left) - StringGrid1->Canvas->
StringGrid1->Canvas->TextRect(
}
}
//----------------------------
void __fastcall TForm7::SpeedButton1Click(
{
Form7->Close();
}
//----------------------------
void __fastcall TForm7::FormClose(TObject *Sender, TCloseAction &Action)
{
if (Label3->Caption.SubString(0,
{
ShowMessage("Попробуйте другие варианты выхода из кризиса либо рассмотрите комбинации нескольких вариантов.");
}
}
//----------------------------
void __fastcall TForm7::StringGrid1KeyPress(
{
if ((StringGrid1->Col!=3)||(
{
Key=0x0;
}
if ((StringGrid1->Col==3)&&(
{
Key=0x0;
}
if ((StringGrid1->Col==4)&&(
{
Key=0x0;
}
if ((StringGrid1->Col==7)&&(
{
Key=0x0;
}
if ((StringGrid1->Col==8)&&(
{
Key=0x0;
}
}
//----------------------------
void __fastcall TForm7::FormCreate(TObject *Sender)
{
StringGrid1->Cols[0]->Text="На
StringGrid1->Cols[1]->Text="До
StringGrid1->Cols[2]->Text="
StringGrid1->Cols[3]->Text="Ем
StringGrid1->Cols[4]->Text="
StringGrid1->Cols[5]->Text="Ко
StringGrid1->Cols[6]->Text="До
StringGrid1->Cols[7]->Text="Об
StringGrid1->Cols[8]->Text="Об
for(int j = 0;j < StringGrid1->RowCount; j++){
for(int i = 0;i < StringGrid1->ColCount;i++){
if(StringGrid1->Canvas->
StringGrid1->RowHeights[j] = StringGrid1->DefaultRowHeight * 2;
break;
}
}
}
StringGrid1->Rows[7]->Text="То
StringGrid1->Rows[9]->Text="Ко
StringGrid1->Rows[8]->Text="Пи
StringGrid1->Rows[5]->Text="Пе
StringGrid1->Rows[6]->Text="Ва
StringGrid1->Rows[4]->Text="Ке
StringGrid1->Rows[2]->Text="Хл
StringGrid1->Rows[3]->Text="Бу
StringGrid1->Cells[3][2]=
StringGrid1->Cells[3][3]=
StringGrid1->Cells[3][4]=
StringGrid1->Cells[3][5]=
StringGrid1->Cells[3][6]=
StringGrid1->Cells[3][7]=
StringGrid1->Cells[3][8]=
StringGrid1->Cells[3][9]=
StringGrid1->Cells[4][2]=
StringGrid1->Cells[4][3]=
StringGrid1->Cells[4][4]=
StringGrid1->Cells[4][5]=
StringGrid1->Cells[4][6]=
StringGrid1->Cells[4][7]=
StringGrid1->Cells[4][8]=
StringGrid1->Cells[4][9]=
StringGrid1->Cells[7][2]=
StringGrid1->Cells[7][3]=
StringGrid1->Cells[7][4]=
StringGrid1->Cells[7][5]=
StringGrid1->Cells[7][6]=
StringGrid1->Cells[7][7]=
StringGrid1->Cells[7][8]=
StringGrid1->Cells[7][9]=
StringGrid1->Cells[8][2]=
StringGrid1->Cells[8][3]=
StringGrid1->Cells[8][4]=
StringGrid1->Cells[8][5]=
StringGrid1->Cells[8][6]=
StringGrid1->Cells[8][7]=
StringGrid1->Cells[8][8]=
StringGrid1->Cells[8][9]=
}
//----------------------------
void __fastcall TForm7::FormShow(TObject *Sender)
{
StringGrid1->Cells[1][2]=
StringGrid1->Cells[1][3]=
StringGrid1->Cells[1][4]=
StringGrid1->Cells[1][5]=
StringGrid1->Cells[1][6]=
StringGrid1->Cells[1][7]=
StringGrid1->Cells[1][8]=
StringGrid1->Cells[1][9]=
StringGrid1->Cells[2][2]=
StringGrid1->Cells[2][3]=
StringGrid1->Cells[2][4]=
StringGrid1->Cells[2][5]=
StringGrid1->Cells[2][6]=
StringGrid1->Cells[2][7]=
StringGrid1->Cells[2][8]=
StringGrid1->Cells[2][9]=
StringGrid1->Cells[5][2]=
StringGrid1->Cells[5][3]=
StringGrid1->Cells[5][4]=
StringGrid1->Cells[5][5]=
StringGrid1->Cells[5][6]=
StringGrid1->Cells[5][7]=
StringGrid1->Cells[5][8]=
StringGrid1->Cells[5][9]=
StringGrid1->Cells[6][2]=
StringGrid1->Cells[6][3]=
StringGrid1->Cells[6][4]=
StringGrid1->Cells[6][5]=
StringGrid1->Cells[6][6]=
StringGrid1->Cells[6][7]=
StringGrid1->Cells[6][8]=
StringGrid1->Cells[6][9]=
int c=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
c+=(StrToInt(StringGrid1->
Label4->Caption="Темп роста (среднее значение): " + IntToStr(c/8);
int a=StrToInt(StringGrid1->Cells[
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
a+=StrToInt(StringGrid1->
Label5->Caption="Коэффициент лидерства (среднее значение): " + IntToStr(a/8);
switch (MessageDlg("Убрать наиболее низкие показатели по коэффициенту лидерства?", mtWarning,TMsgDlgButtons()<<
{
case mrYes:
{
int b[8];
AnsiString AS;
for (int i=0; i<8; i++)
{
b[i]=StrToInt(StringGrid1->
}
bubbleSort(b,8);
for (int i=0; i<8; i++)
{
if(b[1]==StrToInt(StringGrid1-
{
StringGrid1->Cells[1][i+2]=0;
StringGrid1->Cells[2][i+2]=0;
AS="\n"+StringGrid1->Cells[0][
}
else if(b[2]==StrToInt(StringGrid1-
{
StringGrid1->Cells[1][i+2]=0;
StringGrid1->Cells[2][i+2]=0;
AS+="\n"+StringGrid1->Cells[0]
}
else if(b[3]==StrToInt(StringGrid1-
{
StringGrid1->Cells[1][i+2]=0;
StringGrid1->Cells[2][i+2]=0;
AS+="\n"+StringGrid1->Cells[0]
}
}
Label7->Caption=AS;
}