База даних DVDфільмов

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Введення

Дорогий Олександр Григорович якщо ви читаєте це введення, значить я нарешті - то закінчив свій курсовий проект. Він називається «База даних DVD - фільмів». Швидше за все, він ні кому, ні буде, потрібен і грошей я на ньому не зароблю. Це дуже сумно. Хоча якщо поглянути на це з іншого боку, то майже у кожної людини в цьому світі є своя колекція DVD - фільмів і думка, що ця програма може стати їм у нагоді, мене дуже радує. Як кажуть, немає лиха, без добра. Програма дуже проста у використанні і їсть дуже мало ресурсів. Працює майже на будь-якій операційній системі і на будь-якому комп'ютері. Тепер поговоримо про саму програму. Вона багатофункціональна. Занесену інформацію про DVD - фільмах можна змінювати, видаляти і редагувати. Інформація про диски записується в базу даних по п'яти полях: назва диску, ціна, рік випуску, прізвище режисера, кінокомпанія, яка створювала фільм. Також можна сортувати диски з цих же полях. Загалом, вона настільки проста, що навіть дитина може в ній розібратися. А найголовніше, що програма написана російською мовою та ще російським студентом третього курсу, АФРГСУ який навчається на факультеті Ітіро. Як це розшифровується, я до сих пір не можу запам'ятати!

  1. Загальна частина

1.1 Короткий опис роботи

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

        1. Кнопка виведення інформації.

Вся інформація, що знаходиться у файлі і виводиться в цю таблицю.

        1. Кнопка пошуку інформації.

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

        1. Кнопка видалення.

Видалення відбувається наступним образам: вибираємо курсором, який DVD - фільм ви хочете видалити і отже натискаємо кнопку видалення.

        1. Область редагування.

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

        1. Кнопка додавання інформації.

Відображається вікно додавання інформації. Інформація також додається по п'яти полях. Додана інформація миттєво виводиться в головному вікні.

1.2 Вибір мови та середовища програмування

Дана програма розроблялася в середовищі програмування Delphi. Вона містить багатий набір різних типів даних і компонентів, що полегшують створення програмного продукту під MS Windows.

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

  1. Основна частина

2.1 Структура даних

type disk = record

name: string [50];

reg: string [30];

cincom: string [30];

stoim: integer;

year: integer;

end;

Тип запису disk є поданням інформації: stoim - вартість DVD - фільму, name-назва DVD - фільму, reg - прізвище режисера, cincom - назва кінокомпанії, year - рік виходу фільму на DVD.

tdvd = array [1 .. 300] of disk

Тип tdvd одномірно масивом, що містить 300 елементів типу disk, тобто цей масив містить інформацію про 300 ах DVD - фільмах, отриману в результаті заповнення файлу з інформацією.

recordfile = file of disk

Типізований файл «recordfile» містить записи типу disk, тобто містить вихідну інформацію про кожного DVD - фільмі.

Опис файлів

При роботі програма використовує постійний файл з інформацією

'Db _ disk. Db' - файл з вихідною інформацією;

2.2 Структурні елементи програми

Опис глобальних змінних використовуються в модулі kursovik. Pas наведено в таблиці 1.

Таблиця 1. Глобальні змінні.

Ідентифікатор

Тип

Призначення

n

integer

Змінна - лічильник

m

integer

Змінна - лічильник

dvdfile

string

Назва файлу

f

recordfile

Файл з записами

g

recordfile

Файл з записами

Form1

Tform1

Ідентифікатор форми

but

integer

Визначає натиснуту кнопку при появі повідомлення

h

HWND

Дескриптор вікна

horizon

integer

Номер рядка в таблиці

k

integer

Перевірка існування телефону

Таблиця 2. Константа.

Ідентифікатор

Значення

Призначення

detect

'Savedvd \'

Шлях до файлів необхідним для роботи програми

Таблиця 3. Глобальні змінні модуля Unit 2.р as.

Ідентифікатор

Тип

Призначення

Form 2

Tform 2

Ідентифікатор форми

Таблиця 3. Глобальні змінні модуля unit search. Pas

Ідентифікатор

Тип

Призначення

Form4

Tform4

Ідентифікатор форми

dvdfile

string

Назва файлу

n

integer

Змінна - лічильник

f

recordfile

Файл з записами

g

recordfile

Файл з записами

Таблиця 4. Глобальні змінні модуля unit Input. Pas

Ідентифікатор

Тип

Призначення

Form 3

Tform 3

Ідентифікатор форми

dvdfile

string

Назва файлу

n

integer

Змінна - лічильник

k

integer

Змінна - лічильник

f

recordfile

Файл з записами

g

recordfile

Файл з записами

Опис процедур

Модуль kursovik.pas

procedure tform1.clearlist;

Дана процедура очищає таблицю виведення інформації.

procedure tform1.vivod (dvdfile: string);

Дана процедура здійснює виведення даних записаних у файл. Параметр dvdfile - директорія файлу.

Алгоритм:

  1. Прив'язуємо до файлової змінної "f" змінну dvdfile і відкриваємо для читання.

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

  3. У разі не виявлення файлу, він створюється в необхідній директорії.

Таблиця 5. Локальні змінні.

Ідентифікатор

Тип

Призначення

s

disk

Запис

f 1

recordfile

Файл з записами

count

integer

Номер за списком

procedure tform1.deletef (horizon: integer);

Дана процедура здійснює видалення запису з фала.

Алгоритм.

  1. У параметр d передається введена модель телефону.

  2. Відкриваємо на читання основний файл "db _ disk. Db" на читання і створюємо тимчасовий "new. Db". Перезаписує його.

  3. До тих пір, поки не досягнуть кінець файлу, читаємо запису і якщо поле запису позначає ім'я не одно змінної "d", пишемо в тимчасовий файл все наші записи. Видаляємо основний файл і перепрісваіваем його директорію тимчасового файлу.

Таблиця 5. Локальні змінні.

Ідентифікатор

Тип

Призначення

el

tdvd

Запис

f1

recordfile

Файл з записами

procedure tform1.sort_1 (dvdfile: string);

procedure tform1.sort_2 (dvdfile: string);

procedure tform1.sort_3 (dvdfile: string);

procedure tform1.sort_4 (dvdfile: string);

procedure tform1.sort_5 (dvdfile: string);

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

Таблиця 6. Локальні змінні.

Ідентифікатор

Тип

Призначення

f

file of disk

Типізований файл із записами

q

file of disk

Типізований файл із записами

c

integer

Лічильник записів

i

integer

Елемент масиву

n

integer

Елемент масиву

buf

disk

Запис

el

tdvd

Масив з записами

procedure Tform 1. editzap;

Дана процедура здійснює редагування даних записаних у файл.

Алгоритм.

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

  2. Поки немає кінця файлу, запускаємо лічильник n. Порівнюємо введене назва, з наявними в dvd. При збігу присвоюємо змінної m значення лічильника. Змінна m буде відповідати за позицію записи в фалі. Далі змінної new присвоюємо дані, які треба записати в замість вихідних.

  1. Переходимо за допомогою функції seek на позицію m -1, то є над необхідної записом. Читаємо з файлу запис.

  2. Потім у case comboBox3.ItemIndex вибираємо поле, яке необхідно замінити і присвоюємо йому значення змінної new. Якщо параметр не символьний переводимо змінну new в цифровий формат за допомогою функції.

  3. Перезаписує запис у файлі. Закриваємо його і виводимо на екран за допомогою процедури vivod.

Таблиця 7. Локальні змінні.

Ідентифікатор

Тип

Призначення

f 1

recordfile

Тимчасовий файл із записами

q

disk

Запис

s

disk

Запис

new

string

Нові введені дані

name

string

Введене назва dvd

procedure TForm1.FormCreate (Sender: TObject);

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

procedure TForm1.ComboBox2Change (Sender: TObject);

В цій процедурі здійснюється вибір і запуск необхідної процедури сортування, шляхом натискання одного з пунктів списку, що випадає ComboBox. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N8Click (Sender: TObject);

Дана процедура завершує роботу програми з меню в разі позитивної відповіді на з'являється повідомлення. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N7Click (Sender: TObject);

Дана процедура виводить інформацію з файлу за допомогою за допомогою процедури vivod з меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N14Click (Sender: TObject);

procedure TForm1.N15Click (Sender: TObject);

procedure TForm1.N16Click (Sender: TObject);

procedure TForm1.N17Click (Sender: TObject);

procedure TForm1.N18Click (Sender: TObject);

Процедури наведені вище відповідають за запуск процедур сортування sort_1 (derect + 'db_disk.db'), sort_2 (derect + 'db_disk.db'), sort_3 (derect + 'db_disk.db') sort_4 (derect + 'db_disk.db'), sort_5 (derect + 'db_disk.db'), з меню, відповідно. Процедури містять вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N5Click (Sender: TObject);

Дана процедура відповідає за запуск процедури видалення deletef і висновок оновленої інформації за допомогою процедури vivod з меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N4Click (Sender: TObject);

Дана процедура відповідає за додавання інформації у файл за допомогою процедури input з меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N2Click (Sender: TObject);

Дана процедура запускає процедуру виведення vivod, шляхом натискання на необхідний пункт зі спливаючого меню над областю таблиці. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N10Click (Sender: TObject);

procedure TForm1.N11Click (Sender: TObject);

procedure TForm1.N12Click (Sender: TObject);

procedure TForm1.freg1Click (Sender: TObject);

procedure TForm1.fcincom1Click (Sender: TObject);

Процедури, наведені вище, подібні за своїм принципом. Кожна з них викликає конкретну процедуру сортування (sort_1, sort_2, sort_3, sort_4, sort_5), шляхом натискання на пункт, спливаючого меню над областю таблиці. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N9Click (Sender: TObject);

Дана процедура запускає процедуру очищення списку clearlist, шляхом натискання на необхідний пункт зі спливаючого меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N23Click (Sender: TObject);

Дана процедура запускає процедуру очищення списку clearlist, шляхом натискання на необхідний пункт в меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N6Click (Sender: TObject);

Дана процедура запускає процедуру редагування redactor з меню. Процедура містить вхідну змінну Sender - тип tobject, цей параметр визначає, який об'єкт програми викликає дану процедуру.

procedure TForm1.N21Click (Sender: TObject);

Дана процедура відображає вікно з інформацією про програму.

procedure tform3.input (var f: recordfile; var dvdfile: string);

Дана процедура здійснює запис даних у файл.

Параметр "f" - типізований файл типу recordfile. Dvdfile - деректор файлу.

Алгоритм:

  1. Прив'язуємо до файлової змінної "g" тимчасовий файл derect + 'buffer. Db' і перезаписує його. Прив'язуємо до файлової змінної "f" змінну dvdfile і відкриваємо для читання.

  2. Якщо у файлі знаходиться що-небудь, копіюємо вміст "f" у "g" і закриваємо "f", якщо ні, перезаписуваними і закриваємо "f".

  3. Надаємо змінним записів введені поля.

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

  5. Далі перевіряємо значення зміною k. Якщо k = 1, то виводиться повідомлення про те що даний диск існує і запис не здійснюється, якщо інакше, то відбувається запис в файл.

  6. В кінці закриваємо "g" і видаляємо "f". Перепрісваіваем директорію dvdfile змінної "g". І виводимо оновлений список за допомогою процедури vivod.

Таблиця 8. Локальні змінні.

Ідентифікатор

Тип

Призначення

s

disk

Запис

q

disk

Запис

procedure tform1.search_1 (dvdfile: string; var g: recordfile);

procedure tform1.search_2 (dvdfile: string; var g: recordfile);

procedure tform1.search_3 (dvdfile: string; var g: recordfile);

procedure tform1.search_4 (dvdfile: string; var g: recordfile);

procedure tform1.search_5 (dvdfile: string; var g: recordfile);

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

procedure TForm1.Button4Click (Sender: TObject);

Дана процедура відповідає за функцію зміни інформації. При натисканні на кнопку курсором викликається процедура editzap.

procedure TForm1.Button7Click (Sender: TObject);

Дана процедура закриває повністю програму. При натисканні на кнопку відображається вікно підтвердження

2.3 Розрахунок обсягу оперативної пам'яті

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

2.4 Інтерфейс програми

При запуску програми з'являється вікно, з дружнім інтерфейсом рис. 1. Всі операції виконуються в цьому вікні. При виклику інформації про програму в пункті меню з'являється вікно, що містить необхідну інформацію рис. 2. Функція додавання зображена на рис. 3. Функція пошуку зображена на рис. 4.

Малюнок 1. Головне вікно

Малюнок 2 .. Інформація про програму.

Малюнок 3. Вікно додавання нової інформації.

Малюнок 4. Вікно пошуку інформації

3. Перевірка працездатності

3.1 Комплект постачання програми

  1. dvdproekt. exe - виконуваний файл програми

  2. Savedvd - папка з файлом db _ disk. Db, що містить базу даних. Також папка використовується для зберігання тимчасових файлів, створюваних під час роботи програми.

3.2 Опис результатів перевірки програми

Технічні засоби, що використовуються для написання роботи, наведені в таблиці 10. Для перевірки працездатності програми я використовував комп'ютери з різною конфігурацією. Їх конфігурації наведені в таблиці 10

Таблиця 10. Опис результатів перевірки програми.

Компоненти ЕОМ, програмне забезпечення

Конфігурація ЕОМ



Мікропроцесор, тактова частота

Об'єм оперативної пам'яті

Тип відеоадаптера, обсяг відеопам'яті

Обсяг дискового простору

Операційна система


1

Intel (R) Celeron, 1. 7 GHz

128 M b

Intel (R) 828456 Graphics controller, 32 Mb

1 0 G b

MS Windows 2000


2

AMD Turion 64x2 Mobile Technology TL-60 2.0 GHz

3 G b

NVIDIA GeForce 8600 GS, 512 Mb

320 G b

MS Windows Vista


3

AMD Sempron (tm) 2200 +, 1.5 GHz

768 M b

ATI Radeon 9600 series, 128 Mb

8 0 G b

MS Windows XP Professional

Конфігурація ЕОМ


4

Pentium (R) D, 2x2.8 Mhz

1. 5 G b

NVIDIA GeForce 8500 GT, 256 Mb

8 0 G b

MS Windows XP Professional


5

Pentium 4, 3.01 Ghz

512 M b

ATI Radeon X1600, 256 Mb

2 0 G b

MS Windows XP Professional

3.3 Мінімальні системні вимоги

1.Процессор: 170 MHz;

2. Оперативна пам'ять: 5000k b;

3. Фізична пам'ять на жорсткому диску: 1400MB вільного місця;

4. Відеокарта з підтримкою VGA;

5. Пристрої введення / виведення даних: клавіатура, монітор, миша.

Висновок

Ось і все! Мій проект закінчений. Є дві причини, для чого я робив це. Перша, що б здати його Вам Олександре Григоровичу! Друга, для отримання знань з операційним системам і самому програмуванню в цілому і що б, не було нудно. Ну а тепер про головне. Я думаю, мета, поставлена ​​переді мною, виконано. Я трохи став розбиратися в Delphi. Навчився працювати з процедурами, із записами і з циклами. Також створив просту, а головне зручну програму, яка може стати в нагоді будь-якому колекціонерові фільмів на DVD дисках. Дуже простий інтерфейс дозволяє працювати в програмі навіть дитині, і старшому поколінню, якому дуже важко звертатися з новими технологіями, в тому числі і комп'ютерами. А на завершення хотілося б сказати велике спасибі розробникам Delphi. Адже без цього середовища розробки у мене ні чого б, не вийшло. Усім спасибі за допомогу. До побачення!

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

1. Михайло Флен, «Біблія Delphi», Санкт Петербург «БХВ-Петербург» 2004 рік, 882 стор

2. Володимир Гофман, Анатолій Хамоненко, «Delphi швидкий старт», Санкт Петербург «БХВ-Петербург» 2003 рік, 280 стор

3. Євген Марков, Петро Дарахвелідзе, «Програмування в Delphi 7», Санкт Петербург «БХВ-Петербург» 2003 рік, 780 стор

4. Поган А.М., Царенко Ю.А., "Програмування в Delphi", Москва «ЕКСМО» 2006 рік, 309 стор

5. Бобровський А., "Delphi 5. Навчальний курс. ", Санкт - Петербург, Москва, Харків, Мінськ,« ЗАТ Пітербук », 2004 рік, 639 стор

Додаток 1

Лістинг програми та її модулів

program Kursovik;

uses

Forms,

kurs in 'kurs.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Input in 'Input.pas' {Form3},

search in 'search.pas' {Form4};

{$ R *. res}

begin

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.CreateForm (TForm2, Form2);

Application.CreateForm (TForm3, Form3);

Application.CreateForm (TForm4, Form4);

Application.Run;

end.

Модуль kurs.pas

unit kursovik;

interface

uses

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

Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, Grids, DBGrids, ShellAPI, XPMan;

const

derect = 'savedvd \';

type disk = record

name: string [50];

stoim: integer;

year: integer;

reg: string [30];

cincom: string [30];

end;

tdvd = array [1 .. 300] of disk;

recordfile = file of disk;

TForm1 = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N21: TMenuItem;

StringGrid1: TStringGrid;

ComboBox3: TComboBox;

Edit9: TEdit;

PopupMenu1: TPopupMenu;

N2: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

reg1: TMenuItem;

cincom1: TMenuItem;

N13: TMenuItem;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

XPManifest1: TXPManifest;

N26: TMenuItem;

Label8: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: ​​TButton;

N25: TMenuItem;

procedure N8Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

Procedure deletef (horizon: integer);

procedure editzap;

procedure clearlist;

procedure vivod (dvdfile: string);

procedure sort_1 (dvdfile: string);

procedure sort_2 (dvdfile: string);

procedure sort_3 (dvdfile: string);

procedure sort_4 (dvdfile: string);

procedure sort_5 (dvdfile: string);

procedure N7Click (Sender: TObject);

procedure N14Click (Sender: TObject);

procedure N15Click (Sender: TObject);

procedure N16Click (Sender: TObject);

procedure N17Click (Sender: TObject);

procedure N18Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N11Click (Sender: TObject);

procedure N12Click (Sender: TObject);

procedure reg1Click (Sender: TObject);

procedure cincom1Click (Sender: TObject);

procedure N9Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N21Click (Sender: TObject);

procedure N23Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure StringGrid1SelectCell (Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

procedure N26Click (Sender: TObject);

procedure Edit9Click (Sender: TObject);

procedure Button7Click (Sender: TObject);

procedure Button5Click (Sender: TObject);

procedure Button6Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure N25Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

private

public

n, m, k: integer;

f, g: recordfile;

but: integer;

h: HWND;

horizon: integer;

end;

var

Form1: TForm1;

implementation

uses unit2, Input, search;

{$ R *. dfm}

procedure tform1.clearlist;

begin

n: = 0;

while n <stringgrid1.rowcount do

begin

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

StringGrid1.Cells [1, n +1 ]:='';

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

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

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

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

n: = n +1;

end;

stringgrid1.RowCount: = 2;

end;

procedure tform1.vivod (dvdfile: string);

var s: disk;

count: integer;

f1: recordfile;

begin

assignfile (f, dvdfile); {$ I-}

reset (f); {$ I +}

N: = 0;

count: = 0;

If IOResult = 0 then

begin

while not eof (f) do

begin

count: = count +1;

read (f, s);

StringGrid1.cols [0] [N +1]: = inttostr (count);

StringGrid1.Cells [1, N +1]: = s.name;

StringGrid1.Cells [2, N +1]: = inttostr (s.stoim) + 'руб.';

StringGrid1.Cells [3, N +1]: = intToStr (s.year) + 'рік';

StringGrid1.Cells [4, N +1]: = s.reg;

StringGrid1.Cells [5, N +1]: = s.cincom;

N: = N +1;

end;

seek (f, 0);

closefile (f);

if count = 0 then

clearlist

else

stringgrid1.rowcount: = N +1;

end

else

begin

createdir ('savedvd \');

assignfile (f1, derect + 'db_ disk.db');

rewrite (f1);

closefile (f1);

end;

end;

procedure TForm1.StringGrid1SelectCell (Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

begin

horizon: = ARow;

end;

{Видалення запису}

Procedure tform1.deletef (horizon: integer);

var

f1: recordfile;

el: tdvd;

begin

but: = MessageBox (0, 'Видалити дані?', 'Увага!', MB_YESNO or MB_ICONquestion);

if but = IDYES then

begin

assignfile (f1, derect + 'new.db');

rewrite (f1);

assignfile (f, derect + 'db_ disk.db');

reset (f);

n: = 1;

while not eof (f) do

begin

read (f, el [n]);

if n <> horizon then

write (f1, el [n]);

n: = n +1;

end;

closefile (f);

closefile (f1);

erase (f);

rename (f1, derect + 'db_ disk.db');

vivod (derect + 'db_disk.db');

end;

end;

procedure tform1.sort_1 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. name <el [i]. name then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

procedure tform1.sort_2 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. stoim <el [i]. stoim then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

procedure tform1.sort_3 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. year <el [i]. year then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

procedure tform1.sort_4 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. reg <el [i]. reg then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

procedure tform1.sort_5 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. cincom <el [i]. cincom then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

{Редагування}

procedure Tform1.editzap;

var

q: disk;

new: string;

begin

n: = 0;

assignfile (f, derect + 'db_ disk.db');

reset (f);

try

new: = Edit9.text;

seek (f, horizon-1);

read (f, q);

case comboBox3.ItemIndex of

0: q.name: = new;

1: try q.stoim: = strtoint (new);

except

MessageBox (0, 'Ціна вказується в цифрах !','', MB_OK or MB_ICONWARNING)

end;

2: try q.year: = strtoint (new);

except

MessageBox (0, 'Рік випуску вказується в цифрах !','', MB_OK or MB_ICONWARNING)

end;

3: q.reg: = new;

4: q.cincom: = new;

end;

begin

seek (f, horizon-1);

write (f, q);

closefile (f);

end;

except

MessageBox (0, 'Оберіть рядок зі списку .','', MB_OK or MB_ICONWARNING)

end;

edit9.clear;

vivod (derect + 'db_ disk.db');

end;

procedure TForm1.FormCreate (Sender: TObject);

begin

StringGrid1.Rows [0] [0]: = 'Номер';

StringGrid1.Rows [0] [1]: = 'Назва фільму';

StringGrid1.Rows [0] [2]: = 'Ціна DVD-диска';

StringGrid1.Rows [0] [3]: = 'Рік випуску';

StringGrid1.Rows [0] [4]: = 'Режисер';

StringGrid1.Rows [0] [5]: = 'Кінокомпанія';

vivod (derect + 'db_sot.db')

end;

procedure TForm1.N8Click (Sender: TObject);

begin

but: = MessageBox (0, 'Закрити програму?', 'Увага!', MB_YESNO or MB_ICONINFORMATION);

if but = IDYES then

Close;

end;

procedure TForm1.N7Click (Sender: TObject);

begin

vivod (derect + 'db_ disk.db');

end;

procedure TForm1.N14Click (Sender: TObject);

begin

sort_1 (derect + 'db_ disk.db');

end;

procedure TForm1.N15Click (Sender: TObject);

begin

sort_2 (derect + 'db_ disk.db');

end;

procedure TForm1.N16Click (Sender: TObject);

begin

sort_3 (derect + 'db_ disk.db');

end;

procedure TForm1.N17Click (Sender: TObject);

begin

sort_4 (derect + 'db_ disk.db');

end;

procedure TForm1.N18Click (Sender: TObject);

begin

sort_5 (derect + 'db_sot.db');

end;

{Додавання}

procedure TForm1.N4Click (Sender: TObject);

begin

Form3.ShowModal;

vivod (derect + 'db_ disk.db');

end;

{Висновок у спливаючому меню}

procedure TForm1.N2Click (Sender: TObject);

begin

vivod (derect + 'db_ disk.db');

end;

{Сортування у спливаючому меню}

procedure TForm1.N10Click (Sender: TObject);

begin

sort_1 (derect + 'db_ disk.db');

end;

procedure TForm1.N11Click (Sender: TObject);

begin

sort_2 (derect + 'db_sot.db');

end;

procedure TForm1.N12Click (Sender: TObject);

begin

sort_3 (derect + 'db_ disk.db');

end;

procedure TForm1.reg1Click (Sender: TObject);

begin

sort_4 (derect + 'db_ disk.db');

end;

procedure TForm1.cincom1Click (Sender: TObject);

begin

sort_5 (derect + 'db_ disk.db');

end;

{Очищення спливаюче}

procedure TForm1.N9Click (Sender: TObject);

begin

clearlist;

end;

{Очищення в меню}

procedure TForm1.N23Click (Sender: TObject);

begin

clearlist

end;

{Редагування в меню}

procedure TForm1.N6Click (Sender: TObject);

begin

if (edit9.text ='') or (edit9.text = 'Введіть нові дані ...') then

MessageBox (0, 'Введіть нові дані.', 'Увага!', MB_ok or MB_ICONINFORMATION)

else

editzap;

end;

/ / На кнопку

procedure TForm1.Button2Click (Sender: TObject);

begin

deletef (horizon);

end;

/ / Видалення в спливаючому

procedure TForm1.N26Click (Sender: TObject);

begin

deletef (horizon);

end;

/ / Видалення з меню

procedure TForm1.N5Click (Sender: TObject);

begin

deletef (horizon);

end;

///----------------------------------------------- ----

{Вікно "Про програму"}

procedure TForm1.N21Click (Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.Edit9Click (Sender: TObject);

begin

edit9.clear;

end;

procedure TForm1.Button7Click (Sender: TObject);

begin

but: = MessageBox (0, 'Закрити програму?', 'Увага!', MB_YESNO or MB_ICONINFORMATION);

if but = IDYES then

Close;

end;

procedure TForm1.Button5Click (Sender: TObject);

begin

clearlist;

end;

procedure TForm1.Button6Click (Sender: TObject);

begin

vivod (derect + 'db_sot.db');

end;

procedure TForm1.Button1Click (Sender: TObject);

begin

Form3.ShowModal;

vivod (derect + 'db_sot.db');

end;

procedure TForm1.Button3Click (Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.N25Click (Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.Button4Click (Sender: TObject);

begin

if (edit9.text ='') or (edit9.text = 'Нові дані ...') then

MessageBox (0, 'Введіть нові дані для зміни.', 'Увага!', MB _ ok or MB _ ICONINFORMATION)

else

editzap;

end;

end.

Модуль Unit2.pas;

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm2 = class (TForm)

Label2: TLabel;

Label6: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Button1: TButton;

Label1: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label7: TLabel;

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form2: TForm2;

implementation

{$ R *. dfm}

procedure TForm2.Button1Click (Sender: TObject);

begin

Close;

end;

end.

Модуль search.pas;

unit search;

interface

uses

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

Dialogs, StdCtrls, jpeg, ExtCtrls, Grids;

const

derect = 'savedvd \';

type

disk = record

name: string [50];

stoim: integer;

year: integer;

reg: string [30];

cincom: string [30];

end;

tdvd = array [1 .. 300] of disk;

recordfile = file of disk;

TForm4 = class (TForm)

Label3: TLabel;

Label4: TLabel;

Edit7: TEdit;

ComboBox1: TComboBox;

Button1: TButton;

StringGrid1: TStringGrid;

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure search_1 (dvdfile: string; var g: recordfile);

procedure search_2 (dvdfile: string; var g: recordfile);

procedure search_3 (dvdfile: string; var g: recordfile);

procedure search_4 (dvdfile: string; var g: recordfile);

procedure search_5 (dvdfile: string; var g: recordfile);

procedure sort_1 (dvdfile: string);

procedure sort_2 (dvdfile: string);

procedure vivod (dvdfile: string);

procedure Edit7Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

public

f, g: recordfile;

n: integer;

dvdfile: string;

end;

var

Form4: TForm4;

implementation

{$ R *. dfm}

//////-----------------

{Виведення списку}

procedure tform4.vivod (dvdfile: string);

var s: disk;

count: integer;

f1: recordfile;

begin

assignfile (f, dvdfile); {$ I-}

reset (f); {$ I +}

N: = 0;

count: = 0;

If IOResult = 0 then

begin

while not eof (f) do

begin

count: = count +1;

read (f, s);

StringGrid1.cols [0] [N +1]: = inttostr (count);

StringGrid1.Cells [1, N +1]: = s.name;

StringGrid1.Cells [2, N +1]: = inttostr (s.stoim) + 'руб.';

StringGrid1.Cells [3, N +1]: = intToStr (s.year) + 'рік';

StringGrid1.Cells [4, N +1]: = s.reg;

StringGrid1.Cells [5, N +1]: = s.cincom;

N: = N +1;

end;

seek (f, 0);

closefile (f);

if count = 0 then

else

stringgrid1.rowcount: = N +1;

end

else

begin

createdir ('Database \');

assignfile (f1, derect + 'db_ disk.db');

rewrite (f1);

closefile (f1);

end;

end;

//-----------------

procedure tform4.sort_1 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. name <el [i]. name then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

procedure tform4.sort_2 (dvdfile: string);

var

f, q: file of disk;

c, i, n: integer;

buf: disk;

el: tdvd;

begin

assignfile (q, derect + 'db.db');

rewrite (q);

assignfile (f, dvdfile);

reset (f);

c: = 0;

while not eof (f) do

begin

c: = c +1;

read (f, el [c]);

end;

for i: = 1 to c do

for n: = i +1 to c do

if el [n]. stoim <el [i]. stoim then

begin

buf: = el [n];

el [n]: = el [i];

el [i]: = buf;

end;

for i: = 1 to c do

begin

write (q, el [i]);

end;

closefile (f);

closefile (q);

vivod (derect + 'db.db');

erase (q);

end;

//---------------------

procedure tform4.search_1 (dvdfile: string; var g: recordfile);

var g1: recordfile;

s: disk;

nameof: string;

begin

n: = 0;

nameof: = Edit7.text;

assignfile (g1, derect + 'result.db');

rewrite (g1);

assignfile (g, derect + 'db_ disk.db'); {$ I-}

reset (g); {$ I +}

if IOResult = 0 then

begin

while not eof (g) do

begin

read (g, s);

if s.name = nameof then

write (g1, s)

end;

end

else

showMessage ('Помилка');

seek (g1, 0);

while not eof (g1) do

begin

read (g1, s);

inc (n);

end;

closefile (g);

closefile (g1);

Edit7.Clear;

if n = 0 then

begin

MessageBox (0, 'Немає такого фільму. Введіть інші дані', 'Увага!', MB _ OK or MB _ ICONINFORMATION);

end

else

vivod (derect + 'result.db');

erase (g1)

end;

procedure tform4.search_2 (dvdfile: string; var g: recordfile);

var g1: recordfile;

s: disk;

stoimof: integer;

begin

n: = 0;

try

stoimof: = StrToInt (Edit7.text);

assignfile (g1, derect + 'result.db');

rewrite (g1);

assignfile (g, derect + 'db_ disk.db'); {$ I-}

reset (g); {$ I +}

if IOResult = 0 then

begin

while not eof (g) do

begin

read (g, s);

if s.stoim <= stoimof then

write (g1, s)

end;

end

else

showMessage ('Помилка');

seek (g1, 0);

while not eof (g1) do

begin

read (g1, s);

inc (n);

end;

closefile (g);

closefile (g1);

Edit7.Clear;

if n = 0 then

begin

MessageBox (0, 'Дисків з вартістю, нижче заданої, немає.', 'Увага!', MB _ OK or MB _ ICONINFORMATION);

end

else

sort_2 (derect + 'result.db');

erase (g1)

except

MessageBox (0, 'Ціна вказується цифрами.', 'Увага!', MB_OK or MB_ICONWARNING);

Edit7.Clear;

end;

end;

procedure tform4.search_3 (dvdfile: string; var g: recordfile);

var g1: recordfile;

s: disk;

yearof: real;

begin

n: = 0;

try

yearof: = StrToFloat (Edit7.text);

assignfile (g1, derect + 'result.db');

rewrite (g1);

assignfile (g, derect + 'db_sot.db'); {$ I-}

reset (g); {$ I +}

if IOResult = 0 then

begin

while not eof (g) do

begin

read (g, s);

if s.year = yearof then

write (g1, s)

end;

end

else

showMessage ('Помилка');

seek (g1, 0);

while not eof (g1) do

begin

read (g1, s);

inc (n);

end;

closefile (g);

closefile (g1);

Edit7.Clear;

if n = 0 then

begin

MessageBox (0, 'Фільмів даного року випуску немає.', 'Увага!', MB_OK or MB_ICONINFORMATION);

end

else

sort_1 (derect + 'result.db');

erase (g1)

except

MessageBox (0, 'Рік випуску вказується в цифрах.', 'Увага!', MB_OK or MB_ICONWARNING);

Edit7.Clear;

end;

end;

procedure tform4.search_4 (dvdfile: string; var g: recordfile);

var g1: recordfile;

s: disk;

regof: string;

begin

n: = 0;

regof: = Edit7.text;

assignfile (g1, derect + 'result.db');

rewrite (g1);

assignfile (g, derect + 'db_ disk.db'); {$ I-}

reset (g); {$ I +}

if IOResult = 0 then

begin

while not eof (g) do

begin

read (g, s);

if s.reg = regof then

write (g1, s)

end;

end

else

showMessage ('Помилка.');

seek (g1, 0);

while not eof (g1) do

begin

read (g1, s);

inc (n);

end;

closefile (g);

closefile (g1);

Edit7.Clear;

if n = 0 then

begin

MessageBox (0, 'Даного режисера немає', 'Увага!', MB_OK or MB_ICONINFORMATION);

end

else

sort_1 (derect + 'result.db');

erase (g1)

end;

procedure tform4.search_5 (dvdfile: string; var g: recordfile);

var g1: recordfile;

s: disk;

cincomof: string;

begin

n: = 0;

cincomof: = Edit7.text;

assignfile (g1, derect + 'result.db');

rewrite (g1);

assignfile (g, derect + 'db_ disk.db'); {$ I-}

reset (g); {$ I +}

if IOResult = 0 then

begin

while not eof (g) do

begin

read (g, s);

if s.cincom = cincomof then

write (g1, s)

end;

end

else

showMessage ('Помилка');

seek (g1, 0);

while not eof (g1) do

begin

read (g1, s);

inc (n);

end;

closefile (g);

closefile (g1);

Edit7.Clear;

if n = 0 then

begin

MessageBox (0, 'Даною кінокомпанії немає.', 'Увага!', MB_OK or MB_ICONINFORMATION);

end

else

sort_1 (derect + 'result.db');

erase (g1)

end;

procedure TForm4.Button1Click (Sender: TObject);

begin

if (edit7.Text ='') or (edit7.Text = 'Введіть дані ...') then

MessageBox (0, 'Введіть дані для пошуку.', 'Увага!', MB_ok or MB_ICONINFORMATION)

else

case combobox1.ItemIndex of

0: search_1 (dvdfile, f);

1: search_2 (dvdfile, f);

2: search_3 (dvdfile, f);

3: search_4 (dvdfile, f);

4: search_5 (dvdfile, f);

end;

end;

procedure TForm4.Edit7Click (Sender: TObject);

begin

edit7.Clear;

end;

procedure TForm4.FormCreate (Sender: TObject);

begin

StringGrid1.Rows [0] [0]: = 'Номер';

StringGrid1.Rows [0] [1]: = 'Назва фільму';

StringGrid1.Rows [0] [2]: = 'Ціна DVD-диска';

StringGrid1.Rows [0] [3]: = 'Рік випуску';

StringGrid1.Rows [0] [4]: = 'Режисер';

StringGrid1.Rows [0] [5]: = 'Кінокомпанія';

end;

procedure TForm4.Button2Click (Sender: TObject);

begin

Form4.Close;

end;

end.

Модуль Input.pas;

unit Input;

interface

uses

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

Dialogs, jpeg, ExtCtrls, StdCtrls;

const

derect = 'savedvd \';

type disk = record

name: string [50];

stoim: integer;

year: integer;

reg: string [30];

cincom: string [30];

end;

recordfile = file of disk;

TForm3 = class (TForm)

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button1: TButton;

Button2: TButton;

procedure input (var f: recordfile; var dvdfile: string);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{Private declarations}

public

n, k: integer;

f, g: recordfile;

dvdfile: string;

end;

var

Form3: TForm3;

implementation

uses kursovik;

{$ R *. dfm}

procedure tform3.input (var f: recordfile; var dvdfile: string);

var

s, q: disk;

begin

n: = 1;

k: = 0;

assignfile (g, derect + 'buffer.db');

rewrite (g);

assignfile (f, derect + 'db_ disk.db');{$ I-}

reset (f); {$ I +}

If IOResult = 0 then

begin

while not eof (f) do

begin

inc (n);

read (f, s);

write (g, s);

end;

closefile (f);

end

else

begin

rewrite (f);

closefile (f);

end;

try

q.name: = Edit1.text;

q.stoim: = StrtoInt (Edit2.Text);

q.year: = Strtoint (Edit3.Text);

q.reg: = Edit4.Text;

q.cincom: = Edit5.Text;

seek (g, 0);

while not eof (g) do

begin

read (g, s);

if s.name = q.name then

k: = 1;

end;

if k = 1 then

MessageBox (0, 'Схоже фільм існує .','', MB_ok or MB_ICONINFORMATION)

else

begin

write (g, q);

MessageBox (0, 'Дані додані в файл .','', MB_ok or MB_ICONINFORMATION);

end;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

Edit5.Clear;

except

MessageBox (0, 'Ціна і рік випуску вказується в цифрах !','', MB_OK or MB_ICONWARNING);

Edit2.Clear;

Edit3.Clear;

end;

closefile (g);

erase (f);

rename (g, derect + 'db_ disk.db');

end;

procedure TForm3.Button1Click (Sender: TObject);

begin

close;

end;

procedure TForm3.Button2Click (Sender: TObject);

begin

if (edit1.Text ='') or (edit2.text ='') or (edit3.Text ='')

or (edit4.Text ='') or (edit5.Text ='') then

MessageBox (0, 'Одне або кілька полів порожні, перевірте правильність заповнення.', 'Увага!', MB_ok or MB_ICONINFORMATION)

else

input (f, dvdfile);

end;

end.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
255.5кб. | скачати


Схожі роботи:
База даних 14
База даних MS Access 2
База даних студентів
База даних підприємства
База даних MS Access
База даних Співробітники 2
Програмування База даних Клієнти
База даних Бюро знайомств
База даних лікарських препаратів
© Усі права захищені
написати до нас