МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Инженерная школа информационных технологий и робототехники Отделение автоматизации и робототехники Создание приложений Windows Forms ПРАКТИЧЕСКАЯ РАБОТА № 4 по дисциплине: Объектно-ориентированное программирование Томск – 2020 Цель лабораторной работы Научиться создавать приложения Windows Forms. Получить представление, из каких файлов состоит проект и их назначение. Получить опыт работы с основными компонентами Windows Forms: поле, метка, лист бокс, кнопка. Уметь создавать несколько форм. Уметь реализовывать взаимодействие двух классов. Описание лабораторной работы Для создания приложения WinForms необходимо создать проект CLR Empty Project (.NET Framework) Рисунок 1 – Создание нового проекта CLR Empty Project (.NET Framework) Далее, для создания Windows Form, необходимо выбрать Project -> Add New Item… Рисунок 2 – Добавление нового объекта в проект И в открывшемся окне выбрать UI -> Windows Form Рисунок 3 – Добавление Windows Forms в проект В создавшемся файле MyForm.cpp следует написать (заменив CLRProject1 на название вашего проекта): #include "MyForm.h" using namespace System; using namespace System::Windows::Forms; [STAThread] void Main(array<String^>^ args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); CLRProject1::MyForm form; Application::Run(%form); } После этого следует указать подсистему, для которой будет производиться сборка программы и наименование точки входа в программу (функция, которая будет выполняться при запуске программы): Рисунок 4 – Указание подсистемы для сборки программы Рисунок 5 – Указание точки входа при запуске программы Далее, открыв MyForm.h (дизайнер форм), можно просматривать и изменять содержимое формы в дизайнере форм (создавать / удалять компоненты, изменять их свойства): Рисунок 6 – Дизайнер форм Рисунок 7 – Окно свойств объектов Windows Forms Задание на лабораторную работу Вариант выбирается исходя из последней цифры зачетной книжки. 1. Разработать приложение для генерации паролей. На главной форме, находиться поле, в которое пользователь вводит длину пароля от 4 до 50 символов. Далее пользователь указывает, сколько из этого может быть символов латинского алфавита, сколько из этого может быть цифр, и прочих символов. К прочим символам относятся символы (@#+-()-+?). Причем при вводе заполнении два поля, третье должно заполняться автоматически. Например, всего 10 символов, 3 прочих, 3 цифр, значит символов 4. Предусмотреть сохранение всех сгенерированных паролей в лист бокс, который отображается в другой форме по нажатию на клавишу. 2. Разработать приложение для проверки правильности паспортных данных, г. Томска. Учитывая, что серия паспорт может быть от 69 01 до 6904. Номер паспорта от 100000 до 800000. Пользователь вводит номера паспортных данных. И каждый раз нажимает кнопку проверить. Результат должен отображаться в лист боксе, который располагается на второй форме, открываемой по кнопке. Красным помечаются неверные паспортные данные. 3. Разработать прототип приложения, для создания базы данных имен и фамилий. Пользователь вводит имя и фамилию и нажимает кнопку запомнить. Каждая новое имя и фамилия запоминается в соответствующем лист боксе, которые открываются в других формах. При вводе каждой новой фамилии или имени, приложение выводит сообщение, если эта фамилия или имя уже было добавлено в лист бокс. 4. Разработать приложение прототип загадок. Пользователь вводит в форму и нажимает кнопку «Загадать загадку». Вводит ответ в соответствующее поле. Приложение выводит сообщение верный ответ или неверный дал пользователь. Если пользователь не может отгадать загадку, более трех раз предусмотреть отображение подсказки – это значит, что правильный ответ показывается, при нажатии кнопки подсказка. Формирование базы загадок и ответов происходит в лист боксах, которые расположены на второй форме, открываемые по нажатию на клавишу и вводу пароля. Предусмотреть, чтобы при запуске приложения, в лист боксах были заполнены 2умя загадками и ответами на них. 5. Разработать приложение для игры в слова. Пользователь запускает приложение и нажимает кнопку «загадать слово», На форме появляется описание слова, а также поле для ввода слова заполненное звездочками. Причем, длина поля=количеству букв в загаданном слове. Пользователь вводит вместо звездочки букву, и нажимает кнопку «Проверить». Если эта буква верная, то звездочка меняется на букву. Необходимо учитывать, что за 1 раз можно проверить только 1 букву в слове. Ход отгадывания слова следует запоминать в лист боксе, отображаемой в другой форме, по нажатию на кнопку «Показать историю». 6. Разработать приложение для формирования кодов для штрих-кода. Пользователь вводит наименование товара из списка, для этого предварительно сформировать список и поставить в соответствие код каждому элементу списка, коды идут не последовательно. Затем указывает массу товара. Затем выбирает из списка страну-производителя. При нажатии на кнопку «Сформировать код», приложение должно сформировать код. Все операции одного сеанса работы приложения по формированию кодов должны сохраняться в лист боксе, в новом окне, которое можно открыть по нажатию на клавишу Q. Пример формирования кода: товар яблоки (код 254) 1кг, 370 гр. (код 1370), страна Испания (код 5). Код будет равен 5 254 1370 7. Разработать приложение для формирования заметок. Основная форма приложения содержит поле для текста с заметкой, поля со списком для ввода даты, год, день, месяц, час, минуты. Предусмотреть проверку даты, для того чтобы пользователь не ввел дату 31 февраля и т.д. Пользователь также может указать насколько срочной является его заметка, используя список «Срочность», содержащий значения: «Обычная», «срочная», «Очень срочная». После того как пользователь заполнил поля появляется кнопка «Оставить заметку», каждая новая заметка открывается в новом окне, причем в срочность заметки отображается при помощи цветов, цвета определить самостоятельно. 8. Разработать прототип приложения, для работы диспетчера такси. Диспетчер вводит, адрес, улица, из списка, дом – вручную, подъезд, время, место прибытия и дополнительные комментарии. Абонент, может назвать также диспетчеру место, например, ж.д вокзал, аэропорт и пр. В этом случае, адрес отправления не проставляется. После того как пользователь вводит адрес, появляется кнопка добавить. Заявки добавляются в лист бокс в соседней форме в очередности по времени. 9. Разработать прототип приложения для работы «Стиральной машины». Пользователь делает загрузку машины, и после этого нажимает кнопку «Загружено», кнопка должна окраситься в красный цвет (либо текст кнопки должен стать красным). При повторном нажатии на кнопку, она принимает обычный цвет. Далее пользователь выбирает режим стирки, из списка (либо бегунком), каждому режиму соответствует температура, однако пользователь может снизить температурный режим для каждого режима по желанию, путем вода своего значения. Для этого предусмотреть бегунок. После этого пользователь нажимает пуск. При нажатии на пуск, должна выполняться проверка, что «стиральная машина закрыта» = кнопка загружено нажата. После этого в течении 7 сек. Все кнопки становятся недоступными и появляется аварийная кнопка «Сброс». Если пользователь не нажимает кнопку сброс, то тогда через 7 сек. Появляется информация в новом окне «Стирка окончена». Приложение должно сохранять все данные в течение сеанса работы о выполняемых запусках стирки в лист боксе на новой форме, открываемой по нажатию на кнопку. 10. Разработать прототип приложения, обмена валюты. Пользователь загружает основную форму, на которой есть список с возможными валютами. Далее пользователь выбирает валюту, указывает из какой в какую валюту происходит конвертация и указывает в сумму, далее по нажатию клавиши вычисляется сумма к выдаче. Курсовые данные задаются во второй форме, которую можно открыть по паролю, также во второй форме отображается лист бокс, в котором указаны все выполненные операции за 1 сеанс работы приложения.