Экзаменационные вопросы МОиАИС
Язык программирования C#
2020-2021 учебный год
Семестр 2
Группа 115
Пример 1. v0.2. Создание компонента пользователя в C#.
Пример 1. v0.1. Создание компонента пользователя в C#.
Пример 2. v0.2. Компонент пользователя в C#: создание полей и методов.
Пример 2. v0.1. Компонент пользователя в C#: создание полей и методов.
Пример 3. youtube.com. Playlist. C# UI Design - User Controls.
Теоретические вопросы
1. Язык программирования высокого уровня общего назначения Visual C#. Общая характеристика: назначение и области применения. Виды приложений C#. Инструменты разработки. Возможности кроссплатформенной разработки. Стиль кодирования. Правила оформления кода.
2. Интегрированная среда разработки Visual Studio. Требования к аппаратным и программным средствам интегрированной среды разработки. Интерфейс среды разработки: характеристика, основные окна, инструменты, объекты. Форма и размещение на ней управляющих элементов. Панель компонентов и их свойства. Окно кода проекта. Состав и характеристика проекта. Выполнение проекта. Настройка среды и параметров проекта. Компиляция и запуск приложения.
3. Разработка оконного приложения. Структура проекта в Visual C#. Разработка функционального интерфейса приложения. Создание интерфейса приложения. Разработка функциональной схемы работы приложения. Создание функций обработки событий. Понятие точки входа программы.
4. Типы данных, переменные и константы в Visual C#. Синтаксис объявления, использование, размещение в памяти.
5. Операторы и компоненты ввода—вывода данных. Назначение, принципы использования, основные свойства.
6. Передача параметров по ссылке и по значению. Модификаторы ref и out. Область видимости переменных и других идентификаторов. Передача массива в качестве параметров, модификатор params.
7. Основные понятия объектно-ориентированного программирования. Жизненные циклы объектов. Состояние, событие, поведение. Правила переходов в состояния. Таблица переходов в состояния. Жизненные циклы связей, конкурирующие связи. Модель взаимодействия объектов. Модели процессов, процессы и потоки данных. Модель доступа к объектам. Объектно-ориентированный анализа.
8. Иерархия классов. Классы объектно-ориентированного языка программирования: виды, назначение, свойства, методы, события. Объявление класса, свойств и методов экземпляра класса. Наследование. Полиморфизм.
9. Инкапсуляция. Организация доступа к закрытым полям класса. Понятие интерфейса класса. Абстрактные классы. Статические классы. Способы создания объектов — экземпляров классов. Массивы объектов. Списки объектов. Виртуальные методы. Перегрузка методов. Вызовы методов. Статические методы.
10. Этапы разработки приложения. Проектирование объектно-ориентированного приложения. Разработка диаграммы состояний. Диаграмма прецедентов для оконного приложения. Создание интерфейса пользователя. Программирование приложения. Тестирование, отладка приложения. Создание документации.
11. Разработка программ на основе методологии объектно-ориентированного программирования. Создание классов. Объявление методов, свойств. Конструктор и деструктор. Обработчики событий. Реализация инкапсуляции, наследования, полиморфизма. Проектирование класса. Графическое представление класса. Члены класса: поля, конструкторы, методы. Модификаторы доступа.
12. Основные и дополнительные компоненты: кнопка, надпись, поле ввода, флажок, переключатель, поле со списком, полоса прокрутки, список с флажками, главное меню. Контейнер компонентов – объединение элементов. Компоненты панель инструментов и строка состояния. Набор вкладок. Отображаемые и неотображаемые компоненты. Свойства компонентов – элементов управления. Виды свойств. Синтаксис определения свойств. Категории свойств. Назначение свойств и их влияние на результат. Управление объектом через свойства. События элементов управления, их сущность и назначение. Создание компонентов пользователя.
13. Визуальное событийно-управляемое программирование. Типы событий. Создание функций на основе событий. Функции, определённые пользователем: синтаксис, передача аргументов. Вызов событий. События от мыши и клавиатуры. Событие Click. Добавление обработчика. Аргументы, передаваемые в параметры обработчика.
14. Форма и модуль как взаимосвязанные компоненты приложения. Модуль формы, структура модуля, заготовка модуля формы. Добавление формы в проект. Свойства и события формы. Обработка событий формы. Передача фокуса между формами. Сворачивание, сокрытие и закрытие окна приложения.
15. Возможности Visual C# по организации и использованию диалогов, диалоговых окон. Диалоговые окна открытия и сохранения файлов, установки шрифта, выбора основного и фонового цветов. Использование масок для списка обрабатываемых файлов. Окна вывода сообщений и ввода данных. Создание пользовательских диалоговых окон.
16. Класс исключений. Стандартные механизмы обработки исключений. Блок try ... catch ... finally. Примеры обработки исключений.
17. Тестирование и отладка приложений. Тестирование корректности ввода данных. Автоматизация тестирования. Составление тестовых наборов данных. Программа для генерации тестовых наборов данных.
18. Шаблоны проектирования. Классификация шаблонов проектирования. Шаблоны генерации. Структурные шаблоны. Шаблоны поведения. Шаблон модель, представление, контроллер.
Практика (одна из задач)
1. Создать проект, позволяющий сохранять произвольный текст в текстовом файле с указанным пользователем именем. Загружать текст из файла.
2. Создать проект, позволяющий сохранять текст, набранный в текстовом окне в файле данных, очищать текстовое окно и загружать в него сохраненный текст.
3. Создать проект, позволяющий построить треугольник по координатам вершин.
4. Имеется десять флажков. Создать проект, позволяющий сохранять состояние флажков, обнулять и восстанавливать сохраненное состояние.
5. Организовать анимацию процесса движения шарика по окружности.
6. Создать проект, реализующий часы с «будильником».
7. Проект содержит три текстовых окна. Используя буфер обмена, организовать обмен информацией между приложениями.
8. Создать проект, позволяющий добавлять записи в простой список и удалять их.
9. Построить на экране правильный N-угольник. Количество вершин и радиус окружности, на которой они расположены, указываются пользователем.
10. Построить график функции в выбранной пользователем системе координат.
11. Составить программу, генерирующую цвет по трем его составляющим (красный, зеленый, синий).
12. Составить программу, моделирующую работу светофора.
13. Написать программу, моделирующую движение броуновской частицы.
14. На форме имеется десять командных кнопок (пронумерованных от 1 до 10) и графический контейнер. При нажатии на одну из кнопок в контейнере должно появиться соответствующее римское число.
15. Разработать программу в Visual C#, позволяющую заполнять двумерный массив с указанным пользователем количеством срок и столбцов и находить среднее арифметическое в каждой строке и в каждом столбце.
16. Разработать проект, моделирующий арифметический калькулятор. Калькулятор должен выполнять следующие операции: сложение, вычитание, умножение, деление, возведение в квадрат и извлечение квадратного корня как для целых, так и для вещественных чисел.
17. Создать проект, моделирующий работу секундомера. Секундомер должен иметь циферблат с минутной и секундной стрелками, метку и одну командную кнопку.
18. Разработайте проект, имитирующий работу простейшего графического редактора.
19. Разработать компонент «Переключатель», имеющий пять стационарных состояний. Компонент должен иметь свойство для установки состояния и обрабатывать событие, связанное с выбором другого состояния.
20. Разработать класс, объекты которого обладают методами, позволяющими вывести на экран анимацию вращающегося шарика. Координата точки – оси вращения, скорость вращения, радиус вращения и направление вращения задаются.
21. Программа должна выводить в консоль натуральные числа от 1 до N, где N - константа, заданная в программе.
22. Вывести в консоли числа от 1 до N. Задать N через параметры командной строки. Выполнить компиляцию программы с помощью утилиты csc.exe.
23. Создать простое оконное приложение с обработчиком событий от кнопки. Используйте 2 кнопки Button Start и Stop, 1 надпись Label. При щелчке по 1-й кнопке выводится надпись "Start", а при щелчке по второй - надпись "Stop". В отчете нарисуйте эскиз оконного интерфейса приложения и запишите текст обработчиков кнопок.
24. В приложении 5 кнопок, при щелчке по каждой кнопке в окне на компоненте pictureBox рисуется одна фигура: линия, прямоугольник, треугольник, эллипс, дуга.
25. Создать приложение виртуальной реальности в среде Unity 3D с применением скриптов на языке C#.
26. На основе примера приложения создать мобильное приложение виртуальной реальности в среде Unity 3D с применением языка C#.
27. Разработать класс, объекты которого фиксируют время своего существования.
28. Программа загружает выбранный рисунок. Доработать программу, дополнив галереей миниатюр.
29. Разработать компонент, предлагающий интерфейс для отображения одномерного массива и имеющий методы для заполнения, очистки и сортировки.
30. Разработать и протестировать экспортируемый компонент по следующей задаче. Создать проект, позволяющий добавлять записи в простой список и удалять их.
31. Разработать и протестировать экспортируемый компонент по следующей задаче. Разработать класс, объекты которого обладают методами, позволяющими заполнить одномерный массив случайными неповторяющимися числами, вывести его на экран и упорядочить.
32. Модифицировать компонент однострочного поля ввода. Проект inttextbox.
33. Используя объектно-ориентированный подход, написать программу, моделирующую движение броуновских частиц.
34. Разработать компонент «Таймер», выводящий время, прошедшее с момента запуска таймера. Компонент должен иметь метод, возвращающий текущее время, обрабатывать событие, связанное с включением и выключением таймера и метод, обнуляющий таймер.
35. Описать класс, объекты которого связываются с текстовыми окнами, хранят введенную пользователем в окно информацию, обладают методом сортировки символов в текстовых окнах в алфавитном порядке и методом восстанавливающим текст в окне после сортировки.
36. Разработать компонент, представляющий собой окно, в котором можно рисовать окружности. Компонент должен иметь свойство, определяющее цвет «графического пера».
37. Разработать компонент, предлагающий интерфейс для ввода данных и вывода решения квадратного уравнения.
38. Разработать класс, объекты которого обладают методами, позволяющими вывести на экран в любую его точку правильный многоугольник произвольного размера с произвольным количеством вершин. Разработать экспортируемый компонент. Создать приложение для тестирования компонента.
39. Разработать класс, объекты которого обладают методами, позволяющими вывести на экран график функции. График должен выводиться в прямоугольную область указанного размера. Объект должен иметь свойство, определяющее величину единичного отрезка. Разработать экспортируемый компонент. Создать приложение для тестирования компонента.
40. Разработать класс, объекты которого изображают сектор. Объект должен иметь свойство, определяющее центральный угол, цвета заливки и контура. На основе этого класса, создать класс, объекты которого изображают круговую диаграмму. Разработать экспортируемый компонент. Создать приложение для тестирования компонента.
41. Решить следующую задачу с помощью циклов и указателей на экземпляры класс CheckBox. Имеется десять флажков. Создать проект, позволяющий сохранять состояние флажков, обнулять и восстанавливать сохраненное состояние.
42. В окне приложения разместите в столбик 5 кнопок с надписями button1, ..., button5. С помощью цикла foreach выведите номера кнопок. Цикл выполняется в обработчике 1-й кнопке. Объясните полученный результат.