У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 4 В лабораторной работе от вас требуется написать приложение на C с помощью которого п

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

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

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

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

Лабораторная работа №4

В лабораторной работе от вас требуется написать приложение на C# с помощью которого пользователь может открыть на диске текстовый файл определенного формата с информацией о графических объектах, а приложение нарисует эти графические объекты на форме.

Пример выполнения работы

Первым шагом создания приложения является создание в Visual Studio 2010 и сохранение на диск нового проекта из шаблона Windows Forms Application.

Следующим шагом является проектирование графического интерфейса пользователя. На форме необходимо расположить следующие элементы управления:

  •  TextBox – в этом э/у будет отображаться путь к открытому файлу;
  •  Button – кликом по кнопке пользователь будет вызывать диалог открытия файла;
  •  Panel – на панели будет рисоваться прочитанное из файла изображение.

Для того чтобы оживить приложение, напишем обработчик щелчка по кнопке:

  •  выделим кнопку на форме одним щелчком
  •  в окне свойств запишем название обработчика и нажмём Enter

Visual Studio откроет окно кода в котором появится пустой метод – обработчик щелчка по кнопке.

В этом обработчике нужно записать алгоритм, выполняющий следующие действия:

  1.  открытие окна выбора файла,
  2.  чтение файла,
  3.  разбор файла,
  4.  рисование разобранных объектов.

Содержимое текстового файла:

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);

}

Демонстрация работы приложения

Задания

Требования для всех:

  •  Расширение файла должно быть .data и диалог открытия файла должен отображать только файлы с расширением data.
  •  Разбить алгоритм на отдельные методы/функции.
  •  Кроме линий в файле может быть описаны другие фигуры: окружности и прямоугольники.
  •  В файле написание названий фигур может отличаться регистрами букв (Line или line).

Вариант 1

  •  Добавить проверки на наличие файла на диске и обрабатывать ситуации с неправильным форматом файла.
  •  Добавить в файл определение цвета фигуры.
  •  Окружности задаются центром и радиусом.
  •  Добавить кнопку щелчком по которой рисование фигур будет выполняться со смещением на произвольное количество пикселей вправо.

Вариант 2

  •  Добавить кнопку щелчком по которой будет выполняться рисование прочитанных фигур, сразу после открытия файла рисования происходить не должно.
  •  Добавить в файл определение толщины линии которой нужно рисовать фигуру.
  •  Прямоугольники задаются координатами вершин второстепенной диагонали.

Вариант 3

  •  Добавить в файл определение цвета фигуры.
  •  Прямоугольники задаются координатами вершин второстепенной диагонали.
  •  Проверять, не выходят ли фигуры, заданные в текстовом файле за границы области рисования. Если выход за границы обнаружится, сделать фон области рисования светлозеленым.




1. тематическая и др.html
2. Братья гримм Король-лягушонок,или Железный генрих
3. . Имеются следующие плановые и фактические данные по выпуску продукции предприятия за отчетный период
4. д бихевиоризм ~ наука о поведении людей; выводы и методы Б
5. тематическому исследованию особенности детской логики в совершенно новом разрезе
6. Лекция 2.1. Теорема существования и единственности решения задачи Коши для ДУ высших порядков.html
7. Понятие и способы осуществления гражданских прав.html
8.  Рис41 Циклическое развитие экономики Различают короткие средние и длинные волны циклы в эконом
9. Статья 1 Внести в Закон Российской Федерации от 25 июня 1993 года 5242I О пр
10. тематике для студентов ИНФ1 Тема 1