Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Лабораторна робота 2
ДОСЛІДЖЕННЯ ОПИСУ ТА ВИКОРИСТАННЯ КЛАСІВ 2
Мета роботи: вивчити опис класів. Навчитися створювати, використовувати та знищувати обєкти класів.
Завдання:
ТЕОРЕТИЧНІ ВІДОМОСТІ
Опис класу С++:
<опис класу> ::= class <позначка класу> {<тіло класу>};
<тіло класу> ::= {private:} <закритий елемент>
public: <відкритий елемент>
{protected:} <захищений елемент>
<позначка класу> ::= <ідентифікатор>
<закритий елемент> ::= <опис змінної> | <опис функції> |
<опис прототипу функції> | <опис статичної змінної>
<опис статичної змінної> ::= static <опис змінної>
<відкритий елемент> ::= <конструктор> | <деструктор> |
<опис змінної> | <метод> |
<опис прототипу методу> |
<метод типу static> | <метод типу const>
<захищений елемент> ::= <опис змінної> | <опис функції> |
<опис прототипу функції>
<конструктор> ::= <позначка класу>
({<список формальних параметрів>}0)
{<тіло конструктора>}
<тіло конструктора> ::= <тіло закритої підпрограми>
<деструктор> ::= ~<позначка класу> ( ) {<тіло деструктора>}
<тіло деструктора> :: = <тіло закритої підпрограми>
<метод> ::= <опис функції>
<опис прототипу методу> ::= <опис прототипу функції>
<метод типу static> ::= static <метод>
<метод типу const> ::= <позначка типу результуючого значення>
<позначка методу> ({<список формальних параметрів>}0) const
<тіло методу>
Опис класу слід виконувати в окремому заголовковому файлі .h а опис методів у файлі .сpp
Наприклад:
//file cat.h
#include <iostream>
class Cat
{
public:
Cat (int);
~Cat();
int GetAge() const;
void SetAge ( int );
void Meow();
private:
int itsAge;
};
//file cat.cpp
#include "cat.h"
using namespace std;
int Cat::GetAge() const
{
return itsAge;
}
void Cat::SetAge ( int age )
{
itsAge = age;
}
void Cat::Meow()
{
cout << "Meow.\n";
}
Cat::Cat(int initialAge) //constructor
{
itsAge = initialAge;
}
Cat::~Cat() //destructor, takes no action
{
}
Використати даний клас можна наступним чином:
// TestСat.сpp
#include <iostream>
#include "cat.h"
using namespace std;
int main()
{
Cat Vaska(3);
//Vaska.SetAge(18);
cout << "Age: " << Vaska.GetAge() << "\n";
int a;
cin>>a;
return 0;
}
Опис класу С#:
<опис класу> ::= class <позначка класу> {<тіло класу>}
<тіло класу> ::= {private <закритий елемент>}
{public <відкритий елемент>}
{protected <захищений елемент>}
<позначка класу> ::= <ідентифікатор>
<закритий елемент> ::= <опис змінної> | <опис функції> |
<опис статичної функції> | <опис статичної змінної>
<опис статичної змінної> ::= static <опис змінної>
<відкритий елемент> ::= <конструктор> | <деструктор> |
<опис змінної> | <метод>|
<метод типу static>
<захищений елемент> ::= <опис змінної> | <опис функції> |
<конструктор> ::= <позначка класу>
({<список формальних параметрів>}0)
{<тіло конструктора>}
<тіло конструктора> ::= <тіло закритої підпрограми>
<деструктор> ::= ~<позначка класу> ( ) {<тіло деструктора>}
<тіло деструктора> :: = <тіло закритої підпрограми>
<метод> ::= <опис функції>
<метод типу static> ::= static <метод>
<метод типу const> ::= <позначка типу результуючого значення>
<позначка методу> ({<список формальних параметрів>}0) const
<тіло методу>
Опис класу слід виконувати в окремому від головної програми .cs файлі. Наприклад:
//program.cs
using System;
namespace catProject
{
class Program
{
static void Main(string[] args)
{
Cat vaska = new Cat(3);
vaska.setAge(8);
Console.WriteLine("Age of a cat: ");
Console.WriteLine( vaska.getAge() );
vaska.meow();
int a;
Console.ReadLine();
}
}
}
//cat.cs
using System;
namespace catProject
{
class Cat
{
private int itsAge;
public Cat( int initialAge )
{
itsAge = initialAge;
}
~Cat()
{
Console.WriteLine("Killing Cat");
}
public int getAge()
{
return itsAge;
}
public void setAge(int age)
{
itsAge = age;
}
public void meow()
{
Console.WriteLine("MEOW - MEOW!");
}
}
}
МЕТОДИЧНІ ВКАЗІВКИ
Клас та клієнт, що його використовує розробити в MS VisualStudio в різних проектах. Виконуючи завдання на С++ скомпілювати реалізацію методів класу в статичну бібліотеку .lib та підключити її до проекту по розробці клієнта. Виконуючи завдання на С# скомпілювати файл класу в динамічну бібліотеку .dll та підключити до її до проекту по розробці клієнта
ВАРІАНТИ ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ 2
Таблиця 1
№ варіанта |
Опис класу |
Завдання |
|
Клас |
Опис складових членів |
||
1 |
Масив цілих чисел |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод перемішування масиву випадковим чином, метод знаходження суми всіх елементів, метод, що повертає довжину масиву |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
2 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод транслітерації рядка з кирилиці, метода, що повертає кількість символів в рядку, що співпадають з даним, метод що заміняє пробіли знаком підкреслення. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
36 3 |
Масив з плаваючою крапкою |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод сортування масиву, метод знаходження добутку всіх елементів, метод, що повертає кількість елементів, що менше заданого числа |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
4 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод транслітерації рядка з латині, метода, що повертає кількість цифр в рядку, метод що заміняє голосні літери знаком підкреслення. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
5 |
Масив цілих чисел |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод видалення кожного другого елементу масиву, метод знаходження середнього арифметичного всіх членів, метод, що повертає кількість елементів, що більше заданого числа |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
6 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод, що повертає частину рядка вказаної довжини починаючи з вказаної позиції, метод, що повертає 2 рядки що є результатом розділення вихідного в казаному місці. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
7 |
Масив цілих чисел |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод видалення кожного символу, що не є літерою чи числом, метод, що повертає копію масиву, метод, що повертає найбільше число масиву |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
8 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод, що заміняє заданий підрядок в рядку на інший заданий рядок , метод, що переводить рядок до верхнього регістру |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
9 |
Масив цілих чисел |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод що порівнює масив з даним(інший масив передається в метод як параметр), метод, що повертає результат чи більше дане число ніж сума всіх елементів масиву, метод, що повертає найменше число масиву |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
10 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод, що приєднує до вихідного рядку даний рядок, що переданий як параметер, метод, що переводить рядок до нижнього регістру |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
11 |
Масив чисел з плаваючою крапкою |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод що повертає новий масив в 2 рази коротший за вихідний, кожен з елементів є сума 2-х елементів вихідного, метод знаходження різниці сум першої та другої половини масиву, метод, що віднімає від кожного елемента масиву середнє арифметичне. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
12 |
Рядок |
Вказівник на масив, конструктор з параметрами, деструктор, метод, що пересуває символи рядка вправо на вказану кількість символів, метод що вставляє між кожним символом заданий символ. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |
13 |
Масив цілих чисел |
Вказівник на масив, конструктор з параметрами (кількість елементів масиву), деструктор, метод, що повертає що двійкове значення даного елемента масиву, метод очищення масиву. |
Описати клас, обєкт; вивести дані обєкту; протестувати методи створеного обєкту |