Основы работы в С++

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

Лабораторная работа №1

 

Тема: Создание классов и объект. Основные приемы работы с классами и объектами.

Задача 1

Разработать классы для описанных ниже объектов. Включить в класс методы set (…), get (…), show (…). Определить другие методы. Написать программу, демонстрирующую работу с этим классом. Класс соответствует индивидуальному варианту.

1. Student: Фамилия, Имя, Отчество, Дата рождения, Адрес, Средний балл, Факультет, Курс. Определить является ли студент двоечником, троечником, хорошистом, отличником.

#include

using namespace std;student {fam[10];im[10];otch[10];datarog[10];adress[10];ball;fak[10];kurs[10];:set (char fam[10], char im[10], char otch[10], char datarog[10], char adress[10], double ball, char fak[10], char kurs[10])

{(this->fam, fam);(this->im, im);(this->otch, otch);(this->datarog, datarog);(this->adress, adress);>ball=ball;(this->fak, fak);(this->kurs, kurs);

}get_rec (char f[10], char i[10], char o[10], char d[10], char ad[10], double & ba,faki[10], char ku[10])

{strcpy (f, fam);(i, im);(o, otch);(d, datarog);(ad, adress);=ball;(faki, fak);(ku, kurs);

}show()

{cout4)||(ball<=5)) {cout<< horoshist<<endl;}{cout<< troeishnik<<endl;}}red3 (double ball) {if (ball==5) cout<< otlichnik<<endl;}

};main() {

 

student wee;a[10];b[10];c[10];d[10];q[10];w;e[10];t[10];t;.set (a, b, c, d, q, w, e, t);.red(w);.red1 (w);.red3 (w);.show();

return 0;

}

Задание 2

. Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для него конструктор по умолчанию, конструктор инициализации и конструктор преобразования.

. Определить функции-члены класса для ввода и вывода членов-данных внутри объявления класса.

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

. Выполнить программу и проверить соответствие заданных и полученных данных. 5. Определить функции ввода и вывода вне объявления класса и повторить выполнение программы.

. Объявить функции ввода и вывода как друзей класса с параметром - объектом класса, передаваемым по значению. Изменить определение этих функций и повторить выполнение программы.

. Объявить функции ввода и вывода как друзей класса с параметром - объектом класса, передаваемым по ссылке. Изменить определение этих функций и повторить выполнение программы.

 

#includenamespace std;comchislo

{

double x;y;

:(double x, double y)

{>x=x;>y=y;

}set (double x, double y)

{>x=x;>y=y;

}get_1 (double &x, double &y)

{>x=x;>y=y;

}show()

{<< z=<<x<< "+i*"<<y<<endl;

}set_s1 (double x, double y);get_s1 (double &x, double &y);

friend void vivod (comchislo o);

};comchislo:set_s1 (double x, double y)

{>x=x;>y=y;

}comchislo:get_s1 (double &x, double &y)

 

{>x=x;>y=y;

}vivod (double x, double y)

{<< z=<<x<< "+i*"<<y<<endl;

}main()

{x, y;o (0,0);.show();y;.set (x, y);.show();.set_s1 (x, y);(x, y);0;}

Анология

#include

 

using namespace std;comchislo

{x;y;:(double x, double y)

{>x=x;>y=y;

}set (double x, double y)

{>x=x;>y=y;

}get_1 (double &x, double &y)

{>x=x;>y=y;

}tim (double x, double y) {(x+y)/2-45;}show()

{<< z=<<x<< "+i*"<<y<<endl;

}

};main()

>x>>y>>k>>z;.set(x,y);=o.tim(x,y)-o.tim(x,k)+2*o.tim(z,y);z;.set (x, y);=o.tim (x, y) - o.tim (x, k)+2*o.tim (z, y);<<p;=o.tim (k, z) - o.tim (k, y)+o.tim (y, y) - o.tim (x, x);<<p1;=p;=p1;.show();0;

}}

 

Контрольные вопросы

) Что представляет собой класс?

Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект - это экземпляр класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.

) Какие спецификации доступа используются при описании класса

В современных объектно-ориентированных языках программирования (в том числе в php, Java, C++, Oberon, Python, Ruby, Smalltalk, Object Pascal) создание класса сводится к написанию некоторой структуры, содержащей набор полей и методов (среди последних особую роль играют конструкторы, деструкторы, финализаторы). Практически класс может пониматься как некий шаблон, по которому создаются объекты - экземпляры данного класса. Все экземпляры одного класса созданы по одному шаблону, поэтому имеют один и тот же набор полей и методов.(закрытый, внутренний член класса) - обращения к члену допускаются только из методов того класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену. Наследование по типу private запрещает доступ из дочернего класса ко всем членам родительского класса, включая даже public-члены (С++);(защищённый, внутренний член иерархии классов) - обращения к члену допускаются из методов того класса,