Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка2011(12 лаб)_декабрь.doc
Скачиваний:
4
Добавлен:
26.08.2019
Размер:
1.1 Mб
Скачать

Приклад виконання завдання 2

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

Дана програма буде складатися з основної функції int main(), та двох функцій для виконання поставленої задачі:

void EnterData(const char*file_name) – призначена для перезапису даних в файлі.

int GetLinesCount(const char*file_name) – призначена для підрахунку кількості рядків бінарного файлу.

Програма буде мати наступний вигляд:

Лістинг програми

#include <stdio.h>

#include <conio.h>

#include <string.h>

void EnterData(const char*file_name);

int GetLinesCount(const char*file_name);

/*

Перезапис всіх даних в файлі та запис нових даних даних

*/

void EnterData(const char*file_name)

{

FILE*f; // file variable

f=fopen(file_name,"wb");// відкриття файлу для запису

if(f)// якщо файл відкритий успішно

{

char str[100];

printf("Please enter data:\n");

do

{

gets(str); // введіть рядок з клавіатури

if(strlen(str)==0) // якщо рядок пустий, то вихід

break;

fprintf(f,"%s\n",str);

}while(1);

fclose(f); // закрити файл і зберегти всі зміни

}

}

int GetLinesCount(const char*file_name)/*підрахунок кількості рядків бінарного файлу*/

{

FILE*f;

f=fopen(file_name,"rb");

if(f)

{

char ch;

int k=1;

while(!feof(f)) //якщо ні, закрити файл

{

fread(&ch,1,1,f);//зчитування char з файлу

if(ch==10) // якщо char введені

k++;

}

fclose(f);

return k;

}

printf("Cannot open file");

return 0;

}

void main()

{

clrscr();

int h;

char file_name[]={"1.txt"};

h=GetLinesCount(file_name);

printf("k=%d",h);

getch();

}

Тестування:

Для перевірки правильності роботи програми безпосередньо введемо до текстового файлу „ 1.txt деяку інформацію, наприклад запишемо:

Ukraine

Ne xo4y v armijy

ale pidy

Slyjy Ukraini Видно що файл містить чотири стрічки.

Тоді запустимо програму і бачимо, що в файлі „ 1.txt ” кількість стрічок:

k=4.

Контрольні запитання

    1. Як здійснюється форматне введення/виведення у двійковий файл?

    2. Процес відкриття двійкових файлів.

    3. Процес дозапису даних у двійковий файл.

    4. Як організувати довільний доступ до файлу?

    5. Переваги бінарних файлів.

    6. Як здійснюється перекачування файлу?

    7. Як здійснюється прийом файлу?

    8. Що таке SEEK_SET, SEEK_CUR, SEEK_END?

    9. Процедура читання даних з файлу послідовного доступу.

    10. Введення/виведення рядків.

Лабораторна робота №3

Тема: Розробка програм з використанням найпростіших класів та об’єктів.

Мета: Набуття навиків в розробці найпростіших класів та робота з об’єктами класів.

Порядок виконання роботи

1. Ознайомитися з теоретичними основами та принципами роботи з динамічними масивами.

2. Розробити структуру класу для роботи з динамічними масивами, яка повинна включати не менше 2-х даних-членів класу та 5-х методів класу, з яких обов'язково повинні бути метод-член класу для:

  • створення масиву;

  • заповнення масиву;

  • виводу змісту масиву на екран;

  • очищення пам'яті.

3. Розробити метод для обробки динамічних масивів, що використовує клас для виконання завдання 1 та головну програму, яка використовує розроблений клас.

4. Розробити структуру класу для роботи з двовимірними масивами, яка повинна включати не менше 3-х даних-членів класу та 5-х методів класу, з яких обов'язково повинні бути метод-член класу для:

  • створення масиву;

  • заповнення масиву;

  • виводу змісту масиву на екран;

  • очищення пам'яті.

5. Розробити метод-член класу для обробки двовимірного масиву, відповідно до завдання 2 та головну програму, яка використовує розроблений клас.

6. Доповнити клас для роботи з одновимірними динамічними масивами з пункту 2 функцією, яка задана в завданні 3.

7. Розробити 2-3 тести для перевірки вірності роботи даної програми.

8. Оформити звіт до лабораторної роботи.