Вы находитесь на странице: 1из 4

Лабораторная работа №2

Курс: Объектно-ориентированное

программирование на C++

Встреча №1

Тема: Введение в объектно-ориентированное программирование Задания для


самостоятельной работы:

Задание №1

Разработать класс String, который в дальнейшем будет использоваться для


работы со строками. Класс должен содержать:
• Конструктор по умолчанию, позволяющий создать строку длиной 80
символов;
• Конструктор, позволяющий создавать строку произвольного размера;
• Конструктор, который создаёт строку и инициализирует её строкой,
полученной от пользователя.
Необходимо создать деструктор, а также использовать механизмы
делегирования конструкторов, если это возможно.

Задание №2
Цифровой счетчик, это переменная с ограниченным диапазоном. Значение
которой сбрасывается, когда ее целочисленное значение достигает
определенного максимума (например, k принимает значения в диапазоне от
0..100). В качестве примера такого счетчика можно привести цифровые часы,
счетчик километража. Опишите класс такого счетчика. Обеспечьте
возможность установления максимального и минимального значений,
увеличения счетчика на 1, возвращения текущего значения.Лабораторная
работа №
1. #include <iostream>
#include<string.h>
#include<math.h>
#include<time.h>
#include<stdio.h>

using namespace std;

class A {
char* str;

public:
A() {
str = new char[80]{ "Hello world!\0" };

A(int size) {
str = new char[size] { "Hello world!!!\0" };
}

A(char* str1, int size) {


str = new char[strlen(str1) + 1];
for (int i = 0; i < size; i++) {
str[i] = str1[i];
}
}

char* get80() {

return str;
}

char* get80plus() {

return str;
}

char* getset() {

return str;
}

~A() {
delete[] str;
}
};

void main() {

char str[200];
char* print;

cin.getline(str, 199);

int size;
cin >> size;

if (size > 80) {


A a1(size);
print = a1.get80plus();
for (int i = 0; i < size; i++) {
cout << print[i];
}
cout << endl;

}
else {
A a;
print = a.get80();
for (int i = 0; i < 80; i++) {
cout << print[i];
}
cout << endl;
}
int size1 = strlen(str);

A a2(str, size1);

print = a2.getset();

for (int i = 0; i < size1; i++) {


cout << print[i];
}
delete print;
}

2. #include <iostream>
#include<string.h>
#include<math.h>
#include<time.h>
#include<stdio.h>
using namespace std;

/*Цифровой счетчик, это переменная с ограниченным диапазоном. Значение которой


сбрасывается,
когда ее целочисленное значение достигает определенного максимума (например, k принимает
значения в диапазоне от 0..100).
В качестве примера такого счетчика можно привести цифровые часы, счетчик километража.
Опишите класс такого счетчика.
Обеспечьте возможность установления максимального и минимального значений, увеличения
счетчика на 1, возвращения текущего значения*/

class A {
int kmin, temp;
int kmax, loop;

public:
A() {
kmin = 0;
kmax = 100;
temp = kmin;
loop = 0;
}
A(int n, int x) {
kmin = n;
kmax = x;
temp = kmin;
loop = 0;
}
int plusK() {
temp++;
if (temp == kmax) {
loop++;
temp = kmin;
}
return temp;
}
int getLoop(){
return loop;
}
};

void main() {

int kmin, kmax;


int a = 0;
cout << "Ввести данні?" << endl;
cin >> a;
if (a) {
cin >> kmin >> kmax;
A coun(kmin, kmax);
while (coun.getLoop() != 5) {
cout<<coun.plusK() << endl;
}
cout << coun.getLoop();
}
else {
A coun;
while (coun.getLoop() != 5) {
cout<<coun.plusK()<<endl;

}
cout << coun.getLoop();
}
}

Вам также может понравиться