четверг, 10 июля 2008 г.

глава 6 упражнение 3

Напишите заготовку программы, управляемой меню. Программа должна отображать меню, состоящее из четырех пунктов, каждый из которых помечен буквой. Если пользователь отвечает вводом буквы, отличающейся от одного из допустимых пунктов, программа должна предлагать ему ввести допустимый ответ до тех пор, пока это не будет сделано. Затем программа должна использовать переключатель для выбора простого действия, исходя из ответа пользователя. Результат выполнения программы мог бы выглядеть примерно так:


Please enter one of the following choices:
c) carnivore p) pianist
t) tree g) game

Please enter a c, p, t, or g : y
Please enter a c, p, t, or g : t
A maple is a tree.




#include <iostream.h>#include <stdlib.h>#include <cstring.h>  // для strlen()int main(){   char ch [20];   cout <<  "Please enter one of the following choices:\n";   cout << "c) carnivorne        p) pianist\n";   cout << "t) tree              g) game\n";   cout << "q) quit\n";   while (cin.getline(ch, 20))   {   if (ch[0]== 'q') // если q то выход   {      cout << "quit\n";      break;   }   if (strlen(ch) == 1)    // проверка ввода лишь одного символа   switch (ch[0])   {      case 'c' : cout <<"carnivorne\n";                 break;      case 't' : cout << "tree\n";                 break;      case 'p' : cout << "pianist\n";                 break;      case 'g' : cout << "game\n";                 break;      default : cout << "vy vveli ne vernyj simvol, povtorite vvod\n";   }   else cout <<"vy vveli neskolko simvolov, povtorite vvod\n";}system("PAUSE");return 0;}

Добавил только выход из цикла
Оч много проепался с проверкой на ввод одного символа, только потом вспомнил, что можно замереть длину строки strlen()'ом
Массив символов ограничил 20 и это значит, если ввести больше то прога завершит работу.

Комментариев нет: