пятница, 18 декабря 2015 г.

XIV занятие "Технологии написания консольных программ"

На четырнадцатом занятии мы ознакомились с некоторыми технологиями создания консольных приложений, а именно:

  • использование функций для увеличения наглядности, читаемости и функциональности
  • своевременная очистка экрана
  • диалог с пользователем
  • зацикливание программы



Краткое содержание занятия:

1. Как мы уже знаем, любая программа в C/C++ состоит из функций. Точка входа в программу находится в главной функции main(), а из нее мы можем вызывать другие функции, необходимые нам для работы (как стандартные, так и написанные нами самими). Написав функцию, мы можем применять ее многократно или предоставить ее для использования другим. Это повышает

  • наглядность программы (программа разделена на блоки-функции);
  • ее читаемость (функции обычно называют именами, отражающими их суть);
  • удобство разработки (мы можем пользоваться разработанными функциями, не задумываясь о их устройстве, можем использовать функции, написанные не нами);
  • функциональность разрабатываемого ПО (разделенную на блоки и функции программу проще реализовать и/или добавить к ней функционал).
Практической реализацией данного подхода явилось создание нами своих функций и обмен ими. Далее мы использовали написанные функции в своих программах для вычислений путем подключения файла кода функции и вызова ее по имени.
2. Зацикливание программы. В технологиях написания консольных программ есть такой аспект, как зацикливание программы. Другими словами говоря, программа должна выполняться не один раз, а столько, сколько пожелает пользователь.

3. Для того, чтобы осуществить это на практике, необходимо организовать диалог с пользователем и опрашивать его, желает ли он продолжить работу (как вариант). Повторяться должна, как правило, вся (или почти вся) программа, поэтому зацикливанию подлежит функция main(). Такой прием будет иметь следующий общий вид:


int main(int argc, char* argv)
{
   setlocale(LC_ALL, "Russian");
   // для диалога с пользователем необходима
   // переменная символьного типа, например answer
   char answer='y';
   while (answer=='y' || answer=='Y')
      {
          system("cls");
          // далее следуют операторы программы

          // диалог пользователем:
          puts("\nПовторить? (Y/N)");
          fflush(stdin);
          // если пользователь нажмет клавишу
          // 'Y' - программа запуститься еще раз;
          // любая другая клавиша завершит работу -
          // это проверяется в условии цикла
          answer=getch();
      }

return 0;
}

4. Одна из строчек приведенного выше отрывка программы содержит следующую строку:
system("cls");
Это команда очистки экрана. Дело в том, что при повторном выполнении программы на экране остаются результаты предыдущего выполнения. Это не всегда нужно. Чаще, наоборот, это мешает. Поэтому экран необходимо чистить при помощи данного оператора.

Листинг программы calc:

















Скачать листинг программы (в текстовом формате)

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

Отправить комментарий