Главная страница

Методические рекомендации к практическим занятиям для студентов очной формы обучения по специальности


Скачать 2.5 Mb.
НазваниеМетодические рекомендации к практическим занятиям для студентов очной формы обучения по специальности
Дата24.03.2023
Размер2.5 Mb.
Формат файлаpdf
Имя файлаpz_09_02.04__osnovyalgoritmizaciiprogrammirovanija.pdf
ТипМетодические рекомендации
#1012152
страница6 из 7
1   2   3   4   5   6   7
BeforeExpand. Для создания обработчика этого события выделите дере- во в окне дизайнера формы, а затем откройте вкладку событий. Далее в поле
BeforeExpand ведите имя обработчика событий
treeView1_OnBeforeExpand. После этого добавьте в этот обработчик собы- тий следующий код:
Событие BeforeExpand возникает при попытке пользователя раскрыть узел дерева. В этом случае наш обработчик заполняет открываемый узел при по- мощи рассмотренного ранее метода GetDirs. Ссылка на узел извлекается из поля e.Node.Nodes, передаваемого обработчику событий в качестве пара- метра.
7. Запустите приложение. Раскрываются ли узлы дерева при щелчке мышью теперь?
8. Вы можете улучшить внешний вид дерева, если добавите к его узлам значки дисковых устройств и каталогов (папок). В папке проекта создайте папку
ImageList. Подготовьте эти значки, используя любой графический редактор.
Скопируйте эти значки в папку ImageList. Чтобы подключить флажки к проекту, выберите из меню проект системы MicrosoftVisualStudio строку
Добавить существующий элемент, а затем добавьте файлы значков при помощи появившегося на экране диалогового окна.

60 9. Чтобы использовать изображения в дереве, их необходимо объединить в список класса ImageList. Добавьте этот список в приложение, перетащив значок компонента ImageList в окно проектирования формы из панели эле- ментов вкладки Все формы WindowsForms. Выделив элемент imageList1 левой клавишей мыши, отредактируйте его свойство Images. Для редактиро- вания будет открыто окно Редактор коллекций изображений. Воспользуй- тесь кнопкой Добавить для добавления в список файлов изображений, ско- пированных ранее в каталог нашего приложения. Изображения следует раз- местить в следующем порядке: первым (с индексом 0) должно идти изобра- жение для диска, вторым (с индексом 1) — изображение закрытой папки, и третьим (с индексом 2) — изображение открытой папки.
10. Создав и заполнив список изображений, подключите его к дереву просмотра дисков и каталогов. Для этого отредактируйте свойство ImageList элемента управления treeView1, присвоив ему ссылку на список изображений
imageList1.
11. Для отображения значков в узлах дерева необходимо изменить исходный текст методов DriveTreeInit и GetDirs. Первый из этих методов инициали- зирует дерево, а второй— добавляет к узлу дерева список каталогов. Обра- тите внимание на конструктор класса TreeNode, создающий узлы дерева внутри тела цикла foreach. Первый параметр задает текст надписи для узла дерева. Если к элементу управления TreeView подключен список изображе- ний, то второй и третий параметры конструктора класса TreeNode задают индексы изображений для узла дерева. При этом второй параметр определя- ет изображение невыделенного узла дерева, а третий — выделенного. Что касается метода DriveTreeInit, то расположенный в нем конструктор создает узлы, отображающий только дисковые устройства. В любом состоянии (как выделенном, так и невыделенном) нам необходимо отображать один и тот же значок дискового устройства, имеющий в нашем случае индекс 0. Поэто- му второй и третий параметры конструктора передают нулевые значения.

61 12. В методе GetDirs конструктору класса TreeNode, размещенному внутри оператора цикла foreach, через второй и третий параметры передаются ин- дексы значков закрытой и открытой папки, соответственно.
13. Протестируйте работу приложения.

62 14. Выделите элемент управления TreeView на панели Свойства найдите свой- ство CheckBoxes и установите его значение True. Теперь узлы дерева будут иметь индивидуальные флажки. Отметив все или некоторые узлы дерева флажками, можно выполнять над соответствующими объектами групповые операции.
15. Выделите элемент управления TreeView на панели Свойства найдите свой- ство LabelEdit и установите его значение True. Теперь пользователь может редактировать текстовые надписи, расположенные около узлов дерева.
Задание 3. Создание методов для элемента управления ListView
1. Выделите список ListView в окне дизайнера форм и установите для свойства
View значение Details. При необходимости программа сможет динамически переключать режимы отображения, изменяя значение свойства View во вре- мя своей работы.
2. Поскольку в приложении будет отображаться список в виде таблицы, то необходимо создать столбцы таблицы и определить их атрибуты. Для этого необходимо отредактировать свойство Columns. Это делается при помощи
Редактор коллекции ColumnHeader.
3. С помощью кнопки Добавить добавьте в таблицу три столбца, а затем настройте свойства Text, TextAlign и Width этих столбцов. Свойство Text задает название столбца, отображаемого в верхней части списка ListView.
Первый столбец (с индексом 0) должен называться Имя, второй — Размер, а третий — Изменен. Свойство TextAlign задает выравнивание заголовка столбца. По умолчанию это свойство имеет значение Left, задающее вырав- нивание по левой границе. С помощью свойства Width можно указать начальную ширину столбца в пикселях. После отображения списка пользо- ватель сможет изменять ширину столбцов при помощи мыши.
4. Запустите приложение на исполнение. Теперь в правом верхнем фрейме приложения появится пустой список с заголовками.

63 5. Элемент управления ListView может отображать содержимое своего окна в четырех различных режимах, задаваемых при помощи свойства View. В за- висимости от выбранного режима, элементы списка могут снабжаться знач- ками маленького или большого размера. В приложении FramesApp будут использованы шесть значков для отображения папок и файлов различных типов (файлы исполнимых программ, файлов справочной системы, тексто- вых файлов, файлов документов и пр.). Скопируйте файлы значков в папку
ImageList созданную ранее.
6. Для работы с этими значками потребуется еще один список изображений
ImageList. Перетащите его значок с панели элементов в окно дизайнера форм. Новый список будет иметь идентификатор imageList2. Отредактируй- те данный список.
7. В нашем приложении список ListView отображается только в одном режи- ме, а именно, как детализированная таблица. Такая таблица снабжается значками только маленького размера. Если же Ваше приложение будет ис- пользовать режим LargeIcon, необходимо подготовить дополнительный список ImageList, добавив в него файлы значков большого размера. Под- ключите подготовленный список к элементу управления ListView. Для этого присвойте свойствам SmallImageList, LargeImageList значение imageList2.
8. В общем случае список ListView содержит элементы, каждый из которых имеет дополнительные элементы более низкого уровня, которые называются атрибутами. Сам элемент представляется текстовой строкой в первом столб- це списка, отображаемого в виде детализированной таблицы. Значения остальных атрибутов отображаются в остальных столбцах таблицы. Теперь

64 необходимо наполнить список ListView функциональностью. Когда пользо- ватель выделяет диск или каталог в дереве просмотра TreeView, создается событие AfterSelect. Обработчик этого события должен определить, какой диск или какой каталог был выделен, а затем наполнить окно списка
ListView именами каталогов и файлов, расположенных на этом диске или в этом каталоге. Создайте обработчик события AfterSelect. Предварительно создайте поле fullPath в классе Form1, вставив следующую строку кода: publicstring fullPath;
Код обработчика события скопируйте из файла AfterSelect.txt.
Прежде всего, данный метод извлекает ссылку на узел дерева, выделенный пользователем, из свойства Node параметра обработчика событий
treeView1_OnAfterSelect. Далее, полный путь к выделенному узлу записы- вается в поле fullPath класса string.
Так как наше дерево содержит только обозначения дисков и каталогов, то это будет путь либо к корневому каталогу диска, либо к одному из подката- логов. Далее мы создаем объект класса DirectoryInfoи получаем списки всех файлов и каталогов, располагающихся в каталоге, выделенном пользовате- лем в дереве. Для выполнения этих операций применяются методы GetFiles и GetDirectories. Перечень файлов обработчик события сохраняет в массиве
fiArray, а перечень каталогов — в массиве diArray.
Наполнение списка именами каталогов выполняется в цикле foreach. С по- мощью конструктора класса ListViewItem мы создаем элемент списка, а за- тем задаем значения атрибутов этого элемента. Длина каталогов считается равной нулю, а время последнего изменения каталога извлекается при по- мощи метода LastWriteTime и преобразуется в текстовую строку методом
ToString.
В свойство lvi.ImageIndex записывается нулевое значение — индекс значка в списке изображений imageList2 с изображением закрытой папки.
После заполнения всех атрибутов элемента списка этот элемент добавляется в список методом listView1.Items.Add.
На следующем этапе в список добавляются имена файлов, расположенных в выделенном каталоге. Эти имена тоже добавляются в цикле
Размер очередного файла мы получаем с помощью свойства Length, а дату последнего изменения — с помощью свойства LastWriteTime (как и для ка- талогов).
Расширение имени файла извлекается из полного имени методом
Path.GetExtension, а затем все его буквы преобразуется в прописные мето- домToLower. Непосредственный выбор значка выполняется при помощи оператора switch. Подготовленный элемент списка, описывающий текущий файл, добавляется в список методом listView1.Items.Add.
9. Протестируйте работу приложения. Приложение может отображать в левом фрейме дерево каталогов, а в правом верхнем фрейме — содержимое вы- бранных каталогов.
10. Разработайте обработчик события ItemActivate к элементу управления
ListView, для того чтобы было можно отображать в окне текстового редак-

65 тора содержимое текстовых файлов, отображаемых в правом верхнем фрей- ме. Это событие возникает, когда пользователь дважды щелкает строку в окне списка ListView. Для того, чтобы в строке состояния отображалась ин- формация об имени файла добавьте на строку состояния StatusLabel. Ис- ходный текст обработчика события ItemActivate имеет следующий вид:
В качестве первого параметра методу передается полный путь к файлу, по- лученный комбинированием полного пути каталога fullPath, выделенного в дереве, и имени файла lvi.Text, выделенного в списке ListView.
Через второй параметр методу LoadFile передается тип загружаемого доку- мента, заданный как RichTextBoxStreamType.PlainText (т.е. текстовый до- кумент). Дополнительно имя документа отображается в строке состояния главного окна приложения, для чего это имя переписывается из свойства
lvi.Text в свойство statusLabel1.Text.
11. Протестируйте работу приложения. Сохраните изменения.
Задания для внеаудиторной самостоятельной работы
Составьте опорный конспект по теме: запишите основные методы, которые ис- пользуются при создании проекта.

66
Критерии оценивания на практическом занятии
Балл
Уровень освоения
компетенций
Критерии оценивания уровня освоения компетенций
5
Максимальный
Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы без погрешностей и замечаний, на все во- просы при защите практической работы дал правильные ответы.
4
Высокий
Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы с небольшими погрешностями в выпол- нении на персональном компьютере, на защите практи- ческой работы затруднялся при ответах на некоторые вопросы, нуждался в уточняющих вопросах и подсказ- ках со стороны преподавателя.
3
Средний
Практическая работа выполнена в соответствии с требо- ваниями, студент представил все задания практической работы с существенными погрешностями в выполнении на персональном компьютере, неспособен правильно ин- терпретировать полученные результаты, на защите за- труднялся и/или не ответил на большинство вопросов, нуждался в уточняющих вопросах и подсказках со сто- роны преподавателя.
2
Ниже среднего
Студент несамостоятельно выполнил практическую ра- боту, неспособен пояснить выполнение ни одного зада- ния, не ответил ни на один контрольный вопрос на за- щите.
ПРАКТИЧЕСКАЯ РАБОТА №10
РАЗРАБОТКА ПРИЛОЖЕНИЯ MDI
Цель работы: сформировать практические умения создания многооконного приложения MDI средствами среды программирования VisualStudio.
Формируемые компетенции:

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

ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность.

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

ПК 2.2. Программировать в соответствии с требованиями технического задания.

ПК 2.3. Применять методики тестирования разрабатываемых приложе- ний.

67
В результате освоения практических заданий обучающийся должен

уметь: использовать языки программирования, строить логически пра- вильные и эффективные программы

знать: объектно-ориентированную модель программирования, основные алгоритмические конструкции.
Материально-техническое обеспечение занятия: персональный компьютер, среда программирования Visual Studio.
Практические задания и методические указания
Задание:
Создайте приложение, демонстрирующее особенности работы с несколькими окнами.
1. Запустите среду программирования VisualStudio. Создайте новое Прило-
жение WindowsForms. Имя проекта и приложения MDIApp.
2. Многооконный интерфейс MDI (Multiple Document Interface) позволяет в одном приложении работать одновременно с несколькими документами или с разными представлениями одного и того же документа. Окна, отображаю- щие содержимое документов внутри главного окна MDI-приложения, называются MDI-окнами.
Любое MDI-приложение содержит меню Windows, предназначенное для управления окнами, отображающими различные документы или различные представления одного и того же документа. Как правило, в меню Windows есть строки Cascade и Tile, с помощью которых пользователь может упоря- дочить MDI-окна, расположив их с перекрытием (друг за другом) или рядом друг с другом. В этом меню могут быть и другие строки, управляющие рас- положением MDI-окон.
Ниже разделительной черты в меню Windows обычно находятся строки, обозначающие отдельные MDI-окна. Если выбрать одну из этих строк, ука- занное окно будет активизировано и показано на первом плане.
Меню Windows может быть разным в различных MDI-приложениях. Однако в любом случае это меню позволяет пользователю автоматически упорядо- чить расположение MDI-окон и выбрать нужное окно из списка для активи- зации.
Двигая MDI-окна при помощи заголовка, Вы не сможете переместить их за пределы главного окна приложения. В то же время MDI-окна можно делать активными, при этом заголовок активного MDI-окна выделяется цветом.
Каждое MDI-окно имеет, как правило, системное меню и кнопки измене-
ния размера. С помощью системного меню пользователь может изменять размеры или перемещать MDI-окно (строки Restore, Move, Size, Maximize,
Minimize), закрывать окно (строка Close), передавать фокус ввода от одного
MDI-окна другому (строка Next Window).
Если MDI-окно сворачивается в значок (минимизируется), то этот значок располагается в нижней части главного окна приложения.

68 3.
Выделите форму, на панели Свойства найдите свойство IsMDIContainer и установите значение этого свойства равным True. В результате главное окно приложения превратится в контейнер для дочерних MDI-окон.
4.
Добавьте в приложение главное меню. Для этого перетащите из панели эле- ментов системы Visual Studio значок главного меню MenuStrip.
5. Создайте меню File со строками New, Close и Exit. С помощью строки New этого меню мы будем создавать новые MDI-окна с редактором текста на базе элемента управления RichTextBox. Строка Close предназначена для закры- тия MDI-окон, а строка Exit — для завершения работы приложения.
6.
Создайте меню Edit со строками Copy и Paste.
7.
Создайте меню Window, предназначенное для управления MDI-окнами.
Строка Cascade предназначена для каскадного расположения открытых
MDI-окон, а строки HorizontallyTile и VerticallyTile — для размещения окон рядом друг с другом в горизонтальном и вертикальном направлении, соответственно.
8. После создания меню Window выделите его, на панели Свойства установи- те значение свойства
MdiWindowListItem равным
windowToolStripMenuItem. При этом во время работы приложения в меню
Window будут автоматически добавлены строки списка открытых MDI- окон. В этом меню строки активных окон будут отмечены.
9. MDI-окна обычно используются для отображения различных документов или различных представлений одного и того же документа. В приложении
MDIAppMDI-окна будут содержать внутри себя элемент управления
RichTextBox, т.е. редактор текста.
10. Добавьте в проект приложения новую форму, которая будет играть роль шаблона для создания дочерних MDI-окон. Для добавления формы щелкни- те правой клавишей мыши в окне
1   2   3   4   5   6   7


написать администратору сайта