Заказать дипломную работу в Минске. Дипломы на заказ На главную

Подробно о нас

Стоимость работ

Счет для оплаты

Реклама на сайте

Тяжкороб Д.В. помогает с дипломами в Минске
Артемков Д.В. помогает с дипломами в Минске



Задания к лабораторной работе № 5

Условием выполнения данной работы является выполненная предыдущая работа.
Для всех вариантов необходимо выполнить следующее:

  • определить функции в соответствии с вариантом задания;
  • в функции main() реализовать демонстрацию работы созданных функций; Во всех заданиях необходимо использовать функции Win32 API для работы с файлами.

    Варианты заданий

    Вариант №1
    Определить две функции:

      void WriteDate(char * fname, Date * buffer, int count); – функция записывает count элементов типа Date из массива buffer в файл с именем fname;
      int ReadDate(char * fname, Date * buffer, int count); – функция читает count элементов типа Date из файла с именем fname в массив buffer и возвращает количество фактически прочитанных элементов.


    Вариант №2
    Определить две функции:
      void WriteTime(char * fname, Time * buffer, int count); – функция записывает count элементов типа Time из массива buffer в файл с именем fname;
      int ReadTime(char * fname, Time * buffer, int count); – функция читает count элементов типа Time из файла с именем fname в массив buffer и возвращает количество фактически прочитанных элементов.


    Вариант №3
    Определите следующие функции:
      void WriteTree(char * fname, Node * node); – функция записывает бинарное дерево с корневым элементом node в файл с именем fname. Для записи отдельного узла имеет смысл определить специальную функцию:
      void WriteNode(HANDLE hf, Node * node);
      Алгоритм этой функции аналогичен алгоритму вывода дерева на экран, но выполнять она будет следующие действия (обход узлов дерева начинается слева):
      • если node == 0, то записать в файл значение 0 (int) и выйти из функции;
      • иначе определить количество символов (count) в имени узла;
      • записать в файл count и имя узла (count символов из поля name);
      • вызвать функцию WriteNode для всех ветвей узла.
      Node * ReadTree(char * fname); – функция создает из файла с именем fname бинарное дерево. Функция возвращает указатель на корневой узел. Для чтения отдельного узла можно определить специальную функцию
      Node * ReadNode(HANDLE hf);
      Алгоритм функции может быть следующим:
      • прочитать значение типа int в переменную count;
      • если count != 0, то прочитать count символов в массив name; создать узел с именем name и для каждой его ветви вызвать функцию ReadNode; возвратить указатель на созданный узел;
      • иначе возвратить 0.


    Вариант №4
    Определите следующие функции:
      void WriteList(char * fname, List * plst); – функция записывает элементы списка в файл;
      List * ReadList(char * fname); – функция читает значения элементов из файла и создает список;


    Вариант №5
    Определите следующие функции:
      void WriteStack(char * fname, Stack * pstk); – функция записывает элементы стека в файл;
      Stack * ReadStack(char * fname); – функция читает значения элементов из файла и создает стек;


    Вариант №6
    Определить функцию:
      Node * CreateBalansedTree(char * fname); – функция создает сбалансированное бинарное дерево. Функция вначале открывает файл, читает первую строку (имя узла) и создает корневой узел. Далее для всех оставшихся строк из файла вызывает функцию:
      void AddNode(Node * node, char * name);
      Функция AddNode() должна выполнять следующие действия:
      • если у узла нет дочерних узлов слева/справа, то добавить слева/справа новый узел;
      • иначе выбрать дочерний узел, у которого высота меньше (а если высоты равны то выбрать левый) и вызвать функцию AddNode() для выбранного узла.


    Вариант №7
    Определите следующие функции:
      void WriteQueue(char * fname, Queue * pque); – функция записывает элементы очереди в файл;
      Queue * ReadQueue(char * fname); – функция читает значения элементов из файла и создает очередь


    Вариант №8
    Определить две функции:
      void WriteComplex(char * fname, Complex * buffer, int count); – функция записывает count элементов типа Complex из массива buffer в файл с именем fname;
      int ReadComplex(char * fname, Complex * buffer, int count); – функция читает count элементов типа Complex из файла с именем fname в массив buffer и возвращает количество фактически прочитанных элементов.


    Вариант №9
    Определить две функции:
      void WriteTree(char * fname, Node * node); – функция записи дерева в файл.
      Node * ReadTree(char * fname); – функция чтения дерева из файла.


    Вариант №10
    Определить две функции:
      void WritePairs(char * fname, Pairs * prs); – функция записывает все элементы типа Pair из массива пар prs в файл с именем fname;
      void ReadPairs(char * fname, Pairs * prs); – функция читает все элементы типа Pair из файла с именем fname в массив пар prs.





Минск 2012 - 2016
© ИП Тяжкороб Д.В. УНП 490520112



Репетитор история математика русский язык физика химия минск Минск английский язык немецкий язык репетитор белорусский язык вокал музыка рисунок обществоведенье Спрос на репетиторство растет. К нам обращаются много учащихся. Репетиторы (Минск)