Главная страница

ПП _ЛР 9 Валидация. Тест. Билеты. Лабораторная работа 9 Тема Этапы разработки пс. Проектирование. Модуль ввода данных


Скачать 363.8 Kb.
НазваниеЛабораторная работа 9 Тема Этапы разработки пс. Проектирование. Модуль ввода данных
Дата27.01.2022
Размер363.8 Kb.
Формат файлаpdf
Имя файлаПП _ЛР 9 Валидация. Тест. Билеты.pdf
ТипЛабораторная работа
#344026

83
Лабораторная работа № 9
Тема: Этапы разработки ПС. Проектирование. Модуль ввода данных.
Валидация. Тестирование.
Цель работы:
- научиться анализировать ТЗ ;
- научиться организовывать самостоятельную работу над проектом;
- научиться проектировать программное средство ;
- научиться создавать процедуры проверки входящих данных;
- научиться самостоятельно выбирать план и элементы реализации пользовательского интерфейса;
Краткие теоретические сведения.
Что такое валидация данных
Валидация – это процесс проверки данных на соответствие различным критериям.
При разработке любого приложения в большинстве случаев разработчику приходится иметь дело с обработкой данных, которые ввел пользователь в соответствующие поля на форме.
По разным причинам пользователь может вводить некорректные данные.
Например, в поле "Возраст" он по ошибке может указать отрицательное или вовсе нечисловое значение.
На практике встречается множество ситуаций, где определенные поля в пользовательском интерфейсе могут содержать только те данные, которые строго соответствуют определенным шаблонам.
Если не учитывать подобные ситуации, то в процессе работы приложения могут возникать сбои, связанные с некорректным вводом пользователя. Ошибки могут быть допущены случайно или намеренно.
В последнем случае пользователь может вводить некорректные данные с целью вывести приложение из строя и таким образом произвести атаку на приложение.
Поэтому каждое приложение, которое работает с данными, которые вводит пользователь (а таких приложений большинство) должно производить предварительную проверку корректности введенных данных.
Именно по этой причине каждый разработчик должен быть знаком с механизмом валидации данных, которые указал пользователь.
Исторически, механизмы валидации данных разрабатывались самими разработчиками прикладных приложений.
Это означает, что при каждой обработке запроса логике обработки запроса предшествовало большое количество условных операторов, определяющих условия корректности данных.
Общие сведения о проверке вводимых пользователем данных
(Windows Forms .NET)
Когда пользователи вводят данные в приложение, может потребоваться проверить, являются ли данные допустимыми, прежде чем использовать их в приложении. Может потребоваться проверить, что определенные текстовые поля не были нулевой длины, что

84 поле отформатировано как номер телефона или строка не содержит недопустимых символов. Windows Forms предоставляет несколько способов проверки вводимых данных в приложении.
Элемент управления MaskedTextBox
Если требуется, чтобы пользователи вводили данные в четко определенном формате, например номер телефона или артикул, это можно сделать быстро и с минимальным количеством кода с помощью элемента управления
MaskedTextBox
Маска — это строка, состоящая из символов языка маскирования, которые указывают, какие символы можно вводить в каждой заданной позиции в текстовом поле.
Элемент управления отображает набор запросов пользователю. Если пользователь вводит неправильное значение, например, вводит букву, когда требуется цифра, элемент управления автоматически отклоняет введенные данные.
Язык маскирования, используемый
MaskedTextBox
, является очень гибким. Он позволяет указать обязательные символы, необязательные символы, литералы, такие как дефисы и скобки, символы валют и разделители дат. Этот элемент управления также хорошо работает при привязке к источнику данных.
Событие
Format в привязке данных можно использовать для переформатирования входящих данных в соответствии с маской, а событие
Parse можно использовать для переформатирования исходящих данных в соответствии со спецификациями поля данных.
Проверка на основе событий
Если требуется полностью программный контроль над проверкой или нужно выполнять сложные проверки, следует использовать события проверки, встроенные в большинство элементов управления Windows Forms.
У каждого элемента управления, принимающего пользовательский ввод в свободной форме, есть событие
Validating
, которое возникает каждый раз, когда элементу управления требуется проверка данных.
В методе обработки событий
Validating можно проверить ввод пользователя несколькими способами.
Например, если имеется текстовое поле, которое должно содержать почтовый индекс, можно выполнить проверку следующими способами.
Если почтовый индекс должен принадлежать к определенной группе почтовых индексов, можно выполнить сравнение строк на входе, чтобы проверить введенные пользователем данные.
Например, если почтовый индекс должен быть из набора {10001, 10002, 10003}, можно использовать сравнение строк для проверки данных.
Если почтовый индекс должен быть указан в определенной форме, можно использовать регулярные выражения для проверки данных, вводимых пользователем.
Например, чтобы проверить формат ##### или #####-####, можно использовать регулярное выражение ^(\d{5})(-\d{4})?$. Чтобы проверить формат A#A #A#, можно использовать регулярное выражение [A-Z]\d[A-Z] \d[A-Z]\d. Дополнительные сведения о регулярных выражениях см. в разделах
Регулярные выражения .NET
и
Примеры регулярных выражений
Если почтовый индекс должен быть допустимым почтовым индексом США, можно вызвать веб-службу почтовых индексов для проверки данных, введенных пользователем.

85
Событие
Validating предоставляется объектом типа
CancelEventArgs
. Если вы определили, что данные элемента управления недопустимы, отмените событие
Validating
, задав свойству
Cancel этого объекта значение true. Если свойство
Cancel не задано, Windows Forms будет считать, что проверка для этого элемента управления прошла удачно, и порождает событие
Validated
Явная и неявная проверка
Итак, когда выполняется проверка данных элемента управления? Это решает разработчик. В зависимости от потребностей приложения можно использовать явную или неявную проверку.
Неявная проверка
При неявной проверке данные проверяются по мере их ввода пользователем.
Данные проверяются путем считывания клавиш при их нажатии или, что более часто, когда пользователь снимает фокус с элемента управления.
Этот подход удобен, если вы хотите предоставлять пользователям немедленную обратную связь о данных прямо во время их работы.
Если вы хотите использовать неявную проверку для элемента управления, необходимо задать его свойству
AutoValidate значение
EnablePreventFocusChange или
EnableAllowFocusChange
. При отмене события
Validating поведение элемента управления будет определяться значением, назначенным свойству
AutoValidate
Если вы установили значение
EnablePreventFocusChange
, отмена события приведет к возникновению события
Validated
Фокус поля ввода будет оставаться на текущем элементе управления до тех пор, пока пользователь не изменит данные на допустимый формат.
Если вы установили значение
EnableAllowFocusChange
, событие
Validated не произойдет при отмене события, но фокус по-прежнему будет переходить к следующему элементу управления.
Присвоение значения
Disable свойству
AutoValidate полностью отключает неявную проверку. Тогда для проверки элемента управления необходимо использовать явную проверку.
Явная проверка
При явной проверке данные проверяются за один раз. Вы можете проверить данные в ответ на действие пользователя, например нажатие кнопки Сохранить или ссылки Далее.
При возникновении действия пользователя можно активировать явную проверку одним из следующих способов: вызов метода
Validate
, чтобы проверить последний элемент управления, который потерял фокус; вызов метода
ValidateChildren
, чтобы проверить все дочерние элементы управления в форме или контейнере; вызов пользовательского метода для проверки данных в элементах управления вручную.
Поведение по умолчанию неявной проверки для элементов управления

86
Различные элементы управления Windows Forms имеют разные значения по умолчанию свойства
AutoValidate
. В следующей таблице показаны наиболее распространенные элементы управления и их значения по умолчанию.
ПОВЕДЕНИЕ ПО УМОЛЧАНИЮ НЕЯВНОЙ ПРОВЕРКИ ДЛЯ
ЭЛЕМЕНТОВ УПРАВЛЕНИЯ
Control
Поведение проверки по умолчанию
ContainerControl
Inherit
Form
EnableAllowFocusChange
PropertyGrid
Свойство не предоставлено в Visual Studio
ToolStripContainer
Свойство не предоставлено в Visual Studio
SplitContainer
Inherit
UserControl
EnableAllowFocusChange
Закрытие формы и переопределение проверки
Когда элемент управления сохраняет фокус, поскольку содержащиеся в нем данные являются недопустимыми, невозможно закрыть родительскую форму одним из обычных способов: нажатием кнопки Закрыть; выбором пункта меню Система > Закрыть; вызовом метода
Close программным способом.
Однако в некоторых случаях может потребоваться разрешить пользователю закрывать форму независимо от того, являются ли значения в элементах управления допустимыми.
Можно переопределить проверку и закрыть форму, которая все еще содержит недопустимые данные, создав обработчик для события
FormClosing формы.
В событии задайте для свойства
Cancel значение false.
Это приведет к принудительному закрытию формы при ошибке.
Задание (Ход работы):
 Выберите индивидуальное задание из списка по вашему варианту.
 По индивидуальному заданию определите типы и значения входящих данных, требующие валидации
 Определите границы (типы или частые значения) данных являющиеся некорректными для задачи.
 Проанализируйте и подберите необходимые для реализации интерфейса и решения задачи элементы WinForms
 Составьте программу, реализующую решение вашей задачи.
 Дополните программу необходимыми методами валидации входящих данных.
 Составьте TestCase, необходимый для проверки всех границ входящих данных
 Протестируйте программу созданным пакетом тестов.
 Выложите в систему отчет о тестировании ваш программы в виде *.doc или
*.pdf файла с необходимыми скриншотами тестирования.

87
Индивидуальные задания:
Вариант
Задание
1.
Написать программу вычисления стоимости междугородного звонка в зависимости от города. Входные данные: город (из постоянного списка (внесено изначально в программу) , длительность (мин). Стоимость одной минуты (руб) разговора определить самостоятельно (внесено изначально в программу)
2.
Написать программу вычисления стоимости производства окна про его размерам.
Входные данные: длина окна, ширина окна, материал. Стоимость и виды материала определить самостоятельно (внесены в программу изначально).
3.
Написать программу вычисления стоимости бензина в зависимости от длительности пути (км). Входные данные: Длина пути (км), расход бензина на км.
Стоимость бензина определить самостоятельно (внесены в программу изначально).
4.
Написать программу, которая переводит время, указанное в минутах, в часы и минуты. Например: Укажите время в минутах: 126 Решение: 126 мин = 2 ч 6 мин
5.
Написать программу, которая переводит угол в градуса в угол в радианах.
Входные данные : угол в градусах
6.
Написать программу сложения двух обыкновенных дробей
(числители и знаменатели дробей — параметры ввода). Предусмотреть случай, когда знаменатель дроби равен нулю;
7.
Написать программу, которая переводит время, указанное в секундах, в минуты и секунды. Например: Укажите время в секундах: 380 Решение: 380 с = 6 мин 20 с
8.
Написать программу вычисления среднего арифметического заданных n чисел.
9.
Вывести на форму таблицу умножения на n. Например:
Введите число n: 7 7*1=7 7*2=14 7*3=21 7*4=28 7*5=3542 7*6=42 7*7=49 7*8=56 7*9=63 7*10=70 10.
Написать программу, находящую сумму n членов ряда
11.
Известно, что N = 2k . Написать программу, определяющую по заданному N значение показателя степени k.
12.
Написать программу, находящую сумму n членов ряда
13.
Определить, попадает ли точка с координатами X и Y в круг радиуса R Входящие данные : (х1, у1), (х, у2), R
14.
Даны числа A, B, C. Определить, можно ли из данных трёх отрезков составить прямоугольный треугольник.

88 15.
Вычислить значения «у», если:
16.
Вычислить значения «у», если:
17.
Вычислить значения «у», если:
18.
Переведите расстояние (указанное в метрах) в километры и метры. Например:
Укажите расстояние в метрах, например : 3640 Решение: 3640 м = 3 км 640 м
19.
Написать программу деления двух обыкновенных дробей (числители и знаменатели дробей — параметры ввода). Предусмотреть случай, когда знаменатель дроби равен нулю.
20.
Написать программу умножения двух обыкновенных дробей (числители и знаменатели дробей — параметры ввода). Предусмотреть случай, когда знаменатель дроби равен нулю;
21.
Написать программу, которая проверяет, является ли введенное пользователем число четным;
22.
Написать программу, которая переводит угол в радианах в угол в градусах.
Входные данные : угол в радианах
23.
Написать программу, которая находит сумму двух данных чисел (если оба числа четные) или произведение (если хотя бы одно из чисел нечетное);
24.
Построить график функции: y = Cos(2*x+1) + 3* x
2 25.
Вычислить среднее арифметическое функции: y = Cos(4*x-1) + 5* x
2 26.
Вычислить минимум функции : y = Sin (3*x-4) - 6* x
3 27.
Вычислить максимум функции: Cos(2*x+6) - 7* x
2 28.
Вычислить площадь треугольника по его сторонам. Стороны вводятся с клавиатуры. Написать какого рода треугольник (прямоугольный, равнобедренный, разносторонний, равносторонний)
29.
Переведите расстояние (указанное в метрах) в мили. Например: Укажите расстояние в метрах: 3640 Решение: 3640 м = 2.26179113974 миль (амер)
30.
Написать программу вычисления времени движения в зависимости от Расстояния и Скорости движения. Вывести график движения на форму.


написать администратору сайта