Методические рекомендации к практическим занятиям для студентов очной формы обучения по специальности
Скачать 2.5 Mb.
|
В результате освоения практических заданий обучающийся должен уметь: использовать языки программирования, строить логически пра- вильные и эффективные программы знать: объектно-ориентированную модель программирования, основные алгоритмические конструкции. Материально-техническое обеспечение занятия: персональный компьютер, среда программирования Visual Studio. Практические задания и методические указания Задание 1. Разработать проект демонстрации работы RGB – функций (установок цвета по трем составляющим) с помощью полос прокрутки. Каждый бегунок полос про- крутки должен будет менять вклад RGB – компонента, отображающийся на па- нели как цвет, а на метке как число. Результирующий цвет должен отображать- ся на панели. 1. Запустите среду программирования VisualStudio. Создайте новое Прило- жение WindowsForms. Имя проекта и приложения ScrollBox1. Папка для размещения проекта ScrollBox. 2. Разместите на форме компоненты в соответствии с рисунком. 38 Элементы управления HScrollBar и VScrollBar представляют собой обыч- ные полосы прокрутки, отображаемые на границах окон редактирования и просмотра приложений MicrosoftWindows. Полоса прокрутки – классиче- ский элемент оконного интерфейса, использующийся для скроллинга ин- формации, которая не помещается целиком в область вывода. В объектах просмотра и редактирования Windows этот элемент появляется при необхо- димости автоматически. Окно элемента управления HScrollBar располагается горизонтально, а эле- мента управления VScrollBar— вертикально. 5. Задайте для элемента управления VScrollBar1 значение свойства Name=RedBar и установить значение свойств Max=255, Value=122, LargeChange=1. 6. Задайте для элемента управления VScrollbar2 значение свойства Name=GreenBar и установите значение свойств Max=255, Value=122, LargeChange=1. 7. Задайте для элемента управления VScrollbar3 значение свойства Name=BlueBar и установите значение свойств Max=255, Value=122, LargeChange=1. 8. Выделите элемент RedBar, на панели Свойства и перейдите на вкладку Со- бытия. Найдите событие Scroll, справа от него в поле сделайте двойной щелчок левой кнопкой мыши. Оказавшись в коде программы, введите сле- дующий код: Метод FromArgbсоздает структуру Color из указанных 8-разрядных значе- ний цветов (красный, зеленый, синий). 9. Аналогично запишите процедуры обработки события Scroll для элементов GreenBar и BlueBar. 10. Задайте имя формы проекта RGB-функции. 39 11. Свойство Text компонентов Label сделайте пустым. 12. Сохраните изменения и запустите проект, убедитесь в его работоспособно- сти. Задание 2. Разработать проект, который позволяет пользователю вычислить факториал числа. Число, для которого рассчитывается факториал, выбирается с помощью элемента управления TrackBar. При щелчке по кнопке «Расчет», меняется надпись «Число n» на «N!» и в строке ввода выводится значение факториала числа. 1. Создайте новое Приложение WindowsForms. Имя проекта и приложения ScrollBox2. Папка для размещения проекта ScrollBox. 2. Элемент управления TrackBar представляет собой шкалу с движком, с по- мощью которого пользователь может изменять (регулировать) численное значение. Это может быть уровень громкости, баланс звуковых каналов, насыщенность отдельных компонентов цвета, яркость и пр. Движок элемен- та управления TrackBar можно передвигать мышью, клавишами перемеще- ния курсора, а также клавишами Home, End, PgUp и PgDn. При перемеще- нии движка создаются события Scroll. Помимо движка, в окне элемента управления TrackBar есть деления. Они отображаются в виде коротких штрихов, расположенных на равном расстоя- нии друг от друга. Вы можете выбрать горизонтальное или вертикальное расположение окна TrackBar. Деления могут находиться с любой стороны, с обеих сторон или их может не быть совсем. При создании элемента управления TrackBar приложение должно опреде- лить диапазон значений, соответствующих положению движка, шаг деле- ний, а также шаг изменения этих значений. 3. Разместите на форме компоненты в соответствии с рисунком. 40 4. Для элемента управления TrackBar1 установите значение свойств Max=10, Value=5. 5. Выделите элемент TrackBar1, на панели Свойства перейдите на вкладку События. Найдите событие Scroll, справа от него в поле сделайте двойной щелчок левой кнопкой мыши. Оказавшись в коде программы, введите сле- дующий код: 6. Запишите процедуру обработки события Cliсk кнопки «Расчет». При расче- те факториала числа необходимо воспользоваться конструкцией цикл. 7. Задайте имя формы проекта Факториал числа. 8. Сохраните изменения в проекте и запустите проект, убедитесь в его работо- способности. 9. Измените код процедуры обработки события Clickкнопки «Расчет» так, чтобы надпись«Число n» была заменена на «N!». 10. В то время как элемент управления TrackBar предназначен для регулирова- ния каких-либо числовых значений, элемент управления ProgressBar поможет Вам графически отобразить значения. Он часто при- меняется, например, для отображения процента завершения какого-либо длительного процесса. Добавьте в проект элемент управления ProgressBar. 11. Для элемента управления ProgressBar1 установите значение свойств Max=10, Value=5. 12. Перейдите в окно обработчика события Scroll элемента управления Track- Bar1 и измените код следующим образом: 41 13. Сохраните изменения в проекте и запустите проект, убедитесь в его работо- способности. Задания для внеаудиторной самостоятельной работы Составьте опорный конспект по теме: запишите основные методы, которые ис- пользуются при создании проекта; запишите в тетрадь основные процедуры для обработки событий проекта. Критерии оценивания на практическом занятии Балл Уровень освоения компетенций Критерии оценивания уровня освоения компетенций 5 Максимальный Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы без погрешностей и замечаний, на все во- просы при защите практической работы дал правильные ответы. 4 Высокий Практическая работа выполнена в полном соответствии с требованиями, студент представил все задания практи- ческой работы с небольшими погрешностями в выпол- нении на персональном компьютере, на защите практи- ческой работы затруднялся при ответах на некоторые вопросы, нуждался в уточняющих вопросах и подсказ- ках со стороны преподавателя. 3 Средний Практическая работа выполнена в соответствии с требо- ваниями, студент представил все задания практической работы с существенными погрешностями в выполнении на персональном компьютере, неспособен правильно ин- терпретировать полученные результаты, на защите за- труднялся и/или не ответил на большинство вопросов, нуждался в уточняющих вопросах и подсказках со сто- роны преподавателя. 2 Ниже среднего Студент несамостоятельно выполнил практическую ра- боту, неспособен пояснить выполнение ни одного зада- ния, не ответил ни на один контрольный вопрос на за- щите. 42 ПРАКТИЧЕСКАЯ РАБОТА №6,7 СОЗДАНИЕ ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ КОМПОНЕНТОВ СТАНДАРТНЫХ ДИАЛОГОВ И СИСТЕМЫ МЕНЮ Цель работы: сформировать умения использования компонентов стандартных диалогов и системы меню, изучить основные свойства; сформировать умения по созданию процедур на основе событий компонентов. Формируемые компетенции: ОК 2. Организовывать собственную деятельность, выбирать типовые ме- тоды и способы выполнения профессиональных задач, оценивать их эф- фективность и качество. ОК 3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность. ОК 4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессиональ- ного и личностного развития. ПК 2.2. Программировать в соответствии с требованиями технического задания. ПК 2.3. Применять методики тестирования разрабатываемых приложе- ний. В результате освоения практических заданий обучающийся должен уметь: использовать языки программирования, строить логически пра- вильные и эффективные программы знать: объектно-ориентированную модель программирования, основные алгоритмические конструкции. Материально-техническое обеспечение занятия: персональный компьютер, среда программирования Visual Studio. Практические задания и методические указания Задание: Разработать приложение SimpleNotepad, представляющее собой простейший текстовый редактор. Использовать в приложении компонент для работы с меню и стандартные окна диалога. 1. Запустите среду программирования VisualStudio. Создайте новое Прило- жение WindowsForms. Имя проекта и приложения SimpleNotepad. 2. Измените свойство Name формы на SimpleNotepadForm. 3. Перейдите в окно Обозреватель решений и переименуйте файл Form1.cs на SimpleNotepadForm.cs. 4. Измените размеры окно формы. Измените заголовок окна на РедакторSim- pleNotepad. 5. Добавьте в окно приложения элемент управления MenuStrip. 6. В поле Вводить здесь меню введите строку &File. В результате в окне при- ложения появится меню File. Обратите внимание, что первая буква в назва- нии подчеркнута. Это получилось потому, что перед ней стоит префикс &. 43 Этим префиксом отмечается буква, предназначенная для ускоренного выбо- ра меню при помощи клавиатуры. 7. Создайте меню File в соответствии с рисунком. Для вставки разделительной черты необходимо вызвать контекстное меню и выбрать команду Separator. 8. Создайте меню Edit в соответствии с рисунком. В меню Edit реализованы стандартные функции приложения Блокнот. 9. Меню Format состоит только из одной строки Font, с помощью которой пользователь может изменить шрифт текста. 10. Меню Help состоит только из одной строк About. 11. Переименуйте идентификаторы меню и строк меню таким образом, чтобы с ними было удобнее работать в программе. Для этого в окне дизайнера фор- мы щелкните правой кнопкой мыши главное меню приложения и затем вы- берите из контекстного меню строку Правка DropDownItems. В окне Ре- дактор коллекций элементов отредактируйте имена меню и строк меню, изменив значение свойства Name соответствующего элемента. При этом ме- ню верхнего уровня должны называться menuFile, menuEdit, menuFormat, menuHelp. Имена строк формируются путем добавления к имени меню тек- ста, отображаемого в строке меню. Например, строка New называется men- uFileNew. 44 12. Запустите приложение. Убедитесь, что меню корректно отображается, и вы можете выбирать его строки. 13. Редактирование текста в приложении будет выполнять компонент Rich- TextBox. Перетащите компонент RichTextBoxс панели элементов в окно приложения. Задайте значение свойства Dock данного компонента равным Fill, для того чтобы он занимал все окно приложения. 14. Создайте обработчики событий, необходимые для выполнения таких функ- ций как создание нового документа, открытие и сохранение документа. 15. Добавьте на форму компонент OpenFileDialog с вкладки Диалоговые окна панели элементов. Выделите пункт меню Open... и дважды щелкните по нему левой кнопкой мыши, для того чтобы добавить обработчик события. В обработчик события добавьте следующий код для отображения диалогового окна открытия файла. 16. Выделите компонент openFileDialog1, на панели Свойства найдите свой- ство Filter и введите следующую строку RTF files|*.rtf|Text files|*.txt|All files|*.* 17. Добавьте на форму компонент SaveFileDialog с вкладки Диалоговые окна панели элементов. Выделите пункт меню SaveAs… и дважды щелкните по нему левой кнопкой мыши, для того чтобы добавить обработчик события. В обработчик события добавьте следующий код для отображения диалогового окна Сохранение файла. Этот код сохраняет текст введенный в элемент управления richTextBox, в текстовый файл в указанной папке. Метод ShowDialog отображает диалоговое окно, а затем с помощью поля DialogResult.OK осуществляется проверка нажата ли пользователем кнопка ОК. 18. Выделите компонент saveFileDialog1, на панели Свойства найдите свойство Filterи введите следующую строку RTFfiles|*.rtf, найдите свойство File- Name и задайте значение doc1.rtf 19. Добавьте в окно дизайнера форм компоненты PrintDocumet, PrintDialog вкладки Печать панели элементов. 45 20. Компонент PrintDocumet предназначен для вывода данных документа на принтер. Свойства компонента PrintDocumet описывают, как именно нужно распечатывать документ. В свойство DocumentName данного компонента запишите строку SimpleNotepadDocument. Эта строка будет идентифициро- вать документ при отображении состояния очереди печати. Значения остальных свойств оставьте без изменения. 21. С помощью компонента PrintDialog приложение выведет на экран стан- дартное диалоговое окно печати документа. Задайте для данного компонента значение свойства Document равным printDocument1. Этим обеспечивается связь компонента printDialog с компонентом PrintDocumet. 22. Для работы с классами, предназначенными для выполнения операций с по- токами и печати, добавьте в начало программы следующие строки: 23. Добавьте в классаSimpleNotepadForm поля m_myReader (для печати со- держимого редактора текста) и m_PrintPageNumber (номер текущей распе- чатываемой страницы документа). 24. Создайте обработчик события печати документа. Печать документа будет начинаться с первой страницы, поэтому в поле m_PrintPageNumber записывается значение 1. Далее выполняется чтение текущего содержимого окна редактирования текста в поток m_myReader класса StringReader. Далее задаются границы отступов на распечатываемой странице и отображается диалоговое окно печати документа. Если пользова- тель щелкает в этом окне кнопку OK, документ printDocument1 отправля- ется на печать методом Print. Далее ненужный более поток m_myReader за- крывается методом Close. 25. На данном этапе приложение еще не в состоянии распечатать документ. Причина этого в том, что приложение пока еще не знает, каким именно об- разом нужно печатать документ. 46 26. Чтобы в нашем приложении заработала функция печати, необходимо со- здать обработчик события PrintPage. Для этого нужно дважды щелкнуть ле- вой клавишей мыши значок компонента printDocument1. В тело обработчи- ка событий вставьте программный код из текстового файла Print.txt. Ком- ментарии в тексте обработчика событий PrintPage поясняют назначение от- дельных программных строк. Заметим, что для полного понимания дей- ствий, выполняемых нашим обработчиком событий, требуется предвари- тельное знакомство с графической подсистемой Graphics Device Interface Plus (GDI+), реализованной компанией Microsoft в рамках библиотеки классов .NET Framework. Пока же нужно отметить, что приложение распе- чатывает текст построчно в цикле. После завершения печати всех строк те- кущей страницы обработчик событий PrintPage печатает верхний и нижний колонтитулы, а также рисует горизонтальные линии, отделяющие текст ко- лонтитулов от текста документа. 27. Измените меню File, добавив пункт Exit, при выборе которого окно редак- тора текста должно быть закрыто. Добавьте обработчик события для данно- го пункта меню: 28. Однако при закрытии окно приложения возникает проблема: окно редактора текста будет закрыто и в том случае, если пользователь не сохранил сделан- ные им изменения. Чтобы решить эту проблему, нам нужно каким-то обра- зом отслеживать наличие изменений в окне редактирования текста. Опреде- лите в классе SimpleNotepadForm поле m_DocumentChanged, в котором будет храниться флаг, отмечающий изменения, сделанные пользователем в документе. В новом или только что загруженном документе изменений нет, поэтому начальное значение этого флага равно false. 29. Создайте обработчик события richTextBox1_TextChanged, выполнив двой- ной щелчок по компоненту richTextBox. Этот обработчик получит управле- ние, как только пользователь внесет любые изменения в содержимое редак- тируемого документа. 30. Если пользователь редактировал документ, а потом решил создать новый, выбрав из меню File строку New, изменения, внесенные в старый документ, могут быть потеряны. 31. Чтобы избежать этого, проверьте флаг m_DocumentChanged перед тем как очищать содержимое редактора текста. Если в редакторе есть не сохранен- ные изменения, необходимо выполнить сохранение документа. Отредакти- руйте код обработчика события пункта меню New следующим образом: |