Методические рекомендации к практическим занятиям для студентов очной формы обучения по специальности
Скачать 2.5 Mb.
|
Обозреватель решений по имени проекта MDIApp и выберите в контекстном меню Добавить строку Форму Windows. После этого на экране появится диалоговое окно Добавление но- вого элемента, в котором нужно выбрать значок ФормаWindows Form и 69 затем нажать кнопку Открыть. В результате в окне дизайнера форм появит- ся новая форма Form2. 11. Так как это окно будет предназначено для редактирования текста, перетащи- те в него из панели элементов значок элемента управления RichTextBox. Чтобы окно редактора текста RichTextBox заполнило собой клиентскую часть MDI-окна, установите значение свойства Dock равным Fill. Кроме то- го, проследите, чтобы свойство Anchor было равно Top, Left. Окно элемен- та управления RichTextBox будет заполнять клиентскую область MDI-окна при любом изменении размеров последнего. 12. Напишите программный код, создающий MDI-окна. Этот код должен полу- чать управление, когда пользователь выбирает строку New из меню File. До- бавьте следующий обработчик события Click для строки New меню File: Сначала создается новая форма как объект класса Form2, а затем выполня- ется сохранение ссылки на эту форму в переменной mdiChild. Свойство MdiParent этого окна должно содержать ссылку на родительское окно при- ложения MDI, поэтому в него записывается ссылка на объект класса Form1, используя ключевое свойство this. Для того чтобы MDI-окно появилось на экране, его необходимо отобразить явным образом при помощи метода Show. 13. Запустите приложение на исполнение. Протестируйте его работу. 14. Создав с помощью меню File несколько дочерних MDI-окон, раскройте ме- ню Window и убедитесь, что в нем появилось несколько новых строк. С по- мощью этих строк можно выдвинуть на передний план любое нужное MDI- окно. 70 15. Чтобы пользователь мог упорядочивать дочерние MDI-окна, в приложении предусмотрены строки Cascade, HorizontallyTileи VerticallyTile в меню Window. Добавить в исходный текст приложения обработчики событий данных пунктов меню: Все они вызывают метод LayoutMdi родительской формы, передавая ему в качестве параметра одну из констант, определяющих нужный тип упорядо- чивания. Это константы MdiLayout.Cascade, MdiLayout.TileHorizontalи MdiLayout.TileVertical. 16. Реализуйте операцию копирования выделенного фрагмента текста из актив- ного MDI-окна в Clipboard (буфер обмена). Для этого добавьте следующий обработчик событий к строке Copy меню Edit: Здесь вначале определяется идентификатор активного MDI-окна, извлекая его из свойства ActiveMdiChild родительского окна приложения MDI. Этот идентификатор сохраняется в переменной activeChild. Если в приложении нет активного окна, то приведенный выше обработчик событий завершает свою работу, не выполняя никаких других действий. 71 Определив идентификатор активного MDI-окна, обработчик события полу- чает идентификатор активного элемента управления, расположенного внут- ри этого окна. Для этого используется свойство activeChild.ActiveControl, хранящее ссылку на активный элемент управления. MDI-окно содержит только один элемент управления— редактор RichTextBox. Поэтому полученная ссылка преобразуется явным образом к типу RichTextBox и сохраняется в переменной editBox для дальнейшего ис- пользования. Теперь идентификатор редактора текста получен и можно переписать выде- ленный в его окне фрагмент текста в универсальный буфер обмена Clipboard. Запись в Clipboard осуществляется методом Clipboard.SetDataObject. В качестве параметра методу Clipboard.SetDataObject передается выделенный текст, извлеченный из ре- дактора текста с помощью свойства editBox.SelectedText. 17. Дополните приложение кодом, необходимым для вставки данных из универ- сального буфера обмена Clipboard в активное MDI-окно. Добавьте следую- щий обработчик события для строки Paste меню Edit: Этот обработчик вначале определяет идентификатор активного MDI-окна, а затем, пользуясь этим идентификатором и свойством ActiveControl, получа- ет идентификатор редактора текста RichTextBox. Далее для вставки данных из буфера Clipboard метод получает ссылку на интерфейс IDataObject, вызывая для этого метод Clipboard.GetDataObject. Эта ссылка сохраняется в переменной data. Пользуясь полученной ссылкой на интерфейс IDataObject, обработчик со- бытия определяет, имеется ли в буфере Clipboard текст, который можно было бы вставить в редактор текста. Для этого используется метод GetDataPresent. В качестве параметра этому методу передается идентифи- катор формата текстовых данных DataFormats.Text. Если в буфере Clipboard имеются текстовые данные, программа извлекает их при помощи метода GetData, а затем преобразует в текстовую строку при помощи метода ToString. Далее эта текстовая строка записывается в свой- 72 ство SelectedText нашего редактора текста, благодаря чему и происходит вставка данных из буфера Clipboard. 18. Протестируйте работу приложения. Сохраните полученное приложение. Задания для внеаудиторной самостоятельной работы Составьте опорный конспект по теме: запишите основные методы, которые ис- пользуются при создании проекта. Критерии оценивания на практическом занятии Балл Уровень освоения компетенций Критерии оценивания уровня освоения компетенций 5 Максимальный Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы без погрешностей и замечаний, на все во- просы при защите практической работы дал правильные ответы. 4 Высокий Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы с небольшими погрешностями в выпол- нении на персональном компьютере, на защите практи- ческой работы затруднялся при ответах на некоторые вопросы, нуждался в уточняющих вопросах и подсказ- ках со стороны преподавателя. 3 Средний Практическая работа выполнена в соответствии с требо- ваниями, студент представил все задания практической работы с существенными погрешностями в выполнении на персональном компьютере, неспособен правильно ин- терпретировать полученные результаты, на защите за- труднялся и/или не ответил на большинство вопросов, нуждался в уточняющих вопросах и подсказках со сто- роны преподавателя. 2 Ниже среднего Студент несамостоятельно выполнил практическую ра- боту, неспособен пояснить выполнение ни одного зада- ния, не ответил ни на один контрольный вопрос на за- щите. 73 ПРАКТИЧЕСКАЯ РАБОТА №11 СОЗДАНИЕ ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ КЛАССА Цель работы:сформировать практические умения создания проекта с исполь- зованием классов в среде программирования VisualStudio. Формируемые компетенции: ОК 2. Организовывать собственную деятельность, выбирать типовые ме- тоды и способы выполнения профессиональных задач, оценивать их эф- фективность и качество. ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность. ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессиональ- ного и личностного развития. ПК 2.2. Программировать в соответствии с требованиями технического задания. ПК 2.3. Применять методики тестирования разрабатываемых приложе- ний. В результате освоения практических заданий обучающийся должен уметь: использовать языки программирования, строить логически пра- вильные и эффективные программы знать: объектно-ориентированную модель программирования, понятие классов и объектов, их свойств и методов. Материально-техническое обеспечение занятия: персональный компьютер, среда программирования Visual Studio. Практические задания и методические указания Задание 1. Создайте проект, для решения задачи с использованием классов: класс «Worker» поля: имя; возраст; вес (начальное значение 60). методы: «GetEat» - отображается вес. «SetEat» - если человек что-то съедает, то его вес увеличивается на количество съеденного. 1. Запустите среду программирования VisualStudio. Создайте новое Прило- жение WindowsForms. Имя проекта и приложения ClassApp1. 2. Создайте интерфейс приложения в соответствии с образцом: 74 3. Добавьте в проект новый класс Worker, для этого перейдите в Обозрева- тель решений и в контекстном меню проекта выполните команду Добавить – Класс. В окне Добавление нового элемента введите имя Worker.csи нажмите кнопку Добавить. Класс представляет собой шаблон, по которому определяется форма объек- та. В нем указываются данные и код, который будет оперировать этими дан- ными. В С# используется спецификация класса для построения объектов, которые являются экземплярами класса. При этом очень важно подчеркнуть, что класс является логической абстракцией. Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса. При определении класса объявляются данные, которые он содержит, а также код, оперирующий этими данными. Если самые простые классы могут со- держать только код или только данные, то большинство настоящих классов содержит и то, и другое. Объект можно рассматривать как совокупность свойств, методов и событий, работающий при этом как единое целое. 4. В класс добавьте два общедоступных поля: Имя и Возраст, а также одно скрытое поле: Вес. 5. Для записи и чтения данных из скрытых полей используйте методы. Метод – это фрагмент программного кода, имеющий собственное имя и позволяю- щий значительно облегчить процесс программирования. Добавьте в класс Worker метод SetEat, который будет отвечать за еду: если человек что-то съест, то его вес должен будет увеличиться на количество съеденного. Если поле вес скрытое, то запись в него возможна и чтение из него тоже не воз- можно. Для чтения данных из скрытого поля необходимо использовать еще один метод GetEat. 75 6. Далее используйте данные два метода в программе. Заставьте рабочего съесть 2 кг, а затем 3 кг пищи, а потом проверьте его вес. Для этого перейди- те к окну формы и выполните двойной щелчок по кнопке Вывести инфор- мацию о весе. В обработчик события вставьте следующий код: 7. Запустите программу на выполнение. Проверьте её работоспособность. 8. Усовершенствуйте метод SetEat таким образом, что если рабочий за раз съедает более, чем 10 кг, то его возраст увеличивается на год, а вес увеличи- вается только наполовину от съеденного. Для этого измените код модуля следующим образом: 9. Попросите рабочего съесть 15 кг. Для этого измените программный код кнопки следующим образом: 76 10. Запустите программу на выполнение. Проверьте её работоспособность. 11. Создайте новый проект ClassApp2 для решения следующей задачи с исполь- зованием классов. Класс «Человек» Поля: имя; возраст; вес, настроение (начальное значение=10). Методы: «Информация о человеке» - отображаются имя, возраст и вес. «Есть» - если человек что-то съедает, то его вес увеличивается на ко- личество съеденного. «Гулять» - настроение увеличивается на 1. «Танцевать» - настроение увеличивается на 2. «Работать» - настроение уменьшается на 2. 77 12. Усовершенствуйте метод «Есть» так, чтобы при съедании за один раз более 5 кг, его возраст увеличивался бы на год, а вес увеличивался бы только на половину от съеденного. 13. Усовершенствуйте метод так, чтобы настроение не могло становиться отри- цательным числом. 14. Дополните основную программу так, чтобы человек после еды четыре раза погулял и два раза потанцевал. 15. Добавьте в класс метод, который будет возвращать текущее настроение че- ловека. 16. Добавьте в основную программу метод работать 9 раз и выведите настрое- ние пользователя на экран. Измените метод работать таким образом, чтобы настроение никогда не было меньше нуля (т.е. если настроение было 1 и че- ловек поработал, то оно должно стать не меньше 0). 17. Запустите программу на выполнение. Проверьте её работоспособность. Задание 2. Создайте класс с использованием свойств. 1. Откройте проект ClassApp1. 2. Измените класс так, чтобы изменим код так, чтобы вместо двух методов SetEat и GetEat появилось одно свойство Ves. Свойства – неотъемлемая часть класса. Именно с помощью свойств реализовывается один из «китов» объектно-ориентированного программирования – инкапсуляция. 3. Запустите программу. Возможен ли запуск? 4. Измените код кнопки следующим образом: 78 5. Запустите программу на выполнение. Проверьте её работоспособность. 6. Создайте новый проект ClassApp3 работы с приведенным ниже классом. Свойства определите самостоятельно. Класс «Покупатель» Поля класса: название покупаемого продукта, цена, количество, кошелек, настроение (начальное значение=10). Методы класса: «Информация о покупке» - отображается название купленного про- дукта, его количество и стоимость покупки. «Купить» - если человек что-то покупает, то стоимость покупки уве- личивается, а наличность кошелька уменьшается. «Посмотреть настроение» - отслеживайте само настроение: если настроение больше 15, то оно «бодрое», если от 5 до 15, то – нормаль- ное, если от -10 до 5, то – плохое, если меньше -10, то – депрессивное. 7. Усовершенствуйте метод «Купить» так, чтобы выполнялась проверка: хва- тит ли денег в кошельке для совершения покупки. 8. Добавьте связь с настроением: если денег хватило на совершение покупки, то настроение увеличивается на 50% от суммы покупки, а если не хватило – то настроение уменьшается на количество единиц, равное количеству денег, которых не хватило для совершения покупки. 9. Запустите программу на выполнение. Проверьте её работоспособность. Задание 3. Создайте классы, иерархически связанные друг с другом. 1. Создайте новое Приложение WindowsForms. Имя проекта и приложения ClassApp4. 2. Создайте интерфейс приложения в соответствии с образцом: 79 3. Создайте классы «Фигура» и «Четырехугольник» так, чтобы «Фигура» был «предком», а «Четырехугольник» - потомком. Добавьте класс «Фигура»: 4. Наследование – одна из основных характеристик объектно- ориентированного программирования. Когда новый класса становится по- томком существующего, он наследует все незакрытые методы, свойства и поля своего предка. Новый класса затем можно расширять, добавляя или за- меняя эти методы, поля и свойства. Все это, в конечном счете, позволяет значительно упростить программирование путем многократного использо- вания кода. Добавьте класс «Четырехугольник». 5. Используйте данные классы в программе. Напишите программный код для кнопки Площадь. 6. Запустите программу на выполнение. Проверьте её работоспособность. 80 Задания для внеаудиторной самостоятельной работы Ответьте на вопросы письменно в тетради: Что такое класс? Что такое объект? Назовите основные принципы ООП и дайте каждому из них характери- стику. Для чего нужны свойства класса? Критерии оценивания на практическом занятии Балл Уровень освоения компетенций Критерии оценивания уровня освоения компетенций 5 Максимальный Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы без погрешностей и замечаний, на все во- просы при защите практической работы дал правильные ответы. 4 Высокий Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы с небольшими погрешностями в выпол- нении на персональном компьютере, на защите практи- ческой работы затруднялся при ответах на некоторые вопросы, нуждался в уточняющих вопросах и подсказ- ках со стороны преподавателя. 3 Средний Практическая работа выполнена в соответствии с требо- ваниями, студент представил все задания практической работы с существенными погрешностями в выполнении на персональном компьютере, неспособен правильно ин- терпретировать полученные результаты, на защите за- труднялся и/или не ответил на большинство вопросов, нуждался в уточняющих вопросах и подсказках со сто- роны преподавателя. 2 Ниже среднего Студент несамостоятельно выполнил практическую ра- боту, неспособен пояснить выполнение ни одного зада- ния, не ответил ни на один контрольный вопрос на за- щите. 81 ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ОБУЧЕНИЯ Основная литература: 1. Голицына, О.Л. Программирование на языках высокого уровня: учебное по- собие для СПО / О. Л. Голицына, И. И. Попов. - М: ФОРУМ, 2014. - 495с. 2. Семакин, И.Г. Основы алгоритмизации и программирования: учебник для СПО / И. Г. Семакин, А. П. Шестаков. - М.: Академия, 2013. - 300с. 3. Казанский, А. А. Программирование на visual c# 2013: учебное пособие для СПО / А. А. Казанский. — М.: Издательство Юрайт, 2017. — 191с. - Режим доступа: www.biblio-online.ru/book/A12DB344-78CA-4224-99E4- EDEB728A5578. 4. Черпаков, И. В. Основы программирования: учебник и практикум для СПО / И. В. Черпаков. — М.: Издательство Юрайт, 2017. — 219с. —Режим доступа: www.biblio-online.ru/book/F79BE55A-C6F1-439D-9ED5-0D78A50B403F. Дополнительная литература: 1. Затонский, А.В. Программирование и основы алгоритмизации: теоретические основы и примеры реализации численных методов: учебное пособие для вузов / А. В. Затонский, Н. В. Бильфельд. - М.: РИОР: ИНФРА-М, 2014. - 165с. 2. Ишкова, Э.А. С#. Начала программирования: учебник дл вузов / Э. А. Ишко- ва. - М.: БИНОМ, 2013. - 333 с. 3. Огнева, М. В. Программирование на языке с++: практический курс: учебное пособие для СПО / М. В. Огнева, Е. В. Кудрина. — М.: Издательство Юрайт, 2017. — 335 с. — Режим доступа: www.biblio-online.ru/book/B76AB4A4-7623- 4842-9136-B6ADC57B90BC. 4. Павловская, Т.А. С#. Программирование на языке высокого уровня: учебник для вузов / Т. А. Павловская. - М. и др.: Питер, 2014. - 432с. 5. Трофимов, В. В. Алгоритмизация и программирование: учебник для академи- ческого бакалавриата / В. В. Трофимов, Т. А. Павловская; под ред. В. В. Тро- фимова. — М.: Издательство Юрайт, 2017. — 137с. - Режим доступа: www.biblio-online.ru/book/B08DB966-3F96-4B5A-B030-E3CD9085CED4. Internet – ресурсы № п/п Наименование ресурса Электронный адрес 1 Интернет-Университет Информа- ционных технологий http://www.intuit.ru/ 2 Каталог библиотеки учебных кур- сов MSDM http://msdn.microsoft.com/ru- ru/gg638594 3 Академия мобильных приложе- ний http://appinvent.ru/ 82 А.А.Дроздова ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ Основы объектно-ориентированного программирования Методические рекомендации к практическим занятиям для студентов очной формы обучения по специальности 09.02.04 Информационные системы (по отраслям) ЧПОУ Вологодский кооперативный колледж 160014,г.Вологда,ул.Горького,93 |