Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Лабораторная работа №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. Реферат- Ортодоксальная и ревизионистская школы, их место в историографии холодной войны
2.  Личность как субъект общения
3. Жорж Батай
4. Вариант 6 Укажите документ в котором приведены отклонения допустимые в общем объеме жидких лекар
5. Секс и зрелость
6. Общественные движения в России в 20-30-е годы XIX века
7. Вариант 1 1 re Hd tested Were powered Would cool 2
8.  ОБЩИЕ ПОЛОЖЕНИЯ 1
9. По своему целевому назначению объёму полномочий и порядку проведения конференции собрание делегатов пра
10. для специальности Мировая экономика UNIT 3 [6] n enquiry from n import-export gent on behlf of Client
11. Задание 1 І. Распределите перечисленные ниже объекты учета табл
12. АКВАМАРИН
13. Транспортный налог уплачивается один раз в год за предшествующий год
14. . Дейнека Алекса~ндр Алекса~ндрович Дейне~ка 20 мая 1899 Курск Российская империя 12 июня 1969 Москва СС
15. Не меньшее значение имеет также правильно сбалансированное и подобранное питание в профилактике различных
16. держи крепче чтоб да боли
17. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата філософських наук.3
18. Изучение теоремы Безу для решения уравнений n-й степени при n]2
19. реферат дисертації на здобуття наукового ступеня доктора технічних наук Одеса ~ Дисертаці
20. Договор подряда и его виды