Как написать программу диалог

Написать программу, которая при нажатии клавиши ESC выводит окно-диалог о необходимости завершения программы. В окне диалога выводятся два подокна с надписями «Да», «Нет», выбор которых осуществляется нажатием клавиши Tab. При выборе окна «Да» и нажатии клавиши Enter программа завершается, а при выборе окна «Нет» — продолжает работу. Помогите пожалуйста, я начинающий и не имею понятия как это сделать. В интернете нашел какой-то код но совсем не знаю как его править, поэтому прошу помощи у вас, и не знаю вообще он мне подходит.

#include #include «resource.h» //собственная процедура для обработки BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) < int ret = DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DlgProc); if (ret == 0) < //Если была нажата кнопка Отмена или крестик MessageBox(NULL, (LPCTSTR)»Отмена», «Inform», MB_OK | MB_ICONINFORMATION); >else if (ret == 1) < //Если была нажата кнопка Ок MessageBox(NULL, (LPCTSTR)»Ок», «Inform», MB_OK | MB_ICONINFORMATION); >return ret; > BOOL CALLBACK DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) < switch (msg) < case WM_INITDIALOG: < return FALSE; >case WM_COMMAND: < switch (LOWORD(wParam)) < case IDOK: EndDialog(hwnd, 1); return TRUE; case IDCANCEL: EndDialog(hwnd, 0); return TRUE; >> case WM_CLOSE: < EndDialog(hwnd, 0); return FALSE; >> return FALSE;//нужно что бы вызвать функцию для прорисовки окда //return TRUE;//не будет вызыватся функция протисовки окна >

Пробовал скомпилировать, однако обнаруживаются следующие ошибки:

Как пишут крутые диалоги в кино — Тарантино, Эдгар Райт и МакДона

Не удаётся открыть файл включение: resource.h: No such file or directory не удаётся открыть источник файл «resource.h» идентификатор «IDD_DIALOG1» не определён аргумент типа «const char*» несовместим с параметром типа «LPCWSTR»

Источник: ru.stackoverflow.com

Условия Си. Диалог

Программа провдит диалог с человеком, узнает его интересы Программа запрашивает имя пользователя, приветствует его по имени.Запрашивает и анализирует возраст.(молодой, средних лет или пожилой) . Задает вопросы о любимом цвете, стиле музыки, типах книг и другие. Проверяет схожесть интересов, выводит информацию о схожести интересов. При написании программы полезными будут уроки Вывод информации на экран в Си Условия в Си
Описание алгоритма программы на Си для диалога скомпьютером
На этом уроке мы напишем программу на Си анкета, диалог с компьютером. Вначале программы определяются ответы по каждому вопросу, для этого вводятся для каждого вопроса своя переменная и присваивается ей нужное значение.Например:

КАК ПИСАТЬ ДИАЛОГИ: ПУСТОЙ ДИАЛОГ И АТРИБУЦИЯ


int age=40;// возраст
int cvet=1;// номер любимого цвета 1 –зеленый 2-красный 3-синий 4-желтый 5-черный 6 — другой
int music=1;// номер стиля музыки 1 — рок 2 — поп 3 — классика 4 — джаз 5 -металл 6 — реп 7 – другой
Программа должна задавать вопросы с различными вариантами ответов. Пользователь вводит номер ответа. Ответ пользователя сравнивается с определенным ответом в начале программы.
printf(«Какой Ваш любимый цвет? 1 -зеленый 2-красный 3-синий 4-желтый 5-черный 6 — другойn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==cvet)
k=k+1;// увеличиваем счетчик правильных ответов
>
Чтобы подсчитать количество совпавших ответов используется специальная переменная счетчик ответов k.
В конце теста производится проверка количества совпавших ответов, если количество больше заданного параметра, то выводится сообщение о схожести интересов.
// анализ количества совпавших ответов
if (k>2)
printf («У нас с Вами %s очень много схожего. Мы сможем подружиться n»,n);
>
else
printf («Мы с Вами %s очень разные n», n);
>

Читайте также:
Готовить плов в мультиварке если нет программы плов

Пример полного решения программа на си диалог с компьютером,анкетирование
#include
#include
#include
main()
char n[50];// объявляем строковую переменную n для имени
int k; // счетчик совпадающих ответов
int a; // номер текущего ответа
int age=40;// возраст
int cvet=1;// номер любимого цвета 1 -зеленый 2-красный 3-синий 4-желтый 5-черный 6 — другой
int music=1;// номер стиля музыки 1 — рок 2 — поп 3 — классика 4 — джаз 5 -металл 6 — реп 7 — другой
int book=2;// номер вида книг 1 — детективы 2-фантастика 3- классика 4 — научная литература 5 -развлекательные журналы 6 — другие
int film=2;// номер типа фильмов 1 — боевики 2-фантастика 3-детективы 4-исторические 5-сериалы 6 -другие
k=0;// обнуление счетчика совпавших ответов
// приветствие
printf(«Как Ваше имя ?n «);
scanf(«%s», n); // ввод строки n имени
printf(«Здравствуйте, %s! Очень хотелось бы узнать тебя получше. Ответьте пожалуйстаn», n); // форматированный вывод Здравствуйте, n !

// 1 вопрос
printf(«Каков Ваш возраст?n»);
// запрашиваем ответ
scanf(«%d»,

// проверяем правильность ответа
if (abs(a-age) <5)
printf(«Здорово! мы ровесники «);
k=k+1;// увеличиваем счетчик правильных ответов
>

// 2 вопрос
printf(«Какой Ваш любимый цвет? 1 -зеленый 2-красный 3-синий 4-желтый 5-черный 6 — другойn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==cvet)
k=k+1;// увеличиваем счетчик правильных ответов
>

// 3 вопрос
printf(«Какой Ваш любимый стиль музыки? 1 — рок 2 — поп 3 — классика 4 — джаз 5 -металл 6 — реп 7 — другойn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==music)
k=k+1;// увеличиваем счетчик правильных ответов
>

// 4 вопрос
printf(«Какой Вы любите читать книги? 1 – детективы 2-фантастика 3- классика 4 — научная литература 5 -развлекательные журналы 6 — другиеn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==book)
k=k+1;// увеличиваем счетчик правильных ответов
>

// 5 вопрос
printf(«Какой Вам нравятся фильмы? 1 — боевики 2-фантастика 3-детективы 4-исторические 5-сериалы 6 -другиеn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==film)
k=k+1;// увеличиваем счетчик правильных ответов
>

Читайте также:
Как запустить свою программу в app store

// анализ количества совпавших ответов
if (k>2)
printf («У нас с Вами %s очень много схожего. Мы сможем подружитьсяn»,n);
>
else
printf («Мы с Вами %s очень разныеn», n);
>

На заметку:
1. В программе введен счетчик правильных ответов переменная k . В начале программы она обнуляется k=0. Если ответ пользователя совпадает с заданным в программе, то счетчик увеличивается k=k+1.
Задания для самостоятельной работы:
1 В диалоге добавьте несколько своих вопросов. Не забудьте ввести для них переменные с правильными ответами в начале программы.
2. Напишите программу тест по любимому предмету. Программа задает и запрашивает ответы по избранной теме. Подсчитывает количество верных ответов. В конце теста выставляет оценку исходя из количества правильных ответов.
Возможный вариант реализации тест на си
#include
#include
main()
char n[50];// объявляем строковую переменную n для имени
int k; // счетчик правильных ответов
int a; // номер ответа
k=0;
// приветствие
printf(«Как Ваше имя ?n»);
scanf(«%s», n); // ввод строки n имени
printf(«Здравствуйте, %s! Вам предлагается тест по географииn», n); // форматированный вывод Здравствуйте, n !
// 1 вопрос теста
printf(«Столица Антигуа и Барбуда? Введите номер правильного ответаn»);
printf(«1. Сент-Джонс 2. Сукре 3. Бужумбура 4. Банжул 5. Бисауn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==1)
printf(«Правильно «);
k=k+1;// увеличиваем счетчик правильных ответов
>

else printf(«Не правильно «);
>

// 2 вопрос теста
printf(«Лидер по добыче каменного угля? Введите номер правильного ответаn»);
printf(«1. Россия 2. Индия 3. США 4. Китай 5. Австралияn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==4)
printf(«Правильноn»);
k=k+1;// увеличиваем счетчик правильных ответов
>
else printf(«Не правильноn»);
>

// 3 вопрос теста
printf(«Самая высокая гора? Введите номер правильного ответаn»);
printf(«1. Чогори 2. Канченджанга 3. Эверест 4. Джомолунгма 5. Эльбрусn»);
// запрашиваем ответ
scanf(«%d»,
// проверяем правильность ответа
if (a==4)
printf(«Правильноn»);
k=k+1;// увеличиваем счетчик правильных ответов
>
else printf(«Не правильноn»);
>

Полезно почитать по теме условия в си
Условия в Си
Решение линейного уравнения на Си

Источник: itrobo.ru

Программирование диалога с компьютером

Программирование диалога с компьютером МБОУ «СОШ №2» городского округа Судак Жолтикова Е.М .

Сценарий диалога Прежде чем начать составление программы, нужно продумать сценарий такого диалога. Введите первое слагаемое: А = 237 Введите второе слагаемое: В = 658 А + В = 895 Пока!

  • Любую программу составлять нужно так, чтобы ее исполнение реализовывало диалог между компьютером и пользователем в понятной для человека форме.

Сценарий диалога

  • Прежде чем начать составление программы, нужно продумать сценарий такого диалога.

Введите первое слагаемое: А = 237

Введите второе слагаемое: В = 658

А + В = 895

Любой вывод на экран происходит по оператору вывода, записанному в программе с помощью оператора вывода на экран выносятся не только результаты решения задачи, но и все элементы диалога со стороны компьютера.

Любой вывод на экран происходит по оператору вывода, записанному в программе

Вот программа, которая реализует наш сценарий: Program Summa; var А , В : integer; begin write (

  • с помощью оператора вывода на экран выносятся не только результаты решения задачи, но и все элементы диалога со стороны компьютера.

Вот программа, которая реализует наш сценарий:

Читайте также:
Какой программой надо воспользоваться для защиты информации от вирусов прикладная

Program Summa;

var А , В : integer;

write (‘Введите первое слагаемое: А =’);

write (‘Введите второе слагаемое: В =’);

writeln(‘А + В = ‘, А+В);

Сценарий работы программы — это описание ее общения с пользователем (пользовательского интерфейса). Интерфейс обязательно должен быть дружественным. Любой символьный вывод на экран программируется с помощью оператора write или writeln .

Сценарий работы программы — это описание ее общения с пользователем (пользовательского интерфейса).

Интерфейс обязательно должен быть дружественным. Любой символьный вывод на экран программируется с помощью оператора write или writeln .

Ветвления и исполнение диалога между компьютером и пользователем: Вася собирает древние монеты. Он приобрел а динариев и b сестерциев разного достоинства и года выпуска. Хватит ли ему места в альбоме, если там всего с ячеек для монет? ветвления. ppt

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

Program money; Var A,b,c: integer; Begin Write(‘Сколько динариев купил Вася? ‘); readln(a); Write(‘Сколько сестерциев купил Вася? ‘); readln(b); Write(‘Cколько свободных ячеек в альбоме? ‘); readln(с); If a+b then Writeln(‘Места в альбоме хватит’) Else Writeln(‘Места а альбоме не хватит’); End.

  • Вася собирает древние монеты. Он приобреладинариев иbсестерциев разного достоинства и года выпуска. Хватит ли ему места в альбоме, если там всегосячеек для монет?
  • ветвления.ppt

Program money;

A,b,c: integer;

Write(‘Сколько динариев купил Вася? ‘); readln(a);

Write(‘Сколько сестерциев купил Вася? ‘); readln(b);

Write(‘Cколько свободных ячеек в альбоме? ‘); readln(с);

If a+b then

Writeln(‘Места в альбоме хватит’)

Writeln(‘Места а альбоме не хватит’);

Бой со змеем Горынычем

Бой со змеем Горынычем

Собрался Иван-царевич на бой со Змеем Горынычем, трехглавым и треххвостым. - Вот тебе меч-кладинец –говорит ему баба Яга. – одним ударом ты можешь срубить либо голову, либо две головы, либо один хвост, либо два хвосты. Но запомни: срубишь один хвост – два вырастут, срубишь два хвоста – голова вырастет, срубишь голову – голова вырастет, срубишь две головы – ничего не вырастет. Задача

Собрался Иван-царевич на бой со Змеем Горынычем, трехглавым и треххвостым.

— Вот тебе меч-кладинец –говорит ему баба Яга. – одним ударом ты можешь срубить либо голову, либо две головы, либо один хвост, либо два хвосты. Но запомни: срубишь один хвост – два вырастут, срубишь два хвоста – голова вырастет, срубишь голову – голова вырастет, срубишь две головы – ничего не вырастет.

За сколько ударов Иван-царевич может срубить Змею Горынычу все головы и все хвосты?

За сколько ударов Иван-царевич может срубить Змею Горынычу все головы и все хвосты?

Этапы решения расчетной задачи на компьютере 1. Постановка задачи. 2. Математическая формализация. 3. Построение алгоритма. 4. Составление программы на языке программирования. 5. Отладка и тестирование программы. 6. Проведение расчетов и анализ полученных результатов.

Этапы решения расчетной задачи на компьютере

1. Постановка задачи.

2. Математическая формализация.

3. Построение алгоритма.

4. Составление программы на языке программирования.

5. Отладка и тестирование программы.

6. Проведение расчетов и анализ полученных результатов.

Формализация задачи: Дано: G=3 Решение: Найти: X=3 N=0 N – число ударов? RG Ввод RG и RX RX Если срубить 1 голову(RG=1), то голова вырастет (N=N+1) Если срубить 2 головы(RG=2), то ничего не вырастет (G=G-2 , N=N+1) Если срубить 1 хвост(RX=1), то 2 хвоста вырастут (X=X+1, N=N+1) Если срубить 2 хвоста(RX=2), то голова вырастет (G=G+1 , X=X-2, N=N+1) Алгоритм решения

N – число ударов?

Ввод RG и RX

Если срубить 1 голову(RG=1), то голова вырастет (N=N+1)

Если срубить 2 головы(RG=2), то ничего не вырастет (G=G-2 , N=N+1)

Если срубить 1 хвост(RX=1), то 2 хвоста вырастут (X=X+1, N=N+1)

Если срубить 2 хвоста(RX=2), то голова вырастет (G=G+1 , X=X-2, N=N+1)

Алгоритм решения

Циклы Алгоритм решения данной задачи будет циклическим. С циклическими алгоритмами вы уже познакомились, работая с графическим исполнителем. Цикл — это команда исполнителю многократно повторить указанную последовательность команд.

Цикл с предусловием Сколько различных слов можно составить из N букв (слова не обязательно должны иметь смысл)

  • Алгоритм решения данной задачи будет циклическим. С циклическими алгоритмами вы уже познакомились, работая с графическим исполнителем.
  • Цикл — это команда исполнителю многократно повторить указанную последовательность команд.

Цикл с предусловием

Сколько различных слов можно составить из N букв (слова не обязательно должны иметь смысл)

« Цикл с предусловием »: пока истинно условие цикла, повторяется выполнение тела цикла . while do Служебное слово while означает «пока», do — «делать», «выполнять». Оператор, стоящий после слова do, называется телом цикла. Тело цикла может быть простым или составным оператором, т. е. последовательностью операторов между служебными словами begin и end.

« Цикл с предусловием »: пока истинно условие цикла, повторяется выполнение тела цикла .

while do

Алгоритм решения: НАЧАЛО N=0; G=3; X=3 да ((G0) and (X0)) or ((G0) and (X=0))or ((G=0) and (X0)) ? нет Что будем рубить? Ввод ( голов ) RG, (хвостов) RX нет да (RX=0) and (RG0) ? да нет (RX0) ? RG=1 ? да да N=N+1 нет RХ=1 ? нет N=N+1; G=G-2 нет N=N+1; G=G+1; X=X-2 N=N+1; X=X+1 Вывод N КОНЕЦ 19

  • Служебное слово while означает «пока», do — «делать», «выполнять».
  • Оператор, стоящий после слова do, называется телом цикла. Тело цикла может быть простым или составным оператором, т. е. последовательностью операторов между служебными словами begin и end.

Алгоритм решения:

((G0) and (X0)) or ((G0) and (X=0))or ((G=0) and (X0)) ?

Что будем рубить?

Ввод ( голов ) RG, (хвостов) RX

(RX=0) and (RG0) ?

Источник: videouroki.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru