Работа в дельфи

Автор работы: Пользователь скрыл имя, 28 Мая 2012 в 01:46, курсовая работа

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

Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекци

Содержание

ВВЕДЕНИЕ 4

1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 6

1.1 Обзор программных средств 6

1.2 Постановка задачи 8

1.3 Алгоритм решения задачи 8

1.4 Блок-схема алгоритма решения задачи 9

2 ПРАКТИЧЕСКАЯ ЧАСТЬ 11

2.1 Решение поставленной задачи в Delphi 11

2.2 Описание интерфейса среды Delphi 11

2.3 Перечень используемых в программе идентификаторов 13

2.4 Тексты основных модулей и вид форм приложения 14

2.5 Графическое представление результатов 18

2.6 Анализ полученных результатов 19

ЗАКЛЮЧЕНИЕ 20

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 21

Вложенные файлы: 1 файл

VVEDENIE (1).docx

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

На компоненте 5 расположены  компоненты 6, 7, 8, 9. В компонент 6 мы вписываем  количество полок, а в компонент 7 количество ячеек на полке.

С помощью компонента 12 мы указываем количество деталей.

Компонент 13 позволяет выводить результат нашей работы на печать.

На компонент 10 выводится  расположение деталей на стеллаже так, чтобы он сохранил устойчивое положение: на нижней полке находились самые тяжелые детали, выше – детали меньшего веса и т.д.

    1. Перечень  используемых в программе идентификаторов

Перечень используемых в программе идентификаторов представим в виде таблицы 2.3.

 

Таблица 2.3 - Таблица использованных в программе идентификаторов

переменная

тип

назначение

i

integer

порядковый номер товара

kolich

integer

количество контейнеров

ves

real

вес контейнеров

imax

integer

количество наименований товаров максимальное

j

integer

порядковый номер товара

m

integer

порядковый номер полки  с наибольшим весом

polki

integer

количество полок

yacheiki

integer

количество ячеек

p_temp

integer

порядковый номер полки

ya_temp

integer

порядковый номер ячейки

tvr

bool

логическая переменная, которая  может принимать 2 значения (true или false)

    1. Тексты основных модулей и вид форм приложения

Программа реализуется в  графического приложения с одной  формой следующего вида (рисунок 2.3-рисунок 2.5).

Рисунок 2.3 – Форма программы (редактор)

Рисунок 2.4 – Форма программы (до выполнения)

 

Рисунок 2.4 – Форма программы (после выполнения)

 

Основные модули программы:

    1. Процедура расположения деталей на стеллаже:

procedure TForm1.Button1Click(Sender: TObject);

type Ttovar = record

name:string[15];

kolich:integer;

ves:real; end;

var all:array[1..50] of Ttovar;

    temp: Ttovar;

    imax,i, j, m :integer;

    polki, yacheiki, p_temp, ya_temp:integer;

    tvr:bool;

begin

Memo1.Clear;

  imax:=SpinEdit1.Value;

  for i:=1 to imax do begin

     all[i].name:=StringGrid1.Cells[1,i];

     all[i].kolich:=strtoint(StringGrid1.Cells[2,i]);

     all[i].ves:=strtofloat(StringGrid1.Cells[3,i]);

  end;

   for i:=1 to imax do begin

                    m:=i;

                    for j:=i+1 to imax do

                      if all[j].ves>all[m].ves  then m:=j;

                      temp:=all[m]; all[m]:=all[i]; all[i]:=temp;

                    end;

  polki:=strtoint(Edit1.Text);

  yacheiki:=strtoint(Edit2.Text);

      p_temp:=1;

      m:=1;

      ya_temp:=all[m].kolich;

      tvr:=true;

  for i:=1 to polki do begin

  memo1.Lines.Add('   ');

  memo1.Lines.Add('---на '+inttostr(i)+'-ю полку ----');

     for j:=1 to yacheiki do begin

                       if tvr then begin

                           memo1.Lines.Add(inttostr(j)+')  '+all[m].name);

                           ya_temp:=ya_temp-1;

                                    if  ya_temp=0 then begin m:=m+1;

                                        ya_temp:=all[m].kolich;

                                               if m>imax then tvr:=false

                                                         else tvr:=true;

                                                         end  end

                          else  memo1.Lines.Add(inttostr(j)+')'+'empty '); end;

      end;

end;

    1. Процедура сохранения результатов в файл:

procedure TForm1.Button2Click(Sender: TObject);

var NameSaveParFile:string;

begin

if SaveDialog1.Execute then

  NameSaveParFile:= SaveDialog1.FileName;

Memo1.Lines.SaveToFile(NameSaveParFile+'.txt');

end;

Информация о работе Работа в дельфи