Автор работы: Пользователь скрыл имя, 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
ПРИЛОЖЕНИЕ. КОД ПРОГРАММЫ ОШИБКА! ЗАКЛАДКА НЕ ОПРЕДЕЛЕНА.
Рис. 7. Выход из кризиса «Анализ рентабельности»
27
4.4. Тестирование программы
На рисунке 8 представлено окно главной страницы.
Рис. 8. Главное окно
Здесь мы вводим числовые значения возможных доходов и расходов, программа считает, находится ли предприятие в кризисной ситуации, то есть в убытке, либо имеет прибыль.
Также на главном окне расположены кнопки, показывающие возможность выбора одного или нескольких видов выхода из кризиса.
Предположим, доходы предприятия составляют 400860 р., а расходы 176464р., тогда при расчете получается, что предприятие в прибыли. Результат на рисунке 9.
Рис. 9. Главная страница
Рис. 10 . Главное окно
А если взять за доходы 73343 р., а за расходы 176464р., тогда получается предприятие несет убыток.
Следовательно, нам необходимо выбрать один из путей выхода из кризисной ситуации, которые предлагает программа.
1. Сокращение заработной платы
Рис. 11. Снижение заработной платы
2. Замена ингредиентов.
Числа берутся с главной формы и рассчитывается новый расход и новый убыток, либо прибыль.
3. Новая реклама.
Рис. 13. Новая реклама
4. Анализ рентабельности
Рис. 14. Анализ рентабельности
ЗАКЛЮЧЕНИЕ
Цель данной курсовой работы, которая заключалась в создании экспертной системы, которая бы анализировала результаты деятельности кондитерской «Dolce Vita» и в случае превышения расходов над доходами, рассматривала возможные варианты минимизации расходов и показывала наиболее подходящий вариант решения этой проблемы, достигнута.
Задачи, поставленные в ходе работы над выбранной темой, были реализованы, а именно рассмотрена структура кондитерской, продукция, предлагаемая покупателям, выявлены ключевые статьи доходов и расходов организации, разработан комплекс мер для выхода из ситуации, когда расходы превысили доходы предприятия, структурированы функциональные возможности создаваемой экспертной системы, создан эскизный проект программы и разработана и протестирована программа, доступная для всех групп пользователей.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. Абрютина М.С. Экономический анализ торговой деятельности. М.: Дело и сервис. 2007. 217 с.
2. Абрютина М. С. Экспресс-анализ финансовой отчетности. М.: Дело и Сервис. 2008. 287 с.
3. Абрютина М.С. Грачев А.В. Анализ финансово-экономической деятельности предприятия. М.: Дело и сервис. 2008. 305 с.
4. Гаврилова Т. А., Хорошевский В. Ф. Базы знаний интеллектуальных систем. СПб.: Питер, 2000. 381 с.
5. Герберт Шилдт. Полный справочник по C++. 4-е изд. М.: Вильямс, 2006. 800 с.
6. Грищенко О.В. Анализ и диагностика финансово-хозяйственной деятельности предприятия. Таганрог: ТРТУ. 2008. 327 с.
7. Джарратано Джозеф, Райли Гари. Экспертные системы: принципы разработки и программирование. М.: Вильямс. 2006. 1152 с.
8. Джексон Питер. Введение в экспертные системы. 3-е изд. М.: Вильямс. 2001. 624 с.
9. Ковалев В.В., Волкова О.Н. Анализ хозяйственной деятельности предприятия. М.: Велби. 2007. 341 с.
10. Лапенков В.И. Технико-экономический анализ деятельности предприятия. М.: Кнорус. 2008. 234 с.
11. Любушин М.П., Лещева В.Б., Дьякова В.Г. Анализ финансово-экономической деятельности предприятия. М.: ЮНИТИ. 2009. 271 с.
12. Страуструп Б. Язык программирования C++. 3-е изд. М.: Бином, 1999. 991 с.
ПРИЛОЖЕНИЕ. КОД ПРОГРАМ
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
//----------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Label2->Caption="Доход от продажи булочек\nс начинками:";
Label19->Caption="Цена наполнителей\nдля начинки, кг:";
Label21->Caption="Цена прочих\nингридиентов, кг:";
GroupBox1->Height=409;
Bevel3->Visible=false;
Label24->Visible=false;
sp=CSpinEdit1->Value+
si=(CSpinEdit12->Value*
sr=CSpinEdit8->Value+
Label8->Caption="Суммарный доход: "+IntToStr(sp)+" руб.";
Label14->Caption="Суммарный расход: "+IntToStr(sr)+" руб.";
Label13->Caption="Расход на ингридиенты: "+IntToStr(si)+" руб.";
}
//----------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
Form2->Show();
}
//----------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Application->Terminate();
}
//----------------------------
void __fastcall TForm1::CSpinEdit2KeyPress(
{
if ((Key >= '0') && (Key <= '9')) {}
else if ((Key==VK_BACK)||(Key==VK_
{}
else Key = 0x0;
}
//----------------------------
void __fastcall TForm1::CSpinEdit2KeyUp(
TShiftState Shift)
{
if ((Key==VK_BACK)||(Key==VK_
{
if (((TCSpinEdit*)Sender)->Text==
{
((TCSpinEdit*)Sender)->Text="
}
}
sp=CSpinEdit1->Value+
si=(CSpinEdit12->Value*
sr=CSpinEdit8->Value+
Label8->Caption="Суммарный доход: "+IntToStr(sp)+" руб.";
Label14->Caption="Суммарный расход: "+IntToStr(sr)+" руб.";
Label13->Caption="Расход на ингридиенты: "+IntToStr(si)+" руб.";
}
//----------------------------
void __fastcall TForm1::SpeedButton1Click(
{
if ((sp-sr)>0)
{
Label23->Caption="Поздравляем! Вы в прибылях!\nОбщая сумма прибыли составляет "+IntToStr((sp-sr))+" руб";
}
else
{
Label23->Caption="У вас убытки!\nОбщая сумма убытков составляет "+IntToStr((sp-sr)*-1)+" руб";
GroupBox1->Height=505;
Bevel3->Visible=true;
Label24->Visible=true;
}
}
//----------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
Form3->Show();
}
//----------------------------
void __fastcall TForm1::SpeedButton2Click(
{
Form4->Show();
}
//----------------------------
void __fastcall TForm1::SpeedButton3Click(
{
Form6->Show();
}
//----------------------------
void __fastcall TForm1::CSpinEdit1Change(
{
if (((TCSpinEdit*)Sender)->Text!=
{
sp=CSpinEdit1->Value+
si=(CSpinEdit12->Value*
sr=CSpinEdit8->Value+
Label8->Caption="Суммарный доход: "+IntToStr(sp)+" руб.";
Label14->Caption="Суммарный расход: "+IntToStr(sr)+" руб.";
Label13->Caption="Расход на ингридиенты: "+IntToStr(si)+" руб.";
}
}
//----------------------------
void __fastcall TForm1::SpeedButton4Click(
{
Form5->Show();
}
//----------------------------
void __fastcall TForm1::SpeedButton5Click(
{
Form7->Show();
}
//----------------------------
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//----------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
Label1->Caption="Созданием программы занимались:\n\nАссонова Ольга\nБеляева Лариса\nГавриш Ирина\nЖванко Анна\n\nУральский Федеральный\nУниверситет\n\nФИ
}
//----------------------------
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
//----------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//----------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm3::FormCreate(TObject *Sender)
{
Label1->Caption="Программа применяется в том случае,\nесли расходы превышают доходы.\n\nПрограмма предлагает 4 выхода\nиз сложившейся негативной ситуации.\n\nПрограмма на русском языке.\n\nПри заполнении полей можно вводить\nположительные целые числа\nлибо нулевое значение.";
}
//----------------------------
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit4.h"
#include "Unit1.h"
//----------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm4 *Form4;
//----------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------
void __fastcall TForm4::FormClose(TObject *Sender, TCloseAction &Action)
{
//"Попробуйте другие варианты выхода из кризиса либо рассмотрите комбинации нескольких вариантов.")
}
//----------------------------
void __fastcall TForm4::CSpinEdit1KeyUp(
TShiftState Shift)
{
if ((Key==VK_BACK)||(Key==VK_
{
if (((TCSpinEdit*)Sender)->Text==
{
((TCSpinEdit*)Sender)->Text="
}
}
}
//----------------------------
void __fastcall TForm4::CSpinEdit1KeyPress(
{
if ((Key >= '0') && (Key <= '9')) {}
else if ((Key==VK_BACK)||(Key==VK_
{}
else Key = 0x0;
}
//----------------------------
void __fastcall TForm4::SpeedButton1Click(
{
fzp1=CSpinEdit1->Value-(
Label3->Caption=IntToStr(fzp1)
SpeedButton1->Top=169;
GroupBox1->Height=225;
Label2->Top=169;
GroupBox3->Visible=false;
GroupBox4->Visible=false;
GroupBox5->Visible=false;
this->Height=337;
fzp=(Form1->sp)-(fzp1+Form1->
if (fzp>0)
{
Label2->Caption="Новая прибыль составит "+IntToStr(fzp)+" руб";
}
else {
fzp2=fzp1-(CSpinEdit1->Value*
Label4->Caption=IntToStr(fzp2)
SpeedButton1->Top=257;
Label2->Top=257;
GroupBox1->Height=289;
GroupBox3->Visible=true;
GroupBox4->Visible=false;
GroupBox5->Visible=false;
this->Height=401;
fzp=(Form1->sp)-(fzp2+Form1->
if (fzp>0)
{
Label2->Caption="Новая прибыль составит "+IntToStr(fzp)+" руб";
}
else
{
fzp3=fzp2-(CSpinEdit1->Value*
Label5->Caption=IntToStr(fzp3)
SpeedButton1->Top=345;
Label2->Top=345;
GroupBox1->Height=385;
GroupBox3->Visible=true;
GroupBox4->Visible=true;
GroupBox5->Visible=false;
this->Height=497;
fzp=(Form1->sp)-(fzp3+Form1->
if (fzp>0)
{
Label2->Caption="Новая прибыль составит "+IntToStr(fzp)+" руб";
}
else
{
fzp4=(CSpinEdit1->Value*50/
Label6->Caption=IntToStr(fzp4)
Label5->Caption=IntToStr(fzp3)