
- •1 Постановка задачі 8
- •1 Постановка задачі
- •1.1 Формулювання задачі
- •1.2 Опис вхідних даних
- •1.3 Опис вихідних даних
- •2 Методи та засоби розв’язання задачі
- •3 Опис алгоритмів і програм
- •3.1 Алгоритм проектування додатка
- •3.2 Розроблення інтерфейсу програми
- •3.3 Опис процедур – обробників подій
- •3.4 Опис модулів
- •3.5 Оголошення глобальних змінних та типів
- •3.6 Позначення змінних
- •4 Блок-схеми програм
- •5 Тексти програм
- •5.1 Файл проекту
- •5.2 Файл модуля
- •6 Інструкція користувача та результати роботи програми
- •Висновки
- •Список використаних джерел
- •Додаток а Текст модуля
Додаток а Текст модуля
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.