
- •Теоретические сведения: Проблемы разработки современных ис
- •Решение проблем разработки информационных систем в .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 Створення графічних примітивів
Пример использования StreamWriter.
Рассмотрим простую утилиту, которая считывает строки текста, вводимые с клавиатуры, и записывает их в файл test.txt. Текст считывается до тех пор, пока пользователь не введет слово "стоп". Здесь используется объект класса FileStream, помещенный в оболочку класса StreamWriter для вывода данных в файл.
public static void Main(string[] args)
{
string str;
FileStream fout = new FileStream("test.txt", FileMode.Create);
StreamWriter fstr_out = new StreamWriter(fout);
Console.WriteLine("Введите текст 'стоп' для завершения).");
do
{
Console.Write(": ");
str = Console.ReadLine();
if (str != "стоп")
{
str = str + "\r\n"; // Добавляем символ новой строки,
try
{
fstr_out.Write(str);
}
catch (IOException exc)
{
Console.WriteLine(exc.Message + "Ошибка при работе с файлом.");
return;
}
}
} while (str != "стоп");
fstr_out.Close() ;
}
Пример использования StreamReader.
Следующая программа считывает текстовый файл test.txt и отображает его содержимое на экране.
public static void Main(string[] args)
{
string s;
FileStream fin = new FileStream("test.txt", FileMode.Open);
StreamReader fstr_in = new StreamReader(fin);
// Считываем файл построчно
while ((s = fstr_in.ReadLine()) != null)
{
Console.WriteLine(s);
}
fstr_in.Close();
}
Пример перенаправления потоков.
Такие стандартные потоки, как Console.In, можно перенаправлять. Безусловно, чаще всего они перенаправляются в какой-нибудь файл. При перенаправлении стандартного потока входные и/или выходные данные автоматически направляются в новый поток. При этом устройства, действующие по умолчанию, игнорируются. Благодаря перенаправлению стандартных потоков программа может считывать команды из дискового файла, создавать системные журналы или даже считывать входные данные с сетевых устройств.
Перенаправить стандартный поток можно двумя способами. Во-первых, при вы- полнении программы из командной строки можно использовать операторы "<" и ">".
В случае программного перенаправления потоков используются:
static void Setln(TextReader input)
static void SetOut(TextWriter output)
static void SetError(TextWriter output)
Пример, который перенаправляет выходной поток в файл:
// Перенаправление потока Console.Out.
StreamWriter log_out;
try
{
log_out = new StreamWriter("logfile.txt");
}
catch (IOException exc)
{
Console.WriteLine(exc.Message + "He удается открыть файл.");
return;
}
// Направляем стандартный выходной поток в системный журнал.
Console.SetOut(log_out);
Console.WriteLine("Это начало системного журнала.");
for(int i=0; i<10; i++) Console.WriteLine(i);
Console.WriteLine("Это конец системного журнала.");
log_out.Close();
Содержимым файла logfile.txt будет:
Это начало системного журнала.
0
1
2
3
4
5
6
7
8
9
Это конец системного журнала.
И в файл можно записать информацию, используя привычные классы и методы!
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace OutFile
{
class Program
{
static void Main(string[] args)
{
string buff;
FileStream outFstr, inFstr; // Ссылки на файловые потоки.
// Ссылка на выходной поток. Свойства и методы,
// которые обеспечивают запись в...
StreamWriter swr;
// Ссылка на входной поток. Свойства и методы,
// которые обеспечивают чтение из...
StreamReader sr;
// Класс Console - Средство управления ПРЕДОПРЕДЕЛЁННЫМ потоком.
// Сохранили стандартный выходной поток,
// связанный с окошком консольного приложения.
TextWriter twrConsole = Console.Out;
// Сохранили стандартный входной поток, связанный с буфером клавиатуры.
TextReader trConsole = Console.In;
inFstr = new FileStream
(@"F:\Users\Work\readme.txt", FileMode.Open, FileAccess.Read);
sr = new StreamReader(inFstr); // Входной поток, связанный с файлом.
outFstr = new FileStream
(@"F:\Users\Work\txt.txt", FileMode.Create, FileAccess.Write);
swr = new StreamWriter(outFstr); // Выходной поток, связанный с файлом.
// А вот мы перенастроили предопределённый входной поток.
// Он теперь связан не с буфером клавиатуры, а с файлом, открытым для чтения.
Console.SetIn(sr);
Console.SetOut(swr);
while (true)
{
// Но поинтересоваться в предопределённом потоке отностительно
// конца файла невозможно.
// Такого для предопределённых потоков просто не предусмотрено.
if (sr.EndOfStream) break;
// А вот читать - можно.
buff = Console.ReadLine();
Console.WriteLine(buff);
}
Console.SetOut(twrConsole);
Console.WriteLine("12345");
Console.SetOut(swr);
Console.WriteLine("12345");
Console.SetOut(twrConsole);
Console.WriteLine("67890");
Console.SetOut(swr);
Console.WriteLine("67890");
sr.Close();
inFstr.Close();
swr.Close();
outFstr.Close();
}
}
}
Практична робота № 12 Основні правила проектування форм
Ціль: вивчення задач проектування інтерфейсів, правил щодо проектування форм.
Хід роботи.
Спроектувати форму About додатку за правилами проектування ідентифікаційної форми.
Теоретичні відомості.
Основна термінологія, яка використовується
при проектуванні форм, панелей екранів. Основні види форм.
Форма, екран, панель – це сукупність інформації, яка представлена користувачеві таким чином, що він може ефективно оцінити стан системи, прийняти рішення і виконати необхідні дії.
Існує 5 типів форм:
Ідентифікаційна форма – служить для представлення користувачу інформації про додаток з яким він буде працювати. Вона може містити короткий опис можливостей системи, опис атрибутів розробника: адреси, телефони та ін.
Рисунок 12.1 – Ідентифікаційна форма.
Форма меню – відноситься до верхнього рівня ієрархії форм, що дає уявлення про основні задачі, які розв’язуються в системі. За допомогою форми меню відкривається доступ до всіх підсистем додатку.
Рисунок 12.2 – Форма меню.
Форми введення і вибору інформації – відноситься до форм задання дій, задання інформації, що необхідна для вирішення задач (загалом тут використовується мова дій).
Рисунок 12.3 – Форми введення і вибору інформації.
Інформаційна форма – представляє інформацію у вигляді даних згрупованих певним чином для аналізу прийняття рішень і подальшої реалізації у формах введення інформації і вибору дій користувача.
Рисунок 12.4 – Інформаційна форма.
Інформаційно-облікова форма – відноситься до представлення звітних даних по роботі системи за певний період.
Рисунок 12.5 – Інформаційно-облікова форма.
Форма може розділятися на декілька областей. Для кожного типу форм використовуються свої правила проектування областей. Можливий перетин областей і змішування властивостей окремих типів форм на деякій формі.
Рисунок 12.6 – Змішування форм типу меню та інформаційної.
Загалом можна виділити декілька областей форми:
Область представлення інформації – знаходиться в верхній частині екрану.
Область формування команд – знаходиться в нижній третині форми.
Область функціональних клавіш – розташовується в нижній чверті форми.
Область повідомлень – додаткова область, що містить уточнюючу інформацію і розташовується в нижній 1/8 екрану.
Область представлення інформації

Заголовок
Область функціональних клавіш
Рисунок 12.7 – Області форми.
Відповідно до призначення форми чи окремих частин сегментів форми для цілісності використовуються заголовки (крім заголовка для всієї форми використовується заголовок для групи елементів), а також використовуються окремі елементи, що не потребують заголовка (кнопки, клавіші, роздільники). Для зосередження уваги користувача на окремому полі використовуються різні зображення курсору при наведенні його на певну область.
Заголовок до всієї форми

Заголовок для групи елементів

Роздільник

Група елементів

Окремі елементи
Заголовок до всіх елементів форми




Рисунок 12.8 – Елементи форми.