Отображение изменения уровня воды в цилиндрическом сосуде с применением средств графического отображения и компонента класса “TTimer”

Страницы работы

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ 

РОССИЙСКОЙ ФЕДЕРАЦИИ

Государственное образовательное учреждение

высшего профессионального образования

Сибирский государственный индустриальный университет

Кафедра

информационных технологий в металлургии.

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

к курсовой работе

Выполнил: ст.гр. ИСП-06

 Козлов А.В.

Проверил: Кожемяченко В.И.

 Новокузнецк 2007.

Задание: Дан цилиндрический сосуд, имеющий каналы подвода и отвода воды. Каждый канал подвода характеризуется секундным объемом воды; каждый канал отвода – диаметром и высотой расположения в сосуде. Построить отображение изменения уровня воды в сосуде во времени с выводом информации о текущем расходе воды через каждый из отводных каналов. Предусмотреть добавление и удаление каналов, изменение их характеристики без остановки процесса расчета.

Постановка задачи. В соответствии с условиями задачи требуется применение средств графического отображения, а также компонент класса TTimer”, для организации непрерывного отображения изменения уровня воды в сосуде. Для добавления и редактирования каналов буду использовать диалоговые окна.

Выделение классов. Для решения поставленной задачи опишу класс, характеризующий отдельно взятый подводимый и отводимый каналы (TKanal). Экземпляры данных классов должны уметь вырисовывать и стирать себя на панели рисования и взаимодействовать с другими экземплярами своего класса. Для этого они должны знать место своего расположения в виде координат своей позиции(подводящий канал) и высоты расположения в сосуде (отводящий канал), а также уметь определять свободно данное место или нет. Также этим классам отводится свойство хранения информации по секундному объему подводимой воды(подводящий канал), высоте расположения в сосуде и диаметру(отводящий канал). Таким образом любой канал, имея свои собственные координаты на поверхности рисования, сможет получить информацию о “занятости” данной позиции и эта информация не будет дублироваться.

Класс  канала опишем следующим образом:

TKanal=class

public

  V,poz:integer;

  key:boolean;

  Canvas:TCanvas;

  constructor Create(NewKey:boolean; NewPoz,NewV:integer; NewCanvas:TCanvas);

  destructor Destroy; override;

  procedure show(color1,color2 : tcolor);

  procedure hide;

end;

где:     V,Poz  –       Для подводящего канала это позиция его в сосуде и секундный объем подводящей воды.

Key -            Логическая переменная определяющая тип канала.                                     

Сanvas –      Ссылка на поверхность рисования.

Метод constructor Create служит для создания нового канала, задание типа канала, значения секундного объема подводимой воды и позиции канала, а также рисование на панели рисования.

constructor TKanal.Create(NewKey:boolean; NewPoz,NewV:integer; NewCanvas:TCanvas);

BEGIN

inherited Create;

Key:=NewKey;

Poz:=NewPoz;

V:=NewV;

Canvas:=NewCanvas;

show(clBlack,clBlue);

END; 

Метод destructor Destroy позволяет разрушить и стиреть канал при его удалении.

destructor TKanal.Destroy;

BEGIN

Hide;

inherited destroy;

END;  

Метод  procedure show(color1,color2 : tcolor) служит для рисовании канала на панели рисования.

procedure TKanal.show(color1,color2 : tcolor);

BEGIN

Canvas.Pen.color:=color1;

Canvas.Brush.color:=color2;

if key then

  begin

   Canvas.Rectangle(16,(poz-1)*30+50,50,poz*30+40);

  end

else

  begin

   Canvas.Rectangle(250,350-poz,275,350-poz-V);

  end;

END;

Метод procedure Hide служит для стирания канала с поверхности рисования.

procedure TKanal.hide;

BEGIN

show(clSilver,clSilver);

END;

Выделение перечня наиболее важных структур данных. Наиболее важными при работе являются экземпляр класса TKanal, а также список класса TListBox, хранящий информацию о всех экземпляров класса TKanal, используемых в текущий момент. Все объекты создаются в момент загрузки программы. Можно также отметить переменные V, H служащие для хранения информации об объеме воды в сосуде и высоты водяного столба в сосуде; а также массивы z и zz которые показывают занято ли данное место другим каналом или нет.

Построение алгоритма реализации. При работе программы может возникнуть четыре основных события: добавление, удалении и редактирование свойств подводящих и отводящих каналов, а также изменение уровня воды в сосуде. Рассмотрим алгоритм изменение уровня воды в сосуде, который выполняется при каждом срабатывании таймера.

procedure TForm1.Timer1Timer(Sender: TObject);

var r,x,z,y,st,ss,s,poz,dV:real;

Похожие материалы

Информация о работе