Методпособие_2_семестр
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Н.М. КОЗЬМИНЫХ
ПРОГРАММИРОВАНИЕ НА C#
Часть 2
Допущено редакционно-издательской комиссией методического совета ГОУ ВПО «ВятГУ» в качестве учебно-методического пособия для проведения лабораторных работ для студентов направления подготовки
080500 «Бизнес информатика» и
230700 «Прикладная информатика»,
всех профилей подготовки всех форм обучения
Киров 2013
Рекомендовано к изданию методическим советом Факультета экономики и менеджмента ГОУ ВПО «ВятГУ»
Допущено редакционно-издательской комиссией методического совета ГОУ ВПО «ВятГУ» в качестве учебно-методического пособия для проведения лабораторных работ для студентов направления подготовки 080500 «Бизнес информатика» и 230700 «Прикладная информатика», всех профилей подготовки всех форм обучения
Рецензенты:
Козьминых, Н.М.
Программирование: учебно-методического пособия для проведения лабораторных работ для студентов направления подготовки 080500«Бизнес-информатика» , 230700 «Прикладная информатика» всех профилей подготовки, всех форм обучения / Н.М.
Козьминых. – Киров: ПРИП ГОУ ВПО «ВятГУ», 2013.- 26 с.
В издании излагаются методические рекомендации к выполнению лабораторных работ по дисциплине «Программирование».
УДК 004(07) К593
© ГОУ ВПО «ВятГУ», 2013
2
Оглавление |
|
Перечень лабораторных работ на первый семестр .................................................................................................................... |
4 |
Перечень рекомендуемой литературы ....................................................................................................................................... |
5 |
Лабораторная работа №7. Построение графика функции.......................................................................................................... |
7 |
Теоретический материал работы............................................................................................................................................ |
7 |
Результат работы .................................................................................................................................................................. |
12 |
Лабораторная работа №8. Игра «Собери больше фигур»........................................................................................................ |
14 |
Добавление новой формы к проекту.................................................................................................................................... |
14 |
Добавление класса к проекту................................................................................................................................................ |
15 |
Результат работы .................................................................................................................................................................. |
15 |
Лабораторная работа №9. Работа с одномерными и двумерными массивами........................................................................ |
23 |
Лабораторная работа №10. Массивы и коллекции .................................................................................................................. |
24 |
Лабораторная работа №11. Работа с коллекциями .................................................................................................................. |
25 |
Лабораторная работа №12. Работа со строками....................................................................................................................... |
27 |
3
Перечень лабораторных работ на первый семестр
Перечень лабораторных работ
№ |
№ |
Наименование работы |
Ко |
№ недели |
Дата |
Раздел из |
п/п |
Л.р. |
|
лич |
|
|
конспекта |
|
|
|
ест |
|
|
лекций |
|
|
|
во |
|
|
|
|
|
|
час |
|
|
|
|
|
|
ов |
|
|
|
I семестр
1 |
7 |
Построение графика |
2 |
1 |
|
|
10.02 - 16.02 |
|
|
|
функции |
|
|
|
|
|
|
3 |
8 |
Игра «Собери больше |
4 |
2 |
- 3 |
|
17.02 - 02.03 |
|
|
|
фигур» |
|
|
|
|
|
|
4 |
9 |
Работа с одномерными и |
8 |
4 |
- 7 |
|
03.03 - 30.03 |
|
|
|
двумерными массивами |
|
|
|
|
|
|
5 |
Первая |
контрольная точка: аттестационная неделя |
|
|
||||
6 |
10 |
Массивы и коллекции |
8 |
8 |
- 11 |
|
31.03 - 27.04 |
|
7 |
11 |
Работа с коллекциями |
8 |
12 - 15 |
28.04 - 25.05 |
|
||
8 |
Вторая контрольная точка: аттестационная неделя |
|
|
|||||
9 |
12 |
Работа со строками |
4 |
16 - 17 |
26.05 - 08.06 |
|
||
10 |
Защита работ |
2 |
18 |
|
|
|
||
11 |
Третья контрольная точка: экзамен |
|
|
|
|
|
|
|
ИТОГО |
|
36 |
18 |
|
|
|
4
Перечень рекомендуемой литературы
а) Основная:
1.Акулов О.А. Информатика: базовый курс.- М.: Омега, 2004. – 552 с.
2.Бен-Ари М. Языки программирования. Практический сравнительный анализ:
Пер.с англ. – М.: Мир, 2000. -366 с.
3.Вирт Н. Алгоритмы и структуры данных: Пер. с англ. - М.: Мир, 1989, - 360 с.
4.Дейтел Х.М., Дейтел П.Дж.. Как программировать на Си++. М.:ЗАО БИНОМ, 2000, 1024 с.
5.Завгородний В.И. Комплексная защита информации в компьютерных системах.
– М.: ЛОГОС. - 2001. - 264 с.
6.Информатика. Базовый курс. Под ред. Симоновича С.В. – СПб.: Питер, 2005. 640 с.
7.Кнут Д. Искусство программирования для ЭВМ. т.3. Сортировка и поиск: Пер. с
англ., - М.: Мир, 2001, 832 с.
8.Кормен Т., Лейзерон Ч., Ривест Р. Алгоритмы: построение и анализ. М.:
МЦНМО, 2000. 960 с.
9.Крячков А.В. и др. Программирование на С и С++: Практикум: Учеб. Пособие для студ. Вузов / Под ред. В.К.Томшина. – М.: Радио и связь. – 344с.
10.Лорин Г. Сортировка и системы сортировки. - Издательство «Наука». 1983. – 384с.
11.Могилев А.В. Информатика: учебное пособие/ Могилев А.В., Пак Н.И., Хеннер Е.К. – М.: Academa, 1999.- 816с.
12.Подбельский В.В., Фомин С.С.. Программирование на языке Си. М.:ФиС, 1998, 600 с.
13.Подбельский В.В. Язык Си++: Учеб.пособие. -М.:Финансы и статистика, 1999. - 560 с.
14.Романец Ю.В. Защита информации в компьютерных системах и сетях. – М.: Радио и связь. - 2001. – 376 с.
15.Савельев А.Я. Основы информатики: учебник. – М.: Издательство МГТУ им.
Н.Э.Баумана, 2001. -328 с.
16.Сван Т. Программирование для Windows в Borland C++ / пер. с англ. В Тимофеева. – М.: БИНОМ, 1996. – 480 с.
17.Топп У., Форд У.. Структуры данных в Си++. М.:ЗАО БИНОМ, 1999, 816 с.
б) Дополнительная 18. У.Сэвитч. С++ в примерах. – М.: ЭКОМ. – 734с.
в) Методическая
19.Нестерова Л.А. Информатика и программирование. Конспект лекций. Часть 1 и 2. - Киров. – 2003.
20.Нестерова Л.А. Информатика и программирование. Методические указания к лабораторным работам. Часть 1. - Киров. - 2003.
г) ГОСТы 21. ЕСКД. Схемы алгоритмов, программ, данных и систем. Условные обозначения
5
и правила выполнения. ГОСТ 19.701-90 (ИСО 5807-85).
22.СТП ВятГУ 101-2004.
23.СТП ВятГУ 102-2004.
6
Лабораторная работа №7. Построение графика функции
Цель работы: создать приложение с графическим интерфейсом для построения
графика функции.
План работы: в течение одного занятия студент должен изучить материал текущей лабораторной работы и продемонстрировать свои навыки преподавателю. В
результате чего студент получает две оценки: за приложение и за изученный материал.
Задание: создать приложение построения графика функции
ρ= acos2 |
bsin2 |
=0,05,для b:10 b 100, |
заданного |
в |
полярных |
a= 40,0 |
2π, |
||||
координатах. |
|
|
|
|
|
Требование к работе:
1. Предусмотреть кнопки «Нарисовать» и «Выход».
Требование к отчету:
1.Титульный лист: номер и название лабораторной работы.
2.Текст задания.
3.Форма в процессе проектирования и выполнения.
4.Структура приложения.
5.Таблица свойств объектов.
6.Список идентификаторов.
7.Программные коды.
Теоретический материал работы
1. Построение графика
Существует четыре способа задания функции:
|
в явной форме |
у = F(x) ; |
|
в неявной форме F(x,y) = 0 ; |
|
|
параметрическая |
х = f1( t), y = f2( t); |
в полярных координатах ρ= ρ (φ), φ (φ1, φ 2). Полярные координаты ρ и φ связаны с декартовой системой координат следующими соотношениями х = ρCosφ, y = ρSinφ.
7
Если функция задана явно у = F(x) , то для построения можно воспользоваться циклом, в котором осуществляется вычисление значения функции для значений х,
меняющихся с заданным шагом, и нанесение этих точек на график. В этом случае графическая зависимость будет представлять собой последовательность точек.
2. Рисование фигур
Для рисования объектов в Windows Forms приложениях язык С++ содержит очень богатый набор методов. Пространство имен Drawing содержит множество объектов,
которые облегчают программисту работу с графикой. Специально для .NET
платформы разработчики Microsoft разработали GDI+ библиотеку, значительно повысив возможности GDI (Graphic Device Interface). GDI+ включает возможности рисования простейших объектов (линии, эллипсы...), рисование различных объектов
2D графики, отображение файлов различных графических форматов (bmp, jpeg, gif, wmf, ico, tiff, ...) и многое другое.
.Net позволяет рисовать линии, прямоугольники и другие фигуры в координатной системе. Кроме того, можно выбирать различные координатные системы, но по умолчанию начало координат находится в верхнем левом углу, где ось Х направлена вправо, а ось У вниз. Единицей измерения является пиксель (pixel).
Для рисования графических элементов используется класса Graphics. Для класса
Graphics существуют следующие методы рисования:
DrawArc |
Рисует дугу, которая является частью эллипса, заданного парой координат, шириной и |
|
высотой. |
||
|
||
|
|
|
DrawBezier |
Рисует сплайны Безье, которые заданы точками структуры Point. |
|
|
|
|
DrawBeziers |
Рисует сплайны Безье, которые соединяют массив структур Point. |
|
|
|
8
DrawClosedCurve |
Рисует замкнутые кардинальные сплайны, точки которых определены как массив |
|
|
структур Point. |
|
|
|
|
DrawCurve |
Рисует кардинальные сплайны (это кривая, которая плавно проходит через набор точек), |
|
|
точки которых определены как массив структур Point. |
|
|
|
|
DrawEllipse |
Формирует эллипс, определенный ограничивающим прямоугольником, заданным с |
|
помощью пары координат, ширины и высоты. |
||
|
||
|
|
|
DrawImage |
Рисует заданный объект Image в заданном месте, используя исходный размер. |
|
|
|
|
DrawLine |
Проводит линию, соединяющую две точки, определенные парами координат. |
|
|
|
|
DrawLines |
Формирует набор сегментов линии, которые соединяют массив структур Point. |
|
|
|
|
DrawPie |
Рисует сектор, определенный эллипсом, который задан парой координат, шириной, |
|
высотой и двумя радиальными линиями. |
||
|
||
DrawPolygon |
Рисует многоугольник, определяемый массивом структур Point. |
|
|
|
|
DrawRectangle |
Рисует прямоугольник, который определен парой координат, шириной и высотой. |
|
|
|
|
DrawRectangles |
Рисует набор прямоугольников, определяемых структурой Rectangle. |
|
|
|
|
DrawString |
Создает текстовую строку в заданном месте с указанными объектами Brush и Font. |
|
|
|
|
FillClosedCurve |
Закрашивает замкнутые кардинальные сплайны, точки которых определены как массив |
|
|
структур Point. |
|
|
|
|
FillEllipse |
Закрашивает эллипс, определенный ограничивающим прямоугольником, заданным с |
|
|
помощью пары координат, ширины и высоты. |
|
|
|
|
FillPie |
Закрашивает сектор, определенный эллипсом, который задан парой координат, шириной, |
|
|
высотой и двумя радиальными линиями |
|
|
|
|
FillPolygon |
Закрашивает многоугольник, определяемый массивом структур Point. |
|
|
|
|
FillRectangle |
Закрашивает прямоугольник, который определен парой координат, шириной и высотой. |
|
|
|
|
FillRectangles |
Закрашивает набор прямоугольников, определяемых структурой Rectangle. |
|
|
|
В качестве инструмента рисования используется перо (Pen), которое имеет следующие свойства: цвет (например, Color::Blue – голубой цвет), толщина, стиль
(System :: Drawing :: Drawing2D :: DashStyle).
Стиль:
DashStyle::Dash |
Прерывистая линия |
DashStyle::DashDot |
Линия – точка |
DashStyle::DashDotDot |
Линия – точка – точка |
DashStyle::DashDot |
Линия точками |
DashStyle::Solid |
Сплошная линия |
Замкнутые фигуры можно закрашивать: однородным цветом (SolidBrush), штриховкой (HatchBrush), текстурой (TextureBrush), линейным градиентом
(LinearGradientBrush) и траекторный градиент (PathGradientBrush).
Примеры
Линии, прямоугольники, эллипсы
Graphics g = this.CreateGraphics();// Создает графический объект и
// связываем его с формой
g.Clear(Color.White) ; // цвет фона задаем белым
// Рисуем линию определенного стиля
Pen pen1 = new Pen(Color.Blue, 3.0f); // создаем перо синего цвета и толщиной 3пик pen1.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; // задаем стиль пера g.DrawLine(pen1, 20,120, 100,60); // рисуем линию
// Рисуем закрашенный красный квадрат
9
SolidBrush sb1 = new SolidBrush(Color.Red); // задаем заливку g.FillRectangle(sb1, 60, 30, 40, 40); // рисуем закрашенный квадрат
//Рисуем закрашенный прямоугольник и его окантовку
SolidBrush sb2 = new SolidBrush(Color.Yellow); Pen pen2 = new Pen(Color.Aqua, 2.0f);
pen2.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot; g.FillRectangle(sb2, 90,40, 60,45); g.DrawRectangle(pen2, 90,40, 60,45);
//Рисуем закрашенный эллипс
System.Drawing.Drawing2D.HatchBrush hb1 = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.DiagonalCross, Color.Black, Color.Green);
g.FillEllipse(hb1, 30,100, 65,50);
// Рисуем наклонный эллипс
Pen pen3 = new Pen(Color.Fuchsia, 2.0f);
pen3.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDotDot; g.ResetTransform();
g.RotateTransform(45); g.DrawEllipse(pen3, 70, -10, 100, 50);
Кардинальные сплайны (Cardinal Spline)
Graphics g = this.CreateGraphics(); g.Clear(Color.White);
Point point1 = new Point(0,100); Point point2 = new Point(50,80); Point point3 = new Point(100,20); Point point4 = new Point(150,80); Point point5 = new Point(200,100);
Point[] curvePoints = {point1,point2,point3,point4,point5}; Pen pen = new Pen(System.Drawing.Color.Aquamarine, 2f); g.DrawCurve(pen, curvePoints);
foreach (Point point in curvePoints)
g.FillRectangle(Brushes.Red, new Rectangle(point, new Size(5,5)));
Анимированная надпись
На рисунке 1.1 представлена форма в процессе проектирования, на рисунке 1.2 –
форма в процессе выполнения.
10