Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛабРаб_ООП

.pdf
Скачиваний:
145
Добавлен:
27.05.2015
Размер:
1.37 Mб
Скачать

Міністерство освіти і науки України Запорізька державна інженерна академія

ОБ’ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

Методичні вказівки до виконання лабораторних робіт

для студентів ЗДІА спеціальності 080403 ”Програмна інженерія”

очної та заочної форм навчання

1

Об’єктно-орієнтоване програмування. Методичні вказівки до виконання лабораторних робіт. Для студентів ЗДІА спеціальності 080403 ”Програмна інженерія” очної та заочної форм навчання /Укл.: В.І.Попівщий. – Запоріжжя, 2011.

– 135 с.

Методичні вказівки призначені для студентів спеціальності

080403

”Програмне забезпечення автоматизованих систем”, які виконують лабораторні роботи по курсу “Об’єктно-орієнтоване програмування ”. Вказівки містять завдання для лабораторних робіт, теоретичні відомості, зразки виконання завдань, список рекомендованої літератури.

Укладач: В.І.Попівщий, доцент

Відповідальний за випуск : зам.зав.кафедрою ПЗАС

доцент А.І.Безверхий

2

 

ЗМІСТ

ВСТУП

........................................................................................................................................................ 5

Лабораторна робота №1. Введення в C#. Створення консольних застосувань і застосувань Windows Forms на C# в Visual Studio 2005. Робота з вбудованими (примітивними) типами

даних. Оператори вибору. .......................................................................................................................

7

Завдання. ............................................................................................................................................................

7

Хід роботи. ........................................................................................................................................................

8

Вправа 1. Створення консольного застосування на C# в середовищі Visual Studio 2005. .........................

8

Вправа 2. Створення застосування Windows Forms....................................................................................

10

Методичні вказівки і теоретичні відомості................................................................................................

15

Що таке .NET Framework..................................................................................................................................................

15

Архітектура середовища виконання .NET.......................................................................................................................

16

Загальна бібліотека класів ................................................................................................................................................

18

Типи даних C#....................................................................................................................................................................

19

Введення даних користувачем і їх виведення.................................................................................................................

20

Вказівки до завдання 3. .....................................................................................................................................................

21

Вказівки до завдання 4. .....................................................................................................................................................

21

Лабораторна робота №2. Цикли, рядки, файли в C#.......................................................................

25

Завдання. ..........................................................................................................................................................

25

Хід роботи. ......................................................................................................................................................

26

Вправа 1. Використання класу FileStream для читання з файлу з довільним доступом..........................

26

Вправа 2. Відрядкове читання з файлу за допомогою класу StreamReader...............................................

27

Методичні вказівки і теоретичні відомості................................................................................................

27

Цикли ..................................................................................................................................................................................

27

Робота з рядками і символами..........................................................................................................................................

30

Робота з файлами...............................................................................................................................................................

33

Вказівки до завдання 1. .....................................................................................................................................................

35

Лабораторна робота №3. Обробка виключень в C#

......................................................................... 36

Завдання. ..........................................................................................................................................................

36

Хід роботи. ......................................................................................................................................................

36

Вправа 1............................................................................................................................................................

36

Вправа 2............................................................................................................................................................

37

Методичні вказівки і теоретичні відомості................................................................................................

38

Клас System.Exception .......................................................................................................................................................

38

Основи обробки виключень..............................................................................................................................................

38

Лабораторна робота №4. Використання масивів і колекцій. Класи ArrayList, Queue, Stack,

Hashtable, SortedList. ..............................................................................................................................

40

Варіанти завдання. .........................................................................................................................................

40

Хід роботи. ......................................................................................................................................................

41

Вправа 1............................................................................................................................................................

41

Вправа 2............................................................................................................................................................

42

Методичні вказівки і теоретичні відомості................................................................................................

44

Масиви................................................................................................................................................................................

44

Робота з колекціями...........................................................................................................................................................

46

Лабораторна робота №5. Класи в C#. Спадкування.

....................................................................... 53

Варіанти завдання. .........................................................................................................................................

53

Хід роботи. ......................................................................................................................................................

53

Вправа 1............................................................................................................................................................

54

Вправа 2............................................................................................................................................................

54

Методичні вказівки і теоретичні відомості................................................................................................

55

Визначення класу...............................................................................................................................................................

56

Спадкоємство.....................................................................................................................................................................

60

Віртуальні методи..............................................................................................................................................................

64

Лабораторна робота №6. Перевантаження операцій в C#.

............................................................. 65

Варіанти завдання. .........................................................................................................................................

65

Хід роботи. ......................................................................................................................................................

67

3

 

Вправа. Клас Fraction раціональних чисел (дробів).....................................................................................

68

Методичні вказівки і теоретичні відомості................................................................................................

70

Основи перевантаження операцій....................................................................................................................................

70

Перевантаження бінарних операцій.................................................................................................................................

71

Перевантаження унарних операцій..................................................................................................................................

71

Лабораторна робота №7. Делегати і події. .........................................................................................

72

Варіанти завдання. .........................................................................................................................................

72

Хід роботи. ......................................................................................................................................................

72

Вправа 1............................................................................................................................................................

72

Вправа 2............................................................................................................................................................

74

Методичні вказівки і теоретичні відомості................................................................................................

75

Делегати..............................................................................................................................................................................

75

Події....................................................................................................................................................................................

77

Лабораторна робота №8. Використання елементів Windows Forms і діалогових вікон...........

79

Варіанти завдання. .........................................................................................................................................

79

Хід роботи. ......................................................................................................................................................

87

Вправа 1. Приклад використання меню........................................................................................................

87

Вправа 2. Побудова призначених для користувача діалогових вікон .........................................................

89

Методичні вказівки і теоретичні відомості................................................................................................

91

Лабораторна робота №9. Виведення графічної інформації. GDI+. .............................................

109

Варіанти завдання. .......................................................................................................................................

109

Хід роботи. ....................................................................................................................................................

109

Вправа 1. Виведення ліній за допомогою класу Pen....................................................................................

110

Вправа 2. Малювання фігур за допомогою класу Brush.............................................................................

110

Вправа 3. Малювання квадратів по натисненню лівої кнопки миші........................................................

112

Методичні вказівки і теоретичні відомості..............................................................................................

113

Лабораторна робота №10. Доступ до даних за допомогою ADO.NET.........................................

117

Завдання. ........................................................................................................................................................

117

Хід роботи. ....................................................................................................................................................

117

Короткі теоретичні відомості..................................................................................................................

120

Лабораторна робота №11. Застосування ASP.NET . ......................................................................

123

Завдання. ........................................................................................................................................................

123

Хід роботи. ....................................................................................................................................................

123

Вправа.............................................................................................................................................................

123

Короткі теоретичні відомості..................................................................................................................

133

ЛІТЕРАТУРА ........................................................................................................................................

134

4

ВСТУП

Не буде перебільшенням сказати, що мова C# та пов'язане з нею середовище, платформа .NET, є найбільш важливою новою технологією для розробників за останні роки [1]. C# (вимовляється “сі шарп”) – об'єктно-орієнтована мова програмування для платформи .NET. Вона розроблена Андерсом Хейлсбергом, Скоттом Вілтамутом і Пітером Гольде під егідою Microsoft Research (науково-дослідний інститут при фірмі Microsoft) [28]. Андерс Хейлсберг (Anders Heilsberg) – творець TurboPascal і головний архітектор Delphi (до версії 4.0).

Мова C#, разом з Visual Basic .NET, Visual C++.NET скриптовою мовою JScript .NET входить до складу Microsoft Visual Studio .NET. Всі ці мови забезпечують доступ до платформи Microsoft

.NET (раніше ця платформа називалася Next Generation Windows Services NGWS), яка містить загальне виконуюче ядро і обширну бібліотеку класів.

Синтаксис C# близький до синтаксису С++ і Java. Мова має строгу типізацію, підтримує поліморфізм, перевантаження операторів, делегати, події, властивості, виключення, коментарі у форматі XML і автоматичну “збірку сміття”. Мова не підтримує множинного спадкоємства і , в першій версії, - узагальненого програмування (як в С++). Коріння мови C# йде від мови C++, Delphi, Модула, Smalltalk, Java, хоча вона запозичила багато речей і з інших мов.

C# – прямий нащадок двох найуспішніших в світі комп'ютерних мов: С і С++ [9]. Від C вона успадкувала синтаксис, ключові слова і операції. Вона дозволяє побудувати і удосконалити об'єктну модель, визначену в C++. Крім того, C# близько пов'язана з іншою дуже успішною мовою: Java. C# і Java – це скоріше “двоюрідні брати“[9]. Наприклад, вони обидві підтримують програмування розподілених систем і обидві використовують проміжний код для досягнення переносимості, але розрізняються при цьому в деталях реалізації.

Спираючись на могутній фундамент, який складають успадковані характеристики, C# містить ряд важливих нововведень, що піднімають мистецтво програмування на новий ступінь. Наприклад, до складу елементів мови C# включені такі поняття, як делегати, властивості, індексатори і події. Доданий також синтаксис, який підтримує атрибути; спрощено створення компонентів за рахунок виключення проблем, пов'язаних з СОМ (Component Object Model – модель компонентних об'єктів Microsoft – стандартний механізм, що включає інтерфейси, за допомогою яких об'єкти надають свої служби іншим об'єктам). І ще. Подібно Java, мова C# пропонує засоби динамічного виявлення помилок, забезпечення безпеки і керованого виконання програм. Але, на відміну від Java, C# дає програмістам доступ до покажчиків [9]. Таким чином, C# поєднує первозданну потужність C++ з типовою безпекою Java, яка забезпечується наявністю механізму контролю типів і коректним використанням шаблонних класів. Більш того, мова C# відрізняється тим, що компроміс між потужністю і надійністю ретельно збалансований і практично прозорий (не помітний для користувача або програми).

Програми на C# можуть бути трансльовані в особливий байт-код, що виконується на віртуальній машині – програмі, що обробляє байтовий код і передає інструкції устаткуванню, як інтерпретатор, але з тією відмінністю, що байтовий код на відміну від тексту обробляється значно швидше.

З погляду маркетингу, C# є симетричною відповіддю на виклик з боку компанії Sun Microsystems, що випустила мову Java на декілька років раніше, яка в даний час є основним конкурентом C# на стороні серверних і клієнтських платформ.

Мова C# стандартизована в комітеті ECMA (Європейській асоціації виробників комп'ютерів – Standard ECMA-334° C# Language Specification, 2nd edition, December 2002) і ISO (ISO/IEC 23270:2003, Information technology — C# Language Specification). В даний час випущена друга версія мови, причому до комісії з проектування підключилося ще декілька видних фахівців, серед яких Ерік Майер. Ведуться роботи над третьою версією мови.

5

На думку деяких аналітиків, застосування мови обмежене тим, що вона призначена виключно для платформи .NET фірми Microsoft, і, отже, для операційних систем цієї компанії. Microsoft негативно відноситься до розробки аналогів .NET сторонніми виробниками для інших операційних систем, таких як Mono (для платформи Linux)[28].

Впродовж всієї історії розвитку обчислювальної техніки еволюція мов програмування означала зміну обчислювального середовища, способу мислення програмістів і самого підходу до програмування. Мова C# не є виключенням. У безперервному процесі удосконалення, адаптації і впровадження нововведень C# в даний час знаходиться на передньому краю. Це – мова, ігнорувати існування якої не може жоден професійний програміст [9].

Пропонований цикл лабораторних робіт охоплює основні конструкції мови C# і її застосування при розробці консольних і графічних застосувань Windows, частково стосуючись застосувань ASP.NET та ADO.NET.

6

Лабораторна робота №1. Вступ до мови C#. Робота з вбудованими (примітивними) типами даних. Оператори вибору.

Мета роботи: набути навичок створення консольних і графічних застосувань на мові C# в середовищі Microsoft Visual Studio 2005.

Завдання.

1.Розробити консольну програму, що виводить меню з пропозицією вибрати один з примітивних типів даних (int, long, float, double, decimal, string, char, bool). Після вибору користувачем певного пункту меню програма повинна видати довільне значення змінної вибраного типу. При виборі пункту Quit здійснити вихід з програми.

2.Розробити графічний варіант попереднього завдання. Програма повинна видавати вікно приблизно такого вигляду:

3. Розробити консольний і графічний варіанти простого калькулятора.

7

4.Розробити застосування Dates, що порівнює дві введені дати. Використовувати умовні оператори і елемент управління DateTimePicker. Написати метод dateCompare. Зразковий вид застосування наступний:

Хід роботи.

1.Виконати Вправу 1 по створенню консольного застосування на C# в середовищі Visual Studio 2005.

2.Виконати Вправу 2 по створенню застосування Windows Forms на C# в середовищі Visual Studio 2005.

3.Виконати завдання 1-4.

Вправа 1. Створення консольного застосування на C# в середовищі Visual Studio 2005.

1.У Microsoft Windows клацніть кнопку Пуск, виберіть Всі програми а потім Microsoft Visual Studio 2005.

2.Клацніть піктограму Microsoft Visual Studio 2005. Запуститься Microsoft Visual Studio 2005.

3.У меню File виберіть New а потім Project. Відкриється діалогове вікно New Project. Це діалогове вікно надає вам можливість створити новий проект з використанням різних шаблонів, таких як Windows Application, Class Library, або Console Application.

4.У панелі Project types виберіть Visual C#, Window. У панелі Templates виберіть Console Application.

5.У полі Location виберіть робочий каталог, в якому ви зберігатимете проекти C#.

6.У полі Name надрукуйте TextHello.

7.Переконайтеся в тому, що прапорець Create Directory for Solution вибраний і клацніть OK. Відкриється новий проект. Головне вікно проекту містить звичайні menu bar і toolbar, а також вікна Code and Text Editor window, Solution Explorer і Properties. У вікні Code and Text Editor відображаються початкові тексти файлів проекту. Вікно Solution Explorer відображає імена файлів і каталогів, пов'язаних з проектом. Перш ніж написати код програми

8

розглянемо файли і директорії в Solution Explorer, створені Visual Studio 2005 як частина проекту.

Файл рішення (solution) TextHello.sln.

Це файл найвищого рівня нашого проекту. Якщо ви відкриєте директорію вашого проекту TextHello, ви побачите, що цей файл називається TextHello.sln. Кожен файл рішення містить посилання на один або більше файлів проектів.

Файл проекту TextHello.csproj.

Кожен файл проекту посилається на один або більше файлів, що містять початкові тексти і інші частини проекту. Всі початкові тексти в одиночному (single) проекті повинні бути написані на одній і тій же мові програмування. Цей файл називається

TextHello.csproj.

Properties.

Це директорія в проекті TextHello. Якщо ви відкриєте її, ви побачите, що вона містить файл AssemblyInfo.cs. Це спеціальний файл, який ви можете використовувати, щоб додати атрибути (attributes) в програму, наприклад такі, як ім'я автора, дата створення програми і т.д.

References.

Це директорія, яка містить посилання на компільований код, який ваше застосування може використовувати. Коли код відкомпілювався, він перетвориться в assembly і отримує унікальне ім'я. Розробники використовують assemblies щоб упакувати написані ними корисні порції коду для розповсюдження серед інших розробників.

Program.cs

Це файл початкового коду C#, що відображається в редакторові Code and Text Editor, коли проект вперше створюється. Ви повинні написати свій код в цьому файлі. Він містить деяку порцію коду, що автоматично згенерувала Visual Studio 2005.

8. Написання коду з використанням технології IntelliSense.

9

У цій вправі ми напишемо код, що виводить повідомлення Hello World в консольному вікні. У вікні Code and Text Editor відображається файл Program.cs. Помістіть курсор в метод Main після дужки, що відкривається, і надрукуйте Console. Як тільки ви надрукуєте букву C слова Console, з'явиться список IntelliSense list. Цей список містить всі ключові слова C# і типи даних, які підходять для поточного контексту. Ви можете або продовжити набір на клавіатурі ключового слова Console, або знайти його в списку і виконати на нім подвійне клацання мишею. Відмітимо, що Console є вбудованим класом, що містить методи для відображення інформації на екрані і здійснення введення з клавіатури. Тепер метод матиме наступний вигляд:

static void Main(string[] args)

{

Console

}

9.Надрукуйте крапку відразу після слова Console. З'явиться інший Intellisense list, що відображає методи, властивості і поля класу Console.

10.Знайдіть в списку метод WriteLine і натисніть Enter. Intellisense list закриється і метод буде доданий в початковий файл. Метод Main зараз виглядатиме так:

static void Main(string[] args)

{

Console.WriteLine

}

11.Надрукуйте відкриваючу дужку. З'явиться інший Intellisense tip. Він відображатиме параметри методу WriteLine. Насправді, WriteLine є перевантажуваний метод, і це означає, що існує декілька методів з ім'ям WriteLine, що відрізняються набором параметрів.

12.Надрукуйте закриваючу дужку і крапку з комою. Метод Main зараз виглядатиме так:

static void Main(string[] args)

{

Console.WriteLine();

}

13.Надрукуйте рядок "Hello World" між дужками, що відкриваються і закриваються. Метод Main зараз виглядатиме так:

static void Main(string[] args)

{

Console.WriteLine(“Hello World”);

}

Побудова і запуск консольного застосування.

14.У меню Build виберіть пункт Build Solution. Ця дія викликає компіляцію коду C#. З'явиться Output window під вікном Code and Text Editor. (Якщо це вікно не з'явилося, то виберіть в меню View пункт Output для відображення цього вікна). Вікно Output відображає результати компіляції і всі деталі, що стосуються помилок, допущених при компіляції.

15.У меню Debug виберіть пункт Start Without Debugging. З'явиться вікно Command window і

програма запуститься на виконання. З'явиться повідомлення Hello World, і програма чекатиме натиснення на будь-яку клавішу.

Вправа 2. Створення застосування Windows Forms.

До цих пір ви використовували Visual Studio 2005 для створення консольних застосувань. Проте програмне середовище Visual Studio 2005 містить всі необхідні засоби для створення графічних

10