Контрольные по математике | Объявление класса при помощи c++ | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Объявление класса при помощи c++


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

Объявление класса при помощи C++

Цель работы: изучить структуру классов, особенности реализации методов класса и создания объектов; приобрести навыки в работе с классами на языке C++.

Задание.

Согласно заданию программно объявить класс на языке C++, его методы и поля, написать реализацию этих методов.

В каждом классе должен быть:

— конструктор (задаёт начальные значения полям класса);

— деструктор (освобождает память, которая выделялась под массив);

— метод, добавляющий элемент в список;

— метод, очищающий список;

— метод, выводящий список на экран;

— метод, описанный в варианте заданий.

В функции main() создать объект этого класса, с его помощью продемонстрировать работу всех методов класса. Вызов каждого метода (кроме конструктора и деструктора) организовать с помощью меню.

При реализации методов класса предусмотреть обработку ошибочных ситуаций: в списке нет элемента с номером N, N меньше 0 и т. п.

Пример определения класса и работы с его объектом

//файл list. h

// объявление класса

class CList

{

struct list

{

char info[100];

struct list *next;

};

struct list *head;

public:

CList();

~CList();

void AddItem(char *);

void DisplayList();

void ReleaseList();

};

//файл list. cpp

#include "array. h"

#include <stdlib. h>

#include <stdio. h>

//реализация методов класса

#include <string. h>

#include <stdio. h>

#include "list. h"

CList::CList()

{

head=NULL;

}

CList::~CList()

{

ReleaseList();

}

void CList::AddItem(char* s)

{

struct list *newItem;

newItem = new struct list;

strcpy(newItem->info, s);

if (head==NULL)

{

head=newItem;

head->next = NULL;

}

else

{

newItem->next = head;

head = newItem;

}

}

void CList::DisplayList()

{

char *s=new char[100];;

char s1[10];

struct list *p;

p=head;

strcpy(s,"");

while (p!=NULL)

{

printf("%s->",p->info);

p=p->next;

}

printf("NULLn");

}

void CList::ReleaseList()

{

if (head!=NULL)

{

struct list *p;

while (head!=NULL)

{

p=head;

head=head->next;

delete p;

}

head=NULL;

}

}

//файл mainfile. cpp

#include "array. h"

#include <stdio. h>

#include <conio. h>

#include "list. h"

#include <stdio. h>

#include <conio. h>

#include <locale. h>

#include <stdlib. h>

int main()

{

CList list; //создаётся объект класса, при этом автоматически вызывается конструктор

int key;

char val[100];

setlocale(0,"RUS"); // обеспесиваем вывод в консольное окно символов кириллицы

do

{

printf("nn1 — добавление элементаn");

printf("2 — вывод списка на экранn");

printf("3 — очитска спискаn");

printf("ESC — выходn");

printf("Ваш выбор: n");

key=getch();

switch(key)

{

case ‘1’:

printf("Введите элемент списка: ");

scanf("%s",val);

list. AddItem(val);

break;

case ‘2’:

list. DisplayList();

break;

case ‘3’:

list. ReleaseList();

break;

}

}

while(key!=27);

return 0; //объект класса уничтожается, автоматически вызывается деструктор

}

Содержание отчёта

1.  Титульный лист.

2.  Условие лабораторной работы.

3.  Текст программы.

4.  Экранные формы с примерами работы программы.

Варианты заданий.

1. Описать класс CListDelete для работы со списками. Дополнительный метод: удаление N-го элемента списка (N – аргумент метода, задаётся пользователем в функции main()).

2. Описать класс CListLast для работы со списками. Дополнительный метод: вывод последних N элементов списка.

3. Описать класс CListDoubleDirected для работы с двунаправленными списками. Дополнительный метод: вывод элементов списка на экран обратном направлении.

4. Описать класс CListRemoveIfOdd для работы со списками. Дополнительный метод: удаление элементов, стоящих на четных местах.

5. Описать класс CListRemoveIfOddValue для работы со списками. Дополнительный метод: удаление элементов, четных по значению.

6. Описать класс CListRemoveIfNotOdd для работы со списками. Дополнительный метод: удаление элементов, стоящих на нечетных местах.

7. Описать класс CListRemoveIfOddValue для работы со списками. Дополнительный метод: удаление элементов, нечетных по значению.

8. Описать класс CListRemoveEveryN для работы со списками. Дополнительный метод: удаление каждого N-го элемента (N – аргумент метода, задаётся пользователем в функции main()).

9. Описать класс CListSorted для работы с упорядоченными списками. Дополнительный метод: добавление элементов в список с сохранением упорядоченности списка.

10. Описать класс CListDeleteFirstZero для работы со списками. Дополнительный метод: удаление из массива первого найденного нулевого элемента со сдвигом элементов.

11. Описать класс CListShiftLeft для работы со списками. Дополнительный метод: циклический сдвиг элементов списка влево на N позиций (N – аргумент метода, задаётся пользователем в функции main()).

12. Описать класс CListShiftRight для работы со списками. Дополнительный метод: циклический сдвиг элементов списка вправо на N позиций (N – аргумент метода, задаётся пользователем в функции main()).

13. Описать класс CListDeleteMaxPositiveItems для работы со списками. Дополнительный метод: удаление из списка максимального положительного элемента.

14. Описать класс CListDeleteMaxNegativeItems для работы со списками. Дополнительный метод: удаление из списка максимального отрицательного элемента.

15. Описать класс CListDeleteMinPositiveItems для работы со списками. Дополнительный метод: удаление из списка минимального положительного элемента.

16. Описать класс CListDeleteMinNegativeItems для работы со списками. Дополнительный метод: удаление из списка минимального отрицательного элемента.

17. Описать класс CListDeleteMaxOddItems для работы со списками. Дополнительный метод: удаление из списка максимального чётного элемента.

18. Описать класс CListDeleteMaxNotOddItems для работы со списками. Дополнительный метод: удаление из списка максимального нечётного элемента.

19. Описать класс CListDeleteMinOddItems для работы со списками. Дополнительный метод: удаление из списка минимального чётного элемента.

20. Описать класс CListDeleteMinNotOddItems для работы со списками. Дополнительный метод: удаление из списка минимального нечётного элемента.

21. Описать класс CListDeleteFirstOdd для работы со списками. Дополнительный метод: удаление из списка первого найденного чётного элемента.

22. Описать класс CListDeleteFirstNotOdd для работы со списками. Дополнительный метод: удаление из массива первого найденного нечётного элемента.

23. Описать класс CListDeleteFirstPositive для работы со списками. Дополнительный метод: удаление из списка первого найденного положительного элемента.

24. Описать класс CListDeleteFirstNegative для работы со списками. Дополнительный метод: удаление из списка первого найденного отрицательного элемента со сдвигом элементов.

25. Описать класс CListDeleteLastOdd для работы со списками. Дополнительный метод: удаление из списка последнего найденного чётного элемента.

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020

А ты боишься COVID-19?

 Пройди опрос и получи промокод