
- •1 Постановка завдання
- •2 Загальна частина
- •2.1 Вимоги до технічних засобів, що застосовуються
- •2.2 Опис інструментальних засобів, що застосовуються
- •3 Спеціальна частина
- •3.1 Опис структури бази даних
- •3.1.1 Опис інтерфейсу програми
- •3.1.2 Опис вхідних даних
- •3.1.3 Контроль коректності вхідних та вихідних даних
- •3.1.4 Опис структури та складових системи
- •3.2 Експлуатаційна частина
- •3.2.1 Підготовка програми до виконання
- •3.2.2 Інструкція користувача
- •3.2.3 Опис критичних ситуацій та повідомлень програми
- •3.2.4 Опис процесу налагодження програми
- •4 Економічна частина
- •5 Охорона праці
3.1.2 Опис вхідних даних
Вхідні дані – це дані, які задаються до початку роботи алгоритму або визначаються динамічно під час його роботи. У даному випадку під динамічним визначенням мається на увазі введення даних користувачем.
Згідно з постановкою задачі база даних містять поля, які розміщені у двох таблицях СУБД Paradox. Перша таблиця містить основні відомості про товари та має назву «Таблиця товарів», друга таблиця містить відомості про продані товари та має назву «Таблиця проданих товарів». Опис полів перерахованих таблиць приведені в таблиці 3.1 та таблиці 3.2.
Таблиця 3.4 – Опис полів таблиці «Таблиця товарів»
-
Ім’я поля
Опис поля
Тип поля
Department
Відділ магазину
Alpha
Name
Назва товару
Alpha
Number
Кількість товару
Short
Term
Термін придатності
Date
Price
Ціна
Number
Manufacturer
Виробник
Alpha
Таблиця 3.5 – Опис полів таблиці «таблиця проданих товарів»
-
Ім’я поля
Опис поля
Тип поля
Date
Дата отримання чеку
Date
Cost
Ціна
Number
Дані, які входять до таблиці «таблиця товарів» вводитимуться з клавіатури, перед виконанням програми за допомогою вбудованої до C++ Builder програми Database Desktop, та зберігатимуться в таблиці з назвою «BD_Krasavan.DB». Також є можливість введення даних безпосередньо під час виконання програми знаходячись на формі Form4, яка містить заголовок «Адміністратор».
3.1.3 Контроль коректності вхідних та вихідних даних
Програма повинна перевіряти усі дані, які надходять з клавіатури, на коректність введення.
При введенні ціни за одиницю товару забороняється вводити усі символи, окрім дійсних чисел.
Нижче приведено фрагмент програмного коду:
void __fastcall TForm2::Edit2KeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9'))
return;
if(Key==DecimalSeparator)
{
if((Edit2->Text).Pos(DecimalSeparator)!=0)
Key=0;
return;
}
if(Key==VK_BACK)
return;
if(Key==VK_RETURN)
{
DateTimePicker1->SetFocus();
return;
};
Key=0;
}
При введенні кількості товарів забороняється вводити усі символи. Щоб ввести кількість товарів використовуються стрілочки, які знаходяться на компонентів CSpinEdit.
Нижче приведено фрагмент програмного коду:
void __fastcall TForm6::CSpinEdit1KeyPress(TObject *Sender, char &Key)
{
Key=0;
}
3.1.4 Опис структури та складових системи
Програма містить шість модулі, які приведені в таблиці 3.4.
Таблиця 3.6 – Перелік обробників подій та функцій модулів програми
-
Назва модулю
Перелік обробників подій та функцій
Unit1
TForm1, ToolButton12Click, ToolButton9Click, SpeedButton1Click, CSpinEdit2KeyPress, DBGrid1TitleClick, Table1AfterScroll, ToolButton2Click, ComboBox1Change, Edit1Change, ToolButton5Click, Button1Click, ToolButton4Click, Timer1Timer, DBGrid1CellClick, DBGrid1KeyUp, FormShow.
Unit2
TForm2, Button3Click, Button2Click, Button1Click, SpeedButton1Click, CSpinEdit1Change, CSpinEdit1KeyPress, StringGrid1Click, StringGrid1KeyUp, FormShow.
Unit3
Button1Click, FormShow.
Unit4
SpeedButton7Click, SpeedButton8Click, SpeedButton4Click, SpeedButton1Click, SpeedButton2Click, SpeedButton3Click, SpeedButton6Click, SpeedButton5Click, Button1Click, DateTimePicker1Change, DateTimePicker2Change.
Unit5
Button3Click, Button1Click, Button2Click.
Unit6
Button3Click, Button2Click, Button1Click, Edit2KeyPress, CSpinEdit1KeyPress.
Unit7
Button1Click, FormShow, FormClose, Edit1KeyPress.
Unit8
Button1Click, YearChange, YearKeyPress.
Детальний опис модулю Unit1:
TForm1 – автоматично прив’язує таблиці бази даних до компонентів Table1 та Table2.
ToolButton12Click – завершує роботу програми.
ToolButton9Click – відкриває форму Form2.
SpeedButton1Click – заносить до компоненту StringGrid1, який знаходиться на формі Form2, вибраний товар з таблиці. Якщо вибраний товар вже знаходиться в компоненті StringGrid1, виведеться відповідне повідомлення.
CSpinEdit2KeyPress – призначене для перевірки коректності введеного числа до компоненту CSpinEdit2.
DBGrid1TitleClick – призначене для сортування товарів в таблиці «Таблиця товарів.
FormShow, Table1AfterScroll, DBGrid1CellClick та DBGrid1KeyUp – задають максимально можливе значення для компоненту CSpinEdit2.
Структурна схема алгоритму обробника DBGrid1KeyUp міститься у додатку Б.
ToolButton2Click – закриває форму Form1 та відкриває форму Form5.
ComboBox1Change – виводить тільки товари, які входять до вибраного у компоненті ComboBox1 відділу магазину.
Edit1Change – виводить тільки ті товари, які співпадають з введеним до компоненту Edit1 найменування товару.
ToolButton5Click – при натисканні на кнопці ToolButton5 виводить тільки ті товари, які мають закінчений термін придатності. При повторному натисканні на кнопці виводить всі товари.
Button1Click – виводить тільки ті товари, які входять до введеного діапазону цін.
ToolButton4Click – виводить панель Panel1.
Timer1Timer – оновлює та виводить до компоненту StatusBar1 поточну дату та час.
Детальний опис модулю Unit2:
TForm2 – задає найменування стовпців для компоненту StringGrid1.
Button3Click – здійснює покупку товарів. Якщо в компоненті StringGrid1 не має товарів, виведеться відповідне повідомлення. Після здійснення покупки зменшується кількість товарів у базі даних, очищається компонент StringGrid1 від записів та закриває форму Form2.
Button2Click – закриває форму Form2 без змінень в компоненті StringGrid1.
Button1Click – закриває форму Form2 та очищається компонент StringGrid1 від записів.
SpeedButton1Click – видаляє вибраний запис з компоненту StringGrid1.
CSpinEdit1Change – здійснює перерахунок суми до сплати при зміненні кількості товарів.
CSpinEdit1KeyPress – призначене для перевірки коректності введеного числа до компоненту CSpinEdit2.
FormShow, StringGrid1Click та StringGrid1KeyUp – задають максимально можливе значення для компоненту CSpinEdit1.
Детальний опис модулю Unit3:
Button1Click – закриває форму Form3.
FormShow – автоматично підраховує загальну суму виручки, находить найдорожчу покупку та виводить у відповідні компоненти: Edit1 та Edit2.
Структурна схема алгоритму обробника FormShow міститься у додатку Б.
Детальний опис модулю Unit4:
SpeedButton7Click – закриває форму Form5 та викликає форму Form4.
SpeedButton8Click – завершує роботу програми.
SpeedButton4Click – викликає форму Form3.
SpeedButton1Click – відкриває форму Form6 з параметрами додавання запису до бази даних.
SpeedButton2Click – відкриває форму Form6 з параметрами редагування запису в базі даних.
SpeedButton3Click – видаляє товар з бази даних.
SpeedButton6Click – виводить панель Panel2 з параметрами для виведення виручки за вибрану дату.
SpeedButton5Click – виводить панель Panel2 з параметрами для виведення виручки у діапазоні часу.
Button1Click – приховує панель Panel2.
DateTimePicker1Change та DateTimePicker2Change – підраховують виручку, яка задовольняє параметру панелі Panel2.
Детальний опис модулю Unit5:
Button3Click – завершує роботу програми.
Button1Click – відкриває форму Form1 та приховує форму Form5.
Button2Click – відкриває форму Form2 та приховує форму Form5.
Детальний опис модулю Unit6:
Button3Click – очищає компоненти ComboBox1, Edit1, Edit2, Edit3 та CSpinEdit1.
Button2Click – закриває форму Form6.
Button1Click – згідно з параметром форми Form6 додає запис до бази даних або редагує запис з бази даних. Якщо один з компонентів виявиться порожнім, виведеться відповідне повідомлення.
Edit2KeyPress – призначений для коректного введення дійсного числа.
CSpinEdit1KeyPress – забороняє введення усіх символів до компоненту
CSpinEdit1.
Детальний опис модулю Unit7:
Button1Click – Приховує форму Form7.
FormShow – Очищення полю введення паролю.
FormClose – Відкриває форму Form4 та приховує форму Form7 – якщо пароль введений вірно. Відкриває форму Form5 та приховує форму Form7 – якщо пароль введений не вірно.
Edit1KeyPress – При натисканні на клавішу «Enter», натискається кнопка Button1.
Детальний опис модулю Unit8:
YearKeyPress – Контролює коректність даних, що вводяться. Можливо вводити тільки цілі числа.
Button1Click – Приховує форму Form8.
YearChange – Виведення діаграми прибутку за заданий рік.