Вариант 1 Первоначально в окне программы в случайном месте появляется кнопка. Затем через каждую секунду в программе происходит 2 действия: - все имеющиеся на экране кнопки перемещаются в случайно определяемые позиции; - в окне в случайном месте возникает еще одна кнопка. Все кнопки в приложении первоначально имеют размер 100x100 пикселей. При этом кнопки видны в клиентской области окна. Кнопки относятся к 3-м категориям – «растущие», «уменьшающиеся» и «исчезающие»ями. При щелчке по «растущей» кнопке ее высота и ширина изменяются на 2 пиксела, центр кнопки остается на месте. Надпись на кнопке – «+». При щелчке по «уменьшающейся» кнопке ее высота и ширина изменяются на 2 пиксела пока ее размер не станет 50x50 пикселей, центр кнопки остается на месте. Надпись на кнопке – «-». При щелчке по «пропадающей» кнопке она пропадает. Надпись на кнопке – «x». Программа завершается, когда в окне имеется 10 кнопок. Различия в поведении кнопок реализовать с помощью полиморфизма. Вариант 2 Первоначально на форме 2 поля ввода для определения количества строк и столбцов, соответственно, и кнопка «ОК». При нажатии на кнопке сначала из окна исчезают все элементы. Затем клиентская область окна полностью заполняется матрицей кнопок одинакового размера. Количество строк и столбцов определяется соответствующими полями ввода. На каждой кнопке первоначально содержится латинская буква «A». Кнопки в окне делятся на категории: - кнопки, имеющие 8 кнопок-соседей; - кнопки, имеющие 5 кнопок-соседей; - кнопки, имеющие 3 кнопок-соседей; При щелчке по кнопке 1-й категории надпись на ней изменяется на следующую букву «закольцованного» латинского алфавита. При щелчке по кнопке 2-й категории надпись на ней изменяется на предыдущую букву «закольцованного» латинского алфавита. При щелчке по кнопке 3- категории надпись на ней не изменяется. Кроме того, щелчок по каждой кнопке добавляет ее надпись в заголовок окна. Различия в поведении кнопок реализовать с помощью полиморфизма. Вариант 3. Окно приложения имеет фиксированный размер 500x500 пикселей. В окне появляется 12 кнопок, имитирующих циферблат часов. Все кнопки одинакового размера. Их центры размещены на окружности с центром в центре окна. Надписи на кнопках – цифры на циферблате 4-х категорий – «утро», «день», «вечер» и «ночь» (разбиение по категориям – на Ваше усмотрение). Щелчок по кнопке «утро» выводит в заголовок окна некоторую фразу «утреннего» содержимого, щелчок по кнопке «день» выводит в заголовок окна некоторую фразу «дневного» содержимого и т.д.. Кроме того, щелчок по кнопкам 1-6 – меняет на кнопках надпись на соответствующую римскую, а щелчок по кнопкам 7-8 меняет на кнопках надпись на слово, соответствующее числу. Различия в поведении кнопок реализовать с помощью полиморфизма. Вариант 4. Первоначально на форме фиксированного размера 400х400 появляется две радиокнопки с надписями «квадрат» (первоначально включено) и «окружность» выбрал и кнопка «OK». После нажатия пользователя кнопку все эти элементы исчезают из виду. Однако программа в этот момент создает 18 кнопок размером 20x20 пикселей, которые пока не видны на форме. Если на первом этапе пользователь «квадрат», то кнопки равномерно размещаются по периметру формы. Если он выбрал «окружность» то на окружности с центром в центре формы. Теперь пользователь может щелкать по форме. Если его щелчок приходится по месту, где «спряталась» кнопка, то эта кнопка появляется. Таким образом пользователь должен показать все кнопки. Только после этого кнопки начинают «работать». Кнопки на «квадрате» после щелчка окончательно пропадают. Кнопки на «окружности» - становятся недоступными. Различия в поведении кнопок реализовать с помощью полиморфизма. Вариант 5. В окне приложения первоначально появляются 4 поля ввода, относящиеся к двум категориям: Если пользователь вводит в поле ввода первой категории символ, соответствующий латинской букве, то этот символ в строке появляется дважды. Если пользователь вводит в поле ввода второй категории символ, соответствующий цифре, то в поле ввода кроме этого символа появляется слово, соответствующее этой цифре. Когда строка, содержащаяся в поле ввода, становится длиннее 50 символов, такое поле ввода меняет свое поведение, независимо от категории: при вводе любого символа в строке исчезает первый символ. Различия в поведении полей ввода реализовать с помощью полиморфизма. Вариант 6. При запуске приложение показывает окно фиксированного размера с квадратной областью 500х500. Ее поверхность полностью закрывает матрица квадратных кнопок 50х50. Эти кнопки принадлежат к 2-м категориям – 25 кнопок-«картинок» и 25 кнопок-«букв». Первоначальное их расположение – случайно. На кнопке-букве отображается одна буква латинского алфавита, причем конструктор генерирует эту букву случайным образом. Кнопка-картинка не содержит надписи, но закрашена в один из цветов палитры («Каждый Охотник Желает Знать Где Сидит Фазан»). Конструктор генерирует цвет случайным образом. Щелчок по кнопке-букве меняет надпись на следующую букву (если дошли до 'z' – останавливаемся). Щелчок по кнопке-картинке удаляет эту кнопку, если перед этим был щелчок по кнопке-букве. Различие в поведении кнопок реализовать с помощью полиморфизма. Вариант 7. Первоначально в окне приложения размещаются одно под другим 10 длинных (ширина – 400 пикселей) полей ввода. Каждое из них содержит 5 слов из фиксированного набора 20 слов, заданного программистом. Первоначальный состав слов случаен и формируется конструктором класса кнопки. Поля ввода относятся к двум категориям – «гласные» и «согласные». Если пользователь вводит в «гласное» текстовое поле гласную букву латинского алфавита, она добавляется к содержимому. Другие вводимые символы блокируются. Если пользователь вводит в «согласное» текстовое поле согласную букву латинского алфавита, она добавляется к содержимому. Другие вводимые символы блокируются. Различие в поведении кнопок реализовать с помощью полиморфизма. Вариант 8. С помощью возможностей Windows Forms реализовать программу, позволяющую пользователю играть в судоку. Визуальный интерфейс представлен квадратной матрицей кнопок 9x9. Первоначальное заполнение можно реализовать любым способом. Вариант 9. С помощью возможностей Windows Forms реализовать программу, позволяющую пользователю решать задачу "Ханойские башни". Стеки в игре можно реализовать в виде кнопок разной ширины. Вариант 10. В окне приложения располагается квадратная матрица кнопок N*N, где N - размер окна - вводится пользователем в начале работы программы. На кнопках изображаются целые числа от 1 до N*N. Пользователь имеет возможность переставлять местами кнопки (или надписи на них) с целью создать магический квадрат. Программа должна сообщать об этом в случае успеха. Вариант 11. В окне приложения располагается квадратная матрица кнопок N*N, где N - размер окна - вводится пользователем в начале работы программы. На кнопках изображаются целые числа или знаки арифметических операций + - * и :. Таким образом строки и столбцы матрицы могут представлять правильное выражение. Программа позволяет пользователю изменять надпись на кнопке. Программа вычисляет и показывает значения правильных выражений справа от строки и снизу от столбца. Вариант 12. В окне программы размещаются визуальные элементы, имитирующие интерфейс мобильного телефона: - кнопки для набора телефона; - кнопка "Начать разговор" и "Завершить разговор". Если набранный телефон является номером, зарегистрированным в памяти телефона, можно совершить звонок. Фиксировать время каждого звонка. В течение работы программы пользователь может выводить в консольный экран протокол использования телефона. Вариант 13. Реализовать оконное приложение, визуально отображающее простые методы сортировки массива: пузырьковая, выбором, вставками. Сортируемый массив показать в виде массива кнопок. Каждый такт сортировки показывать максимально наглядно. Вариант 14. Реализовать оконное приложение, позволяющее пользователю разгадывать классический кроссворд. Заполнение кроссворда осуществляется на основе какого-нибудь реального кроссворда. Вариант 15. Реализовать оконное приложение, позволяющее пользователю разгадывать черно-белый японский кроссворд. Заполнение кроссворда осуществляется на основе какого-нибудь реального кроссворда.