lab5task1

Run Settings
LanguageC
Language Version
Run Command
/** * @file FirstProject.cpp * @autor Коваленко І. В. 515б * @date 06.04.2023 * @brief Лабораторна робота №5, варіант 11 * * Застосування вказівників. Завдання 1 */ #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "Module.h" int main(void) { //підключення ключів setlocale(LC_ALL, "Ukr"); //створення змінних char serial_char[6 + 1]; int month, year, batch; //введення розміру масиву printf("Введіть серійний номер продукту (6 цифр): "); //введення числа в типі чар fgets(serial_char, sizeof(serial_char), stdin); //виведення інформації на табло if (corr_of_serial_num(serial_char, &month, &year, &batch) == 1) { printf("\nСерійний номер вірний...\n" "Оброблення данних...\n"); printf("\n\tМісяць виготовлення товару: "); switch (month) { case 1: printf("січень\n"); break; case 2: printf("лютий\n"); break; case 3: printf("березень\n"); break; case 4: printf("квітень\n"); break; case 5: printf("травень\n"); break; case 6: printf("червень\n"); break; case 7: printf("липень\n"); break; case 8: printf("серпень\n"); break; case 9: printf("вересень\n"); break; case 10: printf("жовтень\n"); break; case 11: printf("листопад\n"); break; case 12: printf("грудень\n"); break; default: printf("Місяць не визначено.\n"); break; } year = 2000 + year; printf("\tРік виготовлення товару: %i рік\n" "\tІндекс вашего товар: %i\n\n" , year, batch); } else { //якщо функція повернула 0 printf("\nНевірний тип данних.\n" "Помилка. Завершення програми...\n"); } //Завершення програми printf("Завершення програми."); return CORRECT_END; }
#define PRIVATE static #define PUBLIC #define CORRECT_END 1 #define ERRORTYPE_END 0 /** * Проверка серийного номера на корректность * * @param serial_char серийный номер * @param month месяц выпуска * @param year год выпуска * @param batch номер продукта * @return 1, если операция выполненна успешно */ int corr_of_serial_num(char* serial_char, int* month, int* year, int* batch);
#include <stdio.h> #include <string.h> #include "Module.h" PUBLIC int corr_of_serial_num(char* serial_char, /*масив символів, для корректного вводу чисел з нулем*/ int* month, /*місяці*/ int* year, /*рік*/ int* batch) { /*партія*/ //якщо символів меньше ніж 6 if (strlen(serial_char) != 6) return ERRORTYPE_END; //створення масивів для підготовки данних, розбиваємо serial_char на три підмасива char arrM[3] = "", arrY[3] = "", arrB[3]= ""; //копіювання даних із головного масива в темп масиви strncpy(arrM, serial_char, 2); //місяць strncpy(arrY, serial_char + 2, 2); //рік strncpy(arrB, serial_char + 4, 2); //партія //занесення данних в показники sscanf(arrM, "%d", month); sscanf(arrY, "%d", year); sscanf(arrB, "%d", batch); //перевірка корректності дипів данних if ((*month > 0 && *month <= 12) && (*year >= 0 && *year <= 23)) { printf("Серійний номер прочитан, та записан до реєстру.\n"); return CORRECT_END; } else { printf("Серійний номер не прочитан. Помилка запису серійного номеру.\n"); return ERRORTYPE_END; } }
Editor Settings
Theme
Key bindings
Full width
Lines