Розробка структури інформаційної системи для автоматизації роботи автопідприємства

Аналіз предметної області і постановка задачі на розробку програми для автоматизації роботи автопідприємства. Перелік та опис використаних компонентів та основних процедур програми. Опис структур та методів обробки даних. Інструкція для користувача.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 15.02.2012
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Індивідуальне технічне завдання

Тема: АІС автопідприємства

Мета: Розробити структуру інформаційної системи для автоматизації роботи автопідприємства в середовищі програмування Delphi.

Завдання та вимоги до реалізації:

Автопідприємство має власний транспортний парк. Кожен транспортний засіб має певні характеристики: тип транспорту, марка, номер, призначення, прізвище, ім'я водіїв, рік випуску, дата придбання, об'єм двигуна, вантажопідйомність, кількість посадкових місць, статус транспорту. Отримати перелік про кількості водіїв по вказаному транспортному засобу (номер). Отримати відомості про кількість машин різного типу. Якщо вік машини перевищує 20 років пропонується її списати. Вивести відомості про автопарк за певний період (термін задається користувачем).

Для реалізації поставленої задачі використати записи. Реалізувати можливість збереження даних у файл та редагування збережених даних. Дати теоретичний опис особливостей реалізації заданої структури. Практична реалізація повинна забезпечити можливість виконання наступних операцій над створеною структурою даних:

ініціалізацію;

додавання нових елементів

видалення елементів

переміщення по структурі даних

пошук елементів структури даних, що відповідають заданим критеріям

виведення всіх елементів структури даних.

Аналітичне та практичне дослідження: дослідити ефективність створеної структури.

Особливі вимоги: Розробити меню, що забезпечує інтерактивну взаємодію користувача з комп'ютером при виборі відповідної структури даних і операцій, що виконуються над нею.

Вступ

Автоматизація інформаційних систем у різних областях практичної діяльності є одним із основних напрямків застосування обчислювальної техніки і персональних комп'ютерів зокрема. На основі сукупності апаратних засобів і спеціалізованого прикладного програмного забезпечення будуються автоматизовані робочі місця спеціалістів різного профілю.

Існують універсальні програмні комплекси які дозволяють вирішувати задачу обліку, але вони коштують досить дорого і потребують додаткової підготовки спеціалістів - користувачів і проведення значних організаційно - технічних заходів по впровадженню такого програного комплексу на підприємстві. Якщо на підприємстві немає єдиної автоматизованої інформаційної системи, то задачі автоматизації робіт у різних підрозділах можуть вирішуватися із застосуванням окремих спеціалізованих автоматизованих систем, які у перспективі будуть об'єднані у загальну.

Прикладом реалізації саме такої системи є запропонований програмний засіб «АІС автопідприємства», призначений для автоматизації обліку на автопідприємстві, розроблений у відповідності до завдання на курсове проектування із дисципліни «Проектування».

Основною метою даного курсового проекту є розробка структур та вибір методів обробки даних, алгоритмів функціонування програмних модулів, забезпечення якісних показників роботи програми: створення зручного графічного інтерфейсу користувача, розробка інтегрованої довідкової системи.

Для реалізації поставленого завдання обрано сучасні інструментальні середовища і засоби програмування Delphi 7.0, у яку входять всі сучасні засоби програмування і підтримки процесу розробки програм.

1. Аналіз предметної області і постановка задачі на розробку програми

У відповідності до технічного завдання програма “АІС автопідприємства” повинна забезпечувати облік даних про транспортні засоби і можливість отримання інформації, вибраної за певними критеріями.

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

У відповідності до аналізу предметної області можна зробити висновок, що задача, яка підлягає автоматизації відноситься то складу типових аналітично - облікових задач і може бути вирішена з використанням програмних та інструментальних засобів, передбачених технічним завданням, а саме з використанням типізованих файлів.

1.1 Перелік та опис використаних компонентів

Таблиця 1.1Перелік використаних компонент

StringGrid

Таблиця

Button

Звичайна кнопка

RadioButton

Радіокнопка

Edit

Строка вводу

Label

Мітка

MainMenu

Головне меню

ComboBox

Випадаючий список

OpenDialog

Діалог відкриття файлу

Таблиця 1.2 Опис використаних компонент

Назва компоненту

Призначення

StringGrid

Таблиця, яка служить для відображення різних даних в табличній формі. Елементи компоненту StringGrid можуть відображати лише дані типу String.

Button

Звичайна кнопка, яка використовується для реалізації команд з допомогою обробника події OnClick цього компонента.

RadioButton

Залежний перемикач, використовується для вибору тільки одного із декількох варіантів. Для цього компонент об'єднується із одним або декількома такими ж компонентами.

Edit

Строка вводу, призначена для вводу користувачем текстової інформації у вигляді одного рядку.

Label

Використовується для розміщення не дуже довгих повідомлень у вигляді статичного тексту.

MainMenu

Призначений для додавання до програми головного меню, елементу, без якого не обходиться жодне з додатків для Windows

ComboBox

Випадаючий список вибору - представляє собою комбінацію компонентів Edit і ListBox.

OpenDialog

Використовується, щоб дозволити користувачу вибирати один чи більше файлів для відкриття

1.2 Перелік основних процедур програми

Таблиця 1.3 Перелік основних процедур програми

Назва процедури

Призначення процедури

N5Click

Процедура закриття головного вікна (виходу)

N2Click

Процедура викликає діалогове вікно «Відкрити файл»

Button4Click

Процедура закриття головного вікна (виходу)

Button2Click

Процедура викликає діалогове вікно «Відкрити файл»

N10Click

Процедура викликає вікно «Про програму»

Button7Click

Процедура додавання даних у файл БД

Button6Click

Процедура відкриття даних для редагування

Button8Click

Процедура очищення файлу БД

Button9Click

Процедура збереження даних після редагування

Button5Click

Процедура пошуку у БД

Edit1Click

Процедура очищення Edit1 при клацанні на ньому курсором миші

N11Click

Процедура сортування

Button1Click

Процедура викликає вікно Form3

N12Click

Процедура сортування

N13Click

Процедура сортування

N14Click

Процедура сортування

N15Click

Процедура сортування

N16Click

Процедура сортування

N17Click

Процедура сортування

N18Click

Процедура сортування

N19Click

Процедура сортування

LoadGrid

Процедура завантаження даних із типізованого файлу у таблицю

2. Опис структур та методів обробки даних

Для виконання поставленого завдання необхідно використано Записи.

Запис (англ. record) - це складний тип даних. Записом називають впорядковану множину полів, кожне з яких має свій тип.

Як було зазначено вище основними структурними елементами даних є типізований файл бази даних у форматі «dat». Нижче наведено перелік цих файлів із вказівкою назви файлу, структури полів та пояснень, що до призначення файлу. Назва полів певної таблиці даних починаються з літери, яка співпадає з першою літерою назви відповідного файлу. Це забезпечує виключення того, що в різних таблицях будуть використані однакові назви полів, і в той же час вказує належність поля до певної таблиці. Для збереження файлів таблиць використовують каталог, який використовує сама програма.

transport.dat - файл, який використовується для обліку даних про всі транспортні засоби. Початкові дані заносяться в таблицю при реєстрації нового транспортного засобу і можуть при необхідності редагуватися. Структура полів файлу transport.dat наведена у таблиці 1.

Таблиця 2.1 Структура полів файлу transport.dat

Назва поля

Тип

Інформаційний зміст

typ

String[20]

Тип транспорту

marka

String[20]

Марка

nomer

String[20]

Номер

pryzn

String[20]

Призначення

PIB

String[40]

П. І. Б. водія

pik_V

String[20]

Рік випуску

data_P

String[20]

Дата придбання

v_dvyh

Extended

Об'єм двигуна

Vantaz

Extended

Вантажопідйомність

miscia

Integer

Кількість посадкових місць

status

String[20]

Статус транспорту

2.3 Опис алгоритму функціонування програмного забезпечення

Рис. 2.1. Структурна схема роботи програми

2.3 Модульна структура програмного засобу

Програма складається з набору програмних модулів, кожний з яких виконує одну чи декілька функцій. Модульна структура програми зображена на рис. 4.2. У таблиці 2 наведено призначення програмних модулів.

Рис. 2.2 Модульна структура програмного засобу

Таблиця 2.2 Призначення програмних модулів

Позначення

Призначення

1

Unit2

Головний модуль програми. Містить головну форму і забезпечує перехід з однієї форми на іншу.

2

Unit3

Модуль довідника транспортних засобів

3

Unit4

Модуль підтвердження списування транспортного засобу

4

Unit1

Модуль форми «Про програму»

5

Unit5

Модуль форми виводу інформації про діяльність автопарку за певний період

3. Опис основних процедур

3.1 Процедура додавання запису у файл

procedure TPagesDlg.Button7Click(Sender: TObject);

begin

if (edit2.Text='') or (Edit3.Text='') or (Edit5.Text='') or (Edit6.Text='')

or (Edit7.Text='') or (Edit8.Text='') or (Edit9.Text='') or (Edit10.Text='') then

showmessage('Ви ввели не всі дані!!!') else

begin

assignfile(f,'transport.dat');

reset(f);

seek(f,filesize(f));

Ss.typ:=ComboBox4.Text;

Ss.marka:=Edit2.Text;

Ss.nomer:=Edit3.Text;

Ss.pryzn:=ComboBox5.Text;

Ss.PIB:=Edit5.Text;

Ss.pik_V:=Edit6.Text;

Ss.data_P:=Edit7.Text;

Ss.V_dvyh:=strtofloat(Edit8.Text);

ss.vantaz:=strtofloat(Edit9.Text);

Ss.miscia:=strtoint(Edit10.Text);

Ss.status:=ComboBox6.Text;

write(f,Ss);

Closefile(f);

end;

Edit2.Text:='';

Edit3.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

Edit10.Text:='';

end;

procedure TPagesDlg.Button6Click(Sender: TObject);

var i: integer;

begin

StringGrid2.Cells[0,0]:='Тип транспорту';

StringGrid2.Cells[1,0]:='Марка';

StringGrid2.Cells[2,0]:='Номер';

StringGrid2.Cells[3,0]:='Призначення';

StringGrid2.Cells[4,0]:='П.І. водія';

StringGrid2.Cells[5,0]:='Рік випуску';

StringGrid2.Cells[6,0]:='Дата придбання';

StringGrid2.Cells[7,0]:='Обєм двигуна';

StringGrid2.Cells[8,0]:='Вантажопідйомність';

StringGrid2.Cells[9,0]:='К-сть посадкових місць';

StringGrid2.Cells[10,0]:='Статус транспорту';

assignfile(f,'transport.dat');

reset(f);

i:=1;

while not EOF(f) do

begin

read(f,Ss);

StringGrid2.Cells[0,i]:=Ss.typ;

StringGrid2.Cells[1,i]:=Ss.marka;

StringGrid2.Cells[2,i]:=Ss.nomer;

StringGrid2.Cells[3,i]:=Ss.pryzn;

StringGrid2.Cells[4,i]:=Ss.PIB;

StringGrid2.Cells[5,i]:=Ss.pik_V;

StringGrid2.Cells[6,i]:=Ss.data_P;

StringGrid2.Cells[7,i]:=FloatToStr(Ss.v_dvyh);

StringGrid2.Cells[8,i]:=FloatToStr(Ss.vantaz);

StringGrid2.Cells[9,i]:=FloatToStr(Ss.miscia);

StringGrid2.Cells[10,i]:=Ss.status;

i:=i+1;

end;

closefile(f);

end;

3.2 Процедура завантаження записів із файлу у StrigGrid

procedure LoadGrid(StringGrid1:TStringGrid; Filename:string);

var i: integer;

begin

assignfile(f, Filename);

reset(f);

i:=1;

while not EOF(f) do

begin

read(f,Ss);

if 2012-StrToInt(Ss.pik_V)>20 then

Form4.show;

StringGrid1.Cells[0,i]:=Ss.typ;

StringGrid1.Cells[1,i]:=Ss.marka;

StringGrid1.Cells[2,i]:=Ss.nomer;

StringGrid1.Cells[3,i]:=Ss.pryzn;

StringGrid1.Cells[4,i]:=Ss.PIB;

StringGrid1.Cells[5,i]:=Ss.pik_V;

StringGrid1.Cells[6,i]:=Ss.data_P;

StringGrid1.Cells[7,i]:=FloatToStr(Ss.v_dvyh);

StringGrid1.Cells[8,i]:=FloatToStr(Ss.vantaz);

StringGrid1.Cells[9,i]:=FloatToStr(Ss.miscia);

StringGrid1.Cells[10,i]:=Ss.status;

i:=i+1;

end;

closefile(f);

end;

3.3 Процедура пошуку у файлі

procedure TPagesDlg.Button5Click(Sender: TObject);

var key: string[20]; z:string; w:integer;

begin

assignfile(f,'transport.dat');

reset(f);

if Edit1.Text='' then

showmessage('Введіть дані пошуку!!!')

else

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

begin

for i:=1 to h do StringGrid1.Rows[i].Clear;

i:=0; j:=1;

while not EOF(f) do

begin

read(f,Ss);

if radiobutton1.Checked=true then key:=Ss.typ;

if radiobutton2.Checked=true then key:=Ss.marka;

if radiobutton3.Checked=true then key:=Ss.nomer;

if radiobutton4.Checked=true then key:=Ss.pryzn;

if radiobutton5.Checked=true then key:=Ss.PIB;

if radiobutton6.Checked=true then key:=Ss.pik_V;

if radiobutton7.Checked=true then key:=Ss.data_P;

if radiobutton8.Checked=true then key:=FloatToStr(Ss.v_dvyh);

if radiobutton9.Checked=true then key:=FloatToStr(Ss.vantaz);

if radiobutton10.Checked=true then key:=IntToStr(Ss.miscia);

if radiobutton11.Checked=true then key:=Ss.pryzn;

z:='';

for w:=1 to length(Edit1.Text) do

z:=z+key[w];

if Edit1.Text=z

then begin

StringGrid1.Cells[0,j]:=Ss.typ;

StringGrid1.Cells[1,j]:=Ss.marka;

StringGrid1.Cells[2,j]:=Ss.nomer;

StringGrid1.Cells[3,j]:=Ss.nomer;

StringGrid1.Cells[4,j]:=Ss.pryzn;

StringGrid1.Cells[5,j]:=Ss.PIB;

StringGrid1.Cells[6,j]:=Ss.pik_V;

StringGrid1.Cells[7,j]:=Ss.data_P;

StringGrid1.Cells[8,j]:=FloatToStr(Ss.v_dvyh);

StringGrid1.Cells[9,j]:=FloatToStr(Ss.vantaz);

StringGrid1.Cells[10,j]:=IntToStr(Ss.miscia);

StringGrid1.Cells[11,j]:=Ss.status;

end;

end;

closefile(f);

end;

end;

3.4 Процедура сортування записів у StringGrid за типом транспорту

procedure TPagesDlg.N11Click(Sender: TObject);

var buf: string;//

begin//

h:=0;//знаходження к-сті

for i:=1 to StringGrid1.RowCount do//записів у таблиці

if StringGrid1.Cells[0,i]<>'' then//

h:=h+1;//

for i:=1 to h do

for j:=1 to h-i do

begin

if StringGrid1.Cells[0,j]>StringGrid1.Cells[0,j+1] then

begin

buf:=StringGrid1.Cells[0,j];

StringGrid1.Cells[0,j]:=StringGrid1.Cells[0,j+1];

StringGrid1.Cells[0,j+1]:=buf;

buf:=StringGrid1.Cells[1,j];

StringGrid1.Cells[1,j]:=StringGrid1.Cells[1,j+1];

StringGrid1.Cells[1,j+1]:=buf;

buf:=StringGrid1.Cells[2,j];

StringGrid1.Cells[2,j]:=StringGrid1.Cells[2,j+1];

StringGrid1.Cells[2,j+1]:=buf;

buf:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=StringGrid1.Cells[3,j+1];

StringGrid1.Cells[3,j+1]:=buf;

buf:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=StringGrid1.Cells[4,j+1];

StringGrid1.Cells[4,j+1]:=buf;

buf:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=StringGrid1.Cells[5,j+1];

StringGrid1.Cells[5,j+1]:=buf;

buf:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=StringGrid1.Cells[6,j+1];

StringGrid1.Cells[6,j+1]:=buf;

buf:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=StringGrid1.Cells[7,j+1];

StringGrid1.Cells[7,j+1]:=buf;

buf:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=StringGrid1.Cells[8,j+1];

StringGrid1.Cells[8,j+1]:=buf;

buf:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=StringGrid1.Cells[9,j+1];

StringGrid1.Cells[9,j+1]:=buf;

buf:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=StringGrid1.Cells[10,j+1];

StringGrid1.Cells[10,j+1]:=buf;

end;

end;

end;

4. Інструкція для користувача

Після запуску програми на екрані з'являється головне вікно програми, яке містить дві закладки: “Перегляд записів” та “Редагування та пошук”. На закладці “Перегляд записів” міститься таблиця у яку завантажуються записи з файлу для їх перегляду, а також кнопки завантаження записів у таблицю, кнопка виводу інформації по певному типу транспорту, кнопка “Відомості про автопакрк” та кнопка закриття програми.

Рис. 4.1 Головне вікно програми (Закладка “Перегляд записів”)

Закладка “Редагування та пошук” містить панелі додавання та пошуку записів, таблицю для редагування записів а також кнопки збереження змін та очищення файлу з записами.

Рис. 4.2 Головне вікно програми(Закладка “Редагування та пошук”)

Кнопка “Вивід інформації” відкриває вікно “Відомості про транспорт” яке відображає відомості про транспорт певного виду. Вікно “Відомості про транспорт” зображене на рис.4.3.

Рис. 4.3 Вікно “Відомості про транспорт”

Кнопка “Відомості про автопарк” викликає вікно “Загальні відомості про роботу автопарку”, яке містить таблицю яка відображає відомості про роботу автопарку за певний період. Для відображення цієї інформації користувач повинен вибрати початковий і кінцевий рік із відповідних випадаючих списків і натиснути кнопку “Показати”. Вікно “Загальні відомості про роботу автопарку” показане на рис. 4.4

Рис. 4.4 Вікно “Загальні відомості про роботу автопарку”

Висновки

Даний проект розроблений відповідно одержаного завдання. Для реалізації поставленої задачі були використані записи. Реалізована можливість збереження даних у файл та редагування збережених даних. Практична реалізація забезпечує можливість виконання наступних операцій над створеною структурою даних:

1) ініціалізацію;

2) додавання нових елементів

3) видалення елементів

4) переміщення по структурі даних

5) пошук елементів структури даних, що відповідають заданим критеріям

6) виведення всіх елементів структури даних.

Подальший розвиток роботи можливий у бік поліпшення зовнішнього інтерфейсу і адаптації програми до більшої області потенційного застосування, за рахунок інтеграції з іншими програмними пакетами призначеними для автоматизації різних сфер діяльності підприємства.

Список використаної літератури

1. Гофман В., Хоменко А. Delphi 5. - Спб,: БХВ Санкт - Петербург, 2000 - 800с.

2. А.Я. Архангельский Программирование в Delphi 7. - М.:ООО «Бином-Пресс», 2003г. - 1152с.; ил.

3. Фленов М.Е. Библия Delphi. - 3-е изд.. перераб. И доп. - СПб.: БХВ-Петербург, 2011--688 с.: ил. + CD-ROM

4. Намнюгин С.А. Turbo Pascal Санкт-Петербург.: Изд-во Пите, 2002. 491с.

5. Марченко А.И., Марченко Л.А., Программирование в среде Turbo Pascal 7.0. К.:Век+. - 2000.

6. Парижский С.М. Delphi. Учимся на примерах/ Под ред. Ю.А. Шпака - К.: “МК-Пресс”, 2005. - 216 с., ил.

ДОДАТКИ

Додаток1 Блок схеми алгоритмів

Лінійний пошук

1.2 Алгоритм сортування

Додаток 2 Лістинг програми

unit Unit2;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ComCtrls, ExtCtrls, Dialogs, Menus, Grids;

type

TSG=record

typ, marka, nomer, pryzn, status, pik_V, data_P:string[25];

v_dvyh, vantaz: extended;

miscia: integer;

PIB:string[40];

end;

DB= TSG;

TPagesDlg = class(TForm)

Panel1: TPanel;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Button4: TButton;

StringGrid1: TStringGrid;

Button2: TButton;

OpenDialog1: TOpenDialog;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N10: TMenuItem;

Panel2: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Edit10: TEdit;

Button7: TButton;

GroupBox1: TGroupBox;

Button5: TButton;

Button6: TButton;

Button8: TButton;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

ComboBox6: TComboBox;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N21: TMenuItem;

StringGrid2: TStringGrid;

Button9: TButton;

Edit1: TEdit;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

StringGrid3: TStringGrid;

RadioButton5: TRadioButton;

RadioButton6: TRadioButton;

RadioButton7: TRadioButton;

RadioButton8: TRadioButton;

RadioButton9: TRadioButton;

RadioButton10: TRadioButton;

RadioButton11: TRadioButton;

Button1: TButton;

procedure N5Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Edit1Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N21Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

PagesDlg: TPagesDlg;

f: file of DB; Ss: DB;

i,j,h: integer;

implementation

uses Unit1, Unit3, Unit4;

{$R *.dfm}

{open file}

procedure LoadGrid(StringGrid1:TStringGrid; Filename:string);

var i: integer;

begin

StringGrid1.Cells[0,0]:='Oei o?ainii?oo';

StringGrid1.Cells[1,0]:='Ia?ea';

StringGrid1.Cells[2,0]:='Iiia?';

StringGrid1.Cells[3,0]:='I?ecia?aiiy';

StringGrid1.Cells[4,0]:='I.?. aia?y';

StringGrid1.Cells[5,0]:='??e aeioneo';

StringGrid1.Cells[6,0]:='Aaoa i?eaaaiiy';

StringGrid1.Cells[7,0]:='Ia?i aaeaoia';

StringGrid1.Cells[8,0]:='Aaioa?ii?aeiii?nou';

StringGrid1.Cells[9,0]:='E-nou iinaaeiaeo i?nou';

StringGrid1.Cells[10,0]:='Noaoon o?ainii?oo';

assignfile(f, Filename);

reset(f);

i:=1;

while not EOF(f) do

begin

read(f,Ss);

if 2012-StrToInt(Ss.pik_V)>20 then

Form4.show;

StringGrid1.Cells[0,i]:=Ss.typ;

StringGrid1.Cells[1,i]:=Ss.marka;

StringGrid1.Cells[2,i]:=Ss.nomer;

StringGrid1.Cells[3,i]:=Ss.pryzn;

StringGrid1.Cells[4,i]:=Ss.PIB;

StringGrid1.Cells[5,i]:=Ss.pik_V;

StringGrid1.Cells[6,i]:=Ss.data_P;

StringGrid1.Cells[7,i]:=FloatToStr(Ss.v_dvyh);

StringGrid1.Cells[8,i]:=FloatToStr(Ss.vantaz);

StringGrid1.Cells[9,i]:=FloatToStr(Ss.miscia);

StringGrid1.Cells[10,i]:=Ss.status;

i:=i+1;

end;

closefile(f);

end;

{open file}

procedure TPagesDlg.N2Click(Sender: TObject);

begin

OpenDialog1.Execute;

LoadGrid(StringGrid1, '12345.dat');

end;

{exit}

procedure TPagesDlg.N5Click(Sender: TObject);

begin

close;

end;

procedure TPagesDlg.Button4Click(Sender: TObject);

begin

Close;

end;

{open}

procedure TPagesDlg.Button2Click(Sender: TObject);

begin

OpenDialog1.Execute;

LoadGrid(StringGrid1, '12345.dat');

end;

{About}

procedure TPagesDlg.N10Click(Sender: TObject);

begin

AboutBox.Show;

end;

{ADD}

procedure TPagesDlg.Button7Click(Sender: TObject);

begin

if (edit2.Text='') or (Edit3.Text='') or (Edit5.Text='') or (Edit6.Text='')

or (Edit7.Text='') or (Edit8.Text='') or (Edit9.Text='') or (Edit10.Text='') then

showmessage('Ae aaaee ia an? aai?!!!') else

begin

assignfile(f,'12345.dat');

reset(f);

seek(f,filesize(f));

Ss.typ:=ComboBox4.Text;

Ss.marka:=Edit2.Text;

Ss.nomer:=Edit3.Text;

Ss.pryzn:=ComboBox5.Text;

Ss.PIB:=Edit5.Text;

Ss.pik_V:=Edit6.Text;

Ss.data_P:=Edit7.Text;

Ss.V_dvyh:=strtofloat(Edit8.Text);

ss.vantaz:=strtofloat(Edit9.Text);

Ss.miscia:=strtoint(Edit10.Text);

Ss.status:=ComboBox6.Text;

write(f,Ss);

Closefile(f);

end;

Edit2.Text:='';

Edit3.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

Edit10.Text:='';

end;

procedure TPagesDlg.Button6Click(Sender: TObject);

var i: integer;

begin

StringGrid2.Cells[0,0]:='Oei o?ainii?oo';

StringGrid2.Cells[1,0]:='Ia?ea';

StringGrid2.Cells[2,0]:='Iiia?';

StringGrid2.Cells[3,0]:='I?ecia?aiiy';

StringGrid2.Cells[4,0]:='I.?. aia?y';

StringGrid2.Cells[5,0]:='??e aeioneo';

StringGrid2.Cells[6,0]:='Aaoa i?eaaaiiy';

StringGrid2.Cells[7,0]:='Ia?i aaeaoia';

StringGrid2.Cells[8,0]:='Aaioa?ii?aeiii?nou';

StringGrid2.Cells[9,0]:='E-nou iinaaeiaeo i?nou';

StringGrid2.Cells[10,0]:='Noaoon o?ainii?oo';

assignfile(f,'12345.dat');

reset(f);

i:=1;

while not EOF(f) do

begin

read(f,Ss);

StringGrid2.Cells[0,i]:=Ss.typ;

StringGrid2.Cells[1,i]:=Ss.marka;

StringGrid2.Cells[2,i]:=Ss.nomer;

StringGrid2.Cells[3,i]:=Ss.pryzn;

StringGrid2.Cells[4,i]:=Ss.PIB;

StringGrid2.Cells[5,i]:=Ss.pik_V;

StringGrid2.Cells[6,i]:=Ss.data_P;

StringGrid2.Cells[7,i]:=FloatToStr(Ss.v_dvyh);

StringGrid2.Cells[8,i]:=FloatToStr(Ss.vantaz);

StringGrid2.Cells[9,i]:=FloatToStr(Ss.miscia);

StringGrid2.Cells[10,i]:=Ss.status;

i:=i+1;

end;

closefile(f);

end;

procedure TPagesDlg.Button8Click(Sender: TObject);

begin

assignfile(f,'12345.dat');

rewrite(f);

closefile(f);

end;

procedure TPagesDlg.Button9Click(Sender: TObject);

var i, j: integer;

begin

assignfile(f,'12345.dat');

rewrite(f);

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for j:=0 to h do

if StringGrid2.Cells[i,j]<>'' then

begin

Ss.typ:=StringGrid2.Cells[0,j];

Ss.marka:=StringGrid2.Cells[1,j];

Ss.nomer:=StringGrid2.Cells[2,j];

Ss.pryzn:=StringGrid2.Cells[3,j];

Ss.PIB:=StringGrid2.Cells[4,j];

Ss.pik_V:=StringGrid2.Cells[5,j];

Ss.data_P:=StringGrid2.Cells[6,j];

Ss.v_dvyh:=StrToFloat(StringGrid2.Cells[7,j]);

Ss.vantaz:=StrToFloat(StringGrid2.Cells[8,j]);

Ss.miscia:=StrToInt(StringGrid2.Cells[9,j]);

Ss.status:=StringGrid2.Cells[10,j];

end;

write(f,Ss);

end;

{iiooe}

procedure TPagesDlg.Button5Click(Sender: TObject);

var key: string[20]; z:string; w:integer;

begin

assignfile(f,'12345.dat');

reset(f);

if Edit1.Text='' then

showmessage('Aaaa?ou aai? iiooeo!!!')

else

begin

for i:=1 to StringGrid1.RowCount-1 do StringGrid1.Rows[i].Clear;

i:=0; j:=1;

while not EOF(f) do

begin

read(f,Ss);

if radiobutton1.Checked=true then key:=Ss.typ;

if radiobutton2.Checked=true then key:=Ss.marka;

if radiobutton3.Checked=true then key:=Ss.nomer;

if radiobutton4.Checked=true then key:=Ss.pryzn;

if radiobutton5.Checked=true then key:=Ss.PIB;

if radiobutton6.Checked=true then key:=Ss.pik_V;

if radiobutton7.Checked=true then key:=Ss.data_P;

if radiobutton8.Checked=true then key:=FloatToStr(Ss.v_dvyh);

if radiobutton9.Checked=true then key:=FloatToStr(Ss.vantaz);

if radiobutton10.Checked=true then key:=IntToStr(Ss.miscia);

if radiobutton11.Checked=true then key:=Ss.pryzn;

z:='';

for w:=1 to length(Edit1.Text) do

z:=z+key[w];

if Edit1.Text=z

then begin

StringGrid1.Cells[0,j]:=Ss.typ;

StringGrid1.Cells[1,j]:=Ss.marka;

StringGrid1.Cells[2,j]:=Ss.nomer;

StringGrid1.Cells[3,j]:=Ss.nomer;

StringGrid1.Cells[4,j]:=Ss.pryzn;

StringGrid1.Cells[5,j]:=Ss.PIB;

StringGrid1.Cells[6,j]:=Ss.pik_V;

StringGrid1.Cells[7,j]:=Ss.data_P;

StringGrid1.Cells[8,j]:=FloatToStr(Ss.v_dvyh);

StringGrid1.Cells[9,j]:=FloatToStr(Ss.vantaz);

StringGrid1.Cells[10,j]:=IntToStr(Ss.miscia);

StringGrid1.Cells[11,j]:=Ss.status;

end;

end;

inc(i); inc(j);

closefile(f);

end;// ==============================

end;

procedure TPagesDlg.Edit1Click(Sender: TObject);

begin

Edit1.Text:='';

end;

procedure TPagesDlg.N11Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[0,i]>StringGrid1.Cells[0,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.Button1Click(Sender: TObject);

begin

Form3.Show;

end;

procedure KR(StringGrid1:TStringGrid);

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

end;

procedure TPagesDlg.N12Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[1,i]>StringGrid1.Cells[1,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N13Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[2,i]>StringGrid1.Cells[2,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N14Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[4,i]>StringGrid1.Cells[4,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N15Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[5,i]>StringGrid1.Cells[5,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N16Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[6,i]>StringGrid1.Cells[6,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N17Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[7,i]>StringGrid1.Cells[7,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N18Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[8,i]>StringGrid1.Cells[8,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

procedure TPagesDlg.N19Click(Sender: TObject);

var buf: string;

begin

h:=0;

for i:=1 to StringGrid1.RowCount do

if StringGrid1.Cells[0,i]<>'' then

h:=h+1;

for i:=1 to h do

for j:=2 to h do

begin

if StringGrid1.Cells[9,i]>StringGrid1.Cells[9,j] then

begin

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

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

StringGrid1.Cells[0,j]:=buf;

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

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

StringGrid1.Cells[1,j]:=buf;

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

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

StringGrid1.Cells[2,j]:=buf;

buf:=StringGrid1.Cells[3,i];

StringGrid1.Cells[3,i]:=StringGrid1.Cells[3,j];

StringGrid1.Cells[3,j]:=buf;

buf:=StringGrid1.Cells[4,i];

StringGrid1.Cells[4,i]:=StringGrid1.Cells[4,j];

StringGrid1.Cells[4,j]:=buf;

buf:=StringGrid1.Cells[5,i];

StringGrid1.Cells[5,i]:=StringGrid1.Cells[5,j];

StringGrid1.Cells[5,j]:=buf;

buf:=StringGrid1.Cells[6,i];

StringGrid1.Cells[6,i]:=StringGrid1.Cells[6,j];

StringGrid1.Cells[6,j]:=buf;

buf:=StringGrid1.Cells[7,i];

StringGrid1.Cells[7,i]:=StringGrid1.Cells[7,j];

StringGrid1.Cells[7,j]:=buf;

buf:=StringGrid1.Cells[8,i];

StringGrid1.Cells[8,i]:=StringGrid1.Cells[8,j];

StringGrid1.Cells[8,j]:=buf;

buf:=StringGrid1.Cells[9,i];

StringGrid1.Cells[9,i]:=StringGrid1.Cells[9,j];

StringGrid1.Cells[9,j]:=buf;

buf:=StringGrid1.Cells[10,i];

StringGrid1.Cells[10,i]:=StringGrid1.Cells[10,j];

StringGrid1.Cells[10,j]:=buf;

end;

end;

end;

end.

unit Unit3;

interface

uses

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

Dialogs, Grids, StdCtrls;

type

TSG=record

typ, marka, nomer, pryzn, status, pik_V, data_P:string[25];

v_dvyh, vantaz: extended;

miscia: integer;

PIB:string[40];

end;

DB= TSG;

TForm3 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

Button2: TButton;

ComboBox1: TComboBox;

Label1: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3; f: file of DB; Ss: DB;

i,j: integer;

implementation

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);

begin

Form3.Close;

end;

procedure TForm3.Button1Click(Sender: TObject);

var q:integer;

begin

StringGrid1.Cells[0,0]:='Тип транспорту';

StringGrid1.Cells[1,0]:='Марка';

StringGrid1.Cells[2,0]:='Номер';

StringGrid1.Cells[3,0]:='Призначення';

StringGrid1.Cells[4,0]:='П.І. водія';

StringGrid1.Cells[5,0]:='Рік випуску';

StringGrid1.Cells[6,0]:='Дата придбання';

StringGrid1.Cells[7,0]:='Обєм двигуна';

StringGrid1.Cells[8,0]:='Вантажопідйомність';

StringGrid1.Cells[9,0]:='К-сть посадкових місць';

StringGrid1.Cells[10,0]:='Статус транспорту';

assignfile(f,'12345.dat');

reset(f);

if ComboBox1.Text='' then

showmessage('Виберіть тип трпнспорту!!!')

else

begin

for i:=1 to 100 do StringGrid1.Rows[i].Clear;

i:=1; j:=1;

while not EOF(f) do

begin

read(f, Ss);

if ss.typ=ComboBox1.Text

then begin

q:=q+1;

StringGrid1.Cells[0,i]:=Ss.typ;

StringGrid1.Cells[1,i]:=Ss.marka;

StringGrid1.Cells[2,i]:=Ss.nomer;

StringGrid1.Cells[3,i]:=Ss.pryzn;

StringGrid1.Cells[4,i]:=Ss.PIB;

StringGrid1.Cells[5,i]:=Ss.pik_V;

StringGrid1.Cells[6,i]:=Ss.data_P;

StringGrid1.Cells[7,i]:=FloatToStr(Ss.v_dvyh);

StringGrid1.Cells[8,i]:=FloatToStr(Ss.vantaz);

StringGrid1.Cells[9,i]:=FloatToStr(Ss.miscia);

StringGrid1.Cells[10,i]:=Ss.status;

i:=i+1;

end;

end;

inc(i); inc(j);

closefile(f);

Label1.Caption:='Загальна кількість='+IntToStr(q);

end;

if (q=0) then showmessage('Не знайдено жодного автомобіля даного типу!!!')

end;

end.

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, Unit2;

type

TForm4 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button2Click(Sender: TObject);

begin

Form4.Close;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

assignfile(f,'12345.dat');

read(f,Ss);

while not EOF(f) do

begin

if 2012-StrToInt(Ss.pik_V)>20 then

begin

Ss.status:='Списаний';

write(f,ss);

end;

closefile(f);

Form4.Close;

end;

end;

end.

unit Unit1;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox = class(TForm)

Panel1: TPanel;

ProgramIcon: TImage;

ProductName: TLabel;

Version: TLabel;

Copyright: TLabel;

Comments: TLabel;

OKButton: TButton;

procedure OKButtonClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox: TAboutBox;

implementation

{$R *.dfm}

procedure TAboutBox.OKButtonClick(Sender: TObject);

begin

Close;

end;

end.

програма автоматизація обробка даний

Размещено на Allbest.ru


Подобные документы

  • Аналіз предметної галузі задачі моделювання пострілу балісти через стіну по мішені. Структури даних та діаграми класів для розв'язання задачі. Схеми взаємодії об’єктів та алгоритми виконання їх методів. Опис розробленої програми, інструкція користувача.

    курсовая работа [1,0 M], добавлен 18.05.2014

  • Опис структури даних та вимоги до них, процедур і функцій користувача, файлів та їх призначення. Інструкція для роботи з програмою. Результати роботи програми, її структура та функціональні компоненти, принципи роботи та сфери практичного застосування.

    курсовая работа [330,6 K], добавлен 04.02.2015

  • Розробка програми GameBox, яка включає в себе дві гри, судоку та пятнашки. Опис структури даних та вимоги до них, процедур і функцій користувача, стандартних процедур і функцій, які використовувались в програмі, та файлів. Результати роботи програми.

    курсовая работа [5,3 M], добавлен 12.11.2011

  • Розробка програми автоматизації роботи з матрицями. Оформлення даних у вигляді матриць цілих чисел. Перелік операцій над матрицями, які реалізуються у програмі. Програмне забезпечення, мови програмування. Опис логічної структури та алгоритм програми.

    курсовая работа [312,2 K], добавлен 01.04.2016

  • Опис структур даних та вмісту файлів з вхідними, вихідними даними. Проектування програми автоматизації процесу обліку (поставки та видачі) товарів для невеликого магазину. Математична постановка основних задач. Опис програмного інтерфейсу з користувачем.

    курсовая работа [526,9 K], добавлен 07.10.2014

  • Аналіз предметної області, постановка задачі. Формулювання проблеми. Аналіз предметної області. Постановка задачі. Проект програми. Ієрархія об’єктів. Ієрархія наслідування. Діаграма станів гри. Специфікація. Кодування.

    курсовая работа [217,2 K], добавлен 16.06.2007

  • Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.

    курсовая работа [1,2 M], добавлен 08.06.2010

  • Розробка бази даних для автоматизації облікової інформації в системі управління базами даних Access з метою полегшення роботи з великими масивами даних, які існують на складах. Обґрунтування вибору системи управління. Алгоритм та лістинг програми.

    курсовая работа [550,9 K], добавлен 04.12.2009

  • Створення баз даних для автоматизування роботи торгового представника в середовищі програмування Delрhі. Опис вхідної та результуючої інформації, формалізований опис задачі. Розробка технічного та робочого проекту, опис та обґрунтування вибору структури.

    курсовая работа [135,8 K], добавлен 11.10.2010

  • Варіантний аналіз та вибір методів розв’язування, основні поняття та визначення, особливості розробки баз даних. Описовий алгоритм головної програми та її структури, опис авторської заставки. Структура модулів та опис функцій, лістинг програми.

    курсовая работа [2,6 M], добавлен 30.11.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.