ЛР23. Мініпроєкт C++: перевірені записи і звіт
Коротко про роботу
Невеликий файл продажів містить id category quantity price. Програма має сформувати перевірений підсумковий звіт.
Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Невеликий файл продажів містить id category quantity price. Програма має сформувати перевірений підсумковий звіт.
Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні
змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.
2. Що треба знати
Робота виконується після Л1–Л10. Потрібні поняття:
- повний маршрут C++ Л1–Л10
- модель даних і функції
- файли, розбір і валідація
- тести й обробка помилок
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л10. Рішення має працювати для будь-яких даних цього контракту. Файл поточного варіанта є одним із можливих наборів.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Тип | Зміст |
|---|---|---|
input_file |
std::string |
шлях до набору даних про продажі |
Поля результату
| Поле | Зміст |
|---|---|
accepted_count |
прийняті записи |
rejected_count |
усі відхилені записи |
total_value |
сума quantity * price |
top_id |
ідентифікатор запису з найбільшою вартістю рядка |
Назви полів результату не змінюйте. Перша комірка лише показує значення варіанта і не оголошує предметні змінні. Перед
розв’язанням кожного завдання самостійно оголосіть потрібні вхідні змінні з показаними значеннями. Власні та результуючі
змінні також оголошуйте звичайно, як у лекційних прикладах. Обчислення виконуйте у блоці { ... }; код над блоком
використовуйте лише там, де це позначено. Наприкінці блока вже є службовий рядок самоперевірки для контрольних полів —
його не потрібно писати або змінювати. Формат std::cout обирайте за змістом завдання: спеціального формату для
самоперевірки немає.
4. Терміни і правила
Терміни
- звіт — підсумкові контрольні показники після обробки всіх записів.
- нормальний тест — звичайний коректний випадок.
- граничний тест — коректний випадок на межі дозволених значень.
- помилковий тест — навмисно некоректний випадок, який програма повинна відхилити.
Правила
- Кожний рядок претендує на формат
id category quantity priceз рівно чотирма полями. - Прийнятий запис має
id > 0,categoryз множини{A, B, C},quantity > 0іprice >= 0. - Будь-яка помилка формату або валідації збільшує єдиний
rejected_count. total_value— сумаquantity * priceприйнятих записів.top_id— ідентифікатор прийнятого запису з найбільшою вартістю рядка.
5. Завдання
Завдання 1
Напишіть коротку схему програми: запис, розбір, перевірка, обчислення, звіт. Біля кожного пункту вкажіть відповідну функцію.
Завдання 2
Прочитайте весь файл. Розбір і перевірку даних виконуйте окремо; помилковий рядок не повинен зупиняти програму.
Завдання 3
Запишіть accepted_count, rejected_count, total_value і top_id. Виведіть по одному прийнятому рядку, рядку з
помилкою значення та рядку з помилкою формату разом із причиною.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Для роботи з файлами покажіть у зошиті назви створених файлів. Також залиште видимий фрагмент або результат, який підтверджує їхню роботу.
Назва PDF: LR23_Прізвище_Група_VNN.pdf.