Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лабораторная работа №4
В лабораторной работе от вас требуется написать приложение на C# с помощью которого пользователь может открыть на диске текстовый файл определенного формата с информацией о графических объектах, а приложение нарисует эти графические объекты на форме.
Первым шагом создания приложения является создание в Visual Studio 2010 и сохранение на диск нового проекта из шаблона Windows Forms Application.
Следующим шагом является проектирование графического интерфейса пользователя. На форме необходимо расположить следующие элементы управления:
Для того чтобы оживить приложение, напишем обработчик щелчка по кнопке:
Visual Studio откроет окно кода в котором появится пустой метод обработчик щелчка по кнопке.
В этом обработчике нужно записать алгоритм, выполняющий следующие действия:
Содержимое текстового файла:
Line 12 14 15 16
Line 37 14 22 22
Line 50 33 56 50
Line 11 11 40 40
Для открытия файла воспользуемся классом OpenFileDialog (ссылка ведет на страницу в msdn с описанием класса).
Содержимое файла прочитаем в строку fileContent. Мы открываем файл с помощью метода OpenFile класса OpenFileDialog, который возвращает поток данных (Stream). Затем выделяем память под массив байт размером с файл и читаем содержимое потока в массив байт fileData. Для того, чтобы получить представление файла в виде строки, а не массива байт, нужно использовать кодировку файла (у меня это - Encoding.UTF8) и вызывать метода класса кодировок GetString.
Перед тем, как выполнить разбор файла, опишем класс для отрезка (линии). Для этого правой кнопкой щелкнем по названию проекта в окне обозревателя проекта (Solution Explorer) и в контекстном меню выберем пункт Add -> Class.
/// <summary>
/// Класс, описывающий отрезок.
/// </summary>
public class Lab4Line
{
/// <summary>
/// Координата x первой точки отрезка.
/// </summary>
public int X1 { get; set; }
/// <summary>
/// Координата y первой точки отрезка.
/// </summary>
public int Y1 { get; set; }
/// <summary>
/// Координата x второй точки отрезка.
/// </summary>
public int X2 { get; set; }
/// <summary>
/// Координата y второй точки отрезка.
/// </summary>
public int Y2 { get; set; }
}
После разбора файла у нас будет на руках список отрезков lines.
При разборе можно использовать регулярное выражение (о регулярных выражениях можно найти информацию в специальной литературе или сети интернет (например http://msdn.microsoft.com/ru-ru/library/az24scfc.aspx), для тестирования можно использовать тестер регулярных выражений http://www.radsoftware.com.au/regexdesigner/).
Рисование разобранных объектов представляется ещё более простым делом.
//рисование прочитаных объектов на форме
Graphics g = Graphics.FromHwnd(DrawPanel.Handle);
Pen pen = new Pen(Color.Red);
foreach (var lab4Line in lines)
{
g.DrawLine(pen, lab4Line.X1, lab4Line.Y1, lab4Line.X2, lab4Line.Y2);
}
Демонстрация работы приложения
Требования для всех: