Разработка электронного учебного методического комплекса по изучению раздела "Симплексный метод решения задачи линейного программирования" дисциплины "Математические методы"

Особенности задач линейного программирования. Симплексный метод решения задач линейного программирования. Обоснование выбора языка, инструментария программирования, перечень идентификаторов и блок-схема алгоритма. Логическая схема работы программы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 13.08.2011
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

#include <vcl.h>

#include <md5.h>

#include <md5.cpp>

#pragma hdrstop

#include "Unit3.h"

#include "Unit4.h"

#include "Unit7.h"

#include "Unit8.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm7 *Form7;

TLabel *Label[65536];

TEdit *Edit[65536];

TRadioButton *RadioButton[65536];

//---------------------------------------------------------------------------

__fastcall TForm7::TForm7(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm7::Button1Click(TObject *Sender)

{

for (int i=1;i<=CSpinEdit1->Value;i++)

{

if(i==1)

{

Label[i] = new TLabel(this);

Label[i]->Parent = this;

Label[i]->Name = "Label"+AnsiString(i);

Label[i]->Left = 8;

Label[i]->Top = 312;

Label[i]->Caption="Ответ "+AnsiString(i);

Label[i]->Font->Name="Arial";

Label[i]->Font->Size=10;

Edit[i] = new TEdit(this);

Edit[i]->Parent = this;

Edit[i]->Name = "Edit"+AnsiString(i);

Edit[i]->Width=596;

Edit[i]->Height=21;

Edit[i]->Left = 8;

Edit[i]->Top = 330;

Edit[i]->Text="";

Edit[i]->Font->Name="Arial";

Edit[i]->Font->Size=10;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Width=101;

RadioButton[i]->Height=17;

RadioButton[i]->Left = 610;

RadioButton[i]->Top = 332;

RadioButton[i]->Caption="Верный ответ";

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

}

else

{

Label[i] = new TLabel(this);

Label[i]->Parent = this;

Label[i]->Name = "Label"+AnsiString(i);

Label[i]->Left = 8;

Label[i]->Top = Edit[i-1]->Top+Edit[i-1]->Height+8;

Label[i]->Caption="Ответ "+AnsiString(i);

Label[i]->Font->Name="Arial";

Label[i]->Font->Size=10;

Edit[i] = new TEdit(this);

Edit[i]->Parent = this;

Edit[i]->Name = "Edit"+AnsiString(i);

Edit[i]->Width=596;

Edit[i]->Height=21;

Edit[i]->Left = 8;

Edit[i]->Top = Label[i]->Top+Label[i]->Height+3;

Edit[i]->Text="";

Edit[i]->Font->Name="Arial";

Edit[i]->Font->Size=10;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Width=101;

RadioButton[i]->Height=17;

RadioButton[i]->Left = 610;

RadioButton[i]->Top = Edit[i]->Top;

RadioButton[i]->Caption="Верный ответ";

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

}

}

Button1->Enabled=false;

Button2->Enabled=true;

Button3->Enabled=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm7::Button3Click(TObject *Sender)

{

AnsiString Error;

int err;

Error = "Невозможно произвести сохранение вопроса в базе данных, т.к. не заполнены следующие поля:";

err=0;

int RBS;

RBS=0;

AnsiString bul;

int MaxIDQ;

int MaxIDA;

//Проверка правильности заполнения

if(Memo1->Text==""){Error=Error+"\nТекст вопроса;"; err++;}

for (int i=1;i<=CSpinEdit1->Value;i++)

{

if(Edit[i]->Text=="")

{

Error=Error+"\nТекст ответа "+AnsiString(i)+";"; err++;

}

}

for (int i=1;i<=CSpinEdit1->Value;i++)

{

if(RadioButton[i]->Checked==true)

{

RBS=1;

}

}

if(RBS==0){Error=Error+"\nНевыбран правильный ответ;"; err++;}

if(err!=0){ShowMessage(Error);RBS=0; err=0; return;}

//Конец проверки правильности заполнения

//Запись вопроса в базу

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Max(ID) from Questions";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

MaxIDQ=1;

}

else

{

MaxIDQ=Form4->DBGrid1->Columns->Items[0]->Field->Value;

MaxIDQ++;

}

DM3->ADOCommand1->CommandText="INSERT INTO Questions VALUES("+IntToStr(MaxIDQ)+",'"+Memo1->Text+"','1',NULL)";

DM3->ADOCommand1->Execute();

//Конец записи вопроса в базу

//Запись ответов в базу

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Max(ID) from Ansvers";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

MaxIDA=1;

}

else

{

MaxIDA=Form4->DBGrid1->Columns->Items[0]->Field->Value;

MaxIDA++;

}

for (int i=1;i<=CSpinEdit1->Value;i++)

{

if(RadioButton[i]->Checked==true){bul=Edit[i]->Text+"True";}else{bul=Edit[i]->Text+"False";}

DM3->ADOCommand1->CommandText="INSERT INTO Ansvers VALUES("+IntToStr(MaxIDA)+",'"+IntToStr(MaxIDQ)+"','"+Edit[i]->Text+"','"+MD5(bul+" Fastex")+"')";

DM3->ADOCommand1->Execute();

MaxIDA++;

}

ShowMessage("Запись в базу произведена успешно");

//Конец записи ответов в базу

for (int i=1;i<=CSpinEdit1->Value;i++)

{Label[i]->Free();

Edit[i]->Free();

RadioButton[i]->Free();}

CSpinEdit1->Value=1;

Button1->Enabled=true;

Button2->Enabled=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm7::Button2Click(TObject *Sender)

{

if(MessageDlg("При правке ответов, текущая структура будет удалена. Придется создавать ее снова. Продолжить ?", mtWarning, TMsgDlgButtons() <<mbYes << mbNo, 0)==mrYes)

{

for (int i=1;i<=CSpinEdit1->Value;i++)

{

Label[i]->Free();

Edit[i]->Free();

RadioButton[i]->Free();

}

CSpinEdit1->Value=1;

Button1->Enabled=true;

Button2->Enabled=false;

Button3->Enabled=false;

}

else

{

return;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm7::R2adioButton2Click(TObject *Sender)

{

Form8->Top=Form7->Top;

Form8->Left=Form7->Left;

Form8->Show();

Form7->Close();

Form8->R2adioButton2->Checked=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm7::FormCreate(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Unit8

//---------------------------------------------------------------------------

#include <vcl.h>

#include <md5.h>

#include <md5.cpp>

#include <jpeg.hpp>

#pragma hdrstop

#include "Unit3.h"

#include "Unit4.h"

#include "Unit6.h"

#include "Unit7.h"

#include "Unit8.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm8 *Form8;

AnsiString DBFName;

//---------------------------------------------------------------------------

__fastcall TForm8::TForm8(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm8::R1adioButton1Click(TObject *Sender)

{

Form7->Top=Form8->Top;

Form7->Left=Form8->Left;

Form7->Show();

Form8->Close();

Form7->R1adioButton1->Checked=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button1Click(TObject *Sender)

{

AnsiString FName, Dir, NewName;

OpenPictureDialog1->Execute();

Edit1->Text=OpenPictureDialog1->FileName;

Edit1->Text=OpenPictureDialog1->FileName;

Dir=ExtractFileDir(Application->ExeName); // Извлечение адреса текущей директории запуска программы

FName=ExtractFileName(Edit1->Text);//Извлечение имени графического файла

NewName=Dir+"\\images\\"+FName; // Описание адреса копирования файла

DBFName=FName;

CopyFile(FName.c_str(),NewName.c_str(), false); // Копирование графического файла в собственную директорию

Image1->Picture->LoadFromFile(NewName);

Image1->Visible=true;

Label1->Visible=true;

Image1->Height=250;

Label2->Top=Image1->Top+Image1->Height+5;

Memo1->Top=Label2->Top+Label2->Height+3;

Label3->Top=Memo1->Top+Memo1->Height+15;

Edit2->Top=Label3->Top+Label3->Height+5;

Button3->Top=Edit2->Top+Edit2->Height+25;

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button3Click(TObject *Sender)

{

AnsiString Error="Сохранение произвести невозможно";

int err=0;

int MaxIDQ;

int MaxIDA;

if(Memo1->Text=="")

{

err++;

Error=Error+"\nНе введет текст вопроса";

}

if(Edit2->Text=="")

{

err++;

Error=Error+"\nНе введет текст ответа";

}

if(err!=0)

{

ShowMessage(Error); return;

}

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Max(ID) from Questions";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

MaxIDQ=1;

}

else

{

MaxIDQ=Form4->DBGrid1->Columns->Items[0]->Field->Value;

MaxIDQ++;

}

if(OpenPictureDialog1->FileName=="")

{

DM3->ADOCommand1->CommandText="INSERT INTO Questions VALUES("+IntToStr(MaxIDQ)+",'"+Memo1->Text+"','2',NULL)";

DM3->ADOCommand1->Execute();

}

else

{

DM3->ADOCommand1->CommandText="INSERT INTO Questions VALUES("+IntToStr(MaxIDQ)+",'"+Memo1->Text+"','2','"+DBFName+"')";

DM3->ADOCommand1->Execute();

}

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Max(ID) from Ansvers";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

MaxIDA=1;

}

else

{

MaxIDA=Form4->DBGrid1->Columns->Items[0]->Field->Value;

MaxIDA++;

}

DM3->ADOCommand1->CommandText="INSERT INTO Ansvers VALUES("+IntToStr(MaxIDA)+",'"+IntToStr(MaxIDQ)+"','"+Memo1->Text+"','"+MD5(Edit2->Text+" Fastex")+"')";

DM3->ADOCommand1->Execute();

ShowMessage("Запись успешно завершена");

}

//---------------------------------------------------------------------------

void __fastcall TForm8::FormCreate(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Unit9

//---------------------------------------------------------------------------

#include <vcl.h>

#include <md5.h>

#include <md5.cpp>

#pragma hdrstop

#include "Unit3.h"

#include "Unit4.h"

#include "Unit9.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm9 *Form9;

TRadioButton *RadioButton[65536];

extern int ID;

extern AnsiString Login;

extern AnsiString sName;

extern AnsiString SurName;

extern AnsiString Group;

extern AnsiString Status;

extern AnsiString DateOfRegist;

extern AnsiString TimeOfRegist;

extern AnsiString Lock;

extern AnsiString AVTORIZ;

int NowIDQ=1;

int NowIDA=1;

int MaxIDQ;

int MaxIDA;

int Ans=0;

int TrAns=0;

int CControl=0;

//---------------------------------------------------------------------------

__fastcall TForm9::TForm9(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm9::Button1Click(TObject *Sender)

{

int i;

NowIDQ=1;

NowIDA=1;

Ans=0;

TrAns=0;

AnsiString Type;

//Заполнение полей идентификации

Label10->Caption=ID;

Label11->Caption=Login;

Label12->Caption=sName;

Label13->Caption=SurName;

Label14->Caption=Group;

Label15->Caption=Status;

if(AVTORIZ=="YES"){Label16->Caption="Да";Label16->Color=clLime;}else{Label16->Caption="Нет";Label16->Color=clRed;}

//Проверка наличия вопросов в базе

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

ShowMessage("В базе отсутствуют вопросы");

return;

}

//Получение количество вопросов в базе

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Max(ID) From Questions";

DM3->ADOQuery1->Active=true;

MaxIDQ=Form4->DBGrid1->Columns->Items[0]->Field->Value;

//Дополнение идентификации

Label20->Caption=AnsiString(NowIDQ);

Label21->Caption=AnsiString(MaxIDQ);

//Очистка предыдущих вариантов

if(CControl==1)

{

for(i=1;i<=MaxIDA;i++)

{

RadioButton[i]->Free();

}

}

//Определение типа вопроса

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Type From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Type=Form4->DBGrid1->Columns->Items[0]->Field->Value;

if(Type=="1")

{

//Расстановка элементов

Label1->Visible=true;

Memo1->Visible=true;

Label2->Visible=true;

Label1->Top=8;

Memo1->Top=32;

Label17->Visible=false;

Image1->Visible=false;

Label23->Visible=false;

Edit1->Visible=false;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

//Получение количества ответов

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT Count(Ansvers.ID) FROM Questions INNER JOIN Ansvers ON Questions.ID = Ansvers.IDQ Where IDQ="+AnsiString(NowIDQ);;

DM3->ADOQuery1->Active=true;

MaxIDA=Form4->DBGrid1->Columns->Items[0]->Field->Value;

//Формирование вариантов ответов

int i;

for(i=1;i<=MaxIDA;i++)

{

if(i==1)

{

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT * From Ansvers where ID="+AnsiString(NowIDA);

DM3->ADOQuery1->Active=true;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Left = 8;

RadioButton[i]->Top = 165;

RadioButton[i]->Caption=Form4->DBGrid1->Columns->Items[2]->Field->Value;

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

CControl=1;

NowIDA++;

}

else

{

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT * From Ansvers where ID="+AnsiString(NowIDA);

DM3->ADOQuery1->Active=true;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Left = 8;

RadioButton[i]->Top = RadioButton[i]->Height+RadioButton[i-1]->Top+2;

RadioButton[i]->Caption=Form4->DBGrid1->Columns->Items[2]->Field->Value;

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

CControl=1;

NowIDA++;

}

}

Button1->Enabled=false;

Button2->Enabled=true;

Button3->Enabled=true;

}

else

{

//Определение наличия картинки

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[3]->Field->Value.IsNull())

{

Label1->Visible=false;

Label2->Visible=false;

Memo1->Visible=true;

Label17->Visible=true;

Image1->Visible=true;

Label23->Visible=true;

Edit1->Visible=true;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

CControl=0;

NowIDA++;

Button1->Enabled=false;

Button2->Enabled=true;

Button3->Enabled=true;

}

else

{

//перемещение объектов;

Memo1->Visible=true;

Label17->Visible=true;

Image1->Visible=true;

Label23->Visible=true;

Edit1->Visible=true;

Label1->Visible=false;

Label2->Visible=false;

Label1->Top=288;

Memo1->Top=312;

Label23->Top=416;

Edit1->Top=440;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

//Загрузка изображения на форму

AnsiString FName, Dir;

Dir=ExtractFileDir(Application->ExeName);

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

FName=Form4->DBGrid1->Columns->Items[3]->Field->Value;

Image1->Picture->LoadFromFile(Dir+"\\images\\"+FName);

CControl=0;

NowIDA++;

Button1->Enabled=false;

Button2->Enabled=true;

Button3->Enabled=true;

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm9::Button2Click(TObject *Sender)

{

AnsiString Type;

int i, NCheckAns;

AnsiString Error;

int err;

err=0;

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

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Type From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Type=Form4->DBGrid1->Columns->Items[0]->Field->Value;

if(Type=='1')

{

//Проверка ответа

for(i=1;i<=MaxIDA;i++)

{

if(RadioButton[i]->Checked==true)

{

err=1;

}

else

{

Error="Вы не выбрали вариант ответа !";

}

}

if(err==0)

{

ShowMessage(Error); return;

}

Ans++;

for(i=1;i<=MaxIDA;i++)

{

if(RadioButton[i]->Checked==true){NCheckAns=i;}

}

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Ansvers Where Ansvers.IDQ="+AnsiString(NowIDQ)+" and Ansvers.Ansver='"+AnsiString(RadioButton[NCheckAns]->Caption)+"'";

DM3->ADOQuery1->Active=true;

AnsiString T,F;

T=MD5(RadioButton[NCheckAns]->Caption+"True Fastex");

F=MD5("False Fastex");

if(Form4->DBGrid1->Columns->Items[3]->Field->Value==T){TrAns++;} else {TrAns=TrAns;}

}

else

{

err=0;

//Проверка наличия ответа

if(Edit1->Text=="")

{

err++;

Error="Вы не ввели текст ответа";

}

if(err!=0)

{ShowMessage(Error); return;}

Ans++;

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Ansvers Where Ansvers.IDQ="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[3]->Field->Value==MD5(Edit1->Text+" Fastex")){TrAns++;} else {TrAns=TrAns;}

}

//Переход к следующему вопросу

NowIDQ++;

//Обновление поля

Label20->Caption=NowIDQ;

if(NowIDQ>MaxIDQ)

{

Button2->Enabled=false; return;

}

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

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select Type From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Type=Form4->DBGrid1->Columns->Items[0]->Field->Value;

if(Type=='1')

{

//Расстановка элементов

Label1->Visible=true;

Memo1->Visible=true;

Label2->Visible=true;

Label1->Top=8;

Memo1->Top=32;

Label17->Visible=false;

Image1->Visible=false;

Label23->Visible=false;

Edit1->Visible=false;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

//Очистка предыдущих вариантов

if(CControl==1)

{

for(i=1;i<=MaxIDA;i++)

{

RadioButton[i]->Free();

}

}

Edit1->Text="";

//Получение количества ответов

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT Count(Ansvers.ID) FROM Questions INNER JOIN Ansvers ON Questions.ID = Ansvers.IDQ Where IDQ="+AnsiString(NowIDQ);;

DM3->ADOQuery1->Active=true;

MaxIDA=Form4->DBGrid1->Columns->Items[0]->Field->Value;

//Формирование вариантов ответов

int i;

for(i=1;i<=MaxIDA;i++)

{

if(i==1)

{

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT * From Ansvers where ID="+AnsiString(NowIDA);

DM3->ADOQuery1->Active=true;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Left = 8;

RadioButton[i]->Top = 165;

RadioButton[i]->Caption=Form4->DBGrid1->Columns->Items[2]->Field->Value;

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

CControl=1;

NowIDA++;

}

else

{

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="SELECT * From Ansvers where ID="+AnsiString(NowIDA);

DM3->ADOQuery1->Active=true;

RadioButton[i] = new TRadioButton(this);

RadioButton[i]->Parent = this;

RadioButton[i]->Name = "RadioButton"+AnsiString(i);

RadioButton[i]->Left = 8;

RadioButton[i]->Top = RadioButton[i]->Height+RadioButton[i-1]->Top+2;

RadioButton[i]->Caption=Form4->DBGrid1->Columns->Items[2]->Field->Value;

RadioButton[i]->Font->Name="Arial";

RadioButton[i]->Font->Size=10;

CControl=1;

NowIDA++;

}

}

}

else

{

//Определение наличия картинки

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[3]->Field->Value.IsNull())

{

Label1->Visible=false;

Label2->Visible=false;

Memo1->Visible=true;

Label17->Visible=true;

Image1->Visible=true;

Label23->Visible=true;

Edit1->Visible=true;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

//Очистка предыдущих вариантов

if(CControl==1)

{

for(i=1;i<=MaxIDA;i++)

{

RadioButton[i]->Free();

}

}

CControl=0;

NowIDA++;

Edit1->Text="";

}

else

{

//перемещение объектов;

Memo1->Visible=true;

Label17->Visible=true;

Image1->Visible=true;

Label23->Visible=true;

Edit1->Visible=true;

Label1->Visible=false;

Label2->Visible=false;

Label1->Top=288;

Memo1->Top=312;

Label23->Top=416;

Edit1->Top=440;

//Загрузка вопроса на форму

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

Memo1->Text=Form4->DBGrid1->Columns->Items[1]->Field->Value;

//Загрузка изображения на форму

AnsiString FName, Dir;

Dir=ExtractFileDir(Application->ExeName);

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select * From Questions Where ID="+AnsiString(NowIDQ);

DM3->ADOQuery1->Active=true;

линейный программирование симплексный метод

FName=Form4->DBGrid1->Columns->Items[3]->Field->Value;

Image1->Picture->LoadFromFile(Dir+"\\images\\"+FName);

//Очистка предыдущих вариантов

if(CControl==1)

{

for(i=1;i<=MaxIDA;i++)

{

RadioButton[i]->Free();

}

}

CControl=0;

NowIDA++;

Edit1->Text="";

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm9::Button3Click(TObject *Sender)

{

AnsiString Dir;

Dir=ExtractFileDir(Application->ExeName);

if(Ans<MaxIDQ)

{

if(MessageDlg("Вы ответили на не все вопросы.\nУверены, что хотите завершить тестирвоание?", mtConfirmation, TMsgDlgButtons() <<mbYes << mbNo, 0)==mbNo)

{

return;

}

else

{

ShowMessage("Всего вопросов: "+AnsiString(MaxIDQ)+"\nОтвечено: "+AnsiString(Ans)+"\nВерных: "+AnsiString(TrAns)+"\n\nОценка: "+AnsiString((TrAns*5.0/MaxIDQ)));

}

}

else

{

ShowMessage("Всего вопросов: "+AnsiString(MaxIDQ)+"\nОтвечено: "+AnsiString(Ans)+"\nВерных: "+AnsiString(TrAns)+"\n\nОценка: "+AnsiString((TrAns*5.0/MaxIDQ)));

}

TDateTime ND;

ND=Now();

Memo2->Lines->Add("<html>");

Memo2->Lines->Add("<head>");

Memo2->Lines->Add("<title>Результат тестирвоания</title>");

Memo2->Lines->Add("<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>");

Memo2->Lines->Add("</head>");

Memo2->Lines->Add("<body>");

Memo2->Lines->Add("<center><h2><u>Результат тестирования пользователя № "+AnsiString(ID)+"</u></h2></center></br>");

Memo2->Lines->Add("<left><b>Логин: </b>"+Login+";</left></br>");

Memo2->Lines->Add("<left><b>Имя: </b>"+sName+";</left></br>");

Memo2->Lines->Add("<left><b>Фамилия: </b>"+SurName+";</left></br>");

Memo2->Lines->Add("<left><b>Группа: </b>"+Group+";</left></br>");

Memo2->Lines->Add("<left><b>Статус: </b>"+Status+";</left></br>");

Memo2->Lines->Add("<left><b>Всего вопросов: </b>"+AnsiString(MaxIDQ)+";</left></br>");

Memo2->Lines->Add("<left><b>Дано ответов: </b>"+AnsiString(Ans)+";</left></br>");

Memo2->Lines->Add("<left><b><u>Оценка: </u></b>"+AnsiString((TrAns*5.0/MaxIDQ))+";</left></br>");

Memo2->Lines->Add("<left><b>Дата тестирвоания: </b>"+DateToStr(ND)+";</left></br>");

Memo2->Lines->SaveToFile(Dir+"\\reports\\"+Login+"_"+AnsiString(DateToStr(ND))+".html");

//Запись в базу

int MaxIDT;

DM3->ADOQuery1->Active=false;

DM3->ADOQuery1->SQL->Text="Select MAX(ID) From TestResult";

DM3->ADOQuery1->Active=true;

if(Form4->DBGrid1->Columns->Items[0]->Field->Value.IsNull())

{

MaxIDT=1;

}

else

{

MaxIDT=Form4->DBGrid1->Columns->Items[0]->Field->Value;

MaxIDT++;

}

DM3->ADOCommand1->CommandText="INSERT INTO TestResult VALUES("+AnsiString(MaxIDT)+","+AnsiString(ID)+",'"+DateToStr(ND)+"','"+AnsiString((TrAns*5.0/MaxIDQ))+"','"+Login+"_"+AnsiString(DateToStr(ND))+".htm"+"')";

DM3->ADOCommand1->Execute();

Button1->Enabled=true;

Button2->Enabled=false;

Button3->Enabled=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm9::FormCreate(TObject *Sender)

{

}

//---------------------------------------------------------------------------

Unit10

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit10.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "SHDocVw_OCX"

#pragma resource "*.dfm"

TForm10 *Form10;

//---------------------------------------------------------------------------

__fastcall TForm10::TForm10(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm10::Button2Click(TObject *Sender)

{

Form10->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm10::FormCreate(TObject *Sender)

{

TCHAR buffer[MAX_PATH];

GetCurrentDirectory(sizeof(buffer),buffer);

String dir=AnsiString(buffer);

CppWebBrowser1->Navigate(WideString(dir+"/AdminReport.html"));

}

//---------------------------------------------------------------------------

void __fastcall TForm10::FormActivate(TObject *Sender)

{

TCHAR buffer[MAX_PATH];

GetCurrentDirectory(sizeof(buffer),buffer);

String dir=AnsiString(buffer);

CppWebBrowser1->Navigate(WideString(dir+"/AdminReport.html"));

}

//---------------------------------------------------------------------------

void __fastcall TForm10::Button1Click(TObject *Sender)

{

CppWebBrowser1->ExecWB(::OLECMDID_PRINT, ::OLECMDEXECOPT_DONTPROMPTUSER);

}

//---------------------------------------------------------------------------

ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ

Отчет по решению

Условия задачи:

Целевая функция:

f= 2x1 +3x2 > Max

Система ограничений:

1x1 +2x2 <= 12

1x1 +3x2 <= 24

1x1 +1x2 <= 30

Решение:

Задача представленна в общем виде. Необходимо преобразовать ее в вид ОЗЛП

В этом случае функция примет вид:

f= 2x1 +3x2 > Max

А система ограничений примет вид:

1x1 +2x2 +1x3 0x4 0x5 = 12

1x1 +3x2 0x3 +1x4 0x5 = 24

1x1 +1x2 0x3 0x4 +1x5 = 30

После всех преобразований можно стоставить Симплекс таблицу.

Исходная Симплекс - таблица:

Цикл 1

Базис

План

X1

X2

X3

X4

X5

X3

12

1

2

1

0

0

X4

24

1

3

0

1

0

X5

30

1

1

0

0

1

F'

0

-2

-3

0

0

0

Из базиса выводится переменная X3, а вводится - X2

Новое значение: F=0;

Новый опорный план: X3=12; X4=24; X5=30;

Цикл 2

Базис

План

X1

X2

X3

X4

X5

X2

6

0,5

1

0,5

0

0

X4

6

-0,5

0

-1,5

1

0

X5

24

0,5

0

-0,5

0

1

F'

18

-0,5

0

1,5

0

0

Из базиса выводится переменная X2, а вводится - X1

Новое значение: F=18;

Новый опорный план: X2=6; X4=6; X5=24;

Цикл 2

Базис

План

X1

X2

X3

X4

X5

X1

12

1

2

1

0

0

X4

12

0

1

-1

1

0

X5

18

0

-1

-1

0

1

F'

24

0

1

2

0

0

Найден оптимальный план

Итоговое значение: F=24;

Итоговый опорный план: X1=12; X4=12; X5=18;

Размещено на Allbest.ru


Подобные документы

  • Анализ решения задачи линейного программирования. Симплексный метод с использованием симплекс-таблиц. Моделирование и решение задач ЛП на ЭВМ. Экономическая интерпретация оптимального решения задачи. Математическая формулировка транспортной задачи.

    контрольная работа [196,1 K], добавлен 15.01.2009

  • Анализ метода линейного программирования для решения оптимизационных управленческих задач. Графический метод решения задачи линейного программирования. Проверка оптимального решения в среде MS Excel с использованием программной надстройки "Поиск решения".

    курсовая работа [2,2 M], добавлен 29.05.2015

  • Теоретическая основа линейного программирования. Задачи линейного программирования, методы решения. Анализ оптимального решения. Решение одноиндексной задачи линейного программирования. Постановка задачи и ввод данных. Построение модели и этапы решения.

    курсовая работа [132,0 K], добавлен 09.12.2008

  • Алгоритм решения задач линейного программирования симплекс-методом. Построение математической модели задачи линейного программирования. Решение задачи линейного программирования в Excel. Нахождение прибыли и оптимального плана выпуска продукции.

    курсовая работа [1,1 M], добавлен 21.03.2012

  • Применение методов линейного программирования для решения оптимизационных задач. Основные понятия линейного программирования, свойства транспортной задачи и теоремы, применяемые для ее решения. Построение первичного опорного плана и системы потенциалов.

    курсовая работа [280,8 K], добавлен 17.11.2011

  • Постановка задачи линейного программирования и формы ее записи. Понятие и методика нахождения оптимального решения. Порядок приведения задач к каноническому виду. Механизмы решения задач линейного программирования аналитическим и графическим способами.

    методичка [366,8 K], добавлен 16.01.2010

  • Математическое программирование. Линейное программирование. Задачи линейного программирования. Графический метод решения задачи линейного программирования. Экономическая постановка задачи линейного программирования. Построение математической модели.

    курсовая работа [581,5 K], добавлен 13.10.2008

  • Расчет производства необходимого количества продукции для получения максимальной прибыли предприятия. Математическая модель для решения задач линейного программирования. Построение ограничений и целевых функций. Исследование чувствительности модели.

    задача [74,7 K], добавлен 21.08.2010

  • Сущность линейного программирования. Математическая формулировка задачи ЛП и алгоритм ее решения с помощью симплекс-метода. Разработка программы для планирования производства с целью обеспечения максимальной прибыли: блок-схема, листинг, результаты.

    курсовая работа [88,9 K], добавлен 11.02.2011

  • Особенности метода ветвей и границ как одного из распространенных методов решения целочисленных задач. Декомпозиция задачи линейного программирования в алгоритме метода ветвей и границ. Графический, симплекс-метод решения задач линейного программирования.

    курсовая работа [4,0 M], добавлен 05.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.