Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка2011(12 лаб)_декабрь.doc
Скачиваний:
4
Добавлен:
26.08.2019
Размер:
1.1 Mб
Скачать

Контрольні запитання

  1. Для чого було створено STL?

  2. Що таке контейнери, алгоритми, ітератори?

  3. Види контейнерів.

  4. Як працюють алгоритми?

  5. Види ітераторів.

  6. Що таке VECTOR?

  7. Назвіть відомі вам функції-члени класу VECTOR.

  8. Основні операції, які можна виконувати з VECTOR.

  9. Що таке LIST?

  10. Назвіть відомі вам функції-члени класу LIST.

  11. Наведіть приклад простого списку.

Лабораторна робота №12

Тема: Особливості створення програми обробки списків з використанням контейнера LIST стандартної бібліотеки шаблонів STL.

Мета: Набуття навичок студентами в розробці программ з використанням контейнера LIST (STL).

Порядок виконання роботи

1. Ознайомитись з теоретичною частиною даної теми.

2. Розробити структуру класу, який використовує дані та методи контейнера LIST стандартної бібліотеки шаблонів STL для обробки даних, що задані в Завданні 1відповідного варіанту.

3. Розробити функції класу, структура якого розроблена в п.2 для виконання Завдання 1.

4. Розробити програму, яка використовує розроблену в п.2,3 шаблонів класів для виконання Завдання 1.

5. Розробити 2-3 теста для перевірки правильності роботи даної програми.

6. Оформити звіт до лабораторної роботи.

Завдання 1

Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).

Варіант 2. Задача “Студент” (прізвище, вік).

Варіант 3. Задача “Медична картка” (прізвище, вага).

Варіант 4. Задача “Результати хімічного досліду” (float, float).

Варіант 5. Задача “Результати хімічного досліду” (час, кількість

речовини).

Варіант 6. Задача “Розклад” (№ рейсу та час відправлення).

Варіант 7. Задача. “Успішність” (предмет, оцінка).

Варіант 8. Задача “Мобільний телефон” (час розмови, кількість грошей, № телефону).

Варіант 9. Задача “Мешканці” (прізвище, № квартири).

Клас повинен містити методи обробки списку:

- вставка;

- сортування по полю;

- сумування;

- видалення.

Варіант 10. Задача “Кабельне телебачення” (кількість каналів, вартість, назва пакету).

Теоретичні відомості Вставити Таблицю !!!!!! Приклад розробки програми

// Templates.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include "stdio.h"

#include <stdlib.h>

template <class T>

class List

{

private:

T *v;

int size;

public:

List(int);

T& operator[](int i) {return v[i];}

T& operator=(T * arr) {return arr;}

print_array(void);

sort_array(void);

};

template <class T>

List<T>::List(int n)

{

v = new T[n];

size = n;

}

template <class T>

List<T>::print_array()

{

int i;

for (i=0;i<size;i++)

{

printf (" %d |", v[i]);

}

}

template <class T>

List<T>::sort_array()

{

int i, n=1;

T temp;

while (n<size)

{

for (i=0;i<size-n;i++)

{

if (v[i]>v[i+1])

{

temp = v[i];

v[i]=v[i+1];

v[i+1]=temp;

}

}

n++;

}

}

void main()

{

const num = 10;

int i;

List<int> integer(num);

for (i=0;i<num;i++)

{

integer[i]=(int)(rand()/1000)+60;

}

List<int> character(num);

for (i=0;i<num;i++)

{

character[i]=(char)(rand()/1000)+60;

}

printf("\nInteger before sorting:\n");

integer.print_array();

printf("\nChar before sorting:\n");

character.print_array();

// sorting

integer.sort_array();

character.sort_array();

printf("\nInteger after sorting:\n");

integer.print_array();

printf("\nChar after sorting:\n");

character.print_array();

printf("\ndone\n");