
Лаб_Раб_VB_2008_Visual_I_курс_6_лаб_раб
.pdf
Лабораторная работа №5 Разработка пользовательского интерфейса и
работа с файлами в среде Visual Basic 2008.
Цель работы: приобретение навыков программирования процессов в которых используются файлы, а также приобретение навыков создания пользовательского интерфейса.
Порядок выполнения работы.
По номеру варианта выбрать из таблицы задание и в соответствии с методическими указаниями, по материалам рекомендованной литературы и конспекта лекций написать программу для решения задачи на ЭВМ.
Содержание отчета.
6.Исходные данные и постановка задачи.
7.Текст кода на языке Visual Basic 2008.
8.Подробное описание последовательности действий при написании программы.
9.Результаты расчета.
В конечном результате, при выполнении работы, программа должна иметь вид, показанный на рисунке ниже.
Требования к выполнению лабораторной работы.
Назовите проект следующим образом: Лаб5_Фамилия_Группа. Где Фамилия – это ваша фамилия, Группа – номер вашей группы. Например: Лаб5_Иванов_1ЭК.
Измените свойство формы FileName c Form1 на frmLabRab_5.
Создайте форму, подобную к форме, приведенной на рисунке, в зависимости
от варианта ваших заданий (наличие проверки и т.д.).
В заголовке окна формы должна отображаться информация с названием
вашего приложения: «Лабораторная работа №5».
Добавьте главное меню в программу. Добавьте сочетания горячих клавиш к
пунктам меню. Структура главного меню должна иметь вид:
Файл |
|
Дії |
Довідка |
Відкрити |
Сtrl+O |
Розрахувати Сtrl+P |
Про програму |
Зберегти як |
Сtrl+S |
|
|
--------------------------- |
|
|
|
Вихід |
Сtrl+X |
|
|
Пункты главного меню должны дублировать действия одноименных клавиш.
Разместите элементы управления Label и TextBox так, как на рисунке (их количество может быть другим в зависимости от варианта заданий).
Далее необходимо разместить элемент управления Label вместе с ListBox,
куда будут выводиться результаты расчетов.
После запуска приложения, форма должна появляться в центре экрана.
Внизу формы должны находиться три кнопки: первая – для открытия файла с данными, вторая – для обработки данных, а третья для сохранения результатов расчета в файл.
В самом низу формы должна находится строка состояния (элемент управления
StatusStrip), в которую будет выводиться информация об ошибках, а также информация о результатах тех или иных действий.
После нажатия на кнопке открытия файла, должно отобразиться стандартное окно открытия файла. После выбора файла пользователем, в текстовом поле (или полях) должна появиться информация о входных данных.
После нажатия кнопки запуска расчетов, должен быть проведен расчет,
согласно вашему варианту задания. Результаты расчета должны быть выведены в список (ListBox).
После нажатия кнопки сохранения в файл, должно появиться стандартное окно сохранения файла. После того как пользователь ввел имя файла, необходимо записать результаты расчета в файл.
Файлы можно создавать и просматривать с помощью программы Блокнот,
которая является составной частью Windows.
Используйте комментарии в коде программы. Помните: комментарий – это подсказка вам при сдаче лабораторной работы.
Результат расчетов должен быть соответствующим образом отформатирован.
После нажатия на пункте меню Про програму, должно появиться окно сообщений с краткой информацией о программе и программисте, а также с информацией о текущей дате и времени (см. предыдущую работу).
После нажатия на пункте меню Вихід, окно формы не должно просто закрыться, а должно появиться окно сообщений с просьбой подтвердить выход. И только в случае нажатия на кнопке Да, программа должна прекратить свою работу (активной должна быть кнопка Нет).
Форма должна иметь надлежащий вид: элементы управления должны быть отцентрированы и выровнены, иметь необходимый размер, на форме не должно быть слов с ошибками, между элементами управления не должно быть много свободного пространства формы.
Пример выполнения задания.
Программа для варианта 30 данных заданий будет иметь следующий вид:
'Лабораторна робота 5 Варіант 30 'Виконав студент Іванов І.І.
'Дата 28.11.2010
Option Strict On
' Імпортуємо простір імен System.IO для роботи з файлами
Imports System.IO Public Class frmLab5
' Оголошення змінних результату на рівні модуля
Dim intMassive(7) As Integer Dim strMassiv() As String Dim intMassive1(7) As Integer Dim intМакс As Integer
Private Sub btnВідкрити_Click(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles btnВідкрити.Click, _ ВідкритиToolStripMenuItem.Click
Dim strStroka As String
'Встановлення початкових параметрів діалогового
'вікна відкриття файлу та його відображення OpenFileDialog1.Title = "Вибір текстового файлу з даними"
OpenFileDialog1.Filter = "Text Files (*.txt)|*.txt" OpenFileDialog1.InitialDirectory = "c:\" OpenFileDialog1.ShowDialog()
If File.Exists(OpenFileDialog1.FileName) Then
'Відкриття файлу (відкриття потоку)
'Створення нового об'єкту StreamReader
Dim FileReader As New StreamReader(OpenFileDialog1.FileName, System.Text.Encoding.Default)
'Зчитування першого рядку файлу strStroka = FileReader.ReadLine
'Відображення зчитаної інформації у текстовому полі txtВхідніДані.Text = strStroka
'Закриття файлу (закриття потоку)
FileReader.Close()
'Зчитування даних в змінні за допомогою методу Split strMassiv = strStroka.Split(CChar(" "))
'Вивід повного імені файлу до рядку стану
'Змінюємо колір на чорний
lblStatus.ForeColor = Color.Black lblStatus.Text = OpenFileDialog1.FileName
' Робимо очитску списку від попередньої інформації lstРезультат.Items.Clear()
End If End Sub
Private Sub btnРозрахувати_Click(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles btnРозрахувати.Click, _ РозрахуватиToolStripMenuItem.Click
Try
'Перетворюємо рядковий масив у масив цілих чисел
For i As Integer = 0 To 7 intMassive(i) = CInt(strMassiv(i))
Next
'Обробка даних згідно з умовою задачі
'Копіювання масиву
Array.Copy(intMassive, intMassive1, 8)
'Міняємо місцями 4 та 7 елементи масиву intMassive1(3) = intMassive(6) intMassive1(6) = intMassive(3)
'Пошук найбільшого елементу масиву
' Предполагаем, что наибольший элемент это первый элемент массива intМакс = intMassive1(0)
For i As Integer = 1 To UBound(intMassive1)
' Если есть больший, то его помещаем в intМакс
If intMassive1(i) > intМакс Then intМакс = intMassive1(i) Next i 'Конец цикла
'Виводимо результати розрахунків у список lstРезультат.Items.Add("Вхідний масив:") lstРезультат.Items.Add(funcRez(intMassive)) lstРезультат.Items.Add("Вихідний масив:") lstРезультат.Items.Add(funcRez(intMassive1)) lstРезультат.Items.Add("Значення 4 та 7 елементів відповідно:") lstРезультат.Items.Add(intMassive(3) & " " & intMassive(6)) lstРезультат.Items.Add("Значення найбільшого елементу масиву:") lstРезультат.Items.Add(intМакс)
'Виводимо в рядок стану інформацію про те, що все розраховано вдало lblStatus.Text = "Розрахунок пройшов вдало!"
Catch ex As Exception
'Виводимо в рядок стану інформацію про те, що сталася помилка
'Змінюємо колір на червоний
lblStatus.ForeColor = Color.Red
lblStatus.Text = "Сталася помилка! Перевірте вхідні дані!"
End Try End Sub
Private Function funcRez(ByRef Massiv As Integer()) As String funcRez = String.Empty
For i As Integer = 0 To UBound(Massiv) funcRez &= Massiv(i) & " "
Next
End Function
Private Sub btnЗберегти_Click(ByVal sender As System.Object, ByVal e _ As System.EventArgs) Handles btnЗберегти.Click, _ ЗберегтиToolStripMenuItem.Click
'Встановлення початкових параметрів діалогового
'вікна закриття файлу та його відображення
SaveFileDialog1.Title = "Збереження результатів" SaveFileDialog1.Filter = "Text Files (*.txt)|*.txt" SaveFileDialog1.InitialDirectory = "c:\" SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> String.Empty Then
' Створення файлу (відкриття потоку)
Dim FileWrite As New StreamWriter(SaveFileDialog1.FileName, True, System.Text.Encoding.Default)
'Запис даних в створений файл
FileWrite.WriteLine("Вхідний масив:") FileWrite.WriteLine(funcRez(intMassive)) FileWrite.WriteLine("Вихідний масив:") FileWrite.WriteLine(funcRez(intMassive1)) FileWrite.WriteLine("Значення 4 та 7 елементів відповідно:") FileWrite.WriteLine(intMassive(3) & " " & intMassive(6)) FileWrite.WriteLine("Значення найбільшого елементу масиву:") FileWrite.WriteLine(intМакс)
'Закриття файлу (закриття потоку)
FileWrite.Close()
'Виводимо в рядок стану інформацію про те, що все вдало
'Змінюємо колір на чорний
lblStatus.ForeColor = Color.Black lblStatus.Text = "Файл збережено!"
End If End Sub
Private Sub ВихідToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles ВихідToolStripMenuItem.Click
'Процедура завершення роботи з програмою 'Вихід з програми настає тільки після натискання 'користувачем кнопки Yes
Dim strПовідомлення As String = "Ви дійсно бажаєте закрити програму?" Dim drРезультатДіалогу As DialogResult
drРезультатДіалогу = MessageBox.Show(strПовідомлення, "Вихід", MessageBoxButtons.YesNo _ , MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
If drРезультатДіалогу = Windows.Forms.DialogResult.Yes Then Me.Close() End Sub
Private Sub ПроПрограмуToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles ПроПрограмуToolStripMenuItem.Click
'Показ вікна повідомлень з інформацією про програму
Dim strТекстПовідомлення As String = "Програма ""Лабораторна робота №5""" & _ ControlChars.NewLine & "Прогрмування Іванов І.І., група 1ЕК." & _ ControlChars.NewLine & "Сьогодняшня дата і час: " & Date.Now.ToString
Dim strЗаголовокВікна As String = "Про програму ""Лабораторна робота №5"""
'Вивід вікна повідомлення
MessageBox.Show(strТекстПовідомлення, strЗаголовокВікна, MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End Sub End Class
Варианты заданий.
1.a) Два одномерных массива по 6 элементов целого типа в диапазоне [1,
40];
b) Переставить на второе место во втором массиве, сдвигая его элементы, второй элемент первого массива; с) Найти минимальный элемент преобразованного второго массива;
d) Вывести исходный, полученный массивы и минимальный элемент.
2.a) Два одномерных массива по 6 элементов целого типа в диапазоне [10,
20];
b) Переставить на пятое место в первом массиве, сдвигая его элементы, последний элемент второго массива; с) Найти максимальный элемент преобразованного второго массива;
d) Вывести исходный, полученный массивы и максимальный элемент.
3.a) Одномерный массив из 10 элементов целого типа в диапазоне [-14, 80]; b) Сдвинуть элементы исходного массива на семь значений вправо, освобождая семь мест, и заполнить их нулями; с) Найти максимальный элемент преобразованного второго массива;
d) Вывести исходный, полученный массивы и максимальный элемент.
4.a) Два одномерных массива по 5 элементов целого типа в диапазоне
[-100, 100];
b) Переставить на третье место в первом массиве, сдвигая его элементы, четвертый элемент второго массива; с) Вычислить сумму элементов полученного массива;
d) Вывести исходный, полученный массивы и значение суммы.
5.a) Два одномерных массива по 5 элементов целого типа в диапазоне [-4, 18];
b) Переставить четвертый элемент первого массива на четвертое место во втором массиве, первый массив сжать; с) Найти произведение элементов первого массива;
d) Вывести два исходных, два полученных массива и значение произведения.
6.a) Одномерный массив из 10 элементов целого типа в диапазоне [50, 200]; b) Удалить из исходного массива элементы со второго по седьмой, сдвигая его элементы; с) Вычислить сумму элементов полученного массива;
d) Вывести исходный, полученный массивы и значение суммы.
7.a) Два одномерных массива по 5 элементов целого типа в диапазоне
[-80, -30];
b) Поменять местами третьи элементы этих массивов;
с) Вычислить сумму элементов первого массива до и после преобразования;
d) Вывести исходный, полученный массивы и значение сумм.
8. a) Одномерный массив из 6 элементов целого типа в диапазоне [-10, 20];
b) Удалить из исходного массива второй элемент и сжать массив (значение удаленного элемента напечатать); с) Найти минимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение минимального элемента.
9. a) Два одномерных массива по 5 элементов целого типа в диапазоне
[16, 80];
b) переставить четыре последних элемента первого массива на четыре первых элемента во втором массиве; с) Найти минимальный элемент преобразованного второго массива;
d) Вывести исходный, полученный массивы и значение минимального элемента.
10.a) Одномерный массив из 8 элементов целого типа в диапазоне [-5, 20]; b) Заменить в исходном массиве два первых элемента единицами;
с) Вычислить сумму элементов массива, начиная с третьего;
d) Вывести исходный, полученный массивы и значение суммы.
11.a) Одномерный массив из 5 элементов целого типа в диапазоне [-4, 100]; b) Дополнить исходный массив, начиная с третьего номера, пятью двойками, сдвигая элементы массива; с) Найти максимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение максимального элемента.
12.a) Два одномерных массива по 5 элементов целого типа в диапазоне [- 10, 30];
b) Дополнить второй массив, начиная со второго номера, тремя последними элементами первого массива; с) Найти максимальный элемент преобразованного второго массива;
d) Вывести два исходных, два полученных массивы и значение максимального элемента.
13.a) Одномерный массив из 10 элементов целого типа в диапазоне [40, 120]; b) Удалить из исходного массива три первых элемента, сдвигая элементы массива, напечатать их значения; с) Найти произведение элементов преобразованного массива;
d) Вывести исходный, полученный массивы и значение произведения.
14.a) Одномерный массив из 9 элементов целого типа в диапазоне [-30, -1]; b) Переставить шестой элемент исходного массива на первое место, сдвигая
его элементы, вывести его значение; с) Вычислить произведение элементов преобразованного массива;
d) Вывести исходный, полученный массивы и значение произведения.
15.a) Одномерный массив из 12 элементов целого типа в диапазоне [-50, 50]; b) Удалить из исходного массива три первых элемента и четыре последних, вывести значения удаляемых элементов; с) Найти максимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение суммы.
16.a) Одномерный массив из 10 элементов целого типа в диапазоне [40, 70]; b) Заменить пять последних элементов исходного массива числом 100;
с) Найти максимальный элемент преобразованного массива и его порядковый номер в массиве;
d) Вывести исходный, полученный массивы, значение максимального элемента и его порядковый номер.
17.a) Одномерный массив из 10 элементов целого типа в диапазоне [-80, -
50];
b) Сдвинуть элементы исходного массива на 5 значений к началу, заполнив пустые места единицами; с) Вычислить сумму элементов нового массива;
d) Вывести исходный, полученный массивы и значение суммы.
18.a) Одномерный массив из 10 элементов целого типа в диапазоне [0, 40]; b) Дополнить исходный массив тремя единицами, начиная с пятого элемента, не сдвигая элементы исходного массива; с) Найти минимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение минимального элемента.
19.a) Одномерный массив из 10 элементов целого типа в диапазоне [-17, 60]; b) В конец исходного массива добавить шесть девяток;
с) Найти максимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение максимального элемента.
20.a) Два одномерных массива (по 5 элементов в каждом) из целых чисел в диапазоне [-30, 18];
b) Заменить два последних элемента первого массива четвертым и шестым элементами первого массива; с) Найти минимальный элемент до и после преобразований;
d) Вывести исходный, полученный массивы и значения минимальных элементов.
21. a) Одномерный массив из 7 элементов целого типа в диапазоне [-5, 100]; b) Инвертировать исходный массив (изменить знаки элементов на противоположные); с) Вычислить сумму элементов полученного массива;
d) Вывести исходный, полученный массивы и значение суммы.
22.a) Одномерный массив из 10 элементов целого типа в диапазоне [4, 46]; b) Образовать новый массив, перенеся в него элементы исходного массива с
4по 9 элементы включительно; с) Вычислить сумму элементов полученного массива;
d) Вывести исходный, полученный массивы и значение суммы.
23.a) Одномерный массив из 9 элементов целого типа в диапазоне [-18, 42]; b) Присвоить первому элементу массива значение 0, остальные элементы сдвинуть; с) Вычислить сумму элементов полученного массива;
d) Вывести исходный, полученный массивы и значение суммы.
24.a) Одномерный массив из 5 элементов целого типа в диапазоне [-32, -5]; b) Поставить на первые три места в исходном массиве -1, сдвигая его элементы; с) Найти минимальный элемент преобразованного массива;
d) Вывести исходный, полученный массивы и значение минимального элемента.
25.a) Одномерный массив из 10 элементов целого типа в диапазоне [-10, 20]; b) Заменить в исходном массиве единицами элементы с четвертого по седьмой; с) Вычислить сумму оставшихся элементов массива;
d) Вывести исходный, полученный массивы и значение суммы.
26.a) одномерный массив из 12 элементов целого типа в диапазоне [-1, 36]; b) Образовать новый массив, перенеся в него четыре последних элемента