Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 1
з курсу „ Об'єктно-орієнтоване програмування ”
Тема:
Наслідування.
Виконав:
студент групи КІ-3
Львів – 2004
Мета роботи: Познайомитися з середовищем MS Visual C++ 6.0, навчитись створювати програми, що містять класи і об’єкти, і використовувати наслідування.
Опис програми
Програма реалізує суматор і помножувач цілих чисел на основі об’єктно-орієнтованої моделі. При побудові структури класів використане наслідування : класи суматора і помножувача наслідують змінну і функції спільного батьківського класу.
Структура програми
Діаграма класів:
SHAPE \* MERGEFORMAT CGlobal
int m_pReg
void vSave(int x)
int iLoad()
CAdd
void vAdd(int x)
CMul
void vMul(int x)
Вміст файлів
// main.cpp: main() method implementation.
#include "iostream.h"
#include "Add.h"
#include "Mul.h"
void main ()
{
CAdd Sumator; // Створення об’єкту Sumator класу CAdd
Sumator.vSave(99); // Виклик функції vSave() об’єкту Sumator
cout << Sumator.iLoad() << " + ";
int z; // Оголошення глобальної змінної
cin >> z; // Ввід числа
Sumator.vAdd(z); // Виклик функції vAdd() об’єкту Sumator
cout << " = " << Sumator.iLoad() << "\n\n";
CMul X; // Створення об’єкту X класу CMul
X.vSave(11); // Виклик функції vSave() об’єкту X
cout << X.iLoad() << " * ";
cin >> z; // Ввід числа
X.vMul(z); // Виклик функції vMul() об’єкту X
cout << " = " << X.iLoad() << "\n\n";
}
// Global.h: interface for the CGlobal class.
// CGlobal – батьківський клас для класів CAdd і CMul.
// Містить змінну та функції для її збереження/завантаження.
#if !defined(AFX_GLOBAL_H__1FEE1FD1_11E9_11D9_BB4E_00C0262B607B__INCLUDED_)
#define AFX_GLOBAL_H__1FEE1FD1_11E9_11D9_BB4E_00C0262B607B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CGlobal
{
public:
CGlobal();
void vSave(int x); // Оголошення функції vSave()
int iLoad(); // Оголошення функції iLoad()
int m_pReg; // Оголошення цілочисельної змінної m_pReg
virtual ~CGlobal();
};
#endif // !defined(AFX_GLOBAL_H__1FEE1FD1_11E9_11D9_BB4E_00C0262B607B__INCLUDED_)
// Global.cpp: implementation of the CGlobal class.
#include "Global.h"
// Construction/Destruction
CGlobal::CGlobal() { }
CGlobal::~CGlobal() { }
// Implementation of functions
void CGlobal::vSave(int x) // Функція збереження – присвоює змінній
{ // m_pReg значення свого аргументу.
m_pReg = x;
}
int CGlobal::iLoad() // Функція завантаження – повертає
{ // значення змінної m_pReg.
return m_pReg;
}
// Add.h: interface for the CAdd class.
// CAdd – "пристрій-суматор", клас-нащадок класу CGlobal.
#if !defined(AFX_ADD_H__0D2062B1_06E9_11D9_BB41_00C0262B607B__INCLUDED_)
#define AFX_ADD_H__0D2062B1_06E9_11D9_BB41_00C0262B607B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Global.h"
class CAdd : public CGlobal
{
public:
CAdd();
void vAdd(int x);
virtual ~CAdd();
};
#endif // !defined(AFX_ADD_H__0D2062B1_06E9_11D9_BB41_00C0262B607B__INCLUDED_)
// Add.cpp: implementation of the CAdd class.
#include "Add.h"
// Construction/Destruction
CAdd::CAdd() { }
CAdd::~CAdd() { }
// Implementation of functions
void CAdd::vAdd(int x) // Функція додавання – збільшує значення змінної
{ // m_pReg на значення свого аргументу.
m_pReg += x;
}
// Mul.h: interface for the CMul class.
// CMul – "пристрій-перемножувач", клас-нащадок класу CGlobal.
#if !defined(AFX_MUL_H__A35262D3_0C69_11D9_BB48_00C0262B607B__INCLUDED_)
#define AFX_MUL_H__A35262D3_0C69_11D9_BB48_00C0262B607B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Global.h"
class CMul : public CGlobal
{
public:
void vMul(int x);
CMul();
virtual ~CMul();
};
#endif // !defined(AFX_MUL_H__A35262D3_0C69_11D9_BB48_00C0262B607B__INCLUDED_)
// Mul.cpp: implementation of the CMul class.
#include "Mul.h"
// Construction/Destruction
CMul::CMul() { }
CMul::~CMul() { }
// Implementation of functions
void CMul::vMul(int x) // Функція множення – помножує змінну m_pReg
{ // на значення свого аргументу.
m_pReg *= x;
}
Висновок: Виконуючи дану лабораторну роботу, я ознайомився із середовищем програмування Microsoft Visual C++ 6.0, навчився створювати програми, що містять класи і об’єкти, і використовувати наслідування.