Главная стр 1
скачать
Задание №1.

Описать класс для реализации работы с выбранной динамической структурой данных, которая хранит список студентов группы. Класс должен содержать следующие, доступные пользователю интерфейсы:



  • добавить элемент в используемую динамическую структуру данных;

  • удалить элемент из используемой динамической структуры данных;

  • найти элемент в используемой динамической структуре данных;

  • распечатать полную информацию о найденном элементе;

  • удалить все элементы из используемой динамической структуры данных;

  • распечатать полную информацию обо всех элементах используемой динамической структурой данных;

  • отсортировать элементы в используемой динамической структуре данных (кроме бинарного дерева).

Класс должен содержать указатель(и), необходимые для работы с используемой динамической структурой данных, который(е) не должны быть доступны пользователю.

Элемент, как правило, определяется (задается) своей информационной частью (полезной информационной нагрузкой). При работе этот класс не должен предоставлять пользователю доступ к элементу используемой динамической структуры данных. Пользователь может получить только копию информационной части элемента списка или указатель на нее.

Информационная часть, в свою очередь, представляется в виде структуры, которая хранит следующую информацию для каждого студента:


  • фамилия;

  • имя;

  • отчество;

  • год рождения:

  • средний балл;

  • учебная группа;

Все строковые данные представляются через указатели.

При выполнении лабораторной работы №1 могут быть использованы следующие динамические структуры данных:



  1. Однонаправленный список.

  2. Однонаправленный кольцевой список.

  3. Двунаправленный кольцевой список.

  4. Бинарное дерево.

  5. Динамический массив.

Выбор структуры данных осуществляется следующим образом: каждая пятерка студентов (по списку) выбирает себе структуры данных с 1-ой по 5-ую соответственно.

При использовании однонаправленного и однонаправленного кольцевого списков рекомендуется элемент списка представить следующей структурой данных:

struct Telem

{

InfPart Inf;



Telem *Next;

};

При работе с этими динамическими структурами рекомендуется использовать указатели на первый и последний элемент списка.


При использовании двунаправленного кольцевого списка рекомендуется элемент списка представить следующей структурой данных:

struct Telem

{

InfPart Inf;



Telem *Next, *Prev;

};

При работе с этой динамической структурой рекомендуется использовать указатель на первый элемент списка.


При использовании бинарного дерева рекомендуется элемент дерева представить следующей структурой данных:

struct Telem

{

int ID;



InfPart Inf;

Telem *Left, *Right;

};

При работе с этой динамической структурой рекомендуется использовать указатель на первый (корневой) элемент дерева. Т.к. бинарное дерево отсортировано изначально по уникальным ключам, то реализовывать сортировку элементов этой структуры не нужно.


При использовании динамического массива его элементом является собственно информационная часть (полезная нагрузка). Но следует отметить сложности в реализации добавления и удаления одного элемента для данной динамической структуры.



Задание №2.
В предыдущем задании в структуру, которая представляет информацию о студенте, добавить следующие свойства:

  • безопасную установку значений полей (с выделением памяти, где это необходимо);

  • безопасное освобождение памяти (при уничтожении данных о студенте);

  • распечатку информации о студенте;

  • перегрузить следующие операторы:

  • = ;

  • == (на основании фамилии);

  • != (на основании фамилии);

  • >= (на основании фамилии);

  • <= (на основании фамилии);

  • < (на основании фамилии);

  • >(на основании фамилии);

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

Задание №3.
Модифицировать класс, реализующий работу с используемой динамической структурой данных, из предыдущего задания, реализовав его в виде шаблона.

Таким образом, с помощью шаблона задается элемент списка и, благодаря перегруженным операторам информационной части списка, достигается полная независимость от конкретных данных.



Задание №4.
На основании шаблона из предыдущего задания необходимо реализовать классы Faculty(Факультет) и Group(Группа). Пользователю доступен только класс факультет.

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

Класс Группа содержит следующие данные:


  • название группы (напрямую пользователю не доступно):

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

Соответственно, информация об учебной группе из данных о студенте удаляется.

Класс Факультет содержит следующие данные:



  • название факультета (напрямую пользователю не доступно):

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

  • Элемент используемой динамической структуры данных, используемой для хранения перечня групп, имеет такую структуру, как и элемент используемой динамической структуры данных, используемой для хранения информации о студентах в группе, а его информационная часть содержит следующую информацию:

  • название группы;

  • указатель(и), необходимый(е) для работы с используемой динамической структурой данных, хранящей информацию о студентах группы;

При реализации действий с группами на факультете необходимо учесть, что при распечатке данных о группе, кроме названия, выводится еще и список студентов группы (причем, необходимо предусмотреть два формата вывода: полный и сокращенный (только ФИО)).

Рекомендуется от класса шаблона из 3-его задания унаследовать класс Группа.



Класс Факультет будет шаблоном (класс Группа), который специализирован классом Группа, который в свою очередь специализирован структурой (классом), хранящим информацию об одном студенте.
Задание №5.
Напишите программу, которая с помощью функций API регистрирует новый класс пользовательского окна и создает главное окно приложения.

Задание №6.
Разработайте меню, диалоговые окна, акселераторы для реализации ввода данных в программе из задания №4. Создайте соответствующий файл ресурса.

Задание №7.
Реализуйте у программы из задания № 4 графический интерфейс. Для этого:

  1. Создайте проект win32 application.

  2. Добавьте в этот проект файлы из задания №4, которые реализуют работу класса – шаблона и описывают тип информационной части списка.

  3. Добавьте в проект программу из задания №5 для регистрации нового пользовательского окна и открытия этого окна.

  4. Добавьте в проект файл – ресурс из задания №6 и подключите его к вашей программе. Для этого:

  • в главном окне добавьте меню и реализуйте действия при выборе каждого пункта меню;

  • добавьте обработку событий для главного окна;

  • опишите функции по обработке действий в диалоговых окнах, разработанных в задании №6, обеспечивающих ввод данных;

  • подключите акселератор, разработанный в задании №6, к вашему приложению.

Задание №8.
В программу из задания №7 для вывода информации о студентах или группах реализуйте вывод в клиентскую часть окна. Обеспечьте прокрутку вертикальную и горизонтальную, если возникает такая необходимость.

Задание №8*.
Задания из пунктов 6-8 реализовать с использованием MFC в виде одного из трех возможных типов приложений:

  • dialog-based application;

  • SDI;

  • MDI.







скачать


Смотрите также:
Указатель на нее. Информационная часть, в свою очередь, представляется в виде структуры, которая хранит следующую информацию для каждого студента: фамилия; имя
54.99kb.
Основные положения и требования к конкурсным работам в рамках межрегионального экологического проекта зеленый марш «Экодром-2013»
57.06kb.
У каждого из нас есть имя, данное при рождении. Имя часть нашей личности, оно определяет судьбу, характер. Имя это первое, что дается нам в жизни, и остается с нами до последнего дня
33.6kb.
Курсовой проект по дисциплине: схемотехника Проектирование цифрового дискретного устройства
451.3kb.
Курсовой проект Введение Проектирование дискретного устройства на элементах малой интеграции
308.26kb.
Ответы на вопросы должны быть четкие, аргументированные
364.31kb.
Методики диагностики одаренности Методика диагностики одаренности для педагогов и родителей
149.18kb.
1. 26. Политика управления оборотными активами. Управление запасами, денежными средствами и дебиторской задолженностью
57.99kb.
1. 26. Политика управления оборотными активами. Управление запасами, денежными средствами и дебиторской задолженностью
69.66kb.
Карта интересов для младших школьников. Методика диагностики одаренности для педагогов и родителей
53.67kb.
Тематический план Образовательный модуль «Родные истоки»
52.94kb.
Доклад Зорова Анастасия 31 гр. Для начала что такое ук, некоторые принципы функционирования
137.64kb.