Разработка программ для решения задач линейного программирования

Автор работы: Пользователь скрыл имя, 15 Февраля 2012 в 22:55, курсовая работа

Краткое описание

Главная цель данной курсовой работы, произвести разработку программного продукта с помощью языков программирования С++, Delphi, Visual Basic. Разработка программного продукта, это процесс создания программы для её продажи. Сложность разработки программного продукта заключается в, удовлетворении требований заказчика к данному программному продукту. Существуют два метода проектирования программного продукта, по степени автоматизации проектных работ и по подходам к организации процесса создания программного продукта.

Содержание работы

Введение
Спецификация
Техническая задача
Математическая модель
Блок схемы решение задач
Решение задачи вручную
Программный код задачи
Локальная оценка задачи
Заключение

Содержимое работы - 1 файл

курсач112.docx

— 188.79 Кб (Скачать файл)

         A[0][8]=StrToFloat(Edit57->Text);

         A[1][8]=StrToFloat(Edit58->Text);

         A[2][8]=StrToFloat(Edit59->Text);

         A[3][8]=StrToFloat(Edit60->Text);

         A[4][8]=StrToFloat(Edit61->Text);

         A[5][8]=StrToFloat(Edit62->Text);

         A[6][8]=StrToFloat(Edit63->Text);

         A[0][9]=StrToFloat(Edit64->Text);

         A[1][9]=StrToFloat(Edit65->Text);

         A[2][9]=StrToFloat(Edit66->Text);

         A[3][9]=StrToFloat(Edit67->Text);

         A[4][9]=StrToFloat(Edit68->Text);

         A[5][9]=StrToFloat(Edit69->Text);

         A[6][9]=StrToFloat(Edit70->Text);

         A[0][10]=StrToFloat(Edit71->Text);

         A[1][10]=StrToFloat(Edit72->Text);

         A[2][10]=StrToFloat(Edit73->Text);

         A[3][10]=StrToFloat(Edit74->Text);

         A[4][10]=StrToFloat(Edit75->Text);

         A[5][10]=StrToFloat(Edit76->Text);

         A[6][10]=StrToFloat(Edit77->Text);

         Fx[0]=StrToFloat(Edit78->Text);

         Fx[1]=StrToFloat(Edit79->Text);

         Fx[2]=StrToFloat(Edit80->Text);

         Fx[3]=StrToFloat(Edit81->Text);

         Fx[4]=StrToFloat(Edit82->Text);

         Fx[5]=StrToFloat(Edit83->Text);

         Fx[6]=StrToFloat(Edit84->Text);

         Fx[7]=StrToFloat(Edit85->Text);

         Fx[8]=StrToFloat(Edit86->Text);

         Fx[9]=StrToFloat(Edit87->Text);

         Calcul();

         Edit1->Text=FloatToStr(A[0][0]);

         Edit2->Text=FloatToStr(A[1][0]);

         Edit3->Text=FloatToStr(A[2][0]);

         Edit4->Text=FloatToStr(A[3][0]);

         Edit5->Text=FloatToStr(A[4][0]);

         Edit6->Text=FloatToStr(A[5][0]);

         Edit7->Text=FloatToStr(A[6][0]);

         Edit8->Text=FloatToStr(A[0][1]);

         Edit9->Text=FloatToStr(A[1][1]);

         Edit10->Text=FloatToStr(A[2][1]);

         Edit11->Text=FloatToStr(A[3][1]);

         Edit12->Text=FloatToStr(A[4][1]);

         Edit13->Text=FloatToStr(A[5][1]);

         Edit14->Text=FloatToStr(A[6][1]);

         Edit15->Text=FloatToStr(A[0][2]);

         Edit16->Text=FloatToStr(A[1][2]);

         Edit17->Text=FloatToStr(A[2][2]);

         Edit18->Text=FloatToStr(A[3][2]);

         Edit19->Text=FloatToStr(A[4][2]);

         Edit20->Text=FloatToStr(A[5][2]);

         Edit21->Text=FloatToStr(A[6][2]);

         Edit22->Text=FloatToStr(A[0][3]);

         Edit23->Text=FloatToStr(A[1][3]);

         Edit24->Text=FloatToStr(A[2][3]);

         Edit25->Text=FloatToStr(A[3][3]);

         Edit26->Text=FloatToStr(A[4][3]);

         Edit27->Text=FloatToStr(A[5][3]);

         Edit28->Text=FloatToStr(A[6][3]);

         Edit29->Text=FloatToStr(A[0][4]);

         Edit30->Text=FloatToStr(A[1][4]);

         Edit31->Text=FloatToStr(A[2][4]);

         Edit32->Text=FloatToStr(A[3][4]);

         Edit33->Text=FloatToStr(A[4][4]);

         Edit34->Text=FloatToStr(A[5][4]);

         Edit35->Text=FloatToStr(A[6][4]);

         Edit36->Text=FloatToStr(A[0][5]);

         Edit37->Text=FloatToStr(A[1][5]);

         Edit38->Text=FloatToStr(A[2][5]);

         Edit39->Text=FloatToStr(A[3][5]);

         Edit40->Text=FloatToStr(A[4][5]);

         Edit41->Text=FloatToStr(A[5][5]);

         Edit42->Text=FloatToStr(A[6][5]);

         Edit43->Text=FloatToStr(A[0][6]);

         Edit44->Text=FloatToStr(A[1][6]);

         Edit45->Text=FloatToStr(A[2][6]);

         Edit46->Text=FloatToStr(A[3][6]);

         Edit47->Text=FloatToStr(A[4][6]);

         Edit48->Text=FloatToStr(A[5][6]);

         Edit49->Text=FloatToStr(A[6][6]);

         Edit50->Text=FloatToStr(A[0][7]);

         Edit51->Text=FloatToStr(A[1][7]);

         Edit52->Text=FloatToStr(A[2][7]);

         Edit53->Text=FloatToStr(A[3][7]);

         Edit54->Text=FloatToStr(A[4][7]);

         Edit55->Text=FloatToStr(A[5][7]);

         Edit56->Text=FloatToStr(A[6][7]);

         Edit57->Text=FloatToStr(A[0][8]);

         Edit58->Text=FloatToStr(A[1][8]);

         Edit59->Text=FloatToStr(A[2][8]);

         Edit60->Text=FloatToStr(A[3][8]);

         Edit61->Text=FloatToStr(A[4][8]);

         Edit62->Text=FloatToStr(A[5][8]);

     Edit63->Text=FloatToStr(A[6][8]);

     Edit64->Text=FloatToStr(A[0][9]);

         Edit65->Text=FloatToStr(A[1][9]);

         Edit66->Text=FloatToStr(A[2][9]);

         Edit67->Text=FloatToStr(A[3][9]);

         Edit68->Text=FloatToStr(A[4][9]);

         Edit69->Text=FloatToStr(A[5][9]);

         Edit70->Text=FloatToStr(A[6][9]);

         Edit71->Text=FloatToStr(A[0][10]);

     Edit72->Text=FloatToStr(A[1][10]);

     Edit73->Text=FloatToStr(A[2][10]);

         Edit74->Text=FloatToStr(A[3][10]);

         Edit75->Text=FloatToStr(A[4][10]);

         Edit76->Text=FloatToStr(A[5][10]);

         Edit77->Text=FloatToStr(A[6][10]);

         long double F=0;

         for(char i=3;i<10;i++) F+=A[i-3][10]*Fx[i];

     Label20->Caption=FloatToStr(F);

         if (F<500000)

         Label21->Caption ="ðåøåíèå çàäà÷è îïòèìàëüíîå";

         else

         Label21->Caption = "ðåøåíèå çàäà÷è íå îïòèìàëüíîå";

     } 
 
 

     void __fastcall TForm1::BitBtn3Click(TObject *Sender)

     {

        GroupBox1->Visible=True;

     BitBtn1->Visible=True;

         BitBtn2->Visible=True;

         BitBtn3->Visible=False;

         Label18->Visible=True;

     Label20->Visible=True;

     }

     

 

LOC–оценки проекта

  Размерно-ориентированные  метрики прямо измеряют программный  продукт и процесс его разработки.

  Основываются  размерно-ориентированные метрики  на LOC-оценках (LinesOfCode). LOC-оценка — это количество строк в программном продукте.

  Исходные  данные для расчета LOC-метрик:

Проект Затраты,

чел. - мес

Стоимость,

тыс. $

KLOC,

тыс. LOC

Прогр.

док –  ты,

страниц

Ошибки Люди
ааа01 0,11 160 100 8 9 1
ааа02 0,18 410 25 5 5 1
ccc03 0,33 360 219 9 7 1
 

  На основе таблицы вычисляются размерно-ориентированные  метрики производительности и качества (для каждого проекта):

  Для задачи №1: 
 
 
 
 
 
 
 
 

 

  Для задачи №2: 
 
 
 
 
 
 
 

  Для задачи№3: 
 
 
 
 
 
 
 
 
 

 

         Заключение

     В ходе выполнения курсовой работы я создал спецификацию, основанием для разработки которой является учебный план дисциплины ТРПП, после этого я разработал техническое задание и составил математическую модель решения задач. Затем я построил блок-схемы задач, на их основе я написал программы для решения задач на языках программирования Delphi, Visual Bas, С++. После этого я выполнил расчет локальных оценок рассмотренных задач. С целью тестирования правильности работы программ мною были выполнены расчёты с использованием методов решения задач СМО и симплексного метода вручную. 

Информация о работе Разработка программ для решения задач линейного программирования