
- •Теоретические сведения: Проблемы разработки современных ис
- •Решение проблем разработки информационных систем в .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 Створення графічних примітивів
Класс Filestream
В С# предусмотрены классы, которые позволяют считывать содержимое файлов и записывать в них информацию. Конечно же, дисковые файлы — самый распространенный тип файлов. На уровне операционной системы все файлы обрабатываются на побайтовой основе.
Чтобы создать байтовый поток с привязкой к файлу, используйте класс FileStream. Класс FileStream — производный от Stream и потому обладает функциональными возможностями базового класса. Помните, что потоковые классы, включая FileStream, определены в пространстве имен System.IO.
Следовательно, при их использовании в начало программы вы должны включить следующую инструкцию:
using System.IO;
Открытие и закрытие файла.
Для начала необходимо создать объект класса FileStream, выбрав наиболее подходящий конструктор. Самый распространенный:
FileStream(string filename, FileMode mode)
Например, FileStream fin = new FileStream("test.dat", FileMode.Open);
Значения FileMode enumeration, описывающие, каким образом операционная система должна открывать файл:
Имя члена |
Описание |
Append
|
Открывается существующий файл, и выполняется поиск конца файла, или же создается новый файл. FileMode.Append можно использовать только вместе с FileAccess.Write. Любая попытка чтения заканчивается неудачей и создает исключение ArgumentException. |
Create
|
Описывает, что операционная система должна создавать новый файл. Если файл уже существует, он будет переписан. Это требует FileIOPermissionAccess.Write и FileIOPermissionAccess.Append. System.IO.FileMode.Create эквивалентно следующему запросу: если файл не существует, использовать CreateNew; в противном случае использовать Truncate. |
CreateNew
|
Описывает, что операционная система должна создать новый файл. Это требует FileIOPermissionAccess.Write. Если файл уже существует, создается исключение IOException. |
Open
|
Описывает, что операционная система должна открыть существующий файл. Возможность открыть данный файл зависит от значения, задаваемого FileAccess. Если данный файл не существует, создается исключение System.IO.FileNotFoundException. |
OpenOrCreate
|
Указывает, что операционная система должна открыть файл, если он существует, в противном случае должен быть создан новый файл. Если файл открыт с помощью FileAccess.Read, требуется FileIOPermissionAccess.Read. Если файл имеет доступ FileAccess.ReadWrite и данный файл существует, требуется FileIOPermissionAccess.Write. Если файл имеет доступ FileAccess.ReadWrite и файл не существует, в дополнение к Read и Write требуется FileIOPermissionAccess.Append . |
Truncate
|
Описывает, что операционная система должна открыть существующий файл. После открытия должно быть выполнено усечение файла таким образом, чтобы его размер стал равен нулю. Это требует FileIOPermissionAccess.Write. Попытка чтения из файла, открытого с помощью Truncate, вызывает исключение. |
Если необходимо ограничить доступ только чтением или только записью, используйте следующий конструктор:
FileStream(string filename, FileMode mode,FileAccess how)
Где FileAccess enumerations определяет доступ к файлу:
Члены перечисления |
Описание |
Read |
Read access to the file. Data can be read from the file. Combine with Write for read/write access. |
ReadWrite |
Read and write access to the file. Data can be written to and read from the file. |
Write |
Write access to the file. Data can be written to the file. Combine with Read for read/write access. |
Например,
FileStream fin = new FileStream("test.dat",FileMode.Open,FileAccess.Read)
По завершении работы с файлом его необходимо закрыть. Для этого достаточно вызвать метод Close(). При закрытии файла освобождаются системные ресурсы, ранее выделенные для этого файла, что дает возможность использовать их для других файлов. Метод Close() может генерировать исключение типа lOException.
fin.Close();
В классе FileStream определены два метода, которые считывают/записывают байты из файла:
ReadByte() / WriteByte() - чтобы прочитать/записать из файла один байт
Read () / Write() - чтобы считать/записать блок байтов.
При выполнении операции вывода в файл выводимые данные зачастую не записываются немедленно на реальное физическое устройство, а буферизируются операционной системой до тех пор, пока не накопится порция данных достаточного размера, чтобы ее можно было всю сразу переписать на диск. Такой способ выполнения записи данных на диск повышает эффективность системы. Например, дисковые файлы организованы по секторам, которые могут иметь размер от 128 байт. Данные, предназначенные для вывода, обычно буферизируются до тех пор, пока не накопится такой их объем, который позволяет заполнить сразу весь сектор.
Но если вы хотите записать данные на физическое устройство вне зависимости от того, полон буфер или нет, вызовите следующий метод Flush ():
void Flush()
// Запись данных в файл.
class WriteToFile
{
public static void Main(string[] args)
{
FileStream fout;
// Открываем выходной файл
try
{
fout = new FileStream("test.txt", FileMode.Create);
}
catch (IOException exc)
{
Console.WriteLine(exc.Message + "Ошибка при открытии выходного файла.");
return;
}
// Записываем в файл алфавит,
try
{
for (char с = 'А'; с <= 'Я'; с++) fout.WriteByte((byte)с);
}
catch (IOException exc)
{
Console.WriteLine(exc.Message + "Ошибка при записи в файл.");
fout.Close();
}
}
}
Эта программа сначала открывает для вывода файл с именем test.txt . Затем в этот файл записывается алфавит английского языка, после чего файл закрывается.
Обратите внимание на то, как обрабатываются возможные ошибки с помощью блоков try/catch.