Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи по програмуванні(14 лаб).doc
Скачиваний:
77
Добавлен:
16.05.2015
Размер:
1.43 Mб
Скачать

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

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

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

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

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

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

  6. Що таке VECTOR?

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

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

  9. Що таке LIST?

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

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

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

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

Мета: Набуття навичок в розробці програм з використанням контейнерів LIST, MAP, STRING стандартної бібліотеки шаблонів STL.

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

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

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

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

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

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

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

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

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

Завдання 1

Структура розробленого класу повинна містити: 2-3 конструктори, функції заповнення, виведення, доповнення, видалення, вставки, сортування, часткового сортування (по заданному діапазону і критерію), пошуку по заданному критерію.

Варіант 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");