Лабораторная работа №1 по дисциплине «Объектно-ориентированное программирование» Студент гр з-431П8-4 А. С. Горбенко
Download 280.72 Kb.
|
Лаб1
- Bu sahifa navigatsiya:
- Заключение
- Список использованных источников
- Приложения
РЕЗУЛЬТАТЫ РАБОТЫНа рис. 1 показан результат работы программы. Все циклы и условия, в которых проводился контроль данных, проверены. Рис.1 – Запуск консольного приложения На рис. 2 показано завершение работы программы: функция main вернула код 0, при выходе из нее все созданные объекты класса были удалены, значит программа завершилась успешно. Рис. 2 – Завершение работы программы ЗаключениеС помощью данной лабораторной работы я изучила основы объектно-ориентированного программирования и закрепила навыки работы с классами в среде программирования на С++. Список использованных источниковКатаев М.Ю. Объектно-ориентированное программирование: лабораторный практикум. Томск: Факультет дистанционного обучения, ТУСУР, 2014. 53 с. Катаев М.Ю. Объектно-ориентированное программирование: учебное пособие. Томск: Эль Контент, 2013. 212 с. Прата, Стивен. Язык программирования С++. Лекции и упражнения, 6-е изд. : Пер. с англ. М.: ООО "И.Д. Вильямc", 2012. 1248 с. 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: |
ma'muriyatiga murojaat qiling