"> послідовно переміщається по двійкового файлу, виводячи кожен елемент на екран. Для тимчасового зберігання зчитується інформації використовуються private поля класу bin_file. p align="justify"> Метод: add_txtfile (char * name_file);
На вхід приймає рядок, ім'я текстового файлу. Послідовно зчитуючи текст, викликає для кожного отриманого слова функцію add_elem. Дійшовши до кінця тексту, отримуємо його готову структуру на однозв'язний списку, записаному в двійковому файлі. p align="justify"> Метод: create_txtfile (char * name_file);
аналогічний попередньому. Тільки зчитується тепер структура двійкового файлу, і послідовно записується кожен елемент списку (в даному випадку слова) в текстовий файл. p align="justify">. Опис інтерфейсу програми
Для демонстрації роботи класу був створений інтерфейс-меню, що дозволяє показати роботу всіх методів класу. br/>В
Для виклику пункту меню, потрібно ввести його номер.
При успішному з'єднанні з двійковим файлом, програма повідомляє про це (пункти 1,2).
В
Приклад додавання кількох рядків і виведення їх на екран (п.3, п.3, п.4).
В
5. Контрольні приклади
Для перевірки швидкості виконання операцій, додамо до існуючого списку з двох елементів текстовий файл.
Додавання текстового файлу з 300 слів: 2823 мілісекунд.
Як ми можемо побачити, вже з 300 елементів додавання виконується дуже довго, це пов'язано з постійним зверненням до жорсткого диска для запису елемента, а також знаходженню місця для запису.
Висновки
В результаті проведеної роботи було розроблено клас bin_file, який зберігає свої елементи в двійковому файлі. Робота з файлом відбувається в бінарному режимі. p align="justify"> Плюси підходу: пам'ять, відведена під список, обмежується простором жорсткого диска, а не оперативною пам'яттю. Зі списком легко відновити роботу, оскільки всі дані зберігаються у файлі. p align="justify"> Мінуси: низька продуктивність у порівнянні з аналогічним списком, працюючим з оперативною пам'яттю. br/>
Список використаної літератури
Р. Лафоре В«Об'єктно-орієнтоване програмування в C + +В»
В«Пітер.В»
Додаток А. Файл В«MyClass.hВ»
# include
# include namespace std;
// const int L_NAME = 20; bin_file: public std :: fstream {: next; length; * str;: char * name_list; set_elem (char * _str); add_elem (); show_list ( ); add_txtfile (char * name_file); create_txtfile (char * name_file); _file (): basic_fstream () {}; _file (const char * name, int ...