Облік виплат за закладені речі в ломбарді
Міністерство освіти і науки України
Чернігівський державний технологічний університет
Кафедра прикладної інформатики
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсової роботі на тему:
“Розробка автоматизованої інформаційної системи обліку виплат за закладені речі в ломбарді”
за дисципліною
“Інформатика і комп’ютерна техніка”
Виконав:
Студент групи
№ залікової книжки
Перевірив:
Викладач
Чернігів ЧДТУ 2008
Текст завдання
Облік виплат за закладені речі в ломбарді
Система повинна забезпечити збереження й обробку даних про:
ПІБ клієнта; найменування предмету (один клієнт може закласти кілька предметів); дату закладання; дату, до якої треба викупити товар (інакше предмет переходить у власність ломбарду); дату фактичного викупу (ставиться, коли клієнт повністю повернув позику); суму позики за предмет; відсоток на суму позики (клієнт повинен повернути позику + суму по відсотку); дату часткового повернення позики (клієнт може повертати суму позики частинами); суму часткового повернення.
Прикладна система повинна відповідати на наступні запити:
1) вивести усі предмети, строк викупу яких минає сьогодні;
2) визначити сумарну вартість закладених і не викуплених предметів по кожному з клієнтів.
Прикладна система повинна формувати наступні звіти:
1) всі дані про часткове повернення позики по закладеним на даний момент предметам, згрупувати по клієнтам і предметам;
2) дані про закладені речі кожного з клієнтів.
Зміст
Текст завдання
Зміст
Проектування таблиць
Розробка форм
Перелік документів, що формуються системою
Перелік посилань
Додатки
Проектування таблиць
Призначення системи
Система призначена для ведення обліку виплат за закладені речі в ломбарді. Вона може бути застосована в роботі будь-якого ломбарду.
Така система вимагає ведення довідників клієнтів та предметів закладу, а також даних про: ПІБ клієнта; найменування предмету; дату закладання; дату, до якої треба викупити товар; дату фактичного викупу; суму позики за предмет; відсоток на суму позики; дату часткового повернення позики; суму часткового повернення.
Опис даних системи
В процесі проектування системи мною був визначений склад даних, які будуть вестися в системі. Їх загальний вигляд розміщено в таблиці.
Дані (поля) |
Пояснення |
ПІБ клієнта |
Дані про клієнта |
Найменування предмету |
Назва предмету |
Дата закладання |
Дата закладання |
Дата, до якої треба викупити товар |
Дата викупу |
Дата фактичного викупу |
Фактична дата викупу |
Сума позики за предмет |
Сума позики |
Відсоток на суму позики |
Відсоток |
Дата часткового повернення позики |
Дата часткового повернення |
Сума часткового повернення |
Сума часткового повернення |
Проектування таблиць
Базу даних розбиваємо на 4 таблиці.
Довідник клієнтів – “Клієнт”
Довідник предметів – “Предмет”
Додаткова таблиця – “Сплата позики”
Основна таблиця – “Облік виплат на закладені речі в ломбарді”
Поля в головній таблиці “Облік виплат на закладені речі в ломбарді” - “Клієнт”, “Предмет” замінимо на числові коди - “Код клієнта”, “Код предмету” відповідно. Для зв’язку таблиць такі ж поля додаємо в довідники клієнтів та предметів.
Поле в додатковій таблиці “Сплата позики” - “Документ” замінимо на числовий код - “№ документу” відповідно. Для зв’язку таблиць таке ж поле додаємо в головну таблицю.
Для прискорення операцій пошуку та сортування даних необхідні індекси. В кожній з таблиць визначаємо унікальні дані, які повторюватися не будуть.
У таблиці “Клієнт” - “Код клієнта” – ключове поле, яке бере участь у зв’язках, первинний унікальний ключ.
У таблиці “Предмет” - “Код предмету” – ключове поле, яке бере участь у зв’язках, первинний унікальний ключ.
У таблиці “Сплата позики” - “№ чека” – ключове поле, яке бере участь у зв’язках, первинний унікальний ключ.
У таблиці “Облік виплат на закладені речі в ломбарді” - “№ документу” – ключове поле, яке бере участь у зв’язках, первинний унікальний ключ.
В результаті проектування отримуємо такі таблиці з полями в них:
таблиця “Клієнт” - поля “Код клієнта”, “ПІБ”;
таблиця “Предмет” - поля “Код предмету”, ”Найменування”;
таблиця “Сплата позики” - поля “№ чека”, ”№ документу”, “Дата часткового повернення”, ”Сума часткового повернення”;
таблиця “Облік виплат на закладені речі в ломбарді” - поля “№ документу”, “Код клієнта”, “Код предмету”, “Сума”, “Відсоток”, “Дата закладу”, “Дата викупу”, “Фактична дата викупу”.
Між таблицями встановлюю зв’язки типу “один-до-багатьох”, зв’язуючи таблиці по полям “Код клієнта” (“Клієнт” – “Облік виплат на закладені речі в ломбарді”), “Код предмету” (“Предмет” – “Облік виплат на закладені речі в ломбарді”) і “№ документу” (“Сплата позики” – “Облік виплат на закладені речі в ломбарді”).
Концептуальна модель бази даних
Концептуальна модель бази даних має такий опис.
Назва бази даних: “Облік виплат на закладені речі в ломбарді”.
Таблиця “Облік виплат на закладені речі в ломбарді”
Властивості |
||
Порядок сортировки |
||
Поля |
||
Ім’я |
Властивість |
Значення |
№ документу |
Тип |
Счетчик |
Размер |
Длинное целое |
|
Ключевое поле |
Да |
|
Тип элемента управления |
Поле |
|
Код клієнта |
Тип |
Числовой |
Размер |
Длинное целое |
|
Присоединенный столбец |
1 |
|
Подпись |
КлієнтВ |
|
Тип элемента управления |
Поле со списком |
|
Источник строк |
SELECT Клієнт.[Код клієнта], Клієнт.ПІБ FROM Клієнт; |
|
Тип источника строк |
Таблица или запрос |
|
Код предмету |
Тип |
Числовой |
Размер |
Длинное целое |
|
Присоединенный столбец |
1 |
|
Подпись |
Предмет |
|
Тип элемента управления |
Поле со списком |
|
Источник строк |
SELECT Предмет.[Код предмету], Предмет.Найменування FROM Предмет; |
|
Тип источника строк |
Таблица или запрос |
|
Сума |
Тип |
Денежный |
Условие на значение |
>0 |
|
Відсоток |
Тип |
Числовой |
Размер |
Длинное целое |
|
Условие на значение |
>0 |
|
Дата закладу |
Тип |
Дата/время |
Формат поля |
Краткий формат даты |
|
Условие на значение |
<=Date() |
|
Значение по умолчанию |
Date() |
|
Дата викупу |
Тип |
Денежный |
Значение по умолчанию |
>0 |
|
Условие на значение |
>=Date() |
|
Фактична дата викупу |
Тип |
Денежный |
Значение по умолчанию |
>0 |
|
Условие на значение |
>=Date() |
|
Індекси |
||
№ документу |
Имя |
№ документу |
Ключевое поле |
Да |
|
Составной |
Нет |
|
Уникальный индекс |
Да |
Таблиця “Клієнт”
Поля |
||
Ім’я |
Властивість |
Значення |
Код клієнта |
Тип |
Счетчик |
Размер |
Длинное целое |
|
Ключевое поле |
Да |
|
ПІБ |
Тип |
Текстовый |
Размер поля |
50 |
|
Тип элемента управления |
Поле |
|
Індекси |
||
Код клієнта |
Имя |
Код клієнта |
Ключевое поле |
Да |
|
Составной |
Нет |
|
Уникальный индекс |
Да |
Таблиця “Предмет”
Ім’я |
Властивість |
Значення |
Код предмету |
Тип |
Числовой |
Размер |
Длинное целое |
|
Ключевое поле |
Да |
|
Найменування |
Тип |
Текстовый |
Размер |
50 |
|
Тип элемента управления |
Поле |
|
Індекси |
||
Код предмету |
Имя |
Код предмету |
Ключевое поле |
Да |
|
Составной |
Нет |
|
Уникальный индекс |
Да |
Таблиця “Сплата позики”
Ім’я |
Властивість |
Значення |
№ чека |
Тип |
Счетчик |
Размер |
Длинное целое |
|
Индексированое поле |
Да |
|
№ документу |
Тип |
Числовой |
Размер |
Длинное целое |
|
Дата часткового повернення |
Тип |
Дата/время |
Формат поля |
Краткий формат даты |
|
Сума часткового повернення |
Тип |
Денежный |
Условие на значение |
>0 |
|
Формат поля |
Денежный |
|
Індекси |
||
№ чека |
Имя |
№ чека |
Ключевое поле |
Да |
|
Составной |
Нет |
|
Уникальный индекс |
Да |
Розробка форм
В системі мною спроектовано 8 форм: дві з них використовується для висвітлення інформації про завдання та автора системи – “Автор” та “Завдання”, ще дві форми застосовуються для роботи з довідниками – “Клієнт”, “Предмет”, форма для роботи з головними даними – “Облік виплат на закладені речі в ломбарді”, яка вміщує підлеглу форму “Сплата позики”. Форми для додавання та коригування даних “Додати” та “Коригувати” та кнопочна форма “Switchboard”. Зовнішній вигляд всіх форм представлений в додатку.
Форма “Автор” вміщує відомості про автора роботи. В ній використовуються надписи та кнопка “Вихід” з стандартною командою закриття форми. Проста форма.
Форма “Завдання” містить завдання для роботи. В ній використовуються свободна рамка об’єкту з текстом у форматі MS WORD та кнопка “Вихід” з стандартною командою закриття форми. Проста форма.
Форма “Клієнт” вміщує відомості про клієнтів ломбарду. В ній використовуються надписи, поля та кнопки “Додати”, “Видалити”, ”Знайти”, “Вихід” з стандартними командами додавання, видалення, пошуку та закриття форми. Стрічкова форма.
Форма “Предмет” вміщує відомості про предмети, які можуть бути закладені в ломбарді. В ній використовуються надписи, поля та кнопки “Додати”, “Видалити”, ”Знайти”, “Вихід” з стандартними командами додавання, видалення, пошуку та закриття форми. Стрічкова форма.
Форма “Облік виплат на закладені речі в ломбарді” вміщує відомості про виплати на закладені в ломбарді речі. В ній використовуються надписи, поля, кнопки “Пошук” (кнопка зі стандартною командою пошуку), ”Видалити” (кнопка зі стандартною командою видалення), Додати (макрос «Додати»), Коригувати (кнопка зі стандартною командою відкриття форми), “Вихід” (макрос «Макрос закриття форми»), поля зі списками, які відображають дані про клієнтів та предмети з таблиці “Клієнт” та “Предмет” і підлегла форма “Сплата позики”. Стрічкова форма.
Видалення даних проводиться у головній формі. Додавання та коригування даних проводиться у формі «Додати» та «Коригувати».
Форма «Switchboard» – це кнопочна форма, створена за допомогою Мастера кнопочных форм.
Форма «Додати» – це форма на додавання даних про закладені речі. Має кнопку “Вихід” (макрос Додати збер), стрічкова форма.
Форма «Коригувати» – це форма для коригування даних про закладені речі в ломбарді. Має кнопки “Зберегти” (макрос Кор зберегти) та “Вихід без збереження” (макрос Вих без збереження), стрічкова форма.
Макроси:
Зміст макросу “Макрос закриття форми”
Макрокоманда |
Аргументи |
Пояснення |
Сообщение |
Сообщение: Зараз закриємо форму! Сигнал: Да Тип: Информационное Заголовок: Попереджую! |
Показує повідомлення |
Закрыть |
Тип обьекта: Форма Имя: Облік виплат на закладені речі в ломбарді |
Закриває форму |
Зміст макросу “Додати”
Макрокоманда |
Аргументи |
Пояснення |
ОткрытьФорму |
Имя формы Додати Режим Форма Режим даних Добавление Режим окна Обычное |
Відкриває форму |
Зміст макросу “Клієнт”
Макрокоманда |
Аргументи |
Пояснення |
ПрименитьФильтр |
Условие отбора: [Облік виплат на закладені речі в ломбарді]![Код клієнта] Like [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_кл] |
Фідьтрує дані |
Обновление |
Оновлення. |
Зміст макросу “Предмет”
Макрокоманда |
Аргументи |
Пояснення |
ПрименитьФильтр |
Условие отбора: [Облік виплат на закладені речі в ломбарді]![Код предмету] Like [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_пред] |
Фідьтрує дані |
Обновление |
Оновлення. |
Макрокоманда |
Аргументи |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=1 |
ЗадатьЗначение Элемент [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_кл].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=1 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_пред].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=1 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![Пол_дат].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=1 |
ПоказатьВсеЗаписи |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=2 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_кл].[Visible] Выражение: Истина |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=2 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_пред].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=2 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![Пол_дат].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=3 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_кл].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=3 |
ЗадатьЗначение Элемент [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_пред].[Visible] Выражение: Истина |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=3 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![Пол_дат].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=4 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_кл].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=4 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![ПолеСоСпис_пред].[Visible] Выражение: Ложь |
[Формы]![Облік виплат на закладені речі в ломбарді]![Груп_пер]=4 |
ЗадатьЗначение Элемент: [Формы]![Облік виплат на закладені речі в ломбарді]![Пол_дат].[Visible] Выражение: Истина |
Обновление |
Зміст макросу “Фільтр дата”
-
Макрокоманда
Аргументи
Пояснення
ПрименитьФильтр
Условие отбора: [Облік виплат на закладені речі в ломбарді]![Дата закладу] Like [Формы]![Облік виплат на закладені речі в ломбарді]![Пол_дат]
Фідьтрує дані
Обновление
Оновлення .
Зміст макросу “Додати збер”
Макрокоманда |
Аргументи |
Пояснення |
Сохранить |
Тип обьекта Форма Имя обьекта Додати |
Зберігає дані |
Закрыть |
Тип обьекта Форма Имя обьекта Додати |
Закриває форму |
Зміст макросу “Предмети, строк викупу яких минає сьогодні”
Макрокоманда |
Аргументи |
Пояснення |
ОткрытьЗапрос |
Имя запроса Предмети, строк викупу яких минає сьогодні Режим Таблица Режим даних Только чтение |
Відкриває запит |
Зміст макросу “Сумарна вартість закладених і не викуплених предметів”
Макрокоманда |
Аргументи |
Пояснення |
ОткрытьЗапрос |
Имя запроса Сумарна вартість закладених і не викуплених предметів Режим Таблица Режим даних Только чтение |
Відкриває запит |
Зміст макросу “Вих без збереження”
Макрокоманда |
Аргументи |
Пояснення |
ВыполнитьКоманду |
Отменить |
Відміняє зміни |
Закрыть |
Тип обьекта Форма Имя обьекта Коригувати |
Закриває форму |
Зміст макросу “ Кор зберегти”
Макрокоманда |
Аргументи |
Пояснення |
ВыполнитьКоманду |
Отменить |
Відміняє зміни |
Закрыть |
Тип обьекта Форма Имя обьекта Коригувати Сохранить Да |
Закриває форму |
Документи, що формуються системою
В системі формується 2 звіти та 2 запити.
Запит “Предмети, строк викупу яких минає сьогодні”. SQL-текст запиту:
SELECT [Облік виплат на закладені речі в ломбарді].*
FROM [Облік виплат на закладені речі в ломбарді]
WHERE ((([Облік виплат на закладені речі в ломбарді].[Дата викупу])=Date()));
Запит “Сумарна вартість закладених і не викуплених предметів”. SQL-текст запиту:
SELECT [Облік виплат на закладені речі в ломбарді].[Код клієнта], Sum([Облік виплат на закладені речі в ломбарді].Сума) AS [Sum-Сума]
FROM [Облік виплат на закладені речі в ломбарді]
GROUP BY [Облік виплат на закладені речі в ломбарді].[Код клієнта], [Облік виплат на закладені речі в ломбарді].[Дата викупу], [Облік виплат на закладені речі в ломбарді].[Фактична дата викупу]
HAVING ((([Облік виплат на закладені речі в ломбарді].[Дата викупу])>Date()) AND (([Облік виплат на закладені речі в ломбарді].[Фактична дата викупу]) Is Null));
Звіт “Закладені речі” відображає дані про закладені речі кожного з клієнтів.
Звіт “Повернення позик по закладеним на даний момент предметам” будується на основі запиту “Звіт1”. SQL-текст запиту:
SELECT Клієнт.ПІБ, Предмет.Найменування, [Облік виплат на закладені речі в ломбарді].[№ документу], [Облік виплат на закладені речі в ломбарді].Сума, [Облік виплат на закладені речі в ломбарді].Відсоток, [Сплата позики].[№ чека], [Сплата позики].[Дата часткового повернення], [Сплата позики].[Сума часткового повернення]
FROM Предмет INNER JOIN ((Клієнт INNER JOIN [Облік виплат на закладені речі в ломбарді] ON Клієнт.[Код клієнта] = [Облік виплат на закладені речі в ломбарді].[Код клієнта]) INNER JOIN [Сплата позики] ON [Облік виплат на закладені речі в ломбарді].[№ документу] = [Сплата позики].[№ документу]) ON Предмет.[Код предмету] = [Облік виплат на закладені речі в ломбарді].[Код предмету]
WHERE ((([Облік виплат на закладені речі в ломбарді].[Дата викупу])>Date()) AND (([Облік виплат на закладені речі в ломбарді].[Фактична дата викупу]) Is Null));
Роздруківки звітів та результатів запитів представлено в додатку.
Перелік посилань
Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. М.: Финансы и статистика, 1989
Єрьоміна Н.В. Проектування баз даних: Навч. Посібник / Київський національнийекономічний університет. –К., 1998. –205с.
Пономаренко В.С., Павленко Л.А., Максименко І.О. Проектування баз даних: Навч. Посібник /Харківський держ. економічний ун-т. – К., 1997.-172с.
Методичні вказівки до вивчення системи управління базами даних Mіcrosoft Access 2000 (для студентів економічних спеціальностей) / Укл. Крєпкий Ю.О., Атрощенко І.Т., Дрозд О.П., Клименко Ю.М., Прищеп С.І. – Чернігів: ЧДТУ – 2002. – 176с.
Методичні вказівки до виконання курсової роботи за дисциплінами «Комп’ютерна техніка та програмування», «Інформатика та комп’ютерна техніка» / Укл. Дрозд О.П., Прищеп С.І., Шемет В.П. – Чернігів: ЧДТУ – 2002. – 52с.