Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
31 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
176.50 kB
Просмотров:
79
Скачиваний:
1
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Информатика. Спецглавы](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img0.jpg)
Содержание слайда: Информатика. Спецглавы
Направление: Инфокоммуникационные технологии и системы связи
2012 год
№2 слайд![Объектно-ориентированный](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img1.jpg)
Содержание слайда: Объектно-ориентированный подход в программировании
Объектная декомпозиция задачи
Объект имеет:
имя
набор свойств
состояние
модель поведения
Объекты взаимодействуют между собой с помощью своих интерфейсов
№3 слайд![Понятия](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img2.jpg)
Содержание слайда: Понятия объектно-ориентированного программирования (ООП)
Объект (object)
Класс (class)
Свойство (property)
не изменяющиеся в течение времени
изменяющиеся в течение времени (переменные состояния)
Метод (method)
Состояние (state)
переходы между состояниями
Сообщение (message)
№4 слайд![Принципы ООП Инкапсуляция](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img3.jpg)
Содержание слайда: Принципы ООП
Инкапсуляция
Полиморфизм
Наследование
№5 слайд![Инкапсуляция](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img4.jpg)
Содержание слайда: Инкапсуляция
№6 слайд![Класс в C Объявление класса](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img5.jpg)
Содержание слайда: Класс в C++
Объявление класса
class MyClass
{
public:
// доступно всем
private:
// доступно только данному классу
protected:
//доступно классу и его наследникам
};
Создание объекта
MyClass MyObject;
№7 слайд![Объявление класса class](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img6.jpg)
Содержание слайда: Объявление класса
class Person
{
public:
Person();
std::string GetName();
void SetName(std::string val);
int GetYear();
void SetYear(int val);
private:
std::string Name;
int Year;
};
№8 слайд![Реализация функций-членов](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img7.jpg)
Содержание слайда: Реализация функций-членов класса
Person::Person()
{
//Конструктор по умолчанию
}
void Person::SetName(std::string Nval)
{
Name = Nval;
}
void Person::SetYear(int val)
{
Year = val;
}
№9 слайд![Реализация функций-членов](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img8.jpg)
Содержание слайда: Реализация функций-членов класса (2)
std::string Person::GetName()
{
return Name;
}
int Person::GetYear()
{
return Year;
}
№10 слайд![Программа с использованием](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img9.jpg)
Содержание слайда: Программа с использованием объекта
int main(int argc, char** argv)
{
Person P; // Вызов конструктора по умолчанию
P.SetName("Anita");
P.SetYear(1978);
cout << P.GetName() <<" "<< P.GetYear()<< endl;
return 0;
}
№11 слайд![Конструирование класса,](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img10.jpg)
Содержание слайда: Конструирование класса, моделирующего работу устройства
Переменные, определяющие состояние устройства:
наличие электропитания (да,нет)
наличие бумаги (да, нет)
выполнение задания на печать (да, нет)
Методы:
включить/выключить
добавить бумагу
убрать бумагу
отправить задание на печать
остановить печать
просмотреть текущее состояние принтера
№12 слайд![Таблица состояний принтера](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img11.jpg)
Содержание слайда: Таблица состояний принтера
№13 слайд![Объявление класса Printer](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img12.jpg)
Содержание слайда: Объявление класса Printer (Printer.h)
class Printer
{
public:
Printer();
virtual ~Printer();
void on_off();
void set_print();
void stop_print();
void paper_out();
void put_paper();
void show();
private:
int is_on;
int is_print;
int has_paper;
};
№14 слайд![Реализация методов класса](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img13.jpg)
Содержание слайда: Реализация методов класса Printer (1) (Printer.cpp)
#include "Printer.h"
#include <iostream>
using namespace std;
Printer::Printer(): is_on(0), is_print(0), has_paper(0)
{
}
Printer::~Printer()
{
}
№15 слайд![Реализация методов класса](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img14.jpg)
Содержание слайда: Реализация методов класса Printer (2)
void Printer::on_off()
{
is_on = !is_on;
is_print = 0;
}
void Printer::set_print()
{
if (is_on&&has_paper) is_print=1;
}
void Printer::stop_print()
{
is_print=0;
}
№16 слайд![Реализация методов класса](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img15.jpg)
Содержание слайда: Реализация методов класса Printer (3)
void Printer::paper_out()
{
has_paper=0; is_print=0;
}
void Printer::put_paper()
{
has_paper=1;
}
void Printer::show()
{
if(!is_on) cout << "turned off"<< endl;
else
if(!has_paper) cout <<"No paper!" << endl;
else
if (is_print) cout <<"Printing"<<endl;
else cout << "Ready!" <<endl;
}
№17 слайд![Главная функция main.cpp](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img16.jpg)
Содержание слайда: Главная функция (main.cpp)
#include <iostream>
#include "Printer.h"
using namespace std;
int main()
{
Printer Pr;
int command, end=1;
Pr.show();
№18 слайд![Главная функция продолжение](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img17.jpg)
Содержание слайда: Главная функция (продолжение)
while (end)
{
cout << '' Введите команду ->' ;
cin >> command;
switch (command)
{
case 1: Pr.on_off(); Pr.show(); break;
case 2: Pr.set_print(); Pr.show(); break;
case 3: Pr.stop_print(); Pr.show(); break;
case 4: Pr.paper_out(); Pr.show(); break;
case 5: Pr.put_paper(); Pr.show();break;
default: end=0;
}
}
return 0;
}
№19 слайд![Диаграмма файлов компонентов](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img18.jpg)
Содержание слайда: Диаграмма файлов (компонентов) проекта
№20 слайд![Перегрузка функций Пример](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img19.jpg)
Содержание слайда: Перегрузка функций
Пример – стандартная математическая функция возведения в степень pow()
long double pow(long double,int);
long double pow(long double,long double);
float pow(float,int);
float pow(float,float);
double pow(double,int);
double pow(double,double);
№21 слайд![Перегрузка методов класса](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img20.jpg)
Содержание слайда: Перегрузка методов класса
Пример – класс «Графический редактор»
Объявление класса
class Draw
{
char* message;
public:
Draw ();
~Draw ();
void Paint (); // Рисует текст
void Paint (int, int,int,int); // Рисует
// прямоугольник
void Paint (int, int, int); // Рисует окружность
} ;
№22 слайд![Пример класс Графический](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img21.jpg)
Содержание слайда: Пример – класс «Графический редактор»
Пример – класс «Графический редактор»
Реализация методов (1)
Draw::Draw ()
{
message = new char [10];
strcpy (message, “text”);
}
Draw::~Draw ()
{
delete[ ] message;
// message = NULL;
}
№23 слайд![Пример класс Графический](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img22.jpg)
Содержание слайда: Пример – класс «Графический редактор»
Пример – класс «Графический редактор»
Реализация методов (2)
void Draw::Paint ()
{
std::cout << message << std::endl;
}
void Draw::Paint (int cx1, int cy1, int cx2, int cy2)
{
std::cout << “Рисуем прямоугольник” << std::endl;
}
void Draw::Paint (int cx1, int cy1, int r)
{
std::cout << “Рисуем окружность” << std::endl;
}
№24 слайд![Пример класс Графический](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img23.jpg)
Содержание слайда: Пример – класс «Графический редактор»
Пример – класс «Графический редактор»
Функция main ()
int main ()
{
Draw draw;
draw.Paint (); // Рисует текст
draw.Paint (1,1,10,15); // Прямоугольник
draw.Paint (5,5,10); // Окружность
return 0;
}
№25 слайд![Виды конструкторов](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img24.jpg)
Содержание слайда: Виды конструкторов
Конструктор по умолчанию
Конструктор с параметрами
Копирующий конструктор
class Person
{
char* Name;
int Year;
public:
Person (); // Конструктор по умолчанию
Person (char*, int); // Конструктор
// с параметрами
Person (const Person&); // Копирующий
// конструктор
~Person (); // Деструктор
// Другие методы
} ;
№26 слайд![Конструктор по умолчанию](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img25.jpg)
Содержание слайда: Конструктор по умолчанию
Реализация
Person::Person ()
{
}
или
Person::Person ()
{
Name = new char[7];
strcpy(Name,”Noname”);
Year = 0;
}
Вызов конструктора по умолчанию
Person MyPerson;
№27 слайд![Конструктор с параметрами](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img26.jpg)
Содержание слайда: Конструктор с параметрами
Реализация
Person::Person (char* N, int Y)
{
Name = new char[strlen(N)+1];
strcpy (Name, N);
Year = Y;
}
Вызов конструктора с параметрами
Person MyPerson(“Ann”,1990);
№28 слайд![Конструктор с параметрами по](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img27.jpg)
Содержание слайда: Конструктор с параметрами по умолчанию
Реализация конструктора
Person::Person (
char* N=“Noname”, int Y=0)
{
Name = new char[strlen(N)+1];
strcpy (Name, N);
Year = Y;
}
Вызов конструктора
Person MyPerson (“Ann”,1990); // или
Person MyPerson;
№29 слайд![Конструктор со списком](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img28.jpg)
Содержание слайда: Конструктор со списком инициализации
Реализация конструктора
Person::Person (
char* N, int Y): Name(new char[strlen(N)+1]),Year(Y)
{ //Если свойство Name - указатель
strcpy(Name,N);
}
Вызов конструктора
Person MyPerson (“Ann”,1990);
№30 слайд![Копирующий конструктор](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img29.jpg)
Содержание слайда: Копирующий конструктор
Реализация
Person::Person (const Person& P)
{
Name = new char[strlen(P.Name)+1];
strcpy (Name, P.Name);
Year = P.Year;
}
Вызов копирующего конструктора
Person MyPerson(“Ann”,1990);
Person NewPerson(MyPerson);
№31 слайд![Деструктор Реализация по](/documents_5/aa7fa8bdcd942fe0a3f5af3910b0daea/img30.jpg)
Содержание слайда: Деструктор
Реализация
// по умолчанию
Person::~Person ()
{
}
// для рассматриваемого примера
Person::~Person ()
{
delete[ ] Name;
}
Вызов деструктора – явный вызов не требуется.