Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 2: Процедурне програмування ЗВІТ до лабораторної роботи № 3 «Структури» Варіант 16 Дата «20» травня 2022 ЗАВДАННЯ: 1. Ознайомитись зі структурами та масивами структур. Дослідити особливості доступу до змінних структурного типу. 2. Розробити Блок-схему програмного алгоритму. 3. У якості індивідуального завдання необхідно написати код програми, що створює масив структур згідно з індивідуальним завданням та виконує запис даних в файл у вигляді структурних блоків (елементів масиву структур). Ім'я файлу – «імя_структури».txt. 4. Реалізувати читання із файлу «імя_структури».txt окремих елементів масиву структур за заданим індексом масиву. 5. Оформити ЗВІТ до лабораторної роботи згідно вимог та методичних рекомендацій. Варіант завданнь: За варінатом 16 – Структура «Файл»: назва, тип, розмір, дата створення, дата  редагування.  Теоритичні відомості: Покажчик на файл (змінна-покажчик типу FILE *) – це покажчик на інформацію, що визначає різні параметри файлу, включаючи його ім'я, стан та поточну позицію. Вказівник на файл ідентифікує конкретний дисковий файл та використовується потоком для виконання операцій введення/виводу. Для читання або запису файлу програма використовує вказівник на файл. Файлова змінна (наприклад, файл) створюється наступним оператором: FILE *file; Операція, за допомогою якої програма вперше запитує доступ до файлу, називається відкриттям файлу. Звільнення файлу в кінці роботи зазвичай називається закриттям файлу. Функція fopen() відкриває потік. Цією функцією керують три основні параметри: ім'я файлу, який слід відкрити, вид застосування файлу та вказівник на файл, повертається функцією. Синтаксис: FILE * fopen (char * filename, char * mode); Опис: функція fopen() відкриває файл, іменований параметром filename і пов'язує його з відповідним потоком stream. Функція fopen() повертає як результат адресний покажчик, який ідентифікуватиме потік stream у наступних операціях. Файл може бути відкритий у таких режимах (mode): r відкриття файлу лише для читання; w створення файлу для запису; а приєднання, відкриття для запису в кінець файлу або створення запису, якщо файл не існує; r+ відкриття існуючого файлу для оновлення (читання та запису); w+ створення нового файлу для зміни; a+ відкриття для приєднання; відкриття (або створення, якщо файл не існує) для оновлення на кінець файлу. Якщо файл відкривається або створюється в текстовому режимі, можна додати символ t до значення параметра mode (rt, w+t тощо); аналогічно, для специфікації бінарного режиму можна до значення параметра mode додати символ b (wb, a+b тощо). * Структури в мові Сі - це складові типи даних ,створених з використанням інших типів. Розглянемо наступне визначення структури: struct Time { int hour; // годинник int minute; // хвилини int second; // секунди }; Особливість структур в тому, що ми можемо створювати свої власні типи даних і оголошувати змінні цих типів даних. У даному прикладі ми створили свою структуру Time, що складається з полів години, хвилини, секунди. Вивід програми: / Рисунок 1. / Рисунок 2. / Рисунок 3. Код програми: Посилання на Repl.it: https://replit.com/join/cxrqibutqj-tr-15khavkin #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXN 40 #define MAXT 10 int main(){ struct pfile { char name [MAXN]; char type [MAXT]; char size[10]; char tcreation[MAXN]; char tediting[MAXN]; }; int N,q,S; printf("\nВведіть кількість файлів:\n"); scanf("%i", &N); struct pfile pf[N]; struct pfile pf2[N]; for(int i=0; i<N; i++){ printf("Ведіть назву файлу № %d...\n", i+1); scanf("%s", pf[i].name); printf("Тепер ведіть тип файлу...\n"); scanf("%s", pf[i].type); printf("Тепер ведіть розмір файлу...\n"); scanf("%s", pf[i].size); printf("Дата створення файлу...\n"); scanf("%s", pf[i].tcreation); printf("Дата редагування файлу...\n"); scanf("%s", pf[i].tediting); printf("\n"); } FILE *stream; stream = fopen("dir/File.txt","w+"); //Запис данних у створений файл fprintf(stream, "Input structure:\n"); fprintf(stream, "Name | Type | Size | Date create | Date change \n"); for(int i=0; i<N; i++){ fprintf(stream, "%s %s %s %s %s", pf[i].name, pf[i].type, pf[i].size, pf[i].tcreation, pf[i].tediting); fprintf(stream,"\n"); } fclose(stream);//Збереження та закритя файлу printf("Дані збережені успішно\n"); printf("Ведіть номер файлу інформацію щодо якого ви хочете дізнатися: "); scanf("%i", &q); printf("Ведіть яку інформацію про файл ви хочете дізнатися:\n1-Назва\n2-Тип\n3-Розмір\n4-Дата створбювання\n5-Дата змінювання\n"); scanf("%i", &S); stream = fopen("dir/File.txt","r+"); fseek (stream,0,SEEK_SET); fseek (stream,64,SEEK_SET); for(int i=0; i<N; i++){ fscanf(stream, "%s %s %s %s %s", pf2[i].name, pf2[i].type, pf2[i].size, pf2[i].tcreation, pf2[i].tediting); } switch (S){ case 1: printf("Назва - %s",pf2[q-1].name); break; case 2: printf("Тип - %s",pf2[q-1].type); break; case 3: printf("Розмір - %s",pf2[q-1].size); break; case 4: printf("Дата створювання - %s",pf2[q-1].tcreation); break; case 5: printf("Дата змінювання - %s",pf2[q-1].tediting); break; } return 0; } Висновок: У цій лабораторної роботі ознайомилися з роботою структур. Було створено програмний код для створення масиву структур, створення файлу та запис у файл масиву структур. Також код реалізує читання з файлу елементів структур вибраної структури. Зроблено звіт з лабораторної роботи та вчасно надіслано викладачу на перевірку.
Антиботан аватар за замовчуванням

25.07.2023 18:07-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!