- •Введение
- •1 Исследовательская часть
- •1.1 Анализ предметной области
- •1.2 Постановка задачи
- •2 Технология разработки программного продукта
- •2.1 Анализ входных и выходных данных
- •2.2 Математическая (инфологическая) модель
- •2.3 Выбор и обоснование программных средств разработки
- •2.4 Выбор и обоснование аппаратных средств разработки
- •2.5 Десять важнейших возможностей ide Delphi. Стыковка окон. Броузер объектов.
- •3 Описание программных модулей
- •3.1 Структура и алгоритм работы программного продукта
- •3.2 Инструментарий разработки программного продукта
- •3.3 Интерфейс программного продукта
- •4.1 Построение математической модели задачи линейного программирования и ее решение
- •4.2 Решение задачи линейного программирования симплекс-методом
- •4.4 Решение задачи о назначениях
- •4.5 Поиск минимального остова в графе
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
- •2 Технология разработки программного продукта 8
- •3 Описание программных модулей 22
- •Приложение в
Приложение в
(информационное)
Листинг программы
program uchet;
uses
Forms,
upac in 'upac.pas' {Myanfrm},
MD in 'MD.pas' {DM: TDataModule},
Uvideo in 'Uvideo.pas' {videocard},
Umotherboard in 'Umotherboard.pas' {MotherBoard},
Upostav in 'Upostav.pas' {Postavshik},
Uproc in 'Uproc.pas' {proc},
Utypepo in 'Utypepo.pas' {typepo},
UnamePO in 'UnamePO.pas' {namepo},
UAddComp in 'UAddComp.pas' {addeit},
Uaddpost in 'Uaddpost.pas' {Fepost},
Uaddvideo in 'Uaddvideo.pas' {FAded},
UPO in 'UPO.pas' {FPO},
Uaepo in 'Uaepo.pas' {faepo},
UaddPO in 'UaddPO.pas' {Faddpo},
Uaddmb in 'Uaddmb.pas' {Faddmb},
UaddCPU in 'UaddCPU.pas' {FaddCPU},
Umesto in 'Umesto.pas' {mest},
Uaddmesto in 'Uaddmesto.pas' {addmesto},
uRazrabFrm in 'uRazrabFrm.pas' {RazrabFrm};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Учет программно-апаратной конфигурации компьютерной техники';
Application.CreateForm(TMyanfrm, Myanfrm);
Application.CreateForm(TDM, DM);
Application.CreateForm(Tvideocard, videocard);
Application.CreateForm(TMotherBoard, MotherBoard);
Application.CreateForm(TPostavshik, Postavshik);
Application.CreateForm(Tproc, proc);
Application.CreateForm(Ttypepo, typepo);
Application.CreateForm(Tnamepo, namepo);
Application.CreateForm(Taddeit, addeit);
Application.CreateForm(TFepost, Fepost);
Application.CreateForm(TFAded, FAded);
Application.CreateForm(TFPO, FPO);
Application.CreateForm(Tfaepo, faepo);
Application.CreateForm(TFaddpo, Faddpo);
Application.CreateForm(TFaddmb, Faddmb);
Application.CreateForm(TFaddCPU, FaddCPU);
Application.CreateForm(Tmest, mest);
Application.CreateForm(Taddmesto, addmesto);
Application.CreateForm(TRazrabFrm, RazrabFrm);
Application.Run;
end.
unit upac;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, Menus, ComCtrls, StdCtrls, DBCtrls,
Buttons,DB, Mask, dbcgrids, RpCon, RpConDS, RpBase, RpSystem, RpDefine,
RpRave, RpRender, RpRenderHTML, XPMan,
PrViewEh, DBSumLst, PrnDbgeh, ActnMan, ActnColorMaps, ImgList,
RpRenderText, RpFiler, RpRenderCanvas, RpRenderPrinter,ComObj, WordXP,
OleServer, jpeg;
type
TMyanfrm = class(TForm)
bottompanel: TPanel;
MainMenu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
Status: TStatusBar;
DBNavigator1: TDBNavigator;
N6: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
Jghjuhfvvt1: TMenuItem;
N13: TMenuItem;
topnl: TPanel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
cbx1: TComboBox;
N7: TMenuItem;
otch: TRvProject;
RvDataSetConnection1: TRvDataSetConnection;
RvSystem1: TRvSystem;
RvRenderHTML1: TRvRenderHTML;
XPManifest1: TXPManifest;
Label1: TLabel;
po: TRvProject;
Rvpo: TRvSystem;
RvDataSetConnection2: TRvDataSetConnection;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
filter: TTabSheet;
Edit: TEdit;
cbx0: TComboBox;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
cbx: TComboBox;
PpMenu: TPopupMenu;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N12: TMenuItem;
computer: TDBGrid;
img1: TImage;
lbl1: TLabel;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure delClick(Sender: TObject);
procedure addClick(Sender: TObject);
procedure editClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure Jghjuhfvvt1Click(Sender: TObject);
procedure N12Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Myanfrm: TMyanfrm;
implementation
uses MD, Uvideo, Umotherboard, Upostav, Uproc, Utypepo, Unamepo, UAddComp,
UPO, Umesto, uRazrabFrm;
{$R *.dfm}
procedure TMyanfrm.N2Click(Sender: TObject);
begin
videocard.ShowModal;
end;
procedure TMyanfrm.N3Click(Sender: TObject);
begin
MotherBoard.showmodal;
end;
procedure TMyanfrm.N4Click(Sender: TObject);
begin
Postavshik.showModal;
end;
procedure TMyanfrm.N5Click(Sender: TObject);
begin
proc.showmodal;
end;
procedure TMyanfrm.N13Click(Sender: TObject);
begin
close;
end;
procedure TMyanfrm.N6Click(Sender: TObject);
begin
namepo.showmodal;
end;
procedure TMyanfrm.delClick(Sender: TObject);
var buttonSelected:integer;
begin
buttonSelected:=MessageDlg('При подтверждении произодет удаление выбранной строки',mtWarning,[mbYes,mbNo],0);
if buttonSelected=mrYes then begin
DM.ADOComputer.Delete;
DM.ADOComputer.Refresh;
end;
end;
procedure TMyanfrm.addClick(Sender: TObject);
begin
addeit.caption:='Добавление данных';
DM.ADOComputer.Append;
addeit.showmodal;
end;
procedure TMyanfrm.editClick(Sender: TObject);
begin
addeit.caption:='Редактирование данных'; ////замена заголовка формы для правельной работы условий и кнопок сохранить
addeit.showmodal;
end;
procedure TMyanfrm.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text='' then ShowMessage('Поле для поиска не заполнено');
if (edit1.text<>'')and (not DM.ADOComputer.Locate('invent',Edit1.Text,[loCaseInsensitive, loPartialKey]))
then
ShowMessage('Такой записи нет'); ////поиск по инвентарному номеру
end;
procedure TMyanfrm.Button1Click(Sender: TObject);
begin
DM.ADOPO.Filtered:=TRUE;
FPO.showmodal;
end;
procedure TMyanfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox(PChar('Завершить работу программы?'), 'Выход', MB_OKCANCEL) =id_OK then
begin
Action := caFree;
end
else
Action := caNone;
end;
procedure TMyanfrm.BitBtn2Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Добавление данных...';
addeit.caption:='Добавление данных';
DM.ADOComputer.Append;
addeit.showmodal;
end;
procedure TMyanfrm.BitBtn3Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Рдактирование данных...';
addeit.caption:='Редактирование данных';
addeit.showmodal;
end;
procedure TMyanfrm.BitBtn4Click(Sender: TObject);
var
buttonSelected:integer;
begin
buttonSelected:=MessageDlg('Вы действительно хотите удалить запись?',mtWarning,[mbYes,mbNo],0);
if buttonSelected=mrYes then begin
DM.ADOComputer.Delete;
DM.ADOComputer.Refresh;
end;
end;
procedure TMyanfrm.BitBtn5Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Формирования списка...';
DM.ADOPO.Filtered:=TRUE; ////активирует свойство Filtered в ADOPO
Myanfrm.Status.SimpleText:='Установленное ПО...';
FPO.showmodal;
end;
procedure TMyanfrm.BitBtn6Click(Sender: TObject);
begin
IF RADIOBUTTON1.Checked THEN ///т.к инвентарный номер выбран по умолчанию
DM.ADOComputer.sort:=('invent') ELSE
DM.ADOComputer.sort:=('invent DESC');
IF CBX1.ItemIndex=1 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('motherboard') ELSE
DM.ADOComputer.sort:=('motherboard DESC'); ////по убыванию
end;
IF CBX1.ItemIndex=0 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('invent') ELSE
DM.ADOComputer.sort:=('invent DESC');
end;
IF CBX1.ItemIndex=2 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('CPU') ELSE
DM.ADOComputer.sort:=('CPU DESC');
end;
IF CBX1.ItemIndex=3 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('HDD') ELSE
DM.ADOComputer.sort:=('HDD DESC');
end;
IF CBX1.ItemIndex=4 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('RAM') ELSE
DM.ADOComputer.sort:=('RAM DESC');
end;
IF CBX1.ItemIndex=5 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('videocard') ELSE
DM.ADOComputer.sort:=('videocard DESC');
end;
IF CBX1.ItemIndex=6 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('monitor') ELSE
DM.ADOComputer.sort:=('monitor DESC');
end;
IF CBX1.ItemIndex=7 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('postavschik') ELSE
DM.ADOComputer.sort:=('postavschik DESC');
end;
IF CBX1.ItemIndex=8 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('garantiya_do') ELSE
DM.ADOComputer.sort:=('garantiya_do DESC');
end;
IF CBX1.ItemIndex=9 THEN BEGIN
IF RADIOBUTTON1.Checked THEN
DM.ADOComputer.sort:=('mesto') ELSE
DM.ADOComputer.sort:=('mesto DESC');
end;
{IF CBX1.ItemIndex=0 THEN INIT:='invent';
IF CBX1.ItemIndex=3 THEN INIT:='CPU';
IF CBX1.ItemIndex=4 THEN INIT:='HDD';
IF CBX1.ItemIndex=5 THEN INIT:='videocard';
IF CBX1.ItemIndex=6 THEN INIT:='monitor';
IF CBX1.ItemIndex=7 THEN INIT:='postav';
IF CBX1.ItemIndex=8 THEN INIT:='garantiya_do';
IF CBX1.ItemIndex=9 THEN INIT:='mest'; }
end;
procedure TMyanfrm.N7Click(Sender: TObject);
begin
otch.Execute; ///вызов отчета !!!!!внимания шрифт!!!!
end;
procedure TMyanfrm.BitBtn7Click(Sender: TObject);
Var s:string;
begin
if edit.text='' then begin ShowMessage('Поле для фильтрации не заполнено'); exit;end;
if edit.text<>''then begin
DM.ADOComputer.Filtered:=true;
s:=edit.Text;
end;
if (DM.ADOComputer.Filtered=true) and (s<>edit.Text) then
s:=edit.Text;
DM.ADOComputer.Filtered:=False;
DM.ADOComputer.Filtered:=True;
if computer.datasource.dataset.FieldByName('invent').asstring='' then
ShowMessage('Не найдено ни одной записи');
end;
procedure TMyanfrm.BitBtn8Click(Sender: TObject);
begin
DM.ADOComputer.Filtered:=False;
edit.Clear;
end;
procedure TMyanfrm.N16Click(Sender: TObject);
var buttonSelected:integer;
begin
buttonSelected:=MessageDlg('Вы действительно хотите удалить запись?',mtWarning,[mbYes,mbNo],0);
if buttonSelected=mrYes then begin
DM.ADOComputer.Delete;
DM.ADOComputer.Refresh;
end;
end;
procedure TMyanfrm.N14Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Добавление данных...';
addeit.caption:='Добавление данных';
DM.ADOComputer.Append;
addeit.showmodal;
end;
procedure TMyanfrm.N15Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Рдактирование данных...';
addeit.caption:='Редактирование данных';
addeit.showmodal;
end;
procedure TMyanfrm.N17Click(Sender: TObject);
begin
Myanfrm.Status.SimpleText:='Формирования списка...';
DM.ADOPO.Filtered:=TRUE; ////активирует свойство Filtered в ADOPO
Myanfrm.Status.SimpleText:='Установленное ПО...';
FPO.showmodal;
end;
procedure TMyanfrm.N19Click(Sender: TObject);
begin
{repeat
s:=DM.ADONamePO.FieldByname('name').text;
for j:=0 to namepo.str.RowCount-1 do
namepo.str.cells[1,j]:=s;
DM.ADONamePO.next;
s:='';
until DM.ADONamePO.EOF; }
end;
procedure TMyanfrm.Jghjuhfvvt1Click(Sender: TObject);
begin
RazrabFrm.showmodal;
end;
procedure TMyanfrm.N12Click(Sender: TObject);
begin
mest.showmodal;
end;
end.
unit Upostav;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Grids, DBGrids, ExtCtrls, DBGridEhGrouping,
GridsEh, DBGridEh, Buttons;
type
TPostavshik = class(TForm)
toppanel: TPanel;
bottompanel: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
dbgrd1: TDBGrid;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Postavshik: TPostavshik;
implementation
uses MD,Uaddpost;
{$R *.dfm}
procedure TPostavshik.BitBtn1Click(Sender: TObject);
begin
Fepost.Caption:='Добавленние данных';
DM.ADOPostovschik.Append;
Fepost.Showmodal;
end;
procedure TPostavshik.BitBtn2Click(Sender: TObject);
begin
Fepost.Caption:='Редактирование данных';
Fepost.Showmodal;
end;
procedure TPostavshik.BitBtn3Click(Sender: TObject);
var
buttonSelected:integer;
begin
buttonSelected:=MessageDlg(Вы действительно хотите удалить запись?',mtWarning,[mbYes,mbNo],0);
if buttonSelected=mrYes then begin
DM.ADOpostovschik.delete;
DM.ADOPostovschik.Refresh;
end;
end;
end.