Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ПИ_ИКТ Программирование по С++ (1 семестр) _Хотов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.83 Mб
Скачать

Лабораторная работа №30. Разработка пользовательского интерфейса Цель работы:

Формирование навыков разработки графических пользовательских интерфейсов с использованием средств MS Visual Studio 2010.

Обеспечение: 1). Персональный компьютер; 2). Среда Microsoft Office; 3). Среда MS Visual Studio 2010

Задание

  1. В соответствии с вариантом задания и спроектированным приложением разработать пользовательский интерфейс в среде визуального проектирования MS Visual Studio 2010.

  2. Используя схемы и диаграммы (ЛР №29), выполнить проектирование сценариев диалога и построить граф диалога.

  3. Выполнить кодирование обработчиков событий в среде MS Visual Studio 2010.

  4. Оформить отчет. Содержание отчета:

    • тема лабораторной работы;

    • цель лабораторной работы;

    • ответы на контрольные вопросы;

    • задание на лабораторную работу;

    • окна с разработанным пользовательским интерфейсом;

    • таблицу компонентов, свойств, значений, используемых в приложении;

    • сценарии диалогов и графы диалогов;

    • листинг приложения;

    • вывод о проделанной работе.

Методические указания Контрольные вопросы

  1. Что такое интерфейс?

  2. Какие типы пользовательских интерфейсов существуют?

  3. Перечислите этапы разработки пользовательских интерфейсов?

  4. К какому типу интерфейсов будет относиться интерфейс, разработанный в данной лабораторной работе?

  5. Какие модели интерфейсов существуют?

  6. Какая модель интерфейса будет использована в данной работе?

  7. Что такое диалог?

  8. Какие типы диалогов существуют?

  9. Какие формы диалога Вы знаете?

  10. Какой тип диалога и какая форма диалога будет использована в данной работе?

  1. Методы отладки и тестирования программы Теоретические сведения

В предыдущей главе, обсуждая жизненный цикл программы, мы отметили, что этап отладки и тестирования программного продукта — это обязатель­ная и существенная часть процесса разработки. Подсчитано, что отладка занимает от трети до половины всего времени, отведенного на разработку. Даже после этого в готовом программном продукте зачастую остаются ошибки, выявляемые уже в процессе его эксплуатации. Поэтому отладке и тестированию надо уделить особое внимание.

Ошибки, сделанные в программе, можно разделить на два типа: синтакси­ческие и семантические. Синтаксические ошибки возникают при наруше­нии правил записи программы на выбранном языке программирования. Со­временные компиляторы хорошо выявляют такие ошибки и выводят на экран толковые сообщения о типе ошибки и месте ее обнаружения. Эти сообщения позволяют быстро найти место ошибки и исправить ее. Дело несколько осложняется тремя обстоятельствами.

Во-первых, компилятор указывает не ту строку исходного текста програм­мы, в которой произошла ошибка, а ту, в которой она проявилась. Эта строка может оказаться гораздо ниже, чем та, на которой сделана ошибка. Например, если вы забудете закончить описание класса на языке С++ точ­кой с запятой, как в следующем примере, то компилятор будет считать, что описание продолжается, и сообщит об ошибке только тогда, когда в этом "продолжении" возникнет какое-нибудь противоречие. Оно может про­явиться спустя несколько десятков строк исходного текста, и вы будете ло­мать голову, недоумевая, какая же в этом месте может быть ошибка. Нужен некоторый опыт, чтобы сообразить, что ошибка находится гораздо выше.

class А{ int п;

public:

A(int n){ this.n = n;

}

}

class B{ } ;

Во-вторых, ошибка может произойти по разным причинам, компилятор же укажет только одну. Иногда компилятор честно сообщает, что не может определить причину ошибки, написав просто: "Syntax error". В большинстве случаев он указывает наиболее часто встречающуюся, по мнению разработ­чиков компилятора, ошибку, в вашей программе может оказаться совсем другая, поэтому принимайте сообщения компилятора не как истину, а толь­ко как один из возможных вариантов.

В-третьих, некоторые ошибки компилятор не в состоянии обнаружить. К ним относится деление на ноль или переполнение в арифметических выражениях, отрицательное или слишком большое значение индекса массива, и другие ошибки, возникающие в процессе вычислений. Такие ошибки проявляются уже на этапе выполнения (run time) программы и сообщает о них не компиля­тор, а исполняющая система. Их следует учитывать уже при проектировании, включая в программу обработку исключительных ситуаций.

Синтаксические ошибки обнаруживаются и устраняются довольно легко после нескольких запусков программы. Без исправления этих ошибок про­грамма просто не будет работать. Гораздо труднее исправить семантические ошибки — ошибки в алгоритме работы программы.

Часто встречающаяся семантическая ошибка — неправильная расстановка скобок в выражении. Компилятор может проверить парность скобок, но если число открывающих скобок совпадает с числом закрывающих скобок, то компилятор не может сказать, в нужных ли местах они стоят. Здесь надо быть особенно внимательным и отдавать себе отчет в том, что вы хотите вычислить. Например, переменная х может получить значение, вычислен­ное следующим оператором:

double х = 2 * (а - Ь) / (а + Ь) + к * 5 * (а + Ь) / (а * Ь) ;

Но значение х вполне можно вычислить и таким оператором:

double х = 2 * (а - b) / (а + Ь) + к * (5 * а + Ь) / (а * Ь) ;

Компилятору обе записи "кажутся" правильными. Выбор того или иного оператора зависит от задачи, в которой вычисляется переменная х.

Еще одна распространенная ошибка, не обнаружимая компилятором, воз­никает из-за неправильной расстановки или отсутствия фигурных скобок.

В следующем примере, очевидно, переменная s, в которой накапливается сумма, должна изменяться при каждой итерации цикла, но компилятор не может "понять", что, фактически, она меняется только один раз: после вы­полнения цикла.

int m, S = 0;

for (int k = 0; k < a.sizeO - 1; k++) m = a[k + 1] - a[k]; s += 2 * m * m - 3 * m + 2;

Чтобы избежать таких ошибок, специалисты рекомендуют записывать тело любого составного оператора в фигурных скобках.

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

Процесс отладки проходит несколько этапов. Ошибку сначала надо обнару­жить. Потом найти место ее появления, как говорят, локализовать ошибку. После этого ошибку надо устранить. Рассмотрим подробнее каждую стадию отладки.