
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Приклад виконання Завдання 1
Варіант 1. Похідний клас містить метод (функцію) копіювання заданої кількості символів з заданої позиції.
Дана програма містить два класи, що працюють з текстовим файлом. Базовий клас містить конструктор, за допомогою якого файл відкривається автоматично після ініціалізації даних в головній програмі, деструктор, що автоматично викликається на заключному етапі виконання програми і виконує закриття файлу. Похідний клас містить функцію Copy_to_file(), що призначена для копіювання заданої кількості символів з заданої позиції.
Структура класів має такий вигляд:
class main_class {
char c;
int Num,UK,KIL;
protected:
FILE* stream;
public:
main_class();
~main_class();
void Quantity_of_chars();
void Number_of_space();
void Number_of_words();
void Delete_wrong_space();
};
class successor: public main_class {
public:
successor():main_class(){}
void Copy_to_file();
};
Лістинг програми:
#include <cstring>
#include <cstdio>
#include <cstdlib>
class main_class {
char c;
int Num,UK,KIL;
protected:
FILE* stream;
public:
main_class();
~main_class();
void Quantity_of_chars();
void Number_of_space();
void Number_of_words();
void Delete_wrong_space();
};
class successor: public main_class {
public:
successor():main_class(){}
void Copy_to_file();
};
int main (){
successor problem;
problem.Quantity_of_chars();
problem.Number_of_space();
problem.Number_of_words();
problem.Delete_wrong_space();
problem.Copy_to_file();
system("pause");
return 0;
}
main_class::main_class()
{
stream = fopen( "Dat.txt", "r+");
}
main_class::~main_class()
{
fclose(stream);
}
void main_class::Quantity_of_chars()
{
Num = 0;
while ((c = getc(stream)) != EOF) {
Num++;
}
printf("Quantity of chars=%i\n", Num);
}
void main_class::Number_of_space()
{
stream = fopen( "Dat.txt", "r+");
int i = 0;
while ((c = getc(stream)) != EOF) {
if (c == ' ')
i++;
}
printf("Quantity of space symbols=%i\n", i);
}
void main_class::Number_of_words()
{
stream = fopen( "Dat.txt", "r+");
char *Mas = new char[Num];
int i = 0;
while ((c = getc(stream)) != EOF){
Mas[i]=c;
i++;
}
UK=0;
KIL = 0;
for(i=0; i<=Num; i++) {
if((Mas[i] == ' ')||(Mas[i] == '\n'))
UK++;
if(((Mas[i] != ' ')&&(Mas[i] != '\n')) && (UK >= 1)) {
KIL++;
UK = 0;
}
}
printf("Quantity of words=%i\n", KIL+1);
delete Mas;
}
void main_class::Delete_wrong_space()
{
UK=0;
stream = freopen( "Dat.txt", "r+",stream);
char *Mas = new char[Num];
int i = 0;
while ((c = getc(stream)) != EOF){
if(c== ' '){
UK++;
}else{
Mas[i]=c;
UK=0;
}
if((c == ' ')&&(UK==1)){
Mas[i]=c;
}
if((c== ' ')&&(UK >1)){
i--;
}
i++;
}
UK=i;
printf("\n");
for(i=0; i<UK; i++){
printf("%c",Mas[i]);
}
printf("\n");
}
void successor::Copy_to_file(){
int pos=0,kil=0;
printf("\nInput position and number of symbols\n ");
scanf("%i %i",&pos,&kil);
char c;
int i=0,j=0;
FILE *stream2;
stream = freopen("Dat.txt","r+",stream);
stream2 = fopen( "Dat2.txt", "w");
while ((c = getc(stream)) != EOF) {
i++;
if((i>=pos)&&(j<kil)){
putc(c,stream2);
j++;
}
}
}
Тестування:
Для перевірки правильності роботи програми створимо файл такого виду:
aaa bb ccccc
ffff
ggggggg
Перевіримо, який результат видасть програма:
Quantity of chars=32
Quantity of space symbols=8
Quantity of words=5
aaa bb ccccc
ffff
ggggggg
Input position and number of symbols
7 2
Press any key to continue . . .
Зміст файлу Dat2.txt буде наступним:
bb