Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб_Раб_VB_2008_Visual_I_курс_6_лаб_раб

.pdf
Скачиваний:
34
Добавлен:
07.02.2016
Размер:
1.51 Mб
Скачать

Лабораторная работа №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) Образовать новый массив, перенеся в него четыре последних элемента