Виникає, коли користувач змінює кількість товару, виконує множення товару, що купляється, автоматично знаходить ціну товару, виконує множення на кількість і виводить результат у відповідне поле.
Таблиця 2.5.5
Параметри функції OnCloseupCombo2
Тип параметра | Назва параметра | Ім.’я параметра в програмі | Тип даних | Призначення |
Локальний параметр | Указателі | *S0, *S1 | Char | Тимчасові змінні |
Локальний параметр | Змінна | Decimal | Int | Для зберігання розділового знака (для числа з плаваючою точкою) |
Локальний параметр | Змінна | Sign | Int | Для зберігання знака числа |
Локальний параметр | Указатель | *buffer | char | Приймає в себе результати конвертації числа з float в string |
Локальний параметр | Стала | Precision=10 | Int | Кількість значущих знаків після коми |
void CTIMIDlg::OnButton3()
Виникає при спробі користувача вивести форму наряду. Спочатку перевіряє чи всі поля наряду правильно заповнені: чи є достатньою кількість заказаного товару на складі, провіряє борг (чи не перевищує він кредит 1000 грн.). Якщо всі попередні умови виконались, то виводиться форма наряду, автоматично зменшується кількість товару на складі на кількість замовлених одиниць товару, відповідно зменшується значення рахунку клієнта.
Таблиця 2.5.6
Тип параметра | Назва параметра | Ім.’я параметра в програмі | Тип даних | Призначення |
Локальний параметр | Стрічка | S[80] | Char | Для конвертації даних(з int в string) |
Локальний параметр | Повідомлення | S | CString | Зберігає різні повідомлення |
Локальний параметр | Параметр | i | Int | Для зберігання ітерації циклу |
void CTIMIDlg::OnMenuitem32775()
Визиває зовнішній файл "logo.exe" з заставкою.
void CTIMIDlg::OnMenuitem32776()
Виводить діалогове вікно про автора.
void CClientFrm::OnRowColChangeMsflexgrid1()
Виникає, коли користувач вибирає якусь стрічку з таблиці клієнтів (товарв) і заповнює даними з виборної стрічки поле для редагування.
void CClientFrm::OnButton3()
товару, відповідно зменшується значення рахунку клієнта.
Таблиця 2.5.7
Тип параметра | Назва параметра | Ім.’я параметра в програмі | Тип даних | Призначення |
Локальний параметр | Стрічка | S[80] | Char | Для конвертації даних(з int в string) |
Локальний параметр | Параметр | і | Int | Для зберігання ітерації циклу |
2.6 Структура файлів бази даних
В програмі містяться файли, які представлені в таблиці 2.6.1:
Таблиця 2.6.1 Timi files:
Clients | Файл клієнта |
Font | Допоміжний файл, який допомогає роботі програми |
Msflexgrid | Допоміжний файл, який допомогає роботі програми |
Order | Файл форми наряду (документу) |
Picture | Допоміжний файл, який малює форму наряду та ін. |
Rowcursor | Допоміжний файл, який підключає курсор до програми |
stdAfx | Допоміжний файл, який допомогає роботі програми |
stockFrm | Файл складу товару |
TimiDlg | Містить головну частину програми |
Сама ж база даних складається з 2-х текстових файлів: Clients.txt та stock.txt.
Файл Clients.txt—це файл клієнта.
Аптека 32
Келецька 10
5432432
-949
Аптека 1
келецька 1
65653
0
Аптека 13
Келецька 13
654365
-15
Пилипенко
705-А
24849
-32
В даному файлі інформація та тип даних повторюється через кожні чотири стрічки. Перша стрічка—назва фірми-клієнта, має тип даних char[80],
друга стрічка—адреса фірми-клієнта, тип даних char[80],
третя—номер телефона фірми-клієнта, тип данихint,
четверта—стан рахунку, тип данихint.
Але розмір даного файла змінюється автоматично, коли ми дописуємо клієнтів в програмі.
Представимо це у вигляді таблиці 2.6.2
Таблиця 2.6.2 Структуру запису файла Clients.txt
№(п.п ) | Фірма | Адреса | Телефон | Рахунок | |
Тип значень | Int | Char | Char | Int | int |
Діапазон значень | — | [80] | [80] | 1..8 | -1000..1000 |
Файл stock.txt—це файл товарів
Даний уривок програми ілюструє, як читається файл товарів:
ifstream sfile;
sfile.open("stock.txt");
char s[80],next;
int i=0;
do
{
m_StockList.SetRows(++i+1);
m_StockList.SetTextMatrix(i,0,_itoa(i,s,10));
for (int j=1; j<=3;j++)
{
sfile.getline(s,80);
m_StockList.SetTextMatrix(i,j,s);
}
next=sfile.peek();
}
while (next!=EOF);
sfile.close();
Наприклад частина файлу stock..txt клієнта має такий вигляд:
Йод
234
1.12
Бинт
221
0.13
Аспирін
17
1
Панадол
32
2.3
Аскорбинова кислота
2036
3.6
Новокаїн
129
2
В даному файлі інформація та тип даних повторюється через кожні три стрічки. Перша стрічка—назва ліків, має тип даних char[80],
друга стрічка—кількість товару на складі, тип даних int,
третя—ціна товару, тип даних float
Але розмір даного файла змінюється автоматично, коли ми дописуємо новий товар на складі.
Представимо це у вигляді таблиці 2.6.3
Таблиця 2.6.3 Структуру запису файла
№(п.п) | Назва товару | Кількість | Ціна | |
Тип даних | int | char | int | float |
Діапазон значень | 50 | 1..80 | — | — |
2. Лістинг програми
Лістинг головної програми TIMIDlg, яка з’єднує всі функції:
// TIMIDlg.cpp : implementation file
4 Тестування програм
4.1 Опис тестів
При запуску програми запуститься заставка, потім з’явиться головне вікно програми.
Тест 1:
Відкриємо пункт меню Файл, за допомогою якого можна вийти з програми.
Тест 2:
Відкриємо пункт меню „Редактор”, в якому спочатку виберемо підменю Клієнти. Отримаємо всю інформацію про клієнтів.
Тест 3:
Дозапишемо нових клієнтів у список і відповідно їз номера телефонів та початковий рахунок. Це зробимо за допомогою кнопки вставити але попередньо потрібно заповнити відповідні поля.
Тест 4:
Видалимо якихось клієнтів зі списку. Це робимо за допомогою кнопки видалити, попередньо натиснувши на той рядок, який хочемо видалити.
Тест 5:
Виправимо деяку інформацію про клієнта, наприклад, змінимо їхню адресу. Для цього натиснемо на відповідне поле, стираємо та виправляємо те що потрібно, потім натискуємо на кнопку застосувати.
Тест 6:
Відкриємо пункт меню „Редактор”, в якому спочатку виберемо підменю Товари. Отримаємо всю інформацію про товари.
Як із клієнтами, можемо виконувати аналогічні дії з товарами: дописувати нові товари, видаляти їх зі списку, змінювати їх кулькість, ціну.
Тест 7:
Виберемо пункт меню Справка та підменю Про автора, де можна дізнатись про самого автора програми.
Тест 8:
Правильно заповнимо всі поля програми. Це будуть такі поля:
Дата замовлення, номер замовлення, клієнт, номер постачальника, покупець, опис товару, оплата рахунку.
Тест 9:
Отримаємо документ покупцеві, в якому буде міститися інформація про весь придбаний товар.
Тест 10:
Залишемо одне поле незаповненим.
Тест 11:
Подивимось, скільки одиниць деякого товару є на складі та у полі кількості замовленого товару напишемо навмисно більше товару.
Тест 12:
У полі виплат клієнта перевищемо встановлений кредит, який становить 100 грн.
4.2 Аналіз результатів тестування
Дана программа реагує як на курсори та клавішу Tab, так і на мишу.
Якщо ми відкриємо пункт меню файл, то за допомогою нього ми можемо вийти з даної програми.
Рисунок 4.2.1
Якщо ми перейдемо на пункт меню редактор, то там ми можемо відкрити файл клієнтів або товарів, які відповідно матимуть такі вигляди:
Рисунок 4.2.2
Рисунок 4.2.2
Тест 3 : Дозапис клієнтів
Дописали 4-х нових клієнтів і отримали тепер уже такий вигляд файлу „Клієнтів”, який зображений на рисунку 4.2.3
Рисунок 4.2.3 Дозапис клієнтів
Тест 4: Видалення клієнтів
При видаленні зі списку 2-х клієнтів Лікарня 1 та Аптека 1 отримаємо відповідно такий файл клієнтів, який зображений на рисунку 4.2.4
Рисунок 4.2.4Видалення клієнтів
Тест 5: Змінення інформації
Змінимо адресу Аптеки 13 Келецька 13 на Барське шоссе 56 та запишемо новий їхній телефон. Одержаний результат представлений на рисунку 4.2.5
Рисунок 4.2.5 Змінення інформації
А склад товарів матиме такий вигляд:
Якщо вибрати пункт меню „Справка”, то можемо обрати заставку під іменем Logo, або інформацію про автора. Про заставку було описано в пункті 2.4 даної курсової роботи, а „Про автора” матиме такий вигляд: