Перейти до змісту

ЛР23. Мініпроєкт C++: перевірені записи і звіт

Коротко про роботу

Невеликий файл продажів містить id category quantity price. Програма має сформувати перевірений підсумковий звіт. Варіант визначає STUDENT_X.

Відкрити робочий зошит Як виконувати лабораторні

1. Умова

Невеликий файл продажів містить id category quantity price. Програма має сформувати перевірений підсумковий звіт.

Перша комірка зошита лише показує значення вашого STUDENT_X разом із типами. Вона не оголошує і не створює предметні змінні. У коді кожного завдання перенесіть потрібні значення та самостійно оголосіть/створіть відповідні змінні.

2. Що треба знати

Робота виконується після Л1–Л10. Потрібні поняття:

  1. повний маршрут C++ Л1–Л10
  2. модель даних і функції
  3. файли, розбір і валідація
  4. тести й обробка помилок

Межа матеріалу

Використовуйте поняття, вивчені до Л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. Терміни і правила

Терміни

  • звіт — підсумкові контрольні показники після обробки всіх записів.
  • нормальний тест — звичайний коректний випадок.
  • граничний тест — коректний випадок на межі дозволених значень.
  • помилковий тест — навмисно некоректний випадок, який програма повинна відхилити.

Правила

  1. Кожний рядок претендує на формат id category quantity price з рівно чотирма полями.
  2. Прийнятий запис має id > 0, category з множини {A, B, C}, quantity > 0 і price >= 0.
  3. Будь-яка помилка формату або валідації збільшує єдиний rejected_count.
  4. total_value — сума quantity * price прийнятих записів. top_id — ідентифікатор прийнятого запису з найбільшою вартістю рядка.

5. Завдання

Завдання 1

Напишіть коротку схему програми: запис, розбір, перевірка, обчислення, звіт. Біля кожного пункту вкажіть відповідну функцію.

Завдання 2

Прочитайте весь файл. Розбір і перевірку даних виконуйте окремо; помилковий рядок не повинен зупиняти програму.

Завдання 3

Запишіть accepted_count, rejected_count, total_value і top_id. Виведіть по одному прийнятому рядку, рядку з помилкою значення та рядку з помилкою формату разом із причиною.

6. Перевірка і здача

  1. Запустіть самоперевірку та виправте помилки.
  2. Перезапустіть ядро і виконайте роботу ще раз від початку.
  3. Збережіть .ipynb і PDF з кодом та результатами.

Для роботи з файлами покажіть у зошиті назви створених файлів. Також залиште видимий фрагмент або результат, який підтверджує їхню роботу.

Назва PDF: LR23_Прізвище_Група_VNN.pdf.