Министерство Образования и науки Российской Федерации
Комсомольский-на-Амуре Государственный Технический Университет
Кафедра МОП ЭВМ
Лабораторная работа №15
по дисциплине «Программирование»
«Разработка класса пользователя»
Выполнил: Домбровский Г.В.
Группа: 4ВС-1
Проверил: Петров Ю.А.
Комсомольск-на-Амуре
2005
Цель работы:
· Научиться разрабатывать простейшие классы пользователя;
· Научиться пользоваться новым потоком ввода / вывода;
· Научиться использовать манипуляторы при форматированном вводе / выводе.
Задание: Разработать собственный класс, в котором имеются закрытые и открытые переменные и функции, конструкторы и деструктор. Конструкторы должны инициализировать переменные различными способами. Использовать перегрузку функций и операций. Предусмотреть ввод / вывод с использованием потока iostream с использованием манипуляторов. Предметная область может быть любая.
CLASSES.cpp
#include<iostream.h>
#include<math.h>
#include<conio.h>
class vector
{//объявление закрытых переменных класса
private:
int x,y,z;
int lx,ly,lz;
public: //открытые элементы
//конструкторы
vector(); //конструктор по умолчанию
vector(int,int); //конструктор инициализации
vector(int,int,int); //конструктор инициализации
vector(const vector &vvod); //конструктор копирования
//член-функции класса
void result(); //функция вывода координат вектора
void lenvec(); //функция расчёта и вывода длины вектора
//дружественные функции
friend istream &operator>>(istream &, vector &); //перегрузка оператора >>
friend ostream &operator<<(ostream &, vector &); //перегрузка оператора <<
friend vector operator+(vector &, vector &); //перегрузка операции сложения
friend vector operator*(vector &, vector &); //перегрузка операции умножения
~vector(); //деструктор
};
vector::vector() { };
vector::vector(int ins1, int ins2)
{
x=ins1;
y=ins2;
z=0;
lx=ins1*ins1;
ly=ins2*ins2;
lz=0;
}
vector::vector(int ins1, int ins2, int ins3)
{
x=ins1;
y=ins2;
z=ins3;
lx=ins1*ins1;
ly=ins2*ins2;
lz=ins3*ins3;
}
vector::vector(const vector &vvod)
{
x=vvod.x;
y=vvod.y;
z=vvod.z;
lx=vvod.x*vvod.x;
ly=vvod.y*vvod.y;
lz=vvod.z*vvod.z;
}
void vector::result()
{
cout<<endl<<"Координаты вектора :"<<" "<<x<<" "<<y<<" "<<z;
}
void vector::lenvec()
{
cout<<endl<<"Длина вектора : "<<sqrt(lx+ly+lz);
}
istream &operator>>(istream &fi, vector &fp)
{
fi>>fp.x>>fp.y>>fp.z;
fp.lx=fp.x*fp.x;
fp.ly=fp.y*fp.y;
fp.lz=fp.z*fp.z;
return fi;
}
ostream &operator<<(ostream &fo, vector &fp)
{
fo<<endl<<fp.x<<" "<<fp.y<<" "<<fp.z;
return fo;
}
vector operator+(vector &slag1, vector &slag2)
{
return vector(slag1.x+slag2.x,slag1.y+slag2.y,slag1.z+slag2.z);
}
vector operator*(vector &slag1, vector &slag2)
{
return vector(slag1.x*slag2.x,slag1.y*slag2.y,slag1.z*slag2.z);
}
vector::~vector() { };
void main()
{clrscr();
vector a;
cout<<"Введите координаты вектора"<<endl;
cin>>a; //Ввод координат вектора а с клавиатуры
cout<<"Вектор а. ";
a.result();
a.lenvec();
vector b(a); // применение конструктора копирования
cout<<endl<<endl<<"Вектор b: "<<b;
b.lenvec();
vector c(3,6,7); //применение конструктора инициализации для трех переменных
cout<<endl<<endl<<"Вектор с. ";
c.result();
c.lenvec();
getch();
vector d(4,11); //применение конструктора инициализации для двух переменных
cout<<endl<<endl<<"Вектор d.";
d.result();
d.lenvec();
vector i(a+c); //сложение координат векторов
cout<<endl<<endl<<"Вектор i (i=a+c).";
i.result();
i.lenvec();
vector j(b*d); //умножение координат векторов
cout<<endl<<endl<<"Вектор j (j=b*d).";
j.result();
j.lenvec();
getch();
}
Результат работы программы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.