Рефераты. Объектно-ориентированое програмирование на С++

Объектно-ориентированое програмирование на С++

Міністерство освіти і науки України

Запорізький національний університет

Кафедра інформаційних технологій

 

 

 

 

 

 

Індивідуальна робота

З теми: «С++. Класи і об’єкти»

 

 

 

Виконав:

студ. 2 курсу

матем. ф-ту

гр. 8226-1

Лапін С.М.

Перевірив:

Борю С.Ю.

 

 

 

 

 

 

Запоріжжя 2007

Цель: Разработка простейших классов на примере разработки моделей элементарных объектов и динамических информационных структур (одно и двунаправленных списков).

1 часть работы "разработка простых классов"

Постановка задачи

Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Разработать вызывающую программу (main), использующей объекты разработанного класса и тестирующие работоспособность всех методов.

Варианты заданий

14.  Объект «прямоугольник заданный длинами двух сторон». Предусмотреть возможность операции присваивания, определения площади и периметра, а так же логический метод, отвечающий на вопрос – является ли прямоугольник квадратом. Конструктор должен позволить создавать объекты без и с начальной инициализацией.

Програма:

#ifndef rectangle__h

#define rectangle__h

#include <math.h>


class rectangle

{

                private:

                               double a, b;

                public:

                               rectangle();

                               rectangle(double, double);

                               ~rectangle();

                               rectangle & operator=(const rectangle & x);

                               double square(void);

                               double perimeter(void);

                               double diagonal(void);

                               int is_square(void);

                               void print_rectangle(void);

};


#endif


#ifndef conrectangle__h

#define conrectangle__h

#include <iostream.h>

#include "rectangle.h"


rectangle::rectangle()

{

                cout<<"The constructor \"rectangle()\" worked.\n";

                a=1.0;

                b=1.0;

};


rectangle::rectangle(double x, double y)

{

                cout<<"The constructor \"rectangle(double, double)\" worked.\n";

                a=x;

                b=y;

};


rectangle::~rectangle()

{

                cout<<"The destructor \"~rectangle()\" worked.\n";

                a=0.0;

                b=0.0;

};


rectangle & rectangle::operator=(const rectangle & x)

{

                if(this==&x) return *this;

                this->a=x.a;

                this->b=x.b;

                return *this;

};


double rectangle::square(void)

{

                return a*b;

};


double rectangle::perimeter()

{

                return 2*a+2*b;

};


double rectangle::diagonal()

{

                return sqrt(a*a+b*b);

};


int rectangle::is_square()

{

                if(a==b) return 1;

                return 0;

};


void rectangle::print_rectangle()

{

                char msg1[]=" ", msg2[]=" not ";

                cout<<"a="<<a<<"  b="<<b;

                cout<<"\nS= "<<square()<<" m^2   P="<<perimeter()<<" m   d="<<diagonal()<<" m";

                cout<<"\nRectangle is";

                if(is_square())

                               cout<<msg1;

                else

                               cout<<msg2;

                cout<<"square.\n";

                return;

};


#endif


#include <iostream.h>

#include "conrectangle.h"


void main()

{

                rectangle r1;

                double a,b;

                char s[1];

                cout<<"\nESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)\n";

                do

                {

                               cout<<"\n  Our rectangle:\n";

                               r1.print_rectangle();

                               cout<<"Input a, b:\n";

                               cin>>a>>b;

                               rectangle r2(a, b);

                               cout<<"\n Your rectangle:\n";

                               r2.print_rectangle();

                               r1=r2;

                               cout<<"\n Your rectangle is our now:\n";

                               r1.print_rectangle();

                               cout<<"Repeat or quit?(r/q)...";

                               cin>>s;

                }

                while (s[0]!='q');

                return;

};

Результати:

D:\Studies\Labs\Cpp\Individ_6>ind1

The constructor "rectangle()" worked.


ESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)


  Our rectangle:

a=1  b=1

S= 1 m^2   P=4 m   d=1.41421 m

Rectangle is square.

Input a, b:

456.125

789.5452485

The constructor "rectangle(double, double)" worked.


 Your rectangle:

a=456.125  b=789.545

S= 360131 m^2   P=2491.34 m   d=911.829 m

Rectangle is not square.


 Your rectangle is our now:

a=456.125  b=789.545

S= 360131 m^2   P=2491.34 m   d=911.829 m

Rectangle is not square.

Repeat or quit?(r/q)...r

The destructor "~rectangle()" worked.


  Our rectangle:

a=456.125  b=789.545

S= 360131 m^2   P=2491.34 m   d=911.829 m

Rectangle is not square.

Input a, b:

0.4876

0.4876

The constructor "rectangle(double, double)" worked.


 Your rectangle:

a=0.4876  b=0.4876

S= 0.237754 m^2   P=1.9504 m   d=0.689571 m

Rectangle is square.


 Your rectangle is our now:

a=0.4876  b=0.4876

S= 0.237754 m^2   P=1.9504 m   d=0.689571 m

Rectangle is square.

Repeat or quit?(r/q)...r

The destructor "~rectangle()" worked.


  Our rectangle:

a=0.4876  b=0.4876

S= 0.237754 m^2   P=1.9504 m   d=0.689571 m

Rectangle is square.

Input a, b:

16.23

31.06

The constructor "rectangle(double, double)" worked.


 Your rectangle:

a=16.23  b=31.06

S= 504.104 m^2   P=94.58 m   d=35.0448 m

Rectangle is not square.


 Your rectangle is our now:

a=16.23  b=31.06

S= 504.104 m^2   P=94.58 m   d=35.0448 m

Rectangle is not square.

Repeat or quit?(r/q)...q

The destructor "~rectangle()" worked.

The destructor "~rectangle()" worked.


D:\Studies\Labs\Cpp\Individ_6>

 

2 часть работы  «Информационные динамические структуры»

 

Постановка задачи


Написать программу, в которой создаются динамические структуры, и  выполнить их обработку в соответствии со своим вариантом.

Для каждого вариант разработать следующие методы:

1.                Конструктор пустого списка.

2.                Добавление элемента в список (в соответствии со своим вариантом).

3.                Удаление элемента из списка (в соответствии со своим вариантом).

4.                Печать списка.

5.                Запись списка в файл.

6.                Восстановление списка из файла.

7.                Деструктор списка (уничтожение).

Порядок выполнения работы

1.                Разработать описание класса, выделить публичные и приватные поля данных. Разработать интерфейс класса – прототипы методов.

2.                Написать функцию для создания списка. Функция может создавать пустой список, а затем добавлять в него элементы.

3.                Написать функцию для печати списка. Функция должна предусматривать вывод сообщения, если список пустой.

4.                Написать функции для удаления и добавления элементов списка в соответствии со своим вариантом.

5.                Выполнить изменения в списке и печать списка после каждого изменения.

6.                Написать функцию для записи списка в файл.

7.                Написать функцию для уничтожения списка.

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.