Лабораторная работа №1 по дисциплине «Объектно-ориентированное программирование» Студент гр з-431П8-4 А. С. Горбенко


Download 280.72 Kb.
bet5/5
Sana20.10.2023
Hajmi280.72 Kb.
#1712476
TuriЛабораторная работа
1   2   3   4   5
Bog'liq
Лаб1

РЕЗУЛЬТАТЫ РАБОТЫ


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



Рис.1 – Запуск консольного приложения
На рис. 2 показано завершение работы программы: функция main вернула код 0, при выходе из нее все созданные объекты класса были удалены, значит программа завершилась успешно.

Рис. 2 – Завершение работы программы

Заключение


С помощью данной лабораторной работы я изучила основы объектно-ориентированного программирования и закрепила навыки работы с классами в среде программирования на С++.



Список использованных источников





  1. Катаев М.Ю. Объектно-ориентированное программирование: лабораторный практикум. Томск: Факультет дистанционного обучения, ТУСУР, 2014. 53 с.

  2. Катаев М.Ю. Объектно-ориентированное программирование: учебное пособие. Томск: Эль Контент, 2013. 212 с.

  3. Прата, Стивен. Язык программирования С++. Лекции и упражнения, 6-е изд. : Пер. с англ. М.: ООО "И.Д. Вильямc", 2012. 1248 с.

  4. User Manual – Code::Blocks [Электронный ресурс]. URL: https://www.codeblocks.org (дата обращения: 15.08.2022).

Приложения




Приложение А

(обязательное)

Листинг программы


Файл main.cpp:


#include
#include
#include
#include
#include
#include "Main.h"

//-----методы чтения и записи полей данных----------


int Kvit::getNum() const
{
return num;
};
bool Kvit::setNum(int num)
{
// проверка ввода номера квитанции
if (num>0) {
Kvit::num = num;
return 1;}
else return 0;
};

int Kvit::getDate() const


{
return date;
};
bool Kvit::setDate(int date)
{
// проверка ввода даты
if (date>0) {
Kvit::date = date;
return 1;}
else return 0;
};
float Kvit::getSum() const
{
return sum;
};
bool Kvit::setSum(float sum)
{
// проверка ввода суммы квитанции
if (sum>0) {
Kvit::sum = sum;
return 1;}
else return 0;
};
//------------конструктор--------------
Kvit::Kvit(int num, int date, float sum) {
Kvit::num = num;
Kvit::date = date;
Kvit::sum = sum;
}

//-----------деструктор----------------


Kvit::~Kvit()
{
std::cout << "Вызов деструктора: квитанция №";
std::cout << this->num << " удалена" << std::endl;
};

//------------функция печати-----------


void Kvit::Print() const{
std::cout << "Номер: " << num << std::endl;
std::cout << "Дата: " << date << std::endl;
std::cout << "Сумма: " << sum << "\n" << std::endl;
};

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


void Kvit::Input(){
// ввод номера квитанции
int num;
do
{
std::cout << "\nВведите номер квитанции (не может быть отрицательным): ";
std::cin >> num;
}
while (!(Kvit::setNum(num)));
// ввод даты
int date;
do
{
std::cout << "\nВведите дату квитанции в числовом формате без точек (например, 01012022): ";
std::cin >> date;
}
while (!(Kvit::setDate(date)));
// ввод суммы квитанции
float sum;
do
{
std::cout << "\nВведите сумму квитанции (например, 333.3): ";
std::cin >> sum;
}
while (!(Kvit::setSum(sum)));
};

//------дружественная функция проверки совпадения дат------


void Equal_date(const Kvit& x, const Kvit& y)
{
std::cout << "У квитанции №" << x.num << " и квитанции №" << y.num;
if (x.date==y.date) {std::cout << " одинаковые даты" << std::endl;}
else std::cout << " разные даты"<< std::endl;
};

int main()


{
SetConsoleCP(1251);// ввод/вывод кириллицы
SetConsoleOutputCP(1251);
// создание объекта с помощью конструктора
Kvit kvit1(1,19072022, 55);
kvit1.Print();
//создание и удаление динамического объекта
Kvit* kvit2;
kvit2 = new Kvit(2,19072022,27);
kvit2->Print();
delete kvit2;
// создание объекта с помощью конструктора по умолчанию
// и ввода данных с клавиатуры
Kvit kvit3;
kvit3.Input();
kvit3.Print();
//использование методов чтения и записи полей данных
Kvit kvit4;
kvit4.setNum(4);
kvit4.setDate(11082022);
kvit4.setSum(110);
std::cout << "Номер: " << kvit4.getNum() << std::endl;
std::cout << "Дата: " << kvit4.getDate() << std::endl;
std::cout << "Сумма: " << kvit4.getSum() << "\n" << std::endl;
//cоздание динамического объекта с помощью конструктора по умолчанию
Kvit* kvit5;
kvit5 = new Kvit();
kvit5->Print();
delete kvit5;
//проверка работы функции, которая сравнивает даты
Equal_date(kvit1, kvit3);
Kvit kvit6(6,19072022, 65);
Equal_date(kvit1, kvit6);
system("pause"); //ожидание нажатия клавиши, чтобы консольное приложение не закрывалось
return 0;
}

Файл main.h:


#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED
#endif // MAIN_H_INCLUDED

class Kvit {


private:
int num; // номер
int date; // дата
float sum; // сумма

public:
//-----методы чтения и записи полей данных----------


// const исключает случайное изменение объекта в методе
int getNum() const;
bool setNum(int);
int getDate() const;
bool setDate(int);
float getSum() const;
bool setSum(float);

//---------конструктор по умолчанию------------


Kvit(){
num = 0;
date = 1012020;
sum = 0;
};

Kvit(int, int, float); //конструктор


~Kvit(); // деструктор


void Print() const;//функция печати


//const исключает случайное изменение объекта в методе

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


friend void Equal_date(const Kvit&, const Kvit&); //дружественная функция, проверяющая совпадение дат квитанций


};

Download 280.72 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling