Автоматический обзвон с переключением на оператора – это одна из конфигураций базового программного решения Call Office от российской IT-компании Wentor Software (ООО «Вентор»). Решение позволяет сначала устанавливать контакт с абонентом, а затем переключать звонок на оператора или менеджера. Переключение может быть произведено как после события снятия трубки, так и после выполнения абонентом определенного условия/набора условий (подтверждение с помощью нажатия клавиши, голосового подтверждения и др.).
- Функционал и настройка конфигурации «Исходящий обзвон с переключением на оператора».
- Эффективность конфигурации: программа осуществляет автоматический прозвон: колл центр решает больше задач.
- Сферы применения: холодный обзвон, опрос, исследование, автоматический телемаркетинг.
1. Функционал и настройка конфигурации «Исходящий обзвон с переключением на сотрудника».
Переключение на оператора — дополнительная функция, которая расширяет функционал базового решения Call Office. Программа не только звонит по телефонным номерам из базы данных или заданного списка, а затем — произносит сообщение для вашего клиента или адресата, но и переводит звонок на оператора. Настройка сценария исходящего обзвона с переключением на оператора. Чтобы взаимодействовать с клиентами или абонентами с максимальным результатом — настройте план/сценарий обзвона с переключением на оператора всего за 5 шагов!
Перегрузка операторов пример. ООП. Перегрузка оператора присваивания. C++ Для начинающих. Урок#83
Шаг №1. Вы запускаете программу Call Office, выбираете конфигурацию «Обзвон абонентов с переключением на оператора». Напоминаем! Процесс переключения на оператора начинается только после того, как программа набрала номер телефона и абонент снял трубку.
- Снял трубку. Как только абонент снял трубку, сразу подключится оператор, абонент не заметит, что его переключили.
- Прослушал ваше сообщение, оставаясь на линии определенное время. В данном случае, программа не предлагает абоненту нажать клавишу для подтверждения. Достаточно того, что он не кладет трубку. Например, вы установили время на линии для абонента в 10 секунд, в это время озвучиваете для него какое-то важное сообщение, затем переключаете на оператора. Например, сначала вы сообщаете о том, что счетчики электроэнергии необходимо поверять с определенной периодичность, затем звонок переключается на менеджера, который предлагает вызвать заблаговременно специалиста для поверки.
- Нажал клавишу-подтверждение. После того, как программа дозвонилась до абонента, сообщила ему необходимую информацию и предложила переключить на оператора, чтобы продолжить диалог. Например, абонент прослушал сообщение о том, что для него разработано индивидуальное предложение по тарифу для интернета, затем программа предлагает нажать цифру «1», если он хочет узнать подробности. Если абонент подтверждает свою заинтересованность, нажимает клавишу – программа переключает его на оператора, и тот продолжает диалог.
Далее для примера выберем «Переключение на звуковую карту»*. *Если вы выбираете переключение с помощью АТС или SIP-шлюза, воспользуйтесь помощью ваших специалистов по телефонии или обратитесь к нам в техподдержку.
ВОТ ЗАЧЕМ ЗВОНЯТ И СБРАСЫВАЮТ
Шаг №4. Настраиваете «Действия при переключении». Здесь вы можете выбрать одну или несколько опций, которые упростят работу с клиентом.
- Опция «Переключаться автоматически» сразу соединит оператора с клиентом/ абонентом, не дожидаясь нажатия оператором на кнопку «Ответить». Вы можете отключить эту опцию, чтобы оператор успел сначала ознакомиться с информацией об абоненте перед разговором.
- Опция «Показывать всплывающее окно» предоставит оператору в небольшом окошке информацию о клиенте/абоненте из вашей базы данных. Например, это могут быть фамилия, имя, отчество и сумма задолженности. Важно! Вы можете самостоятельно настроить «Всплывающее окно». Можете выбрать для отображения в этом окне любую другую информацию, которая есть у вас в базе и понадобится вашему менеджеру для успешного общения (день рождения, подписки и сервисы клиента, карточка техобслуживания авто и так далее). Оператор быстро просматривает окошко и нажимает кнопку «Ответить». В момент начала разговора, он уже имеет представление, с кем и о чем будет общаться.
- Опция «Проиграть звук» воспроизведет в наушники оператора звуковой файл для того, чтобы оператор понял, что с ним хочет связаться абонент. Это удобно, если оператор параллельно занимается другой деятельностью – отвечает на запросы письменно, заполняет карточки клиента и т.д.
- Опция «Воспроизвести сообщение в линию абоненту» позволит во время ожидания ответа оператора воспроизвести звуковое сообщение абоненту, например, какую-либо мелодию. Вы можете протестировать разные наборы опций – и подобрать для вашего взаимодействия с клиентом наиболее удобный и эффективный комплект!
Шаг №5. Выбираете голосовые сообщения для абонента и оператора. Например, в окошке «Голосовое сообщение, произносящееся в линию абоненту до переключения» добавляем голосовой файл или просто текст «Здравствуйте. За вами числится задолженность в сумме [Долг]*. Если хотите задать вопрос оператору, нажмите 1».
Если абонент нажмет клавишу «1» — программа переключит его на специалиста.
Для оператора в окошко «Голосовое сообщение, произносящееся оператору» добавим сообщение с текстом «Абонент хочет связаться с вами», и оператор услышит его у себя в наушниках, нажмет кнопку «Ответить» — и начнет диалог.
*Программа подставит [Долг] значение из вашей базы данных.
Все! Решение готово к использованию!
Источник: www.calloffice.ru
Простейшие программы
Аннотация: В данной лекции описывается структура простейшей программы, переменные, операции, выражения, преобразования базовых типов, вводные замечания о средствах ввода-вывода, особенности вывода кириллицы в консольное окно
Структура программы
Презентацию к лекции Вы можете скачать здесь.
Программа на языке С++ состоит из функций, описаний и директив препроцессора . О директивах мы говорили выше. Функция — это законченный фрагмент кода, к которому можно обратиться по имени (вызвать функцию). Функция может получать аргументы и возвращать в вызывающий код вычисленное в ней значение . Например, вызов функции , вычисляющей синус угла, может выглядеть примерно так же, как в математике: y = sin(x);.
Одна (и только одна) функция программы должна иметь имя main . Выполнение программы начинается с первого оператора этой функции. Ее вызывает на выполнение исполняющая система.
Описания представляют собой определения и объявления элементов программы: переменных, функций , классов, типов и т. д. Любой элемент программы должен быть определен только один раз. Это правило в стандарте называется правилом одного определения ( one definition rule , или odr ) . Объявление может встречаться в программе столько раз, сколько необходимо.
Такие требования естественны: ведь определения требуют от компилятора конкретных действий (например, выделения памяти), а объявления служат для информации.
Итак, программа , состоящая из одного модуля, имеет следующую структуру:
директивы препроцессора описания int main()
В общем случае программа состоит из нескольких модулей, каждый из которых может содержать все рассмотренные элементы.
Переменные
Любая программа работает с данными. В простейшем случае данные хранят в переменных. Переменная — это именованная область памяти компьютера, у переменной есть тип, имя и значение. Имя служит для обращения к области памяти, в которой хранится значение , тип определяет диапазон значений и допустимые операции . Во время выполнения программы значение переменной можно изменять.
Перед использованием любая переменная должна быть определена. Пример описания целой переменной с именем a и вещественной переменной: x
int a; float x;
В общем случае описание переменной задает не только ее имя и тип, но и другие характеристики, например, начальное значение , область действия и время жизни. Кроме того, имеет значение и место размещения описания в тексте программы.
Область действия имени — это часть программы, в которой его можно использовать для доступа к связанной с ним области памяти. В зависимости от области действия переменная может быть локальной или глобальной.
Если переменная определена внутри блока (блок ограничен фигурными скобками ), она называется локальной, область ее действия — от точки описания до конца блока, включая все вложенные блоки. Если переменная определена вне любого блока, она называется глобальной и областью ее действия считается модуль , в котором она определена, от точки описания до его конца. Имя переменной должно быть уникальным в своей области видимости.
Глобальные переменные нужно стремиться использовать как можно реже. Переменная должна иметь минимальную из возможных областей видимости и действия, поскольку это значительно облегчает поиск ошибок.
Время жизни глобальных и локальных переменных отличается: глобальная переменная «живет», пока работает программа , а локальная — только до конца блока.
Кроме времени жизни и области действия, имя переменной обладает также областью видимости . Область видимости имени — часть текста программы, в которой имя можно явно использовать. Чаще всего область видимости совпадает с областью действия. Исключением является ситуация, когда во вложенном блоке определена переменная с таким же именем, что и у переменной вне блока. В этом случае внешняя переменная во вложенном блоке невидима, хотя он и входит в ее область действия . Тем не менее к этой переменной, если она глобальная, можно обратиться, используя операцию доступа к области видимости::.
Рассмотрим общий вид оператора описания переменных :
[класс_памяти] [const] тип имя [инициализатор];
Начнем с инициализатора . С его помощью можно присвоить переменной начальное значение ( инициализировать переменную ) . Инициализатор можно записывать в двух формах — со знаком равенства:
= выражение
или в круглых скобках:
( выражение )
Выражение должно быть вычисляемым на момент выполнения оператора, например:
short int a = 1; short int b( a + 1 );
Первая форма инициализации чаще применяется для переменных базовых типов , вторая — для экземпляров классов. Если тип инициализирующего значения не совпадает с типом переменной , выполняются преобразования типа (о преобразованиях типа — в конце этой лекции).
Модификатор const показывает, что данное описание определяет не переменную, а именованную константу. Константа должна быть обязательно инициализирована при объявлении. Ключевое слово const можно задавать как перед типом, так и после него.
В одном операторе можно определить несколько величин одного типа, разделяя их запятыми. Примеры:
const char C = ‘C’, X = ‘|’; // символьные константы С и X int const y = 56; // целая константа y char s, sf = ‘f’; // инициализация относится только к sf char t (54); float c = 0.22, x(3), sum;
Класс памяти задается явным образом или по контексту описания переменной. Если он не задан явно, и переменная описана внутри блока (в частности, внутри функции main ), она считается автоматической. Память под нее выделяется при входе в блок и при необходимости инициализируется каждый раз при выполнении оператора, содержащего ее определение . Освобождение памяти происходит при выходе из блока, в котором описана переменная . Иными словами, сколько раз выполняется блок, столько раз «рождается» и «умирает» локальная переменная . Время ее жизни — с момента входа в блок и до выхода из блока.
Класс памяти static задает статическую переменную. Время ее жизни равно времени работы программы (как у глобальных переменных), а инициализируется она один раз при первом выполнении оператора, содержащего определение переменной. В зависимости от расположения оператора описания статические переменные могут быть глобальными и локальными. Глобальные статические переменные видны только в модуле, в котором они описаны.
Ключевое слово extern хотя и относится в стандарте к спецификаторам класса памяти , на самом деле служит для объявления переменной. Переменная , описанная как extern , должна быть определена в другом месте программы (как правило, в другом модуле). Объявление переменной может задаваться в программе несколько раз, а определение должно быть единственным. В отличие от определения, объявление переменной не должно содержать инициализатора — это запрещено стандартом. Фактически это просто объявление имени в данной области видимости.
Спецификатор extern может задаваться и в определении переменной, но при этом переменная обязательно должна быть проинициализирована, например:
extern double PI = 3.1415926; // это определение переменной PI
В одномодульной программе использовать объявление переменной не имеет смысла, хотя это и не запрещено стандартом. Рассмотрим примеры описаний.
int a; // 1 глобальная переменная a int main() // 2 < int b; // 3 локальная переменная b static int c; // 4 локальная статическая переменная c a = 1; // 5 присваивание глобальной переменной int a; // 6 локальная переменная a a = 2; // 7 присваивание локальной переменной ::a = 3; // 8 присваивание глобальной переменной extern int x; // 9 переменная х объявлена; определение дальше . return 0; // 10 >// 11 int x = 4; // 12 определение и инициализация x
Здесь глобальная переменная a определена вне всех блоков, областью ее действия является вся программа . Переменная создается при запуске программы и уничтожается при окончании ее работы. Область видимости переменной — вся программа , кроме строк 6-10, так как в первой из них определяется локальная переменная с тем же именем, область действия которой начинается с точки ее описания и заканчивается при выходе из блока.
Переменные b и c — локальные, область их видимости (и действия) — блок, но время жизни различно: переменная b «рождается» при входе в блок и «умирает» при выходе из него, а переменная c , как и глобальная переменная a , создается при запуске программы и существует все время, пока работает программа .
Переменная х является глобальной и определена после тела функции main . Область действия — вся программа , однако выше точки определения переменная не видна. Чтобы иметь к ней доступ внутри тела функции , переменная объявлена как extern (строка 9).
Если при определении переменных их начальные значения явным образом не заданы, глобальные и статические переменные инициализируются по умолчанию нулевым значением соответствующего типа. Автоматические (локальные) переменные не инициализируются.
Источник: intuit.ru
Программа начинается с оператора
Внимание Скидка 50% на курсы! Спешите подать
заявку
Профессиональной переподготовки 30 курсов от 6900 руб.
Курсы для всех от 3000 руб. от 1500 руб.
Повышение квалификации 36 курсов от 1500 руб.
Лицензия №037267 от 17.03.2016 г.
выдана департаментом образования г. Москвы
Операторы ввода и вывода в языке программирования Си
Лабораторная №1 “Операторы ввода и вывода в языке программирования Си++”
1. Теоретические сведения
1.1 Структура программы
Цель работы: изучить операторы ввода и вывода, форматы, используемые в этих операторах. Оформить законченную программу с применением этих операторов.
В языке СИ любая программа состоит из одной или более функций, задающих действия, которые нужно выполнить. Выполнение любой программы начинается с функции main. Далее идет текст программы, заключенный в фигурные скобки. Таким образом, структура программы имеет вид:
В самом простом случае функция main не имеет аргументов, поэтому в скобках ничего не содержится. Для работы программы, обеспечивающей ввод и вывод информации, перед функцией main необходимо поместить строку:
1.2 Алфавит языка и типы данных
Алфавит языка включает латинские прописные и строчные буквы, цифры и специальные знаки. К последним относятся: . (точка), , (запятая), ‘ (апостроф), : (двоеточие) и др.
Важным понятием языка является идентификатор, который используется в качестве имени объекта, например, переменной, функции и т.п. Идентификатор может содержать до 32 символов и состоит из букв и цифр, но начинается обязательно с буквы. Строчные буквы отличаются от прописных, поэтому идентификаторы SIGMA и sigma считаются разными.
В языке СИ существует несколько типов данных. Каждый тип данных определяется одним из следующих ключевых слов:
- int (целый) – задает значения, к которым относятся все целые числа. Диапазон возможных целых значений лежит в пределах от –32768 до 32767, переменная типа int занимает 16 бит;
- short (короткий целый) – соответствующие объекты не могут быть больше, чем int, переменные этого типа занимают 16 бит;
- long (длинный целый) – соответствующие объекты не могут быть меньше, чем int. Переменная типа long занимает 32 бита и позволяет представить целые числа от –2147483648 до 2147483647;
- char (символьный) – задает значения, которые представляют различные символы;
- unsigned (беззнаковый) – в языке СИ можно объявлять некоторые типы (char, short, int, long) беззнаковыми с помощью модификатора unsigned (например, unsigned short). Это значит, что соответствующие переменные не будут иметь отрицательных значений. В результате они могут принимать большие положительные значения, чем переменные знаковых типов. В случае типа int объявления вида «unsigned int a;» можно записать «unsigned a;»;
- float (вещественный) – задает значения, к которым относятся вещественные числа, имеющие дробную часть, отделяемую точкой. Вещественные числа могут быть записаны также в экспоненциальной форме. Например, -1.58е+2 (что равно -1,58·10 2 ). В языке СИ переменная типа float занимает 32 бита. Она может принимать значения в диапазоне от +3.4е-38 до +3.4е+38;
- double (двойная точность) – определяет вещественные переменные, занимающие в два раза больше места, чем переменная типа float. Переменная типа double занимает 64 бита. Она может принимать значения в диапазоне от +1.7е-308 до +1.7е+308.
- d – значением аргумента является десятичное целое число;
- o – значением аргумента является восьмеричное целое число;
- x – значением аргумента является шестнадцатеричное целое число;
- c – значением аргумента является символ;
- s – значением аргумента является строка символов;
- e – значением аргумента является вещественное число в экспоненциальной форме;
- f – значением аргумента является вещественное десятичное число с плавающей точкой;
- u – значением аргумента является беззнаковое целое число;
- p – значением аргумента является указатель (адрес).
- a – для кратковременной подачи звукового сигнала;
- b – для перевода курсора влево на одну позицию;
- n – для перехода на новую строку;
- r – для перевода курсора в начало текущей строки;
- t – для горизонтальной табуляции;
- v – для вертикальной табуляции.
- Операторы и выражения
d = c = sin 2 (x + y) – ln x ; b = | i – j 3 | ; , где d + b c r =
x = 4,5 y = 8,5 i = 3 j = 6 d = | i 2 – m| z = a c – d a = sin 3 ( 2 + n ) , где
n = 10,2 x = 4,3 i = 5 m = 2 s = x a + y + ln 2 z q = c – b d b = | x 2 + y | , где
m = 8,1 w = 4,2 x = 10 y = 4 a = | k + m 2 | , где x = cos 2 (t + p) – e 2t
t = 4,7 z = 0,8 p = 6,2 k = – 4 m = 6 d = | j 3 – i 2 | , где m = x 2 + y d
t = 4,1 p = 3,2 w = 8,7 j = 3 i = 7 f = | k 2 + m 3 | t = ln x 2 + sin 2 y , где p = t – q f 2
x = 5,7 y = 1,9 k = 8 m = 2 x = sin e 2m , где z = ln 2 p – x – y 2 t
m = 5,6 n = 9,4 i = 4 j = 9 y = tg 2 q – 4p , где s = x 2 + y 2 t
q = 1,7 p = 2,3 i = 9 j = 4 y = sin 2 ( n + m ) , где r = x∙a y + t∙ln 2 m
n = 2,6 m = 3,7 p = 6 k = 2 y = sin(p 2 +t) , где s = x + y m + 5
t = 1,1 p = 2,4 k = 4 i = 5 t = log 2 (x + y) , где z = t p + f
x = 3,7 y = 2,1 i = 3 j = 4
s = q + p p + tg 2 z q = h c + d c = tg 2 (t+p) + sin p 2 , где
t = 1,5 p = 4,8 i = 2 m = 6 , где
z = 2,4 m = 5,8 n = 4 j = 5 r = h p – d h = sin (tg x 2 ) , где
x = 9,5 y = 3,6 j = 2 i = 5 a = cos 2 (x+y) , где c a + b 2 d =
- Подбельский В.В. Язык Cu ++: Учебное пособие. — М.: Финансы и статистика,1995, — 560 с.
- Страуструп Б. Язык программирования Сг ++. — М.: Радио и связь, 1991. — 352 стр.
- Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. — М.: Свет, 1993. — 236 с.
- Романов В.Ю. Программирование на языке Cu ++. Практический подход. — М.: Компьтер, 1993. — 160 с.
- Уинер Р. Язык турбо Cu . — М.: Мир, 1991. — 384 с.
- Юлин В.А., Булатова И.Р. Приглашение к Cu. — Мн.: Высш. Шк., 1990,- 224 с.
- Котлинская Г.П., Галиновский О.И. Программирование на языке Cu. -Мн.: Высш. Шк., 1991. — 156 с.
Источник: doc4web.ru