- •1 Лінійні програми
- •2. Програми з розгалуженням
- •3. Циклічні програми з регулярною зміною аргумента
- •4 Циклічні програми з регулярною зміною аргумента, які містять розгалуження
- •5 Інтеграційні циклічні процеси
- •6 Одновимірні масиви
- •7 Циклічні програми з накопиченням суми або добутку
- •8 Вкладені цикли
- •9 Двовимірні масиви, сортування масивів
- •10 Процедури
- •11 Підпрограми-функції
- •12 Обробка текстів
- •13 Файли
- •14 Основи ооп. Принципи побудови класів
- •Завдання
- •Приклад розв’язання задачі
- •15. Перевантаження функцій
- •Завдання
- •Приклад розв’язання задачі
- •16. Шаблони функцій
- •Завдання
- •25. Написати функцію dob, яка шукає добуток серед двох, трьох та чотирьох цілих та дійсних чисел.
- •Приклад розв’язання задачі
Приклад розв’язання задачі
Створити клас з полями та методами згідно Вашого варіанта. Оголосити кілька об’єктів цього класу, використовуючи конструктори з параметрами, без параметрів та конструктор копіювання. Продемонструвати роботу всіх методів класу.
1.СТУДЕНТ поля: ім'я – char* вік – int рейтинг – int методи: введення імені введення віку введення рейтингу виведення інформації про об’єкт |
Лістинг програми
/**************************************************/
/* Лабораторна робота № 21 */
/* Іванов І.І. Варіант №30. */
/**************************************************/
#include<iostream.h>
#include<conio.h>
#include<string.h>
// ------------опис класу--------------------------------
class TStudent
{
privat:
char name[25]; // ім’я
int age; // вік
float grade; // рейтинг
public:
TStudent(); // конструктор без параметрів
TStudent(char*,int,float); // конструктор з параметрами
TStudent(const TStudent&); // конструктор копіювання
void SetName(char*); //метод для введення імені студента
void SetAge(int); //метод для введення віку студента
void SetGrade(float); /*метод для введення рейтингу студента*/
void Show();//метод для виведення інформації про студента
};
//-------- опис конструктора без параметрів---------------
TStudent::TStudent()
{
strcpy(name,"Ne_vidomo");
age=0;
grade=0.0;
}
//--------опис конструктора з параметрами----------------
TStudent::TStudent(char* a,int b,float c)
{
strcpy(name,a);
age=b;
grade=c;
}
//--------опис конструктора копіювання--------------------
TStudent::TStudent(const TStudent& X)
{
strcpy(name,X.name);
age=X.age;
grade=X.grade;
}
//-------- опис функції введення імені студента-----------
void TStudent::SetName(char* a)
{
strcpy(name,a);
}
//------- опис функції введення віку студента-------------
void TStudent::SetAge(int a)
{
age=a;
}
//------- опис функції введення рейтингу студента--------
void TStudent::SetGrade(float a)
{
grade=a;
}
//---- опис функції виведення інформації про студента-----
void TStudent::Show()
{
cout<<"\nInformacia pro studenta:";
cout<<"\nname: "<<name;
cout<<"\nage: "<<age;
cout<<"\ngrade: "<<grade<<endl;
}
//--------- головна функція програми----------------------
void main()
{
TStudent N1; //виклик конструктора без параметрів
TStudent N2("Ivanow",21, 145.2); /*виклик конструктора з параметрами*/
cout<<"#1: ";
N1.Show(); /*виклик функції виведення інформації про об’єкт*/
cout<<"#2: ";
N2.Show();
N1.SetName("Petrov"); /*виклик функції введення імені студента*/
cout<<"#1: ";
N1.Show();
N1.SetAge(23); //виклик функції введення віку студента
N1.SetGrade(150.0); /*виклик функції введення рейтингу студента*/
cout<<"#1: ";
N1.Show();
TStudent N3;
cout<<"#3: ";
N3.Show();
N3=N1; //виклик конструктора копіювання
cout<<"#3: ";
N3.Show();
getch();
}
Результати роботи програми
#1:
Informacia pro studenta:
name: Ne_vidomo
age: 0
grade: 0
#2:
Informacia pro studenta:
name: Ivanow
age: 21
grade: 145.2
#1:
Informacia pro studenta:
name: Petrov
age: 0
grade: 0
#1:
Informacia pro studenta:
name: Petrov
age: 23
grade: 150
#3:
Informacia pro studenta:
name: Ne_vidomo
age: 0
grade: 0
#3:
Informacia pro studenta:
name: Petrov
age: 23
grade: 150
