Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по C#.doc
Скачиваний:
259
Добавлен:
08.11.2018
Размер:
5.81 Mб
Скачать
      1. Примеры построения диаграмм

Создадим приложение, иллюстрирующее работу с диаграммами:

Для этого разместим на форме компоненты dataGridView1, menuStrip1 и zedGraphControl1.

В обработчике события открытия формы пропишем команды по генерированию данных в таблице с помощью датчика случайных чисел:

private void Form1_Shown(object sender, EventArgs e)

{ int i, j; Random r = new Random();

dataGridView1.ColumnCount = 5;

dataGridView1.RowCount = 2;

for (i = 0; i < 2; i++)

{ dataGridView1.Rows[i].HeaderCell.Value = "i="+i.ToString();

for (j = 0; j < 5; j++)

{ if (i == 0) { dataGridView1[j, i].Value = j+2005; }

else

{ dataGridView1[j, i].Value = r.Next(40,88); };

}; };}

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

private void toolStripMenuItem1_Click(object sender, EventArgs e)

{ Draw();

zedGraphControl1.Visible = true;

}

где метод Draw() зависит от кнопки:

График:

private void Draw()

{int i,x;

GraphPane pane = new GraphPane();

Rectangle r = new Rectangle();

r.Width = zedGraphControl1.Width; r.Height = zedGraphControl1.Height;

pane.CurveList.Clear();

PointPairList list = new PointPairList();

for (i = 0; i < 5; i++)

{ list.Add(Convert.ToDouble(dataGridView1[i, 0].Value), Convert.ToDouble(dataGridView1[i, 1].Value),5); }

LineItem myCurve = pane.AddCurve("График", list, Color.Blue,SymbolType.None);

pane.Legend.IsVisible = false;

pane.Title.Text = "Графики";

pane.XAxis.Scale.Min =2005;

pane.XAxis.Scale.Max =2009;

pane.YAxis.Scale.Min = 40;

pane.YAxis.Scale.Max = 88;

pane.YAxis.Scale.BaseTic = 3;

pane.YAxis.Scale.MajorStep = 10;

pane.YAxis.Scale.MinorStep=5;

pane.XAxis.MajorGrid.IsVisible = true;

pane.XAxis.MajorGrid.DashOn = 10;

pane.XAxis.MajorGrid.DashOff = 5;

pane.YAxis.MinorGrid.IsVisible = true;

pane.AxisChange(); pane.Rect = r;

zedGraphControl1.GraphPane = pane;

zedGraphControl1.IsEnableHZoom = false;

zedGraphControl1.IsEnableVZoom = false;

}

Точечный график:

private void Draw1()

{ int i, x;

GraphPane pane = new GraphPane();

Rectangle r = new Rectangle();

r.Width = zedGraphControl1.Width; r.Height = zedGraphControl1.Height;

pane.CurveList.Clear();

PointPairList list = new PointPairList();

for (i = 0; i < 5; i++)

{ list.Add(Convert.ToDouble(dataGridView1[i, 0].Value), Convert.ToDouble(dataGridView1[i, 1].Value), 5); }

LineItem myCurve = pane.AddCurve("Разброс", list, Color.Blue, SymbolType.Diamond);

myCurve.Line.IsVisible = false;

myCurve.Symbol.Fill.Color = Color.Blue;

myCurve.Symbol.Fill.Type = FillType.Solid;

myCurve.Symbol.Size = 7;

pane.XAxis.Scale.Min = 2005;

pane.XAxis.Scale.Max = 2009;

pane.YAxis.Scale.Min = 40;

pane.YAxis.Scale.Max = 88;

pane.YAxis.Scale.BaseTic = 3;

pane.YAxis.Scale.MajorStep = 10;

pane.YAxis.Scale.MinorStep = 5;

pane.AxisChange(); pane.Rect = r;

ArrowObj arrow = new ArrowObj(Convert.ToDouble(dataGridView1[1, 0].Value) + 0.1, Convert.ToDouble(dataGridView1[1, 1].Value) + 3, Convert.ToDouble(dataGridView1[1, 0].Value), Convert.ToDouble(dataGridView1[1, 1].Value));

pane.GraphObjList.Add (arrow);

TextObj text = new TextObj ("Max", Convert.ToDouble(dataGridView1[1, 0].Value)+0.1, Convert.ToDouble(dataGridView1[1, 1].Value)+3);

text.FontSpec.Border.IsVisible = false;

text.FontSpec.FontColor = Color.Green;

pane.GraphObjList.Add (text);

zedGraphControl1.GraphPane = pane;

zedGraphControl1.IsEnableHZoom = false;

zedGraphControl1.IsEnableVZoom = false;

}

Построение нескольких графиков:

private void Draw2()

{ int i, x;

GraphPane pane = new GraphPane();

Rectangle r = new Rectangle();

r.Width = zedGraphControl1.Width; r.Height = zedGraphControl1.Height;

pane.CurveList.Clear();

PointPairList list1 = new PointPairList();

for (i = 0; i < 5; i++)

{ list1.Add(Convert.ToDouble(dataGridView1[i, 0].Value), Convert.ToDouble(dataGridView1[i, 1].Value), 5); }

PointPairList list2 = new PointPairList();

for (i = 0; i < 5; i++)

{ list2.Add(Convert.ToDouble(dataGridView1[i, 0].Value), Convert.ToDouble(dataGridView1[i, 1].Value)+5); }

LineItem myCurve = pane.AddCurve("График1", list1, Color.Blue, SymbolType.None);

LineItem my1Curve = pane.AddCurve("График2", list2, Color.Green, SymbolType.None);

pane.XAxis.Scale.Min = 2005;

pane.XAxis.Scale.Max = 2009;

pane.YAxis.Scale.Min = 40;

pane.YAxis.Scale.Max = 88;

pane.YAxis.Scale.BaseTic = 3;

pane.YAxis.Scale.MajorStep = 10;

pane.YAxis.Scale.MinorStep = 5;

pane.AxisChange(); pane.Rect = r;

zedGraphControl1.GraphPane = pane;

zedGraphControl1.IsEnableHZoom = false;

zedGraphControl1.IsEnableVZoom = false;

zedGraphControl1.Refresh();

}

Гистограмма:

private void Draw3()

{ int i, x;

GraphPane pane = new GraphPane();

Rectangle r = new Rectangle();

r.Width = zedGraphControl1.Width; r.Height = zedGraphControl1.Height;

pane.CurveList.Clear();

int itemscount = 5;

string[] names = new string[itemscount];

double[] values = new double[itemscount];

for (i = 0; i < itemscount; i++)

{ names[i] = string.Format("Год{0}", Convert.ToDouble(dataGridView1[i, 0].Value));

values[i] = Convert.ToDouble(dataGridView1[i, 1].Value); }

BarItem curve = pane.AddBar("Гистограмма", null, values, Color.Blue);

pane.XAxis.Type = AxisType.Text;

pane.XAxis.Scale.TextLabels = names;

pane.Title.Text = "Гистограмма";

//pane.XAxis.Scale.Min = 2005;

//pane.XAxis.Scale.Max = 2009;

//pane.YAxis.Scale.Min = 40;

//pane.YAxis.Scale.Max = 88;

//pane.YAxis.Scale.BaseTic = 3;

//pane.YAxis.Scale.MajorStep = 10;

//pane.YAxis.Scale.MinorStep = 5;

pane.AxisChange(); pane.Rect = r;

zedGraphControl1.GraphPane = pane;

zedGraphControl1.IsEnableHZoom = false;

zedGraphControl1.IsEnableVZoom = false;

zedGraphControl1.Refresh();

}

Гистограмма с применением кластеров:

private void Draw4()

{ int i, x;

GraphPane pane = new GraphPane();

Rectangle r = new Rectangle();

r.Width = zedGraphControl1.Width; r.Height = zedGraphControl1.Height;

pane.CurveList.Clear();

int itemscount = 5;

string[] names = new string[itemscount];

double[] values1 = new double[itemscount];

double[] values2 = new double[itemscount];

double[] XValues = new double[itemscount];

for (i = 0; i < itemscount; i++)

{ names[i] = string.Format("Год{0}", Convert.ToDouble(dataGridView1[i, 0].Value));

values1[i] = Convert.ToDouble(dataGridView1[i, 1].Value);

values2[i] = Convert.ToDouble(dataGridView1[i, 1].Value)+10;

XValues[i] = Convert.ToDouble(dataGridView1[i, 0].Value);

}

BarItem bar1 = pane.AddBar("Values1", XValues, values1, Color.Blue);

BarItem bar2 = pane.AddBar("Values2", XValues, values2, Color.Red);

pane.BarSettings.MinBarGap = 0.0f;

pane.BarSettings.MinClusterGap = 2.5f;

pane.XAxis.Type = AxisType.Text;

pane.XAxis.Scale.TextLabels = names;

pane.Title.Text = "Гистограмма";

pane.AxisChange();

pane.Rect = r;

zedGraphControl1.GraphPane = pane;

zedGraphControl1.IsEnableHZoom = false;

zedGraphControl1.IsEnableVZoom = false;

zedGraphControl1.Refresh();

}

Лабораторная работа №1.

Основные элементы управления.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1, 1.2, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.7, 3.4.9

Цель. Приобрести навыки работы с элементами управления: форма, текстовое поле, радиокнопка, переключатель, панель, надпись.

Создать проект из одной формы:

При нажатии кнопки Ввести в правой панели должен появляться текст с именем, введенным пользователем в левой панели и выбранными увлечениями. При повторном нажатии кнопки «Ввести» старый текст в правой панели должен удаляться и выводиться новый.

Лабораторная работа №2.

Создание титульной формы.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.10

Цель. Приобрести навыки обработки данных, полученных из формы и отображения результатов.

Создать приложение со следующими формами:

  1. титульная форма:

По кнопке «Далее» должен осуществляться переход на рабочую форму. Титульная форма должна скрываться.

Свойства титульной формы: жесткие границы, модальная.

  1. рабочая форма с калькулятором следующего вида:

По кнопке Очистка текстовые поля должны очищаться, а переключатель устанавливаться в пункт «*».

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

Дочерние формы, программное меню

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.12

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

Создать проект из четырех форм: главная форма и дочерняя к ней, независимая форма и дочерняя к ней.

Главная форма

Главная форма должна иметь свою иконку, не содержать кнопки сворачивания и разворачивания окна, иметь жесткие границы.

В главной форме создать программное меню с пунктами Проект, Формат и Окно:

Пункт Проект главной формы

Пункт Проект должен содержать разделитель и команды: Независимая форма, Дочерняя форма, Закрыть проект

Действия при выборе команд пункта Проект:

    1. Независимая форма – открытие независимого окна со своим программным меню:

    1. Дочерняя форма – открытие дочернего окна:

    1. Закрыть проект – закрытие приложения.

Пункт Формат главной формы

Пункт Формат должен содержать команды Крупный шрифт и Рисунок.

Действия при выборе команд пункта Формат:

    1. При выборе команды Крупный шрифт:

  1. должен изменяться шрифт меню главной формы;

  2. рядом с командой Крупный шрифт должен появляться символ выбора команды ();

  1. при повторном выборе команды Крупный шрифт символ должен исчезать, а шрифт становится первоначальным.

    1. При выборе команды Рисунок:

  1. В качестве фона должен появляться рисунок, прописанный в коде программы;

  2. рядом с командой Рисунок должен появляться символ выбора команды ();

  1. при повторном выборе команды Рисунок символ должен исчезать, а фон становится первоначальным.

Независимая форма

Независимая форма должна иметь свою иконку и содержать свое программное меню с пунктами Проект и Границы.

Пункт Проект независимой формы

Пункт Проект должен содержать команды: Дочерняя форма и Закрыть:

Действия при выборе команд пункта Проект:

    1. Дочерняя форма – открытие дочернего окна;

    2. Закрыть – закрытие независимого окна.

Пункт Границы независимой формы

Пункт Границы должен содержать команды: Обычные, Отсутствуют и ЗD:

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

Действия при выборе команд пункта Границы:

При выборе одной из команд пункта Границы:

  1. должен изменяться стиль границ независимой формы;

  2. рядом с выбранным стилем границ должен появляться символ выбора команды ();

Дочерняя форма к главной форме

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

При открытии из главной формы дочерней формы команда Проект главной формы должна заменяться командой Проект дочерней формы. Команда Шрифт должна добавляться в меню главной формы после команды Окно.

При открытии дочерней формы из главной формы название дочерней формы должно отображаться в меню Окно главной формы.

Меню Формат должно остаться без изменений и содержать команды: Крупный шрифт и Рисунок.

Пункт Проект дочерней формы к главной форме

Пункт Проект должен содержать одну команду Закрыть все, при выборе которой закрывается приложение.

Пункт Шрифт дочерней формы к главной форме

Пункт Шрифт должен содержать команды Обычный и курсив. При открытии дочерней формы по умолчанию устанавливается стиль шрифта Обычный и возле этого пункта меню должен стоять символа выбора .

Действия при выборе команд пункта Шрифт:

При выборе одной из команд пункта Шрифт:

  1. должен изменяться стиль шрифта программного меню. При этом, при изменении стиля шрифта должен сохраняться его размер, установленный в пункте Формат. Соответственно, при изменении размера шрифта, должен сохраняться стиль шрифта, выбранный в пункте Шрифт.

  2. рядом с выбранным стилем границ должен появляться символ выбора команды ();

Дочерняя форма к независимой форме

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

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

Пункт Проект дочерней формы к независимой форме

Пункт Проект должен содержать одну команду Закрыть, при выборе которой закрывается независимая форма.

Пункт Фон дочерней формы к независимой форме

Пункт Фон должен содержать команды Отсутствует, Ветер и Восхождение. При открытии дочерней формы по умолчанию фоновый рисунок отсутствует, поэтому рядом с командой Отсутствует должен стоять символа выбора .

Действия при выборе команд пункта Фон:

При выборе одной из команд пункта Фон:

  1. должен изменяться фон дочерней формы;

  2. рядом с выбранным фоном должен появляться символ выбора команды ();

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

Обработка списков в С#

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.9

Цель. Приобрести навыки обработки текстовой информации, приобрести более глубокие знания компонентов..

Создайте приложение:

Описание:

  1. В разделе «Цвет текста» выбирается цвет текста, печатаемого в центральной части окна. Значение по умолчанию – черный. Всего не менее трех цветов.

  2. В разделе «Размер шрифта» выбирается размер шрифта для текста, печатаемого в центральной части окна. Значение по умолчанию – 12пт. Минимальное значение – 8пт. Максимальное значение 20пт. Значения можно выбирать только из списка и нельзя вводить с клавиатуры.

  3. В разделе «Номер строки» выбирается номер строки текста, которая должна отобразиться в разделе «Текст строки». Нумерация с единицы. Значение по умолчанию – 1. Обеспечить корректность верхних и нижних границ.

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

Математические функции в C#

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4

Цель. Закрепить навыки работы с основными компонентами Visual C#. Ознакомиться с библиотекой Math.dll

Создайте программу с математическими функциями:

Описание:

1) В разделе Арифметика список Действие содержит операции: сумма, разность, произведение, частное, остаток от деления.

2) В разделе Библиотека список Действие содержит операции: абсолютная величина, арккосинус, арктангенс, косинус, тангенс, экспонента, число Пи, десятичный логарифм, логарифм, округление, извлечение квадратного корня.

3) Программа должна отслеживать некорректный ввод данных: данных не принадлежащих области определения функции или ввод текста.

Лабораторная работа №6.

Обработка ошибок.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.5

Цель. Закрепить навыки работы с основными компонентами Visual C#. Ознакомиться с библиотекой Math.dll

К лабораторной работе №5 добавить функции проверки корректности вводимых данных:

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

По кнопке «исправить» - выделение ошибочной части введенного значения.

По кнопке «отменить» - очистка текстовых полей.

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

Лабораторная работа №7.

Панель инструментов.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.4.23, 3.4.13

Цель. Приобрести навыки создания панели инструментов, вкладок и создания глобальных методов.

Создать приложение со следующими элементами:

  1. Титульная форма: 2) Форма 0-го уровня:

  1. Форма 1-го уровня (аналог формы 0-го уровня).

  1. Кнопка «Далее» - новая задача на данном уровне.

  2. Кнопка «Проверить» - вывод результатов решения: «Верно» или «Ошибка! Корни: x1=…; x2=…» .

Замечание: корни уравнений 0-го уровня должны быть целыми, дискриминант на обоих уровнях не должен быть отрицательным.

Лабораторная работа №8.

Таблицы.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 1.6, 2, 3.1-3.3, 3.4, 1.7, 3.4.15

Цель. Приобрести навыки работы с массивами.

Создать приложение со следующими элементами и функциями:

Рисунок 1 – Главная форма.

Рисунок 2 – Форма с матрицами

  1. Главная форма (рис. 1).

  2. При нажатии любой из кнопок «Автоматически»или форма принимает вид рис. 2.

  3. Кнопка «Автоматически» - автоматическое создание матрицы заданного размера и автоматическое вычисление. На форме присутствуют надписи, таблицы и кнопка «Отмена».

  4. Кнопка «Вручную» - создание матрицы вручную. На форме присутствуют надписи, одна таблица для ввода данных, кнопки «Вычислить», «Очистить», «Отмена». По кнопке «Вычислить» появляется результат в виде числа для первого задания или в виде таблицы для второго задания.

Задания:

  1. Найти количество строк, не содержащих ни одного нулевого элемента;

  2. Поменять местами два произвольных столбца матрицы.

Лабораторная работа №9 .

Файлы.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.6, 2, 3.1-3.3, 3.4, 1.7, 3.4.16

Цель. Приобрести навыки работы с текстовыми файлами и диалоговыми окнами открытия и сохранения информации.

В лабораторной работе №8 в программное меню добавить опцию «Файл» с пунктами «Сохранить» и «Открыть».

По команде «Сохранить» открывается стандартное окно Windows по работе с файловой системой. Данные записываются в специально отведенный для этого каталог в текстовый файл с расширением *.myp (my program), например, в следующем виде:

Дано:

Результат:

1

0

2

3

3

0

2

1

-5

7

0

1

1

7

0

-5

2

9

-3

5

5

9

-3

2

1

1

6

11

11

1

6

1

По команде «Открыть» открывается стандартное окно Windows по работе с файловой системой. Первая матрица (дано:) считываются из выбранного файла и отображается на второй форме (рис.2).

Лабораторная работа №10.

Отображение HTML-файлов.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.4.25

Цель. Приобрести навыки работы с html_страницами.

    1. В лабораторной работе №9 в программное меню добавить опцию «Справка» с пунктами «Матрицы», «О программе», «Клавиатура».

  • При выборе команды «Матрицы» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о матрицах, о способе обращения к элементу матрицы, описание свойства сложения матриц, пример сложения матриц. Текст должен быть отформатирован, иметь заголовки, разные стили и начертания шрифта.

  • При выборе команды «О программе» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о программе и ее авторах.

  • При выборе команды «Клавиатура» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о событиях клавиатуры из п.2.

    1. Создать процедуры обработки событий нажатия клавиш клавиатуры:

  • Enter – сложение матриц;

  • Esc – очистка матриц;

    1. Создать строку состояния, в которой отобразить время текущее, дату, подсказка при наведении мышки на объект.

Лабораторная работа №11.

Бестиповые указатели.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.7, 2, 3.1-3.3, 3.5

Цель. Приобрести навыки работы с динамическими переменными.

Создать приложение со следующими элементами и функциями:

где а и b – бестиповые указатели.

Лабораторная работа по Delphi №12.

Связные списки.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.7, 2, 3.1-3.3, 3.4.

Цель. Закрепить навыки работы с динамическими переменными и приобрести навыки работы со связными списками.

Создать приложение со следующими элементами и функциями:

Замечание: кнопка «Вычислить» - запускает выбранную операцию;

кнопка «Очистить» - очищает все поля;

операции: «нет» (кнопка «Вычислить» ничего не делает)

«удалить», «вставить», «заменить», «найти»

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

Графика

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.6

Цель. Приобрести навыки работы с различного вида графическими объектами.

Создать приложение с четырьмя вкладками для выполнения следующих задач:

  1. Построение на одной координатной плоскости разными стилями рисования графиков функций на заданных интервалах. Наличие координатных осей, рисок и меток обязательно.

Функция 1.

Функция 2.

1

2

3

4

5

6

7

8

9

10

11

12

; , .

, , .

13

; ,

; ,

14

; ,

; ,

15

; , .

; , .

16

; , .

; , .

17

; , .

; , .

18

; , .

; , .

19

; ,

; ,

20

;,

;,

21

; , .

; , .

  1. Построение треугольника, описанной и вписанной окружностей.

Формулы:

  • расстояния между двумя точками:

  • , где (x1, y1) и (x2, y2) – это координаты начала и конца отрезка.

  • Углы треугольника:

cos(ang) = a/(s1*s2), где a – скалярное произведение векторов s1 и s2,а s1 и s2 – стороны треугольника (абсолютные величины векторов).

  • Площадь треугольника находится с помощью формулы Герона:

Sqr = (p * (p - s1) * (p - s2) * (p - s3)) ^ (1 / 2), где p - полупериметр треугольника.

  • Радиусы вписанной и описанной окружности.

Rвп = S / p;

Rоп = (s1 * s2 * s3) / (4 * S);

  1. Построение "Паутины Безье»

Построить код для рисования на вкладке паутины Безье разными цветами, исходящих из единого центра. Центр «Паутины Безье» - координаты курсора мыши. При двойном щелчке вкладка должна очищаться.

  1. Построение рисунка «Кисти и краски»

Пример: На вкладке RandomShapes должны рисоваться и закрашиваться геометрические фигуры трех разных типов - эллипсы, сектора, прямоугольники. Для каждого типа фигуры используется свой тип кисти: эллипсы закрашиваются градиентной кистью, сектора - сплошной, а прямоугольники - узорной. Цвет фигуры, ее размеры и положение выбираются случайным образом. Рисование фигур должно инициироваться в обработчике события Click. При каждом щелчке кнопкой мыши на форме должно рисоваться три новых экземпляра фигур каждого типа. Старые фигуры не должны стираться

Задание.

Запрограммировать элементы динамической графики:

элементы динамической графики

1

Небо, мерцающие звезды, луна и исходящее сияние от нее

2

Семицветик, середина которого через равные промежутки времени меняет цвет с color1 на color2 и обратно, а лепестки меняют цвет по кругу.

3

Ракета, старт, ее полет по кривой, уменьшение размеров, след от ракеты

4

Движение волн (не меньше 6 волн), плывущая рыбка, небо, солнце

5

Движущийся автомобиль, препятствие, при нажатии клавиши автомобиль должен остановиться. Чем ближе к препятствию он остановится, тем больше очков.

6

Четыре квадрата и одна окружность, быстро и последовательно окрашиваемые в разные цвета. Задача пользователя нажать клавишу «пробел» и тем самым остановить процесс смены цветов в тот момент, когда окружность окрасится в синий цвет

7

Небо, земля, росток с постепенно появляющимися тремя листочками, солнце с играющими лучами

8

Яблоко и ползущая по нему симпатичная гусеница

9

Небо, солнце, дерево, пенек, на пеньке колобок. Колобок скатывается с пенька и укатывается за кадр

10

Горы, солнце садится, наступает ночь, появляются звезды и луна.

11

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

12

Индикатор процесса: прямоугольник, заполняемый цветом от светлого color1 до темного color2. Время должно устанавливаться пользователем с помощью счетчика. Процесс может быть остановлен клавишей Escape. Процесс может быть запущен клавишей Enter.

13

Зеленая елочка и мерцающие на ней игрушки и гирлянды над ней.

14

Заполнение экрана ломаной линией. Отрезки должны быть разной случайной длины. Угол излома равен ±90.

15

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

16

Стрельба по мишени. На экране на секунду рисуется круг произвольного диаметра и в произвольном месте. Задача пользователя успеть щелкнуть по нему мышью. Если цель поражена, то прибавление очков пользователю. Остановка игры по клавише Escape.

17

Заполнение экрана крестиками: ‘+’ и ‘’ разной величины, разного цвета и в разных местах экрана

18

Заполнение экрана фигурами по принципу: максимальной величины закрашенный квадрат, вписанная в него окружность, вписанный в нее ромб, вписанный в ромб квадрат, …., окружность, ромб, квадрат, окружность, ….Достигнув некоторого очень маленького размера, все начинается сначала.

19

Дождь или снег (в движении). Пейзаж.

20

Три вложенных друг в друга окружностей с движущимися по ним шариками. По каждой окружности движется со своей скоростью шарик.

21

Небо. Мигающие звезды. При нажатии клавиши Enter, последняя мигнувшая звезда падает под углом ±15-±30, оставляя бледный след.

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

Диаграммы

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.7

Цель. Приобрести навыки построения диаграмм.

Создать программу со следующими функциями:

  1. Создание с помощью датчика случайных чисел таблицу показателей среднего балла абитуриентов на специальность ПМиИ по математике и русскому.

2005

2006

2007

2008

2009

Математика

55

67

54

64

34

Русский язык

54

34

65

73

48

Средний балл должен принадлежать диапазону [35, 95].

  1. Наличие на панели инструментов команд, позволяющих:

- выводить график с общим средним баллом по математике и русскому языку.

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

- выводить два графика (баллы по математике и по русскому) на одной диаграмме;

- строить гистограмму общего среднего балла.

- строить гистограмму по отдельным значениям по математике и русскому языку.

  1. Свойства всех диаграмм:

- наличие заголовков,

- подписей осей,

- отсутствие возможности изменять масштаб.

  1. Наличие цветовой панели для гистограммы и двух графиков с возможностью изменения цветов диаграммы.

  2. Наличие легенды для диаграммы с двумя графиками.

  3. Наличие сеток основной и вспомогательной для диаграммы с одним графиком.

  4. На диаграмме с общим средним баллом найти и подписать минимальное и максимальное значения разными цветами.

Лабораторная работа по Delphi №15.

Диаграммы.

Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.5, 3.7

Цель. Закрепить навыки работы с различными компонентами..

Создать приложение из двух форм:

Первая форма: титульная. На форме вводятся данные студента: фамилия и паспорт. Эти данные должны заноситься в базу данных, если студент открывает программу впервые. По кнопке «Далее» открывается форма для тестирования студента.

Вторая форма. Бланк тестирования.

Опция «Файл» содержит команды Сохранить, Открыть, Выход.

Сохранить – сохранение задач в текстовом файле.

Открыть – открытие задач из текстового файла.

Кнопка Выполнить – запуск теста с автоматически сгенерированными задачами.

По окончании времени, отведенного на решение теста – подсчет заработанных балов по 10-ти бальной системе и вывод диаграммы по результатам.

Если студент впервые проходил тест, то результат тестирования заносится в базу. Если тестирование было повторным, то выдается сообщение с прежним и новым результатами и предложением сохранить новый результат в базе данных (ОК, Отмена).

Список литературы

  1. Программирование на JAVA и C# для студента/ О.В.Герман,Ю.О.Герман.- СПб.: БХВ-Петербург, 2005.- 511с.

  2. Объектно-ориентированное программирование: Учебник для вузов/ Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев; Под ред.Г.С.Ивановой.- 2-е изд.,перераб.и доп..- М.: МГТУ, 2003.- 368с.

  3. Microsoft Corporation. Разработка Web- приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2003. - 704стр.

  4. Microsoft Corporation. Разработка Web-сервисов XML и серверных компонентов на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2004. - 576 стр.

  5. Петцолъд Ч. Программирование для Microsoft Windows на С#. В 2-х томах. Том 1, 2. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2002.

  6. Троелсен Э. С# и платформа .NET. Библиотека программиста. - СПб.: Питер, 2004. -796 с.

Юлия Александровна Шичкина