Описание технических средств
Для создания программы были использованы программные средства: · 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.
Описание и обоснование минимальной конфигурации технических средств Для нормальной работы данной программы требуется компьютер с минимальной конфигурацией: Процессор с частотой не ниже 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.
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (172)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |