русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Приклад виконання лабораторної роботи №6


Дата додавання: 2014-11-28; переглядів: 999.


1. Приклад визначення класу STUDENT, який містить поля «ім'я», «вік», «рейтинг», конструктори трьох типів, деструктор, а також функції-методи класу.

const int LNAME=25;

class STUDENT{

char name[LNAME]; // ім'я

int age; // вік

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

public:

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

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

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

~STUDENT();

char * GetName() ;

int GetAge() const;

float GetGrade() const;

void SetName(char*);

void SetAge(int);

void SetGrade(float);

void Set(char*,int,float);

void Show(); };

 

Приклад|зразок| реалізації конструктора з|із| видачею повідомлення|сполучення|.

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

{

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

cout<< \nКонструктор з|із| параметрами викликаний|спричинений| для об'єкту

<<this<<endl;

}

2. Слід передбачити у програмі всі можливі способи виклику конструктора копіювання. Нагадуємо, що конструктор копіювання викликається|спричиняється|:

а) під час використання об'єкта для ініціалізації іншого об'єкта

Приклад

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

б) коли об'єкт передається функції за значенням

Приклад

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

в) під час побудови|шикуванні| тимчасового об'єкта як поверненого значення функції

Приклад|зразок|.

STUDENT NoName(STUDENT & student)

{STUDENT temp(student);

temp.SetName(“NoName”);

return temp;}

STUDENT c=NoName(a);

3. У програмі необхідно передбачити розміщення об'єктів як у статичній, так і у динамічній пам'яті, а також створення|створіння| масивів об'єктів.

Приклади

а) масив студентів розміщують в статичній пам'яті

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);

і т.д.

4. Приклад|зразок| використання покажчика на компонентну функцію

void (STUDENT::*pf)();

pf=&STUDENT::Show;

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

5. Програма використовує три файли:

* заголовний h-файл з|із| визначенням класу

* cpp-файл з|із| реалізацією класу

* сpp-файл демонстраційної програми.

 

6. Для запобігання багатократному|багаторазовому| ввімкненню файла-заголовка використовують наступні директиви препроцесора

#ifndef STUDENTH

#define STUDENTH

// модуль STUDENT.H

...

#endif

 

Зміст|вміст,утримання| звіту

1. Титульна сторінка: назва дисципліни; номер і найменування роботи; прізвище, ім'я, по батькові студента; дата виконання.

2. Поставлення завдання|задачі|. Слід дати конкретне поставлення, тобто вказати, який клас має бути реалізований, які повинні бути у ньому конструктори, компоненти-функції і т.д.

3. Визначення призначеного для користувача класу з|із| коментарями.

4. Реалізація конструкторів і деструкторів.

5. Фрагмент програми, що свідчить про використання покажчика на об'єкт і покажчика на функцію з|із| поясненням.

6. Лістинг основної програми, де має бути вказано, у якому місці та який конструктор або деструктор викликають.

Варіанти завдань до лабораторної роботи № 6|задавань|

Описи членів - даних призначених для користувача класів

1. СТУДЕНТ ім'я – char* курс – int підлога|стать| – int(bool) 2. СЛУЖБОВЕЦЬ ім'я – char* вік – int робочий стаж – int 3. КАДРИ ім'я – char* номер цеху – int розряд – int
4. ВИРІБ ім'я – char* шифр – char* кількість – int 5. БІБЛІОТЕКА ім'я – char* автор – char* вартість – float 6. ІСПИТ|екзамен| ім'я студента – char* дата – int оцінка – int
7. АДРЕСА ім'я – char* вулиця – char* номер дому|будинку,хати| – int 8. ТОВАР ім'я – char* кількість – int вартість – float 9. КВИТАНЦІЯ номер – int дата – int сума – float
10. ЦЕХ ім'я – char* начальник – char* кількість людей, що працюють – int 11. ПЕРСОНА ім'я – char* вік – int стать|стать| – int(bool) 12. АВТОМОБІЛЬ марка – char* потужність – int вартість| – float
13. КРАЇНА ім'я – char* форма правління – char* площа| – float 14. ТВАРИНА ім'я – char* клас – char* середня вага – int 15. КОРАБЕЛЬ назва – char* водотоннажність – int тип – char*
16. Хижак ім'я – char* ареал - char* кількість споживаної за місяць їжі – float 17. Іграшка назва – char* тип – char* або enum вартість - float   18. Фільм назва – char* режисер – char* тривалість - float
19. Дисципліна назва – char* спеціальність – char* обсяг лекц. годин – char* 20. Басейн назва - char* ширина, довжина – float глибина біля вишки – float 21. Тест назва дисципліни – char* кількість питань – int матриця вірних відповідей – int*
22. ІСПИТ|екзамен| ім'я студента – char* дата – int оцінка – int 23. ВИРІБ ім'я – char* шифр – char* кількість – int 24. СЛУЖБОВЕЦЬ ім'я – char* вік – int робочий стаж – int
25. ПЕРСОНА ім'я – char* вік – int стать|стать| – int(bool) 26. БІБЛІОТЕКА ім'я – char* автор – char* вартість – float 27. КВИТАНЦІЯ номер – int дата – int сума – float
28. ТОВАР ім'я – char* кількість – int вартість – float 29. ЦЕХ ім'я – char* начальник – char* кількість людей, які працюють – int 30. ВОКЗАЛ назва – char*; ередня кількість пасажирів за день – float маршрути - сhar**

СПИСОК ЛІТЕРАТУРИ


<== попередня лекція | наступна лекція ==>
Деструктори | Деякі функції роботи з рядками із файлу string.h


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн