- •Основы программирования на языке с#
- •Структура программы
- •Типы данных в c#
- •Переменные и константы
- •Управляющие конструкции
- •If (условие) действие;
- •Комментарии
- •Int count; // Эта переменная хранит количество элементов
- •Массивы
- •Исключения
- •Среда Visual Studio
- •Общие сведения об основных понятиях платформы .Net Framework
- •Контейнеры: проекты и решения
- •Типы и расширения файлов в Visual Studio для с#
- •Переходы в рамках интегрированной среды разработки
- •Типы окон и операции над ними
- •Элементы управления
- •Панель элементов
- •Окно "Свойства"
- •Создание приложений Windows Forms
- •Операции над проектами Windows
- •В результате откроется окно Сохранить проект.
- •Работа с формами
- •Создание формы Windows Forms
- •Настройка формы
- •Просмотр кода для формы
- •Создание глобальной переменной класса Form
- •Переименование формы
- •Установка расположения форм Windows Forms на экране
- •Выбор начальной формы в приложении Windows
- •Настройка размера формы Windows Forms
- •Добавление фоновых изображений в формы Windows Forms.
- •Отображение модальных и немодальных форм Windows Forms
- •Создание прозрачных форм Windows Forms
- •Изменение границ формы Windows Forms с помощью конструктора
- •Переход между формами
- •Cкрытие и закрытие форм
- •Работа с элементами управления Windows Forms
- •Добавление элементов управления в формы Windows Forms
- •Изменение размера элементов управления в формах Windows Forms
- •Определение текста, отображаемого элементом управления Windows Forms
- •Определение клавиш доступа для элементов управления Windows Forms
- •Добавление элементов управления, для которых не существует пользовательского интерфейса, в формы Windows Forms
- •Закрепление элементов управления в формах Windows Forms
- •Выравнивание нескольких элементов управления в формах Windows Forms
- •Обработка события клавиши на элементе управления
- •Обращение к элементу управления на другой форме
- •Привязка элементов управления в формах Windows Forms
- •Элементы управления
- •Button – кнопка)
- •Надпись – Label
- •Поле ввода TextBox
- •Чтобы выделить текст программными средствами:
- •Панель Panel
- •Таймер Timer
- •Переключатель CheckBox
- •Переключатель RadioButton
- •Группа объектов GroupBox
- •Списки ComboBox
- •Рисунки PictureBox
- •Чтобы задать рисунок программными средствами задайте свойство Image при помощи метода FromFile класса Image, например:
- •Массив рисунков ImageList
- •Программное меню MenuStrip
- •Синхронизация меню на разных формах
- •Создание списка в окне интерфейса mdi с помощью MenuStrip
- •Блокирование доступа к элементам меню ToolStripMenuItem
- •Скрытие объектов ToolStripMenuItem
- •Контекстное меню ContextMenu
- •Привязка контекстного меню к элементу управления.
- •Панель инструментов ToolStrip
- •Строка состояния StatusStrip
- •Размер таблицы
- •Интерфейс таблицы
- •Диалоговые окна OpenFileDialog и SaveFileDialog
- •Работа с цветами ColorDialog
- •Шрифты FontDialog
- •Счетчик DomainUpDown
- •Счетчик NumericUpDown
- •Индикатор процесса ProgressBar
- •Текстовый редактор RichTextBox
- •Элемент управления Windows Forms RichTextBox позволяет записывать отображаемые в нем данные в одном из следующих форматов:
- •Вкладки TabControl
- •Чтобы добавить новую вкладку:
- •Календарь MonthCalendar
- •Браузер WebBrowser
- •Диалоговое окно MessageBox
- •Создание графических объектов
- •Методы класса Graphics
- •Примеры построения графических объектов
- •Кривая Безье
- •Построение треугольника в этом примере создадим код для рисования треугольника. Координаты треугольника создаются случайным образом: Чтобы создать треугольник:
- •Создание графика функции в этом примере создадим код для построения графика функции на интервале .
- •Чтобы построить график функции необходимо:
- •Диаграммы
- •Установка компонента по работе с диаграммами
- •Основные методы по работе с компонентом zedGraphControl
- •Примеры построения диаграмм
- •Создание приложений на языке Visual c# в среде программирования Visual Studio Учебное пособие
- •665709, Братск, ул.Макаренко,40
-
Примеры построения диаграмм
Создадим приложение, иллюстрирующее работу с диаграммами:
Для этого разместим на форме компоненты 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
Цель. Приобрести навыки обработки данных, полученных из формы и отображения результатов.
Создать приложение со следующими формами:
-
титульная форма:
По кнопке «Далее» должен осуществляться переход на рабочую форму. Титульная форма должна скрываться.
Свойства титульной формы: жесткие границы, модальная.
-
рабочая форма с калькулятором следующего вида:
По кнопке Очистка текстовые поля должны очищаться, а переключатель устанавливаться в пункт «*».
Лабораторная работа №3
Дочерние формы, программное меню
Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.12
Цель. Приобрести навыки создания различных видов программного меню, осуществления переходов между формами, ознакомление с дочерними формами.
Создать проект из четырех форм: главная форма и дочерняя к ней, независимая форма и дочерняя к ней.
Главная форма
Главная форма должна иметь свою иконку, не содержать кнопки сворачивания и разворачивания окна, иметь жесткие границы.
В главной форме создать программное меню с пунктами Проект, Формат и Окно:
Пункт Проект главной формы
Пункт Проект должен содержать разделитель и команды: Независимая форма, Дочерняя форма, Закрыть проект
Действия при выборе команд пункта Проект:
-
Независимая форма – открытие независимого окна со своим программным меню:
-
Дочерняя форма – открытие дочернего окна:
-
Закрыть проект – закрытие приложения.
Пункт Формат главной формы
Пункт Формат должен содержать команды Крупный шрифт и Рисунок.
Действия при выборе команд пункта Формат:
-
При выборе команды Крупный шрифт:
-
должен изменяться шрифт меню главной формы;
-
рядом с командой Крупный шрифт должен появляться символ выбора команды ();
-
при повторном выборе команды Крупный шрифт символ должен исчезать, а шрифт становится первоначальным.
-
При выборе команды Рисунок:
-
В качестве фона должен появляться рисунок, прописанный в коде программы;
-
рядом с командой Рисунок должен появляться символ выбора команды ();
-
при повторном выборе команды Рисунок символ должен исчезать, а фон становится первоначальным.
Независимая форма
Независимая форма должна иметь свою иконку и содержать свое программное меню с пунктами Проект и Границы.
Пункт Проект независимой формы
Пункт Проект должен содержать команды: Дочерняя форма и Закрыть:
Действия при выборе команд пункта Проект:
-
Дочерняя форма – открытие дочернего окна;
-
Закрыть – закрытие независимого окна.
Пункт Границы независимой формы
Пункт Границы должен содержать команды: Обычные, Отсутствуют и ЗD:
При открытии формы по умолчанию устанавливается тип границ Обычные и возле этого пункта меню должен стоять символа выбора .
Действия при выборе команд пункта Границы:
При выборе одной из команд пункта Границы:
-
должен изменяться стиль границ независимой формы;
-
рядом с выбранным стилем границ должен появляться символ выбора команды ();
Дочерняя форма к главной форме
Дочерняя форма должна содержать собственное программное меню, встраиваемое в меню главной формы. Программное меню дочерней формы должно состоять из пунктов: Проект и Шрифт.
При открытии из главной формы дочерней формы команда Проект главной формы должна заменяться командой Проект дочерней формы. Команда Шрифт должна добавляться в меню главной формы после команды Окно.
При открытии дочерней формы из главной формы название дочерней формы должно отображаться в меню Окно главной формы.
Меню Формат должно остаться без изменений и содержать команды: Крупный шрифт и Рисунок.
Пункт Проект дочерней формы к главной форме
Пункт Проект должен содержать одну команду Закрыть все, при выборе которой закрывается приложение.
Пункт Шрифт дочерней формы к главной форме
Пункт Шрифт должен содержать команды Обычный и курсив. При открытии дочерней формы по умолчанию устанавливается стиль шрифта Обычный и возле этого пункта меню должен стоять символа выбора .
Действия при выборе команд пункта Шрифт:
При выборе одной из команд пункта Шрифт:
-
должен изменяться стиль шрифта программного меню. При этом, при изменении стиля шрифта должен сохраняться его размер, установленный в пункте Формат. Соответственно, при изменении размера шрифта, должен сохраняться стиль шрифта, выбранный в пункте Шрифт.
-
рядом с выбранным стилем границ должен появляться символ выбора команды ();
Дочерняя форма к независимой форме
Дочерняя форма должна иметь такую же как у независимой формы иконку и содержать собственное программное меню, встраиваемое в меню независимой формы. Программное меню дочерней формы должно состоять из пунктов: Проект и Фон.
При открытии дочерней формы к независимой форме программное меню дочерней формы должно полностью заменяться программным меню дочерней формы.
Пункт Проект дочерней формы к независимой форме
Пункт Проект должен содержать одну команду Закрыть, при выборе которой закрывается независимая форма.
Пункт Фон дочерней формы к независимой форме
Пункт Фон должен содержать команды Отсутствует, Ветер и Восхождение. При открытии дочерней формы по умолчанию фоновый рисунок отсутствует, поэтому рядом с командой Отсутствует должен стоять символа выбора .
Действия при выборе команд пункта Фон:
При выборе одной из команд пункта Фон:
-
должен изменяться фон дочерней формы;
-
рядом с выбранным фоном должен появляться символ выбора команды ();
Лабораторная работа №4
Обработка списков в С#
Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4.1-3.4.4, 3.4.9
Цель. Приобрести навыки обработки текстовой информации, приобрести более глубокие знания компонентов..
Создайте приложение:
Описание:
-
В разделе «Цвет текста» выбирается цвет текста, печатаемого в центральной части окна. Значение по умолчанию – черный. Всего не менее трех цветов.
-
В разделе «Размер шрифта» выбирается размер шрифта для текста, печатаемого в центральной части окна. Значение по умолчанию – 12пт. Минимальное значение – 8пт. Максимальное значение 20пт. Значения можно выбирать только из списка и нельзя вводить с клавиатуры.
-
В разделе «Номер строки» выбирается номер строки текста, которая должна отобразиться в разделе «Текст строки». Нумерация с единицы. Значение по умолчанию – 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 добавить функции проверки корректности вводимых данных:
-
В случае ввода в текстовые поля значений, которые не являются числом организовать появление диалогового окна с сообщением об ошибке и двумя кнопками: «исправить», «отменить».
По кнопке «исправить» - выделение ошибочной части введенного значения.
По кнопке «отменить» - очистка текстовых полей.
-
В случае ввода в текстовые поля значений, выходящих за область определения выбранной функции – появление аналогичного первому случаю диалогового окна.
Лабораторная работа №7.
Панель инструментов.
Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.4.23, 3.4.13
Цель. Приобрести навыки создания панели инструментов, вкладок и создания глобальных методов.
Создать приложение со следующими элементами:
-
Титульная форма: 2) Форма 0-го уровня:
-
Форма 1-го уровня (аналог формы 0-го уровня).
-
Кнопка «Далее» - новая задача на данном уровне.
-
Кнопка «Проверить» - вывод результатов решения: «Верно» или «Ошибка! Корни: 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).
-
При нажатии любой из кнопок «Автоматически»или форма принимает вид рис. 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_страницами.
-
В лабораторной работе №9 в программное меню добавить опцию «Справка» с пунктами «Матрицы», «О программе», «Клавиатура».
-
При выборе команды «Матрицы» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о матрицах, о способе обращения к элементу матрицы, описание свойства сложения матриц, пример сложения матриц. Текст должен быть отформатирован, иметь заголовки, разные стили и начертания шрифта.
-
При выборе команды «О программе» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о программе и ее авторах.
-
При выборе команды «Клавиатура» открывается окно с HTML-документом.. HTML – документ должен быть создан самостоятельно, содержать информацию о событиях клавиатуры из п.2.
-
Создать процедуры обработки событий нажатия клавиш клавиатуры:
-
Enter – сложение матриц;
-
Esc – очистка матриц;
-
Создать строку состояния, в которой отобразить время текущее, дату, подсказка при наведении мышки на объект.
Лабораторная работа №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. |
Функция 2. |
1 |
||
2 |
||
3 |
||
4 |
||
5 |
||
6 |
||
7 |
||
8 |
||
9 |
||
10 |
||
11 |
||
12 |
; , . |
, , . |
13 |
; , |
; , |
14 |
; , |
; , |
15 |
; , . |
; , . |
16 |
; , . |
; , . |
17 |
; , . |
; , . |
18 |
; , . |
; , . |
19 |
; , |
; , |
20 |
;, |
;, |
21 |
; , . |
; , . |
-
Построение треугольника, описанной и вписанной окружностей.
Формулы:
-
расстояния между двумя точками:
-
, где (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);
-
Построение "Паутины Безье»
Построить код для рисования на вкладке паутины Безье разными цветами, исходящих из единого центра. Центр «Паутины Безье» - координаты курсора мыши. При двойном щелчке вкладка должна очищаться.
-
Построение рисунка «Кисти и краски»
Пример: На вкладке 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
Цель. Приобрести навыки построения диаграмм.
Создать программу со следующими функциями:
-
Создание с помощью датчика случайных чисел таблицу показателей среднего балла абитуриентов на специальность ПМиИ по математике и русскому.
|
2005 |
2006 |
2007 |
2008 |
2009 |
Математика |
55 |
67 |
54 |
64 |
34 |
Русский язык |
54 |
34 |
65 |
73 |
48 |
Средний балл должен принадлежать диапазону [35, 95].
-
Наличие на панели инструментов команд, позволяющих:
- выводить график с общим средним баллом по математике и русскому языку.
- выводить точечный график с общим средним баллом по математике и русскому.
- выводить два графика (баллы по математике и по русскому) на одной диаграмме;
- строить гистограмму общего среднего балла.
- строить гистограмму по отдельным значениям по математике и русскому языку.
-
Свойства всех диаграмм:
- наличие заголовков,
- подписей осей,
- отсутствие возможности изменять масштаб.
-
Наличие цветовой панели для гистограммы и двух графиков с возможностью изменения цветов диаграммы.
-
Наличие легенды для диаграммы с двумя графиками.
-
Наличие сеток основной и вспомогательной для диаграммы с одним графиком.
-
На диаграмме с общим средним баллом найти и подписать минимальное и максимальное значения разными цветами.
Лабораторная работа по Delphi №15.
Диаграммы.
Для выполнения лабораторной работы необходимы сведения, представленные в п.1.1-1.4, 2, 3.1-3.3, 3.4, 1.7, 3.5, 3.7
Цель. Закрепить навыки работы с различными компонентами..
Создать приложение из двух форм:
Первая форма: титульная. На форме вводятся данные студента: фамилия и паспорт. Эти данные должны заноситься в базу данных, если студент открывает программу впервые. По кнопке «Далее» открывается форма для тестирования студента.
Вторая форма. Бланк тестирования.
Опция «Файл» содержит команды Сохранить, Открыть, Выход.
Сохранить – сохранение задач в текстовом файле.
Открыть – открытие задач из текстового файла.
Кнопка Выполнить – запуск теста с автоматически сгенерированными задачами.
По окончании времени, отведенного на решение теста – подсчет заработанных балов по 10-ти бальной системе и вывод диаграммы по результатам.
Если студент впервые проходил тест, то результат тестирования заносится в базу. Если тестирование было повторным, то выдается сообщение с прежним и новым результатами и предложением сохранить новый результат в базе данных (ОК, Отмена).
Список литературы
-
Программирование на JAVA и C# для студента/ О.В.Герман,Ю.О.Герман.- СПб.: БХВ-Петербург, 2005.- 511с.
-
Объектно-ориентированное программирование: Учебник для вузов/ Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев; Под ред.Г.С.Ивановой.- 2-е изд.,перераб.и доп..- М.: МГТУ, 2003.- 368с.
-
Microsoft Corporation. Разработка Web- приложений на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2003. - 704стр.
-
Microsoft Corporation. Разработка Web-сервисов XML и серверных компонентов на Microsoft Visual Basic .NET и Microsoft Visual C# .NET. Учебный курс MCAD/MCSD. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2004. - 576 стр.
-
Петцолъд Ч. Программирование для Microsoft Windows на С#. В 2-х томах. Том 1, 2. /Пер. с англ. - М.: Издательско-торговый дом "Русская Редакция", 2002.
-
Троелсен Э. С# и платформа .NET. Библиотека программиста. - СПб.: Питер, 2004. -796 с.
Юлия Александровна Шичкина