Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova-Maslennikov-IDP-31.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.26 Mб
Скачать

Додаток а Текст модуля

unit Unit1;

interface

uses

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

Dialogs, ComCtrls, Menus, StdCtrls, Grids;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

PageControl1: TPageControl;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

Button3: TButton;

Button4: TButton;

StringGrid1: TStringGrid;

Button5: TButton;

Button6: TButton;

Memo1: TMemo;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Label12: TLabel;

Label11: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

TabSheet1: TTabSheet;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label10: TLabel;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

StringGrid2: TStringGrid;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

Edit5: TEdit;

Label7: TLabel;

procedure FormActivate(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Edit3Change(Sender: TObject);

procedure Edit4Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Edit1Change(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure ComboBox3Change(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

Type plata=record

nv: string[20];

pib: string[18];

pos: string[12];

okl,prem: integer;

end;

var f: file of plata; //файл записів

z: plata; //запис

namefile: string; //ім'я файла

d: integer;

{Встановлення початкових властивостей компонентів

та забезпечення їх доступу на формі}

// Підпрограма активізування форми

procedure TForm1.FormActivate(Sender: TObject);

var i:integer;

begin

for i:=0 to ComponentCount-1 do //Компоненти невидимі

begin

if components[i] is TLabel then (components[i] as TLabel).Visible:=false;

if components[i] is TEdit then (components[i] as TEdit).Visible:=false;

if components[i] is TButton then (components[i] as TButton).Visible:=false;

if components[i] is TComboBox then (components[i] as

TComboBox).Visible:=false;

if components[i] is TStringGrid then (components[i] as

TStringGrid).Visible:=false;

end;

N4.Enabled:=false;

Memo1.Hide;

Edit5.Hide;

end;

{Вкладка ВВЕДЕННЯ ДАНИХ}

{Створення або відкриття текстового файла}

// Підпрограма команди меню "Створити файл"

procedure TForm1.N2Click(Sender: TObject);

begin

Label10.Show; Edit4.Show; Edit4.SetFocus;

Button2.Show; Button2.Enabled:=false;

d:=1;

end;

// Підпрограма команди меню "Відкрити файл"

procedure TForm1.N3Click(Sender: TObject);

begin

Label10.Show; Edit4.Show; Edit4.SetFocus;

Button2.Show; Button2.Enabled:=false;

d:=2;

end;

// Підпрограма активізації кнопки Button2

procedure TForm1.Edit4Change(Sender: TObject);

begin

Button2.Enabled:=true;

end;

// Підпрограма кнопки "Прийнято!"

procedure TForm1.Button2Click(Sender: TObject);

var i: integer;

begin

if Edit4.Text=' ' then

begin

ShowMessage('Bи не ввели им''я файла!'+#13+'Повторіть введення!');

Exit;

end;

namefile:=Edit4.Text; //Введення імені файла

AssignFile(f,namefile); //Зв'язок файлової змінної з фізичним файлом

if d=1

then rewrite(f) //Створення файлу

else

begin //Відкриття файлу

{$I-}

reset(f);

{$I+}

if IOResult<>0 then

begin

ShowMessage('Такого файлу не існує!'+#13+ 'Повторіть введення');

Edit4.Clear; Edit4.SetFocus; exit;

end;

end;

CloseFile(f); //Закрити файл

{Активізація компонентів на закладках}

for i:=0 to ComponentCount-1 do

begin

//Всі мітки видимі

if components[i] is TLabel then (components[i] as TLabel).Visible:=true;

//Всі компоненти Edit видимі і активізовані

if components[i] is TEdit then (components[i] as TEdit).Visible:=true;

end;

{Закладка ВВЕДЕННЯ ДАНИХ}

Edit4.Clear; Edit4.Hide; //Edit4 очищений і прихований

Label10.Hide; Button2.Hide; //Компоненти приховані

ComboBox1.Visible:=true;

ComboBox2.Visible:=true;

ComboBox2.Enabled:=false;

Edit1.Visible:=true;

Edit1.Enabled:=false;

Edit2.Enabled:=false; //Компоненти неактивізовані

Edit3.Enabled:=false;

Button1.Visible:=true; //Кнопка видима

Button1.Enabled:=false; //Кнопка неактивізована

{Закладка ПЕРЕГЛЯД ДАНИХ}

Button3.Visible:=true; //Кнопка видима

{Закладка ЗАПИТ1}

Label11.Visible:=true;

Label12.Visible:=true;

ComboBox3.Visible:=true;

Button5.Visible:=true; //Кнопка видима

Button5.Enabled:=false; //Кнопка неактивізована

{Закладка ЗАПИТ2}

Label14.Visible:=true;

Label15.Visible:=true;

ComboBox4.Visible:=true;

Button7.Visible:=true; //Кнопка видима

Button7.Enabled:=false; //Кнопка неактивізована

{Закладка ЗАПИТ3}

Label16.Visible:=true;

Button9.Visible:=true; //Кнопка видима

{Пункт меню ОЧИСТИТИ}

N4.Enabled:=true; //Пункт меню активізований

end;

//Активізація компонента Edit1

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

Edit1.Enabled:=true;

end;

//Активізація компонента ComboBox2

procedure TForm1.Edit1Change(Sender: TObject);

begin

ComboBox2.Enabled:=true;

end;

//Активізація компонента Edit2

procedure TForm1.ComboBox2Change(Sender: TObject);

begin

Edit2.Enabled:=true;

end;

//Активізація компонента Edit3

procedure TForm1.Edit2Change(Sender: TObject);

begin

Edit3.Enabled:=true;

end;

//Активізація компонента Button1

procedure TForm1.Edit3Change(Sender: TObject);

begin

Button1.Enabled:=true;

end;

//Підпрограма кнопки "Додати"

procedure TForm1.Button1Click(Sender: TObject);

begin

{перевірка наявності даних у вікнах введення}

if (length(Edit1.Text)=0)or(length(Edit2.Text)=0)or

(length(Edit3.Text)=0)then

begin

ShowMessage('Введіть усі відомості про особу');

exit;

end;

{записування у файл значень про працівника}

reset(f); //Відкриття файла

seek(f,FileSize(f)); //Переведення покажчика на кінець файла

with z do

begin

nv:=ComboBox1.Text;

pib:=Edit1.Text;

pos:=ComboBox2.Text;

okl:=StrToInt(Edit2.Text);

prem:=StrToInt(Edit3.Text);

end;

write(f,z);

CloseFile(f);

{очищення вікон для нових значень}

Edit1.Clear; Edit2.Clear;Edit3.Clear;

ComboBox1.Text:='';

ComboBox2.Text:='';

{Компоненти неактивні}

Edit1.Enabled:=false; Edit2.Enabled:=false;

Edit3.Enabled:=false;

ComboBox2.Enabled:=false;

{Компонент активний}

ComboBox1.Enabled:=true;

end;

{Вкладка ПЕРЕГЛЯД ДАНИХ}

//Підпрограма перегляду даних у файлі

procedure TForm1.Button3Click(Sender: TObject);

var szp: string;

i: integer;

begin

reset(f);

seek(f,0);

with StringGrid1 do //Підпис стовпців

begin

cells[0,0]:='назва відділу';

cells[1,0]:='ПІБ';

cells[2,0]:='Посада';

cells[3,0]:='Оклад';

cells[4,0]:='Премія';

end;

StringGrid1.Show;

Button4.Enabled;

i:=0;

while not eof(f) do

begin

read(f,z); //Читання даних з файлу

i:=i+1;

with z do //Виведення даних

begin

StringGrid1.Cells[0,i]:=nv;

StringGrid1.Cells[1,i]:=pib;

StringGrid1.Cells[2,i]:=pos;

StringGrid1.Cells[3,i]:=IntToStr(okl);

StringGrid1.Cells[4,i]:=IntToStr(prem);

end;

end;

CloseFile(f);

Button4.Show;

end;

//Підпрограма завершення перегляду даних у файлі

procedure TForm1.Button4Click(Sender: TObject);

var i,j: integer;

begin

for i:=0 to StringGrid1.RowCount-1 do // очистити Strg1

for j:=0 to 4 do StringGrid1.Cells[j,i]:=' ';

StringGrid1.Height:=150; // встановити висоту компонента 150

StringGrid1.Hide; // компонент невидимий

Button4.Hide; // кнопка невидима

end;

{Вкладка ЗАПИТ1}

//Підпрограма активізації Button5

procedure TForm1.ComboBox3Change(Sender: TObject);

begin

Button5.Enabled:=true;

end;

//Підпрограма запиту1

procedure TForm1.Button5Click(Sender: TObject);

var r1, s: string;

zp: integer;

begin

//Перевірка наявності значень у вікнi

if (length(ComboBox3.Text)=0) then

begin

ShowMessage('Введіть посаду працівника');

exit;

end;

//Зчитування даних про посаду

r1:=ComboBox3.Text;

//Виведення інформації

Memo1.Clear;

Memo1.Lines.Add('Назва відділу'+' | '+'ПІБ'+' | '+

'Посада'+' | '+'Оклад'+' |'+'Премія');

Memo1.Lines.Add('_______________________________');

Memo1.Show; //Компоненти видимі

Button6.Visible:=true;

zp:=0;

s:='';

reset(f); //Відкрити файл

seek(f,0); //Перевести покажчик на початок файла

//Пошук даних за критерієм і виведення результату на екран

while not eof(f) do

begin

read(f,z); //Прочитати з файлу запис

with z do

if (pos=r1)and((okl+prem)>=zp) then

begin

s:=nv+' | '+pib+' | '+pos+

' | '+IntToStr(okl)+' | '+IntToStr(prem);

zp:=okl+prem;

end;

end;

Memo1.Lines.Add(s);

CloseFile(f); //Закрити файл

end;

//Завершити перегляд

procedure TForm1.Button6Click(Sender: TObject);

begin

ComboBox3.Text:='';

Button5.Enabled:=false;

Button6.Visible:=false;

Memo1.Clear; Memo1.Hide;

end;

{Вкладка ЗАПИТ2 }

//Підпрограма активізації Button7

procedure TForm1.ComboBox4Change(Sender: TObject);

begin

Button7.Enabled:=true;

end;

//Підпрограма запиту2

procedure TForm1.Button7Click(Sender: TObject);

var k:integer;

sprem: real;

r2: string;

begin

//Перевірка наявності значень у вікнах Edit

if length(ComboBox4.Text)=0 then

begin

ShowMessage('Введіть відділ');

exit;

end;

//Зчитування даних про відділ

r2:=ComboBox4.Text;

k:=0;

sprem:=0;

reset(f); //Відкрити файл

seek(f,0); //Перевести покажчик на початок файла

//Пошук даних за критерієм і виведення результату на екран

while not eof(f) do

begin

read(f,z); //Прочитати з файлу запис

with z do

if nv=r2 then

begin

sprem:=sprem+prem;

k:=k+1;

end;

end;

sprem:=sprem/k;

Edit5.Text:=FloatToStr(sprem);

Edit5.Visible:=true;

Button8.Visible:=true;

CloseFile(f); //Закрити файл

end;

//Завершити перегляд

procedure TForm1.Button8Click(Sender: TObject);

begin

ComboBox4.Text:='';

Button7.Enabled:=false;

Button8.Visible:=false;

Edit5.Visible:=false;

Label7.Visible:=false;

end;

{Вкладка ЗАПИТ3}

//Підпрограма активізації Button9

procedure TForm1.Button9Click(Sender: TObject);

var i: integer;

begin

reset(f); //Відкрити файл

seek(f,0); //Перевести покажчик на початок файла

//Підпис стовпців компонента StringGrid2

with StringGrid2 do

begin

cells[0,0]:='назва відділу';

cells[1,0]:='ПІБ';

cells[2,0]:='Посада';

cells[3,0]:='Оклад';

cells[4,0]:='Премія';

end;

StringGrid2.Show; //Компоненти видимі

//Пошук даних за критерієм і виведення результату на екран

i:=0;

while not eof(f) do

begin

read(f,z);

with z do

if (prem=0) then

begin

i:=i+1;

StringGrid2.Cells[0,i]:=nv;

StringGrid2.Cells[1,i]:=pib;

StringGrid2.Cells[2,i]:=pos;

StringGrid2.Cells[3,i]:=IntToStr(okl);

StringGrid2.Cells[4,i]:=IntToStr(prem);

end;

end;

CloseFile(f);

Button10.Show;

end;

//Підпрограма кнопки Завершити перегляд

procedure TForm1.Button10Click(Sender: TObject);

var i,j:integer;

begin

for i:=0 to StringGrid2.RowCount-1 do // очистити Strg1

for j:=0 to 4 do StringGrid2.Cells[j,i]:=' ';

StringGrid2.Height:=150; // встановити висоту компонента 150

StringGrid2.Hide; // компонент невидимий

Button10.Hide; // кнопка невидима

end;

//Підпрограма пункту меню Очистити/Очистити поля

procedure TForm1.N5Click(Sender: TObject);

var i,j: integer;

begin

Memo1.Clear;

Edit1.Clear; Edit2.Clear; Edit3.Clear;

Edit4.Clear; Edit5.Clear;

for i:=0 to StringGrid1.RowCount-1 do

for j:=0 to 4 do StringGrid1.Cells[j,i]:=' ';

for i:=0 to StringGrid2.RowCount-1 do

for j:=0 to 4 do StringGrid2.Cells[j,i]:=' ';

end;

//Підпрограма пункту меню Очистити/Очистити файл

procedure TForm1.N6Click(Sender: TObject);

begin

rewrite(f);

CloseFile(f);

end;

// підпрограма команди меню Вихід

procedure TForm1.N7Click(Sender: TObject);

begin

close;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]