
1432
.pdf5.6. Задания на тему «Использование визуальных компонентов»
Создать приложение Windows Forms, используя несколько визуальных компонентов, указанных в варианте задания.
Варианты 1–3. Разработать программу, вычисляющую сумму, разность и произведение двух вещественных чисел. В табл. 5.10 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
|
Таблица 5.10 |
|
Компоненты, которые нужно использовать в вариантах 1–3 |
||||
|
|
|
|
|
|
Вариант |
|
Ввод или выбор |
Выбор |
Подтверждение |
Вывод |
|
чисел |
операции |
операции и выход |
результата |
|
|
|
||||
1 |
|
TextBox |
RadioButton |
Button |
TextBox |
|
|
|
|
|
|
2 |
|
ComboBox |
RadioButton |
Button |
Label |
|
|
|
|
|
|
3 |
|
TextBox |
CheckBox |
Button |
TexBox |
|
|
|
|
|
|
Варианты 4–6. Разработать программу, вычисляющую максимум, минимум и среднее из трех однозначных чисел. В табл. 5.11 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
|
Таблица 5.11 |
|
Компоненты, которые нужно использовать в вариантах 4–6 |
||||
|
|
|
|
|
|
Вариант |
|
Ввод или выбор |
Выбор |
Подтверждение |
Вывод |
|
чисел |
операции |
операции и выход |
результата |
|
|
|
||||
4 |
|
ComboBox |
RadioButton |
Button |
Label |
|
|
|
|
|
|
5 |
|
TextBox |
RadioButton |
Button |
TextBox |
|
|
|
|
|
|
6 |
|
TextBox |
ComboBox |
Button |
Label |
|
|
|
|
|
|
Варианты 7–9. Разработать программу, определяющую номер группы, если известны специальность и курс. В табл. 5.12 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
Таблица 5.12 |
|
Компоненты, которые нужно использовать в вариантах 7–9 |
|||||
|
|
|
|
|
|
Вариант |
Выбор курса |
Выбор |
Подтверждение |
Вывод |
|
специальности |
операции и выход |
результата |
|||
|
|
||||
7 |
ComboBox |
ComboBox |
Button |
Label |
|
|
|
|
|
|
|
8 |
TextBox |
TextBox |
Button |
Label |
|
|
|
|
|
|
|
9 |
ComboBox |
TextBox |
Button |
TexBox |
|
|
|
|
|
|
59
Варианты 10–12. Разработать программу, определяющую номер автобуса и время отправления по названию пункта, в который нужно прибыть. В табл. 5.13 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
Таблица 5.13 |
Компоненты, которые нужно использовать в вариантах 10–12 |
||||
|
|
|
|
|
Вариант |
Выбор пункта |
Выбор полей |
Подтверждение |
Вывод |
|
прибытия |
для вывода |
операции и выход |
результата |
10 |
ComboBox |
CheckBox |
Button |
Label |
|
|
|
|
|
11 |
RadioButton |
CheckBox |
Button |
Label |
|
|
|
|
|
12 |
TextBox |
CheckBox |
Button |
Label |
|
|
|
|
|
Варианты 13–15. Разработать программу-расписание, определяющую номер аудитории и дисциплину по дню недели и номеру пары (урока). В табл. 5.14 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
Таблица 5.14 |
Компоненты, которые нужно использовать в вариантах 13–15 |
||||
|
|
|
|
|
Вариант |
Ввод или выбор |
Ввод или выбор |
Подтверждение |
Вывод |
|
дня |
номера пары |
операции и выход |
результата |
13 |
TextBox |
CheckBox |
Button |
Label |
|
|
|
|
|
14 |
CheckBox |
ComboBox |
Button |
Label |
|
|
|
|
|
15 |
RadioButton |
CheckBox |
Button |
TextBox |
|
|
|
|
|
Варианты 16–18. Разработать программу-путеводитель, определяющую этаж и номер кабинета по названию отдела. В табл. 5.15 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
|
Таблица 5.15 |
|
|
Компоненты, которые нужно использовать в вариантах 16–18 |
|||||
|
|
|
|
|
|
|
Вариант |
Ввод или выбор |
Выбор полей |
Подтверждение |
Вывод |
||
отдела |
для вывода |
операции и выход |
результата |
|||
|
|
|||||
16 |
|
TextBox |
CheckBox |
Button |
Label |
|
|
|
|
|
|
|
|
17 |
|
CheckBox |
ComboBox |
Button |
Label |
|
|
|
|
|
|
|
|
18 |
|
RadioButton |
CheckBox |
Button |
Label |
|
|
|
|
|
|
|
60
Варианты 19–21. Разработать программу, определяющую цену товара и цену со скидкой (при покупке значительного количества). В табл. 5.16 указаны компоненты, которые требуется использовать в программе.
Таблица 5.16
Компоненты, которые нужно использовать в вариантах 19–21
Вариант |
Ввод или выбор |
Ввод или выбор |
Подтверждение |
Вывод |
наименования товара |
количества товара |
операции и выход |
результата |
|
19 |
TextBox |
CheckBox |
Button |
Label |
|
|
|
|
|
20 |
ComboBox |
TextBox |
Button |
TextBox |
|
|
|
|
|
21 |
RadioButton |
NumericUpdown |
Button |
Label |
|
|
|
|
|
Варианты 22–24. Разработать программу, определяющую стоимость заказа по набору блюд и количеству персон. В табл. 5.17 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
|
Таблица 5.17 |
|
|
Компоненты, которые нужно использовать в вариантах 22–24 |
|||||
|
|
|
|
|
|
|
Вариант |
Ввод исходного |
Ввод или выбор |
Подтверждение |
Вывод |
||
значения |
количества персон |
операции и выход |
результата |
|||
|
|
|||||
22 |
|
CheckBox |
TextBox |
Button |
TextBox |
|
23 |
|
CheckBox |
RadioButton |
Button |
Label |
|
24 |
|
CheckBox |
NumericUpDown |
Button |
Label |
Варианты 25–27. Разработать программу, определяющую стоимость билета по пункту назначения и качеству посадочного места. В табл. 5.18 указаны компоненты, которые требуется использовать в программе.
|
|
|
|
Таблица 5.18 |
Компоненты, которые нужно использовать в вариантах 25–27 |
||||
|
|
|
|
|
Вариант |
Выбор пункта |
Выбор качества |
Подтверждение |
Вывод |
|
назначения |
места |
операции и выход |
результата |
25 |
ComboBox |
RadioButton |
Button |
Label |
26 |
CheckBox |
NumericUpDown |
Button |
TextBox |
27 |
CheckedListBox |
RadioButton |
Button |
Label |
Варианты 28–30. Разработать программу, переводящую мили в километры (в 1 км 1,609344 мили) и фунты в килограммы (в 1 кг 0,4095 фунтов). В табл. 5.19 указаны компоненты, которые требуется использовать в программе.
61
|
|
|
|
|
Таблица 5.19 |
|
|
Компоненты, которые нужно использовать в вариантах 29–30 |
|||||
|
|
|
|
|
|
|
Вариант |
Ввод исходного |
Выбор |
Подтверждение |
Вывод |
||
значения |
преобразования |
операции и выход |
результата |
|||
|
|
|||||
28 |
|
TextBox |
RadioButton |
Button |
TextBox |
|
|
|
|
|
|
|
|
29 |
|
TextBox |
ComboBox |
Button |
Label |
|
|
|
|
|
|
|
|
30 |
|
TextBox |
CheckBox |
Button |
Label |
|
|
|
|
|
|
|
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
62
6.ПРОСМОТР КАТАЛОГОВ И ФАЙЛОВ
6.1.Просмотр и выбор в дереве каталогов
Для того чтобы иметь представление о системе, необходим список логических дисков, который можно получить с помощью метода GetLogicalDrives класса Environment. Например, следующая строка программы размещает имена дисков в массиве строк L_D. Количество дисков определяется с помощью функции Length.
Dim L_D() As String = Environment.GetLogicalDrives() Dim Nd As Integer = L_D.Length
Какие папки размещены в данном каталоге, можно узнать с помощью метода GetDirectories класса System.IO.Directory.
Например, строка ниже помещает список всех подкаталогов корневого каталога в массив строк S_F.
Dim S_F() As String = IO.Directory.GetDirectories("c:\") Dim Nf As Integer = S_F.Length
Указанный метод дает возможность отфильтровать папки по маске, например, выбрать те, которые начинаются с буквы W:
Dim W() As String = IO.Directory.GetDirectories("c:\,"W*")
Просмотр и выбор в дереве каталогов осуществляется с помощью класса FolderBrowserDialog, который предоставляет способ выдачи приглашения пользователя для просмотра, выбора, а также создания папки. Этот класс используется, когда необходимо разрешить пользователю выбирать только папки, но не файлы. Обзор папок осуществляется с помощью дерева. Могут выбираться только папки из файловой системы; выбор виртуальных папок невозможен. В примере кода ниже создается новый объект класса FolderBrowserDialog и устанавливается имя корневой папки RootFolder, с которой начинается просмотр, например, Мой компьютер:
Dim FolderBrowserDialog1 As New FolderBrowserDialog() FolderBrowserDialog1.RootFolder = _ Environment.SpecialFolder.MyComputer
Можно использовать свойство ShowNewFolderButton, чтобы указать, имеется ли у пользователя возможность создания новых
63

папок с помощью кнопки Создать папку, например, следующая строка запретит отображение этой кнопки: FolderBrowserDialog1.ShowNewFolderButton = False
Свойство Description предоставляет пользователю текстовую подсказку.
FolderBrowserDialog1.Description = "выберите папку"
Метод ShowDialog служит для отображения диалогового окна с деревом каталогов (рис. 6.1), в котором пользователь выбирает папку. Если пользователь выбрал папку, то результатом диалога является DialogResultOK, а свойство SelectedPath будет содержать путь к выбранной папке. В строках кода ниже путь отображается в поле
Label:
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then Label1.Text = FolderBrowserDialog1.SelectedPath
End If
Рис. 6.1. Окно FolderBrowserDialog
Объект FolderBrowserDialog является модальным диалоговым окном. Поэтому, когда это окно отображается, остальная часть приложения блокируется до тех пор, пока пользователь не выберет папку. Программа должна скрыть или закрыть диалоговое окно перед тем, как разрешить ввод в вызывающую программу.
64
Пример программы
Данный пример кода может быть использован, например, в качестве обработки события Button.Click. В нем с помощью метода
ShowDialog класса FolderBrowserDialog осуществляется выбор папки, полное имя которой выводится в поле Label. Для доступа к указанному классу требуется строка Imports System.IO. В качестве корневого каталога указан Мой компьютер.
‘ Пример 6.1
Dim FolderBrowserDialog1 As New FolderBrowserDialog() FolderBrowserDialog1.Description = "выберите папку" FolderBrowserDialog1.ShowNewFolderButton = False FolderBrowserDialog1.RootFolder = _ Environment.SpecialFolder.MyComputer
If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then Label1.Text = FolderBrowserDialog1.SelectedPath
Else Label1.Text = "" End If
6.2. Задание на тему «Просмотр и выбор в дереве каталогов»
Разработать программу, которая выполняет следующие действия: 1) получает список логических дисков; 2) дает пользователю возможность выбора одного из дисков; 3) предоставляет пользователю возможность выбора произвольной папки на этом диске; 4) получает и выводит в текстовый файл список подкаталогов выбранной папки; 5) получает и выводит в текстовый файл список подкаталогов по маске.
Порядок выполнения лабораторной работы
Создать новый проект – приложение Windows Forms.
Вынести на форму необходимые визуальные компоненты.
Добавить программный код обработки событий.
Компилировать программу.
Тестировать программу.
Создать документ с описанием работы программы.
65
6.3. Выбор файла в каталоге
Для того чтобы получить список файлов из произвольной папки,
можно применить метод GetFiles класса System.IO.Directory.
Например, ниже список файлов помещается в массив строк FL, а количество файлов – в переменную N.
Dim FL() As String = IO.Directory.GetFiles("c:\") Dim N As Integer = FL.Length
Метод GetFiles позволяет отфильтровать файлы по маске, например, выбрать те, которые начинаются с буквы S:
Dim FL() As String = System.IO.Directory.GetFiles("c:\","S*") Dim N As Integer = FL.Length
Для выбора произвольного файла из папки служит класс OpenFileDialog. Этот класс позволяет проверить, существует ли файл, и открыть его. Свойство ShowReadOnly определяет, отображается ли в диалоговом окне флажок «Доступно только для чтения». Свойство ReadOnlyChecked показывает, установлен ли флажок «Доступно только для чтения». Значительная часть возможностей этого класса находится в классе FileDialog.
После создания нового объекта класса OpenFileDialog требуется указать папку, в которой пользователь начнет выбор файла.
Dim openFileDialog1 As New OpenFileDialog() openFileDialog1.InitialDirectory = "C:\"
Сократить количество просматриваемых файлов можно с помощью маски, которая состоит из пар описание-маска, разделенных вертикальной чертой. Например, ниже задаются два варианта маски. openFileDialog1.Filter = "текстовые файлы .txt|*.txt|все файлы|*.*" openFileDialog1.FilterIndex = 2
Можно также изменить заголовок диалогового окна: openFileDialog1.Title = "Выбор текстового файла"
Метод ShowDialog служит для отображения диалогового окна с деревом каталогов (рис. 6.2), в котором пользователь выбирает файл. Если пользователь выбрал файл, то результатом диалога является
DialogResultOK, а свойство SafeFileName будет содержать имя выбранного файла.
If openFileDialog1.ShowDialog() = DialogResult.OK Then Label1.Text = openFileDialog1.SafeFileName
66

End If
Рис. 6.2. Окно OpenFiledialog
Объект OpenFileDialog является модальным диалоговым окном. Поэтому, когда это окно отображается, остальная часть приложения блокируется до тех пор, пока пользователь не выберет папку. Программа должна скрыть или закрыть диалоговое окно перед тем, как разрешить ввод в вызывающую программу.
Если следует предоставить пользователю возможность выбрать папку, а не файл, используйте объект FolderBrowserDialog.
Пример программы
В следующем примере кода создается экземпляр класса OpenFileDialog. Чтобы использовать указанный класс, в программу обязательно должно быть добавлено пространство имен System.IO. С помощью метода ShowDialog отображается диалоговое окно, в котором осуществляется выбор текстового файла. Для окна указывается заголовок Title, папка InitialDirectory, с которой начинается выбор, а также строка фильтра Filter, состоящая из пар подсказка|маска. Имя файла отображается в компоненте Label.
67
Содержимое текстового файла читается в поле TextBox. Для решения проблем с распознаванием русских букв указывается соответствующая кодовая таблица Text.Encoding.GetEncoding(1251).
‘ Пример 6.2
Dim fs As FileStream = Nothing
Dim openFileDialog1 As New OpenFileDialog() Dim INI_FLD As String = "C:\_Pro"
openFileDialog1.Title = "Выбор текстового файла" openFileDialog1.InitialDirectory = INI_FLD openFileDialog1.Filter = _
"текстовые файлы .txt|*.txt|все файлы|*.*" openFileDialog1.FilterIndex = 2 openFileDialog1.RestoreDirectory = True openFileDialog1.FileName = ""
If openFileDialog1.ShowDialog() = DialogResult.OK Then Try
fs = openFileDialog1.OpenFile() If (fs IsNot Nothing) Then
Label1.Text = openFileDialog1.SafeFileName Dim fi As New StreamReader(fs, _ System.Text.Encoding.GetEncoding(1251)) TextBox1.Text = fi.ReadToEnd()
fi.Close() End If
Catch e1 As Exception Label1.Text = e1.Message Finally
fs.Close() End Try End If
6.4. Задание на тему «Выбор файла в каталоге»
Разработать программу, которая выполняет следующие действия: 1) предоставляет пользователю возможность выбора произвольной папки на диске; 2) получает и выводит в текстовый файл список файлов по маске из выбранной папки; 3) предоставляет пользователю
68