Лабораторная работа №1 «Программирование с использованием операторов и функций»



Download 433,5 Kb.
bet5/7
Sana07.04.2020
Hajmi433,5 Kb.
#43355
TuriЛабораторная работа
1   2   3   4   5   6   7
Bog'liq
лаб янги С Каб АТ

IV. Методические указания

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



const int LNAME=25;

class STUDENT{

char name[LNAME]; // имя

int age; // возраст

float grade; // рейтинг

static int N; // статический компонент
public:

STUDENT(); // конструктор без параметров

STUDENT(char*,int,float); // конструктор с параметрами

STUDENT(const STUDENT&); // конструктор копирования

~STUDENT();

static int& count(){return N;} // статический компонент-функция

char * GetName() ;

int GetAge() const;

float GetGrade() const;

void SetName(char*);

void SetAge(int);

void SetGrade(float);

void Set(char*,int,float);

void Show(); };

int STUDENT:: N = 0; //инициализация статического компонента-данного
Более профессионально определение поля name типа указатель: char* name. Однако в этом случае реализация компонентов-функций усложняется.
2. Пример реализации конструктора с выдачей сообщения.

STUDENT::STUDENT(char*NAME,int AGE,float GRADE)

{

strcpy(name,NAME); age=AGE; grade=GRADE; N++;

cout<< \nКонструктор с параметрами вызван для объекта <<this<<endl;

}
3. Следует предусмотреть в программе все возможные способы вызова конструктора копирования. Конструктор копирования вызывается:

а) при использовании объекта для инициализации другого объекта



Пример.

STUDENT a(“Иванов”,19,50), b=a;

б) когда объект передается функции по значению



Пример.

void View(STUDENT a){a.Show;}

в) при построении временного объекта как возвращаемого значения функции



Пример.

STUDENT NoName(STUDENT & student)

{STUDENT temp(student);

temp.SetName(“NoName”);

return temp;}
STUDENT c=NoName(a);
4. В программе необходимо предусмотреть размещение объектов как в статической, так и в динамической памяти, а также создание массивов объектов.

Примеры.

а) массив студентов размещается в статической памяти



STUDENT gruppa[3];

gruppa[0].Set(“Иванов”,19,50);

и т.д.


или

STUDENT gruppa[3]={STUDENT(“Иванов”,19,50),

STUDENT(“Петрова”,18,25.5),

STUDENT(“Сидоров”,18,45.5)};

б) массив студентов размещается в динамической памяти



STUDENT *p;

p=new STUDENT [3];

p-> Set(“Иванов”,19,50);

и т.д.
5. Пример использования указателя на компонентную функцию

void (STUDENT::*pf)();

pf=&STUDENT::Show;

(p[1].*pf)();

Лабораторная работа №5
«Программирование с использованием наследования»
Цель. Получить практические навыки создания классов и объектов с использованием наследования.
I. Постановка задачи.
1. Создать класс для основной фигуры и для выреза. с использованием абстрактных классов для фигуры.

2. Создать класс для фигуры с вырезом. Реализовать методы для вычисления площади и периметра фигуры с вырезом.

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




Фигура

Вырез

1

Прямоугольник

Прямоугольник

2

Прямоугольник

Квадрат

3

Прямоугольник

Круг

4

Прямоугольник

Эллипс

5

Прямоугольник

Треугольник

6

Квадрат

Прямоугольник

7

Квадрат

Квадрат

8

Квадрат

Круг

9

Квадрат

Эллипс

10

Квадрат

Треугольник

11

Круг

Прямоугольник

11

Круг

Квадрат

13

Круг

Круг

14

Круг

Эллипс

15

Круг

Треугольник

16

Эллипс

Прямоугольник

17

Эллипс

Квадрат

18

Эллипс

Круг

19

Эллипс

Эллипс

20

Эллипс

Треугольник


III. Содержание отчета
1. Титульный лист: название дисциплины; номер и наименование работы; фамилия, имя, отчество студента; дата выполнения.

2. Постановка задачи. Следует дать конкретную постановку, т.е. указать, какие классы должны быть реализованы, какие должны быть в них конструкторы, компоненты-функции и т.д.

3. Иерархия классов в виде графа.

4. Определение пользовательских классов с комментариями.

5. Реализация конструкторов с параметрами и деструктора.

6. Листинг демонстрационной программы.



Download 433,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish