Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП 01 Пример Создание класса

.doc
Скачиваний:
13
Добавлен:
14.02.2015
Размер:
67.58 Кб
Скачать

3

Пример № 1 Создание класса

Пример программы № 1

  1. Создание класса

В приведённом примере решена следующая задача:

Вычислить вес тела заданной массы.

Код файла newton.h

// newton.h: interface for the newton class.

//////////////////////////////////////////////////////////////////////

#if !defined(AFX_NEWTON_H__A13E976D_1909_4821_9393_944F2EC2459D__INCLUDED_)

#define AFX_NEWTON_H__A13E976D_1909_4821_9393_944F2EC2459D__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

////////////////////////////////////////////////// подключение библиотек ///////////////////////////////////////////////

#include<iostream.h> // содержит функции ввода-вывода

#include<windows.h> // содержит функцию CharToOem

#include <math.h> // содержит математические функции

///////////////////////////////////////////////// интерфейс класса newton /////////////////////////////////////////////////

class newton

{ // закрытые члены класса

float m ; // масса тела

float F ; // сила тяжести, действующая на тело

const float g; // ускорение свободного падения, константный член класса

public: // общедоступные члены класса

newton ( ) : g ( 9.8f ) { } // конструктор по умолчанию; использует список инициализации

void Title ( ) ; // вывод на экран заголовка

void Input ( ) ; // ввод данных с клавиатуры

void Calc ( ) { F = m * g ; } // вычисление силы

void Print ( ) ; // вывод на экран результатов расчёта

} ;

#endif // !defined(AFX_NEWTON_H__A13E976D_1909_4821_9393_944F2EC2459D__INCLUDED_)

В код файла newton.h добавлены команды подключения библиотек iostream.h и windows.h

В объявление класса добавлен:

  • раздел закрытых членов класса, с переменными членами-класса – m, F, и константным членом класса – g ;

  • общедоступные функции-члены класса: title ( ), input ( ), calc ( ), print ( ).

Из объявления класса удалено объявление деструктора, поскольку класс не содержит динамических данных.

Код файла newton.cpp

// newton.cpp: implementation of the newton class.

#include "newton.h"

// Construction/Destruction

/////////////////////////////////// РЕАЛИЗАЦИЯ функциЙ-членОВ класса newton //////////////////////////////////////////

// функция-член класса newton выводит на экран заголовок программы

void newton :: Title ( )

{ // объявляет и инициализирует строку заголовка

char S [ ] = ”\t\tПрограмма вычисляет вес тела заданной массы \n”

”\t\tпо второму закону Ньютона, F = m g \n”

”\t\tПрограмма составлена Незнайкой.\n ”

”\t\tВсе права принадлежат Ньютону.\n\n”;

CharToOem ( S , S ) ; // преобразует символы строки в кириллицу

cout << S ; // выводит на экран строку заголовка

}

// функция-член класса newton вводит данные с клавиатуры

void newton :: Input ( )

{

char S [ ] = " \tВведите массу тела, кг \t"; // объявляет и инициализирует строку приглашения

CharToOem ( S , S ) ; // преобразует символы строки в кириллицу

cout << S ; // выводит на экран строку приглашения

cin >>m ; // вводит массу тела с клавиатуры

}

// функция-член класса newton вводит на экран результатов расчёта

void newton :: Print ( )

{

char S [ ] = "\t\tВес тела равен \t\t"; // объявляет и инициализирует строку ответа

CharToOem ( S , S ) ; // преобразует символы строки в кириллицу

cout << S << F ; // выводит на экран строку ответа и значения силы

CharToOem (" ньютон \n\n" , S ) ; // преобразует строку единицы измерения

cout << S ; // выводит на экран единицы измерения

}

Код файла main.cpp

#include "newton.h"

///////////////////////////////////// прототипы глобальных функциЙ /////////////////////////////////////////////////

bool Repeat ( ) ; // прототип функции диалога с пользователем

/////////////////////////////////////////////// ОСНОВНАЯ ПРОГРАММА ////////////////////////////////////////////////////////////

void main ( )

{

newton A ; // создаёт объект с помощью конструктора по умолчанию

A.Title ( ) ; // вывод на экран заголовка

A.Input ( ) ; // ввод данных с клавиатуры

A.Calc ( ) ; // вычисление силы

A.Print ( ) ; // вывод на экран результатов расчёта

// объявляет указатель на объект класса newton, выделяет память для объекта класса Newton,

// создаёт объект с помощью конструктора по умолчанию, размещает его в выделенной памяти

// и инициализирует указатель адресом объекта

newton* pB = new newton ;

do

{

pB->Input ( ) ; // ввод данных с клавиатуры

pB->Calc ( ) ; // вычисление силы

pB->Print ( ) ; // вывод на экран результатов расчёта

}

while ( Repeat ( )) ; // запрос о продолжении работы и повтор программы

delete pB ; // уничтожает объект, расположенный по адресу pB

// и освобождает выделенную память

}

///////////////////////////////////// РЕАЛИЗАЦИЯ глобальных функциЙ ////////////////////////////////////////////

// глобальная функция выводит на экран запрос о продолжении работы и

// если пользователь нажал клавишу ’Y’, то возвращает true

// если пользователь нажал любую другую клавишу, то возвращает false

bool Repeat ( ) // реализация функции диалога с пользователем

{

char S [ ] = ”\t\t\tПродолжить ? (Y/N) ” ; // объявляет и инициализирует строку запроса

CharToOem ( S , S ) ; // преобразует символы строки в кириллицу

cout << S ; // выводит на экран запрос о продолжении работы

char C ; // объявляет переменную для ответа пользователя

cin >> C ; // получает значение клавиши, нажатой пользователем

if ( C == ’Y’ || C == ’y’ ) return true ; // если пользователь нажал клавишу ’Y’, то возвращает true

else return false ; // если пользователь нажал любую другую клавишу, то возвращает false

}

Результат работы программы

Программа вычисляет вес тела заданной массы

по второму закону Ньютона, F = m g

Программа составлена Незнайкой.

Все права принадлежат Ньютону.

Введите массу тела, кг 10

Вес тела равен 98 ньютон

Продолжить ? (Y/N)

Выжол Ю.А. Объектно-ориентированное программирование