
- •Теоретические сведения: Проблемы разработки современных ис
- •Решение проблем разработки информационных систем в .Net
- •Общеязыковая исполняющая среда (Common Language Runtime)
- •Утилиты .Net Framework
- •Основные утилиты .Net Framework
- •Утилиты .Net Framework для отладки приложений
- •Утилиты .Net Framework по работе с защитой приложений
- •Утилиты .Net Framework для настройки и установки приложений
- •Сборки в среде clr
- •1 Общие сведения о сборках
- •2 Содержимое сборок
- •3 Манифест сборки
- •4 Размещение сборок
- •Visual Studio .Net – открытая среда разработки.
- •Среда Microsoft Visual c# 2005 Express Edition
- •Структура программы в c#.
- •Пример 1. Программа FirstProject
- •Пространство имен.
- •Создание и запуск проекта.
- •Практична робота № 2 Введення в Windows Forms
- •Ход работы (первой части лабораторного занятия).
- •Теоретические сведения:
- •Создание Windows-приложений
- •Окно кода программы
- •Роль класса Application
- •Свойства проекта
- •Запуск приложения
- •Что такое форма
- •Windows Forms в технологии .Net
- •Функциональные возможности класса Form
- •Цикл существования объекта Form
- •Диалог MessageBox
- •Закрытие формы (Выход из формы)
- •Создание mdi-приложений.
- •Стандартный делегат
- •1 Часть
- •2 Часть
- •Теоретические сведения.
- •Форматирование строки вывода.
- •Консольный ввод.
- •Расширяющее преобразование.
- •Сужающее преобразование
- •Метод Parse().
- •Класс System.Environment. Окружение.
- •Система типов
- •Простые (элементарные) типы
- •Перечисления
- •Структуры
- •Язык xml
- •Практична робота № 4 Огляд мови с #. Змінні. Структури мови Цель: освоить синтаксис языка программирования с#, закрепить практически использование структур языка. Ход выполнения работы:
- •Теоретические сведения. Базовый синтаксис с#
- •Литералы. Представление значений.
- •Арифметические литералы
- •Логические литералы
- •Символьные литералы
- •Символьные управляющие последовательности.
- •Строковые литералы
- •Переменные.
- •Объявление и инициализация.
- •Область видимости.
- •Константы
- •Операции и выражения
- •Контроль за переполнением. Checked и unchecked.
- •Операция is
- •Операция as
- •Особенности выполнения арифметических операций
- •Особенности арифметики с плавающей точкой
- •Управляющие операторы
- •Теоретические сведения: Иерархия классов. Понятие класса управляющих элементов.
- •Класс Control
- •Элемент управления TextBox
- •Класс Button
- •Элемент управления CheckBox
- •Переключатели и группирующие рамки
- •Элемент управления CheckedListBox
- •Комбинированные списки
- •Управляющий элемент ImageList
- •Элемент управления MonthCalendar
- •Элемент управления Panel
- •Порядок перехода по Tab
- •Форматирование элементов управления
- •Свойства Anchor и Dock
- •Всплывающие подсказки (ToolTips)
- •Создание меню
- •Главное меню.
- •Контекстное меню
- •Создание строки состояния
- •Создание пользовательского диалогового окна.
- •Стандартные диалоговые панели общего назначения.
- •II Задание Expression в таблице, используя визуальные средства разработки.
- •Теоретические сведения:
- •1 Класс DataSet.
- •1.1 Класс DataTable (таблицы)
- •1.1.1 Столбцы (объект Columns).
- •1.1.2 Строки (объект Row)
- •Добавление данных.
- •Заполнение полей.
- •Изменение данных.
- •Состояния строки.
- •Обработка событий
- •Привязка DataTable к некоторым элементам управления.
- •1.1.3 Ограничения (объект Constraints)
- •1.1.4 Представление (объект DataView).
- •1.2 Класс DataRelation (связи между таблицами)
- •2 Просмотр данных. Класс DataGridView.
- •Источники данных (DataSource).
- •2.1.1 Отображение данных из массива
- •2.1.2 Отображение данных из DataTable
- •2.1.3 Отображение данных из DataView
- •2.1.4 Отображение данных из класса DataSet
- •2.1.5 Отображение данных из массива
- •2.2 Привязка данных (DataBinding).
- •Простая привязка.
- •Объекты привязывающие данные (BindingContext)
- •3 Схемы xml.
- •3.1 Пример использования xml-формата для взаимодействия с xml Web-службами:
- •3.2 Ado.Net 2.0 тесно интегрировано с xml.
- •4 Xsd (xml Structure Defenitions) схема.
- •4.1 Описание.
- •4.2 Основные элементы
- •4.3 Использование Visual Studio 2005 .Net
- •4.3.1. Загрузка схем и данных в DataSet
- •4.3.2 Запись схемы и данных из DataSet
- •Практична робота № 7 Використання масивів і їх методів в c # Цель: овладеть возможностью использования массивов, строк и их методов.
- •Массив.
- •Объявление массивов Объявление одномерных массивов
- •Многомерные массивы
- •Пример использования массивов.
- •Массивы массивов
- •Встроенный сервис по обслуживанию массивов
- •Практична робота № 8 Використання колекцій в c # Цель: овладеть возможностью использования коллекций.
- •Коллекции.
- •ArrayList. Массив-список.
- •Практична робота № 9 Об'єкти і класи в с # Цель: четко разграничить понятия класса, объекта.
- •Поля класса
- •Методы класса
- •Объект.
- •Конструктор.
- •Деструктор.
- •Операция new
- •Вложенные классы.
- •Ссылки как параметры.
- •Оператор is
- •Оператор as
- •Переменные только для чтения и константы.
- •Ключевое слово static.
- •Практична робота № 10 Успадкування. Інкапсуляція. Поліморфізм Цель: практически освоить основные принципы ооп. Ход работи:
- •1 Часть. Изучение принципов наследования и инкапсуляции.
- •2 Часть. Изучение принципа полиморфизма.
- •Теоретические сведения.
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Виртуальные методы и работа с ними в производных класах.
- •Интерфейсы.
- •Практична робота № 11 Робота з файлами в с # Цель: овладеть возможностью считывания/записи данных из/в файл.
- •Потоки: байтовые, символьные, двоичные
- •Общая характеристика классов потоков
- •Класс Filestream
- •Открытие и закрытие файла.
- •Копирование файла.
- •Файловый ввод–вывод с ориентацией на символы.
- •Пример использования StreamWriter.
- •Пример использования StreamReader.
- •Пример перенаправления потоков.
- •Основні поняття, що використовуються при проектуванні діалогу.
- •Основна термінологія, що використовується при проектуванні вікон. Визначення вікон, типи вікон.
- •Спосіб проектування інтерфейсу користувача з орієнтацією на дані.
- •Спосіб проектування інтерфейсу користувача з орієнтацією на документи.
- •Вибір моделі інтерфейсу.
- •Розробка вікна.
- •Теоретичні відомості.
- •Поле вибору: визначення, стан, типи.
- •Поле вибору: представлення об’єктів, ідентифікація поля.
- •Поле вибору: курсор вибору, виділення обраного об’єкту, недоступність об’єкту вибору, черговість розташування, елементи настроювання.
- •Взаємодія користувача з полями вибору, первісні представлення, вхідний стан.
- •Поле введення: визначення, ідентифікація, роздільники, шрифт, правила читабельності.
- •Теоретичні відомості. Меню дій, спадаюче меню: призначення, розташування, обов’язкові опції, число опцій.
- •Послідовність опцій курсору.
- •Елементи настроювання і виклик опцій.
- •Особливості режимів роботи для одного користувача і багатьох користувачів.
- •Спливаюче меню.
- •Область функціональних клавіш.
- •Теоретичні відомості.
- •Область команд: розміщення, зміст, використання, правила запиту дії “Команда”.
- •Правила для дій “Витяг команди”, правила для дії “Підказка”.
- •Співвідношення між областю команд і меню дій.
- •Практична робота № 16 Створення графічних додатків в с #
- •Практична робота № 17 Створення графічних примітивів
Встроенный сервис по обслуживанию массивов
Массивам соответствует свой класс System.Array, который позволяет с ними работать. Этот класс характеризуется специальным набором свойств и методов для создания, управления, поиска, и сортировки, элементов массива представленных в таблице 7.1.
Для использования свойств операнд принимает вид:
Имя_массива. Свойство;
Для использования методов оператор:
Array. Метод(параметры);
либо Имя_массива. Метод(параметры);
Таблица 7.1. Набор свойств и методов для работы с массивами.
Название |
Описание |
Свойство Length |
Возвращает целое число представляющее общее количество элементов во всех измерениях массива. |
Свойство Rank |
Возвращает целое число представляющее количество измерений (размерность) массива. |
Метод Array CreateInstance() |
Статический метод (один из вариантов), создаёт массив элементов заданного типа и определённой размерности. |
Метод GetLength () |
Возвращает количество элементов в указной размерности массива. |
Метод SetValue() |
Присваивает элементу массива значение, представленное первым параметром (один из вариантов). |
Метод GetValue() |
Извлекает значение из двумерного массива по индексам (один из вариантов). |
Метод Sort() |
Позволяет сортировать одномерный массив, массив передается как параметр |
Метод Clear() |
Устанавливает элементы массива в 0 для массивов, содержащих значения, null – содержащих ссылки, false – логического типа |
Метод Clone() |
Для создания копии массива, при этом копируются лишь ссылки, сами объекты копироваться не будут |
Практична робота № 8 Використання колекцій в c # Цель: овладеть возможностью использования коллекций.
Ход работи:
Написать следующие программы:
Создать коллекцию типа ArrayList и вывести ее содержимое используя перечислитель IEnumerator. (TestArrayList)
Создать коллекцию типа SortedList и вывести определенный элемент по ключу и по индексу. (TestSortedList)
Создать коллекцию типа Stack с тремя значениями. Вывести на экран содержимое стека и первый доступный элемент. (TestStack)
Используя коллекцию Dictionary, написать программу, которая при вводе цифры в виде строки выводила ее эквивалент в виде цифры. (UsingDictionary)
Теоретические сведения.
Коллекции.
В C# поддерживаются структуры данных, состоящие из групп однотипных объектов.
Все коллекции хранятся в классе System.Collections.
ArrayList. Массив-список.
Представляет собой упорядоченную коллекцию объектов, доступ к которым можно получить, используя индекс. Очень похож на массив, за исключением того, что он имеет возможность расширения. Эта структура данных представляет собой класс System.Collections.ArrayList.
Простейшая форма создания экземпляра этого класса:
//создается объект ArrayList емкостью 16 ссылок
ArrayList myArrList = new ArrayList();
Обратим внимание, что:
//создается объект ArrayList емкостью 20 ссылок
ArrayList myArrList = new ArrayList(20);
//устанавливаем емкость объекта ArrayList непосредственно после обычного создания экземпляра, используя свойство:
myArrList.Capacity = 25;
Изменение емкости перемещает весь ArrayList в новый блок памяти указанного размера.
Изначально емкость ArrayList равна 16 элементов. Идея ArrayList состоит в том, что он может расти при необходимости. Когда добавляется 17-й элемент к ArrayList по умолчанию, то при этом создается новый объект ArrayList, который имеет вдвое большую емкость- то есть 32 элемента. Когда новый объект создан, содержимое исходного объекта копируется в этот новый экземпляр. После чего исходный объект ArrayList помечается для удаления сборщиком мусора. Аналогично он ведет себя, когда емкость задается самостоятельно.
Свойства ArrayList:
-
Наименование
Описание
Count
Количество элементов в ArrayList
Capacity
Емкость ArrayList
Методы ArrayList:
Наименование |
Описание |
Add() |
Добавляет новый элемент в конец коллекции |
AddRange() |
Добавляет в конец коллекции набор элементов из другой коллекции |
Remove |
Удаляет первое вхождение указанного объекта |
RemoveAt() |
Удаляет элемент по указанному индексу |
RemoveRange() |
Удаляет заданное количество элементов, начиная с указанного индекса |
Clear() |
Удаляет все элементы из коллекции |
Insert() |
Вставляет элемент в коллекцию по указанному индексу |
Sort() |
Для сортировки элементов |
Reverse() |
Меняет порядок элементов на противоположный |
TrimToSize() |
Устанавливает число возможных элементов в коллекции равным числу реально существующих элементов в этой коллекции |
Независимо от типа коллекции все перечислители порождены от интерфейса IEnumerator, который содержит два удобных метода: MoveNext() - который позволяет перейти на следующий элемент (первое использование осуществляет переход на первый элемент) и Reset() - который устанавливает перечислитель к исходной позиции.
SortedList.
Позволяет получить доступ к данным, как по ключу, так и по индексу.
Для доступа по индексу используется метод GetByIndex().
Queue.
Все предыдущие коллекции допускали доступ к элементам в произвольном порядке. Коллекция Queue обеспечивает исключительно последовательный доступ. Он осуществляется по принципу «первый пришел, первый ушел».
Методы Queue:
Наименование |
Описание |
Enqueue() |
позволяет добавить элемент в хвост очереди |
Dequeue() |
позволяет извлечь элемент из начала очереди |
Peek() |
можно прочитать значение элемента без удаления из очереди |
Contains() |
определяет, содержится ли элемент в очереди |
Stack.
Представляет собой структуру наподобие очереди. Элементы извлекаются из стека по принципу «последним пришел – первым ушел». Подходит для работы с элементами, которые рассматриваются, как временные и удаляются после использования в приложении.
Методы Stack:
Наименование |
Описание |
Push() |
позволяет добавить элемент в вершину |
Pop() |
извлекает элемент из вершины стека |
Peek() |
позволяет получить значение элемента в вершине стека без его извлечения |
Hashtable. Dictionary.
Коллекция Hashtable предназначена для хранения элементов в виде хэш-таблицы. При добавлении элемента в методе Add указывается два параметра – это ключ и элемент, который мы хотим добавить в таблицу. Хэш-таблицы гораздо быстрее позволяют произвести поиск элементов, чем ArrayList, но в то же время имеют меньше возможностей.
Dictionary и Hashtable представляют собой сложные структуры данных, позволяющие обеспечить доступ к элементам по ключу, который может быть любого типа.
Свойства:
Наименование |
Описание |
Keys |
список ключей коллекции |
Values |
список значений колекции |
Методы:
Наименование |
Описание |
Add() |
принимает два параметра – оба объектные ссылки (первая – ссылка на ключ, вторая – ссылка на данные) |
Remove() |
удаление элемента по указанному ключу |
ContainsKey() |
позволяет удостовериться в наличии ключа в хэш-таблице |
ContainsValue() |
позволяет проверить наличие определенного элемента |