на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Оптимизация сетевого графика по времени
p align="left">Оператор ввода служит для ввода данных в процессе выполнения программы. Значение вводимых данных получают переменные. Данные могут быть разбиты на отдельные строки. Различают два вида операторов ввода: Read, Readln. Допускается целые, действительные и символьные данные. Логические данные вводить не разрешается. Для правильного ввода символьных данных рекомендуется перед каждым оператором ввода символьных данных ставить оператор перехода на новую строку Readln , чтобы их ввод всегда осуществлялся с новой строки.

Оператор вывода имеет две формы записи: Write, Writeln. Допускается вывод данных с форматами и без них. Файловая переменная в Delphi - это любая переменная файлового типа. В Delphi имеются три класса файлов: типизированный файл, текстовый файл и нетипизированный файл. Работа с файлами осуществляется просто, присутствует возможность произвольного доступа к данным. В Delphi имеется возможность стыковки с другими программными средствами. Например, в ней можно использовать DLL (динамически компонуемые библиотеки), написанные на других языках программирования. Кроме того, программы, написанные на других языках, могут использовать DLL, написанные на Borland Delphi. DLL, таким образом, идеально подходит для использования в программных проектах, реализуемых на нескольких языках.

На Delphi имеется стандарт. В состав документации среды программирования входят: руководство пользователя; руководство по написанию компонент; документация по построению приложений, работающих с базами данных; руководство по генератору отчетов ReportSmith; руководство по SQL Links. В состав Delphi входит 5 интерактивных обучающих систем, документация в электронном виде и около 10 Мб справочной информации, а также множество дополнительных программ.

С помощью среды программирования Borland Delphi 5 была разработана программа «Оптимизация сетевого графика по времени». Пользовательский интерфейс в программе довольно прост (Главная форма приведена в приложении Б) в него входят множество визуальных компонентов(так как язык программирования Object Pascal - объектно-ориентированный, а его порождение Delphi - язык визуального программирования) из Delphi такие как:

GroupBox - Компонент представляет собой окно для группировки объектов, этот компонент был использован, чтобы сгруппировать такие объекты как кнопки SpeedButton (о них будет рассказано ниже)

MainMenu - Компонент используется, чтобы создать главное меню для формы.

StringGrid - Это компонент - Таблица он необходим для ввода исходных данных.

Panel - Это компонент используется для создания панели с надписью.

Label - Это компонент - Метка необходим для ввода текста в форму

SpeedButton - кнопка, которая используется, чтобы выполнить команды. На кнопки могут быть установлены легко запоминающиеся графические образы, которые помогают запомнить действия, происходящие после их нажатия.

OpenDialog - Компонент представляет собой диалог Окна для выбора и открытия файлы.

SaveDialog- Компонент представляет собой диалог Окна для выбора и сохранения файлы.

1.4.2. Описание программы

Программа «Оптимизация сетевого графика» разработана в среде программирования Borland Delphi 5 и работает под управлением операционной системы Windows (Текст программы приведен в приложении А).

Интерфейс программы достаточно прост и лёгок в обращении. Программа работает довольно просто: в ней имеется главное меню (Приложение Г) и «Панель операций» с кнопками.

Главное меню имеет структуру:

<Файл> <Помощь>

<Сохранить данные> <Справка>

<Загрузить данные> <О программе>

<Выход>

Для пунктов меню <Сохранить данные>, <Загрузить данные>, <Выход>, <Справка> имеются «Горячие клавиши» (Горячие клавиши - клавиши используемые для быстрого вызова программы) :

<Сохранить данные> F2 <Загрузить данные> F3

<Выход> F10 <Справка> F1

Если в программе нажать функциональную клавишу F2 или при выборе пункта меню <Файл>/< Сохранить файл> то программа автоматически проверит все ли ячейки заполнены при обнаружении что хотя бы одна ячейка не заполнена программа выводит сообщение об ошибке и сохранение не происходит, а если при проверке выясняется что все ячейки заполнены, то появляется диалоговое окно сохранения файла (приложение В), в котором указывается папка, в котором будет находиться файл с данными и в нем будут (если они есть) указанны другие файлы с данными, требуется ввести имя этого файла, программа автоматически прибавит к имени файла расширение *.Gra, используемое для обозначения файла с данными, затем происходит сам процесс сохранения.

А если нажать функциональную клавишу F3 или при выборе пункта меню <Файл>/< Открыть файл> то появляется диалоговое окно открытия файла (приложение В), в котором указывается папка, в котором находиться файлы с данными, требуется выбрать файл (в диалоговом окне отображаются только те файлы, в которых сохранены данные из графика) с расширением *.Gra, при необходимости имеется такая возможность как открытие любого файла если, например данные из графика были сохранены без расширения после выбора необходимого файла и нажатия на кнопку «Открыть» программа открывает файл и он выводится в таблицу.

При нажатии функциональной клавиши F10 или при выборе пункта меню

<Файл>/<Выход> программа выводит диалог (приложение В) в котором спрашивает пользователя действительно ли он хочет завершить работу?: и если да то завершает свою работу.

При нажатии функциональной клавиши F1 или при выборе пункта меню

<Помощь>/<Справка> программа выводит справку(приложение В) в виде HTML - документа.

1.5. Описание технических средств

Для создания программы были использованы программные средства:

· Borland Delphi 5.0 - написание, отладка, компиляция и исполнение текста программы.

· Microsoft Office XP - Новейший пакет офисных программ фирмы Microsoft

1. Microsoft Word - создание помощи в формате HTML (Web документ).

2. Microsoft Excel - создание таблиц для отчёта.

· CorelDraw - создание изображений для помощи.

· Xara 3D - создание 3х мерных надписей для справки

· Photoshop 6.0 - Редактирование изображений.

· Благодаря тому что программа создана в среде программирования Borland Delphi 5.0 она поддерживается любыми версиями Microsoft Windows: Microsoft Windows 9x, Microsoft Windows Millennium, Microsoft Windows 2000, Microsoft Windows XP.

1.5.1. Описание и обоснование минимальной конфигурации технических средств

Для нормальной работы данной программы требуется компьютер с минимальной конфигурацией:

Процессор с частотой не ниже Pentium 100 MHz

Оперативной памятью не менее 16 Mb

Места на диске требуется не менее 5 Mb.+30 Mb (Для Windows)

Для наилучшей работы программы желателен монитор поддерживающий разрешение экрана 800х600 с углублением цветовой палитры от 8 (256 цветов) до 16 (65535 цветов) бит.

Для более комфортной работы необходима мышь.

Из программного обеспечения не требуется ни каких дополнительных пакетов. В качестве операционной системы подходит любая версия Windows начиная с Windows 95 .

Заключение

Курсовая работа на тему «Оптимизация сетевого графика по времени» была выполнена в заданный срок. Для разработки программы использовалась среда программирования Borland Delphi 5.0. в программе разработан удобный пользовательский интерфейс в виде меню. Каждый пункт меню содержит несколько пунктов подменю. Для демонстрации программы была разработан пример ввода данных в матрицу. Разработана форма в которой отображается входная и выходная информация. Организована справочная система. Составлена пояснительная записка.

Литература

1. Экономико-математические методы в снабжении. -М.: «Экономика», 1971.

2. И. М. Разумов. Сетевые графики в планировании. -М.: 1981.

3. Бобровский С. Delphi 5: учебный курс. -СПб.: Издательство “Питер”, 2000.

Дата выдачи __________ Срок окончания ___________

Преподаватель _____________________________________________

Приложение A

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Menus, StdCtrls, Grids, Buttons, ExtCtrls, Errors, OleCtnrs;

type

TGeneral = class(TForm)

MainMenu1: TMainMenu;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

N1: TMenuItem;

SpeedButton1: TSpeedButton;

GJvjo1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

SpeedButton2: TSpeedButton;

Sg1: TStringGrid;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

SpeedButton5: TSpeedButton;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

SpeedButton6: TSpeedButton;

N6: TMenuItem;

PopupMenu1: TPopupMenu;

N7: TMenuItem;

Sg4: TStringGrid;

Edit1: TEdit;

Edit4: TEdit;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

CheckBox1: TCheckBox;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Panel1: TPanel;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

N12: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton4Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

procedure SpeedButton2Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure SpeedButton6Click(Sender: TObject);

procedure SpeedButton5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure N7Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure N12Click(Sender: TObject);

private

{ Private declarations }

public

l:integer;

Count,Sum:integer;

buf1:array[1..100] of real;

buf2:array[0..30] of real;

err:integer;

{ Public declarations }

end;

var

Proizvod : String;//Производительность

Str : String;//колличество строк

Rab_I : String;//Работы

Rab_J : String;//Работы

OB_Rabot : String; //Обьем работ изделий

KolRes : String; //Колличество рабочих

Prodolgit : String; //Продолжительность

Err,i,j : Integer;

General : TGeneral;

F : Textfile;

implementation

uses Unit2, Unit3, Unit4;

{$R *.DFM}

procedure TGeneral.FormCreate(Sender: TObject);

begin

//General.WindowState:=WsMaximized;

General.Position:=poDesktopCenter;

General.Caption:='Оптимезация сетевого графика по времени.';

GroupBox1.Caption:='';

GroupBox2.Caption:='';

SG1.cells[0,0]:='I';

SG1.cells[1,0]:='J';

SG1.cells[2,0]:='Объем работ';

SG1.cells[3,0]:='Необход. ресурсов';

SG1.cells[4,0]:='Число ресурсов';

SG1.cells[5,0]:='Продолжительность';

SG1.cells[6,0]:='События';

SG1.cells[7,0]:='Рез. времени';

SG1.RowCount:=2;

end;

procedure TGeneral.N3Click(Sender: TObject);

begin

Close;

end;

procedure TGeneral.SpeedButton1Click(Sender: TObject);

var

i,j:Integer;

Sum,Sum2,a: Real;

begin

Panel1.Visible:=true;

label1.Visible:=true;

label2.Visible:=true;

label4.Visible:=true;

label5.Visible:=true;

label7.Visible:=true;

Sg4.Visible:=true;

edit2.Visible:=true;

edit3.Visible:=true;

edit4.Visible:=true;

//edit5.Visible:=true;

{Выясним необходимое число ресурсов}

for i:=1 to sg1.RowCount-1 do

Begin

a:=StrToInt(sg1.Cells[2,i])/StrToInt(edit1.text);

sg1.Cells[3,i]:=FloatToStr(a);

{Выясним необходимое число ресурсов}

Sum2:=Sum2+StrToFloat(sg1.Cells[4,i]);

Edit3.Text:=FloatToStr(Sum2);

{Всего необходимых ресурсов}

Sum:=Sum+StrToFloat(sg1.Cells[3,i]);

Edit2.Text:=FloatToStr(Sum);

end;

{Продолжительность работ}

for i:=1 to sg1.RowCount-1 do

Begin

a:=StrToFloat(sg1.Cells[3,i])/StrToFloat(sg1.Cells[4,i]);

sg1.Cells[5,i]:=FloatToStr(a);

end;

end;

procedure TGeneral.SpeedButton4Click(Sender: TObject);

begin

close;

end;

procedure TGeneral.SpeedButton3Click(Sender: TObject);

begin

For I:=0 to 2 do

For j:=1 to Sg1.RowCount-1 do

Begin

if Sg1.Cells[i,j]= '' then err:=err+1;

end;

For j:=1 to Sg1.RowCount-1 do

if Sg1.Cells[4,j]= '' then err:=err+1;

if err <>0 then

begin

MessageDlg('Ошибка'+#13+'Таблица заполнена не полностью.'+#13+'Сохранение не произведено!'

, mtError,[mbOk], 0);

err:=0;

end

else

Begin

Proizvod:=edit1.text;

Str:=IntToStr(sg1.RowCount);

For i:=1 to Sg1.RowCount-1 do

Begin

Rab_I :=(Sg1.Cells[0,i]);

Rab_J :=(Sg1.Cells[1,i]);

OB_Rabot:=(Sg1.Cells[2,i]);

write(f,Rab_I);

write(f,Rab_J);

write(f,OB_Rabot);

End;

For I:=1 to Sg1.RowCount-1 do

KolRes:=(Sg1.Cells[4,i])

end;

CloseFile(f);

end;

procedure TGeneral.SpeedButton2Click(Sender: TObject);

begin

General.N7.Click;

if OpenDialog1.Execute then

{$I-}

AssignFile(F,OpenDialog1.FileName); Reset(F);

Proizvod:=edit1.text;

Str:=IntToStr(sg1.RowCount);

For i:=1 to Sg1.RowCount-1 do

Begin

Rab_I :=(Sg1.Cells[0,i]);

Rab_J :=(Sg1.Cells[1,i]);

OB_Rabot:=(Sg1.Cells[2,i]);

write(f,Rab_I);

write(f,Rab_J);

write(f,OB_Rabot);

End;

For I:=1 to Sg1.RowCount-1 do

KolRes:=(Sg1.Cells[4,i])

{$I+}

CloseFile(f);

end;

procedure TGeneral.N5Click(Sender: TObject);

begin

if OpenDialog1.Execute then

end;

procedure TGeneral.SpeedButton6Click(Sender: TObject);

begin

Edit1.Text:='5';

sg1.RowCount:=12;

sg1.Cells[0,1]:=INttoStr(0);

sg1.Cells[1,1]:=INttoStr(1);

sg1.Cells[2,1]:=INttoStr(25);

sg1.Cells[4,1]:=INttoStr(5);

sg1.Cells[0,2]:=INttoStr(0);

sg1.Cells[1,2]:=INttoStr(2);

sg1.Cells[2,2]:=INttoStr(30);

sg1.Cells[4,2]:=INttoStr(6);

sg1.Cells[0,3]:=INttoStr(0);

sg1.Cells[1,3]:=INttoStr(3);

sg1.Cells[2,3]:=INttoStr(20);

sg1.Cells[4,3]:=INttoStr(4);

sg1.Cells[0,4]:=INttoStr(1);

sg1.Cells[1,4]:=INttoStr(4);

sg1.Cells[2,4]:=INttoStr(22);

sg1.Cells[4,4]:=INttoStr(5);

sg1.Cells[0,5]:=INttoStr(2);

sg1.Cells[1,5]:=INttoStr(3);

sg1.Cells[2,5]:=INttoStr(10);

sg1.Cells[4,5]:=INttoStr(4);

sg1.Cells[0,6]:=INttoStr(2);

sg1.Cells[1,6]:=INttoStr(4);

sg1.Cells[2,6]:=INttoStr(15);

sg1.Cells[4,6]:=INttoStr(3);

sg1.Cells[0,7]:=INttoStr(2);

sg1.Cells[1,7]:=INttoStr(5);

sg1.Cells[2,7]:=INttoStr(5);

sg1.Cells[4,7]:=INttoStr(4);

sg1.Cells[0,8]:=INttoStr(3);

sg1.Cells[1,8]:=INttoStr(6);

sg1.Cells[2,8]:=INttoStr(25);

sg1.Cells[4,8]:=INttoStr(5);

sg1.Cells[0,9]:=INttoStr(4);

sg1.Cells[1,9]:=INttoStr(6);

sg1.Cells[2,9]:=INttoStr(20);

sg1.Cells[4,9]:=INttoStr(4);

sg1.Cells[0,10]:=INttoStr(5);

sg1.Cells[1,10]:=INttoStr(6);

sg1.Cells[2,10]:=INttoStr(5);

sg1.Cells[4,10]:=INttoStr(4);

sg1.Cells[0,11]:=INttoStr(6);

sg1.Cells[1,11]:=INttoStr(7);

sg1.Cells[2,11]:=INttoStr(30);

sg1.Cells[4,11]:=INttoStr(6);

end;

procedure TGeneral.SpeedButton5Click(Sender: TObject);

begin

form2.show;

end;

procedure TGeneral.N6Click(Sender: TObject);

begin

form2.show;

end;

procedure TGeneral.FormClose(Sender: TObject; var Action: TCloseAction);

begin

case Application.MessageBox('Вы уверены, что хотите выйти?','Выход',mb_yesno or mb_iconquestion or mb_defbutton2) of

idyes:action:=caFree;

idno:action:=caNone;

end;

end;

procedure TGeneral.N7Click(Sender: TObject);

var q,w:byte;

i:integer;

begin

for q:=0 to SG1.ColCount do

for w:=1 to SG1.RowCount do

SG1.Cells[q,w]:='';

SG1.RowCount:=2;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

//Edit5.Text:='';

end;

procedure TGeneral.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

case key of

'0'.. '9', chr (8):;

',':;

else key:=#0;

end;

end;

procedure TGeneral.N12Click(Sender: TObject);

begin

Sg1.RowCount:=Sg1.RowCount+1;

If Sg1.RowCount>30 then

MessageDlg('Ошибка'+#13+'строк не может быть больше 30 !!!', mtError,[mbOk], 0);

Sg1.RowCount:=30;

end;

end.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.