Технологія складу програм. Базові засоби мови C++

Курсовой проект - Компьютеры, программирование

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

?м достатньо абстракції даних. Наскільки застосовне обєктно-орієнтоване програмування для даної області додатка.

РОЗДІЛ 3. ОБЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ

 

Ми не розрізняємо загальні властивості фігур (наприклад, фігура має колір, її можна намалювати і т.д.) і властивості конкретної фігури (наприклад, окружність - це така фігура, що має радіус, вона зображується за допомогою функції, що малює дуги і т.д.). Суть обєктно-орієнтованого програмування в тім, що воно дозволяє виражати ці розходження і використовує них. Мова, що має конструкції для вираження і використання подібних розходжень, підтримує обєктно-орієнтоване програмування. Всі інші мови не підтримують його. У цьому програмуванні основну роль грає механізм спадкування, запозичений з мови Симула. Спочатку визначимо клас, що задає загальні властивості усіх фігур:

 

їclass shape

{

point center;

color col;

// ...

public:

point where () { return center; }

void move ( point to ) { center = to; draw(); }

virtual void draw ();

virtual void rotate ( int );

// ...

};

 

Ті функції, для яких визначаємо заявлений інтерфейс, але реалізація яких (тобто тіло з операторною частиною) можлива тільки для конкретних фігур, відзначені службовим словом vіrtual (віртуальні). У Симуле і С++ віртуальність функції означає: "функція може бути визначена пізніше в класі, похідному від даного". З урахуванням такого визначення класу пишу загальні функції, що працюють з фігурами:

 

void rotate_all ( shape v [], int size, int angle )

// повернути всі елементи масиву "v" розміру "size"

// на кут рівний "angle"

{

int i = 0;

while ( i<size )

{

v [ i ] . rotate ( angle );

i = i + 1;

}

}

 

Для визначення конкретної фігури варто вказати, насамперед , що це - саме фігура і задати її особливі властивості (включаючи і віртуальні функції):

 

class circle : public shape

{

int radius;

public:

void draw () { /* ... */ };

void rotate ( int ) {} // да, поки функція порожня

};

 

У мові С++ клас cіrcle називається похідним стосовно класу shape, а клас shape називається базовим для класу cіrcle. Можлива інша термінологія, що використовує назви "підклас" і "суперклас" для класів cіrcle і shape відповідно. Тепер парадигма програмування формулюється так: Визначите, який клас вам необхідний; надайте повний набір операцій для кожного класу; спільність класів виразите явне за допомогою спадкування. Якщо спільність між класами відсутня, цілком достатньо абстракції даних. Наскільки застосовне обєктно-орієнтоване програмування для даної області додатка визначається ступенем спільності між різними типами, що дозволяє використовувати спадкування і віртуальні функції. У деяких областях, таких, наприклад, як інтерактивна графіка, є широкий простір для обєктно-орієнтованого програмування. В інших областях,

у яких використовуються традиційні арифметичні типи й обчислення над ними, важко знайти застосування для більш розвитих стилів програмування, чим абстракція даних. Цей засіб, що підтримує обєктно-орієнтоване програмування, мабуть, надлишковий. Перебування спільності серед окремих типів системи являє собою нетривіальний процес. Ступінь такої спільності залежить від способу проектування системи. У процесі проектування виявлення спільності класів повинне бути постійною метою. Вона досягається двома способами: або проектуванням спеціальних класів, використовуваних як "цеглини" при побудові інших, або пошуком схожих класів для виділення їхньої загальної частини в один базовий клас. Отже, ми вказали, яку мінімальну підтримку повинна забезпечувати мова програмування для процедурного програмування, для заховування даних, абстракції даних і обєктно-орієнтоване програмування.

ВИСНОВКИ

 

Підводячи підсумок роботи, хочу зазначити, що в ході роботи було розглянуте обєктно-орієнтоване програмування. Слід зазначити, що воно широко використовується у програмуванні. У ньому реалізовані основні складаючи: інкапсуляція, поліморфізм та наслідування. Це дає змогу обєднання даних та використовувати їх функції в одне ціле, що робиться за допомогою класів. Є можливість позначати різні, але сходні дії однаковими іменами та створювати єдині інтерфейси для різних реалізацій одного й того ж алгоритму, позначаючи їх однаковими іменами. І третя властивість, яка є теж важливою присвоєння одним класом властивостей другого класу.

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

 

  1. Калоєров С.А. Програмування на мові С++: учбовий посібник. Д.: ООО Юго Восток, Лтд, 2004.
  2. Стауступ Б. Мова програмування С++. 3-те вид. / Пер. з англ. СПб.: БІНОМ, 1999.

Павловська Т.А. Програмування на мові високого рівня - СПб: Пітер, 2003

ДОДАТОК А

 

Скласти клас для дослідження оцінок студента у сесії на якість (на 4 і 5) і неуспішність (наявність хоча б однієї оцінки 2). Використовуючи цей клас, скласти програму знаходження кількості студентів групи, успішних на 4 і 5 та неуспішних, а також вирахувати процентне відношення для кожного з цих показників. Студенти у сесії здавали 4 іспиту.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код програми:

 

#include //Підключення бібліотек

class Student{

public: //Опис членів

void cinr();

void coutr();

int r45();

int r2();

private:

int s[4];}; //Масив ввода оцінок

void Student :: cinr() //Функція ввода оцінок студента

{cout<<"Vvedite ocenky studenta: ";

for (int k=0; k<4; k++)

cin>>s[k];

}

v