На головну

Створення власних маніпуляторів

  1.  I. Створення радянської судової системи
  2.  WEB-технологія. Види додатків на Java. Створення динамічно формованого інтерфейсу користувача засобами Java на рівні аплетів.
  3.  Алгебраїчна проблема власних значень
  4.  Алгоритм 4.14. Створення звіту для формування розкладів
  5.  Алгоритм 4.17. Настройка призначеного для користувача поля зі створенням для нього формули
  6.  Б. Створення колегій. Місцеві органи влади
  7.  Боротьба за створення національної державності

На додаток до перевантаження операторів вводу / виводу, ви можете створити свою підсистему введення / виводу C ++, визначивши, власні функції-маніпулятори. Створення призначених для користувача маніпуляторів дозволяє об'єднати кілька окремих дій по вводу / виводу в один маніпулятор.

Розглянемо процес створення маніпуляторів без параметрів. Всі маніпулятори без параметрів для виведення мають наступну форму:

ostream & імя_маніпулятора (ostream & stream)

{

 // Код програми

 return stream;

}

Всі маніпулятори без параметрів для введення мають таку форму:

istream & імя_маніпулятора (istream & stream)

{

 // Код програми

 return stream;

}

Маніпулятор отримує в якості параметра посилання на потік, для якого він створюється, а повертати повинен цей потік.

приклади:

1. Розглянемо перший простий приклад. У наступній програмі створюється маніпулятор setup (), який встановлює ширину поля виведення рівну 10, точність рівну 4 і символ заповнення *.

#include

ostream & setup (ostream & stream)

{Stream. width (lO), -

 stream. precision {4);

 stream. fill ( '*');

 return stream;

}

main ()

{Cout << setup << 123.123456;

 return 0;

}

Як можна помітити, setupвикористовується в якості частини виразу введення / виведення точно так же, як використовуються будь-які вбудовані маніпулятори.

2. У цій програмі створюється маніпулятор getpass (), який викликає гудок динаміка і, потім, пропонує ввести пароль:

#include

#include

istream & getpass (istream & istream) // Простий маніпулятор введення

{Cout << '\ a'; // Гудок динаміка

 cout << "Введіть пароль";

 return stream;

}

main ()

{Char pw [80];

 do

 {Cin >> getpass >> pw;

 } While (strcmp (pw, "пароль"));

 cout << "Пароль введений вірно \ n"

 return 0;

}

4.2. ПОРЯДОК ВИКОНАННЯ РОБОТИ.

1. Вивчити матеріал даного методичного посібника, залучаючи лекції та додаткову літературу;

2. Розробити схеми алгоритмів і програму для обробки даних відповідно до конкретного варіантом.

4.3. ВАРІАНТИ ЗАВДАНЬ

1. Написати, використовуючи прапори формату ios, Програму виведення:

- Величини 1000.5364 в 20-символьному полі, з вирівнюванням по лівому краю, з двома позиціями після коми і символом * в якості символу заповнення;

- Числа, що вводиться з клавіатури, в десятковій, шістнадцятковій і вісімковій системі числення.

2. Використовуючи умову завдання 1, написати програму, застосувавши маніпулятори введення / виведення для форматування інформації.

3. Використовуючи клас, який перетворює дюйми в мм (1 дюйм = 25,4 мм), створіть:

- Функцію вилучення, яка пропонує користувачеві ввести число дюймів;

- Функцію вставки для виведення на екран числа дюймів і мм.

 class inches_to_mm {double inches;

 double mm;

 public:

 void set (double in) {inches = in;

 mm = in * 25.4;

}

 };

4. Дан клас:

 class data {char str [9]; // Дата представлена ??у вигляді рядка "mm / dd / yy"

 public: // додати функції вставки і вилучення

 };

Створіть для нього власні функції вставки для роботи з потоками класів ostream / ofstream і вилучення для роботи з потоками класів istream / ifstream.

4.4. КОНТРОЛЬНІ ПИТАННЯ

1. Що таке потік? Стандартні потоки введення / виводу.

2.

3.

4.

5.


ЛІТЕРАТУРА

1. Крячков А. В., Сухинина І. В., Томшін В. К

«Програмування на С і С ++. Практикум »-

М .: «Гаряча лінія-Телеком», 2008. - 344 с.: Ил.

2. Климова Л. М.

«Основи практичного програмування на мові С ++» -

М .: «Видавництво ПРІОР», 2003. - 464 с.

3. Подбельский В. В., Фомін С. С.

«Програмування на мові Сі: Навчальний посібник» -

М .: «Фінанси і статистика», 2003. - 600 с .: іл.

4. Шілдт Г.

«З ++. Базовий курс: пров. з англ. - СПб. »-

«BHV - Санкт-Петербург», 2005. - 512 с., Іл.

5. ПАХОМОВ Б. І

«З / С ++ і MS Visual C ++ 2005 для початківців: пров. з англ. - СПб. »-

«BHV - Санкт-Петербург», 2007. - 464 с., Іл.

 



 Призначений для користувача введення / виведення і файли |  Www.vesbook.ru

 Структура пов'язаного двонаправленого списку |  Int fseek (FILE * stream, long offset, int origin). |  інкапсуляція |  спадкування |  МАНІПУЛЯТОРИ ВВЕДЕННЯ-ВИВЕДЕННЯ |  ФУНКЦІЇ ВСТАВКИ І ВИЛУЧЕННЯ |  ОСНОВИ файлового вводу-виводу |  Неформатіруемий двійковий введення / виведення |  Додаткову інформацію про функції двійкового введення / виведення |  довільний доступ |

© um.co.ua - учбові матеріали та реферати