- •Программирование на языке visual basic 2005
- •Лабораторная работа № 1. Изучение интегрированной среды разработки Visual Studio 2005
- •Основные сведения об интегрированной среде разработки
- •1.6. Вид формы с калькулятором
- •Лабораторная работа №2 Отладка программ и обработка ошибок в Visual Basic 2005 Цель лабораторной работы:
- •Основные сведения о средствах отладки и обработки ошибок
- •Средства обнаружения и предупреждения возникновения синтаксических ошибок
- •Обработка ошибок времени выполнения
- •Средства обнаружения логических ошибок
- •Выполнение лабораторной работы
- •Лабораторная работа №3 Создание и обработка файлов Цель лабораторной работы:
- •Выполнение лабораторной работы
- •Лабораторная работа № 4. Разработка и отладка приложения по индивидуальному заданию
- •Лабораторная работа 5
- •5.1. Наследование формы
- •5.2. Настройка производной формы
- •5.3. Создание собственных базовых классов
- •5.3.1. Добавление в проект нового класса
- •Создание проекта Person Class
- •Объявление переменных класса
- •Создание свойств
- •Создание метода
- •Создание объекта с помощью нового класса
- •5.4. Наследование базового класса
- •Использование ключевого слова Inherits
- •Краткая справка по лабораторной работе 5
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Библиографический список
Лабораторная работа №3 Создание и обработка файлов Цель лабораторной работы:
- разработка пользовательского интерфейса приложения
- программирование создания и просмотра файла произвольного доступа
Задание:
1) На основе данных, вводимых в форму (рис.3.1), создать файл прямого доступа, содержащий сведения о студентах.
2) Вывести данные из файла в форму (рис.3.2)
3) Объединить выполнение пунктов заданий 1) и 2) с помощью кнопочного меню (рис 3.3) в одно приложение.
4) Самостоятельно дополнить приложение созданием второго файла, содержащим результаты сдачи сессии каждым из студентов, и процедурой совместной обработки двух файлов.
5) Используя лекционный материал, создать вложенное меню для выполнения всех процедур приложения.
Рис 3.1. Форма для ввода в файл сведений о студенте.
Рис.3.2. Форма для просмотра сведений о студенте.
Рис 3.3. Кнопочное меню приложения Университет.
Выполнение лабораторной работы
-
Выполнить запуск Visual Basic 2005.
-
Создать новый проект с именем University.
-
Изменить имя формы (свойство Name) на FormStudent, изменить имя окна формы (свойство Text) на Студент. Задать положение формы на экране – в центре экрана (StartPosition – CenterScreen), размер (Size) – 480 (With)х300(Height), самостоятельно выбрать фон формы (BackColor), стиль обрамления (FormBorderStyle).
-
Выполнить размещение в форме Студент элементов управления.
-
Разместить элемент управления TextBox для ввода фамилии студента. Отрегулировать размеры и положение текстового поля в форме в соответствии с рис. 3.1. Присвоить элементу имя txtFIO (свойство Name), значение свойства Text удалить. Создать надпись к элементу txtFIO. Для этого над элементом txtFIO разместить элемент Label. Присвоить элементу имя lblFIO, свойству Text – значение Фамилия И.О.
-
Разместить элемент управления TextBox для отображения номера зачетной книжки студента. В соответствии с рис. 3.1 отрегулировать размеры и положение текстового поля в форме. Присвоить элементу имя txtNomSt, значение свойства Text удалить. Значение номера зачетной книжки будет формироваться программно. Сделать поле не редактируемым, выбрав для свойства Locked значение True. Над элементом txtNomSt разместить элемент Label. Присвоить ему имя lblNomSt, свойству Text – значение Номер зачетной книжки.
-
Разместить элемент управления TextBox для ввода адреса студента, отрегулировать размеры и положение текстового поля в форме в соответствии с рис. 3.1. Присвоить элементу имя txtAdr, значение свойства Text удалить. Над элементом txtAdr разместить элемент управления Label. Присвоить ему имя lblAdr, свойству Text – значение Адрес.
-
Разместить элемент управления TextBox для ввода номера группы, отрегулировать размеры и положение текстового поля в форме в соответствии с рис. 3.1. Присвоить элементу имя txtNomGr, значение свойства Text удалить. Над элементом txtNomGr разместить элемент Label. Присвоить элементу имя lblNomGr, свойству Text – значение Номер группы.
-
Задать подсказки, появляющиеся при установке указателя мыши на элемент управления. Для этого выберите элемент управления ToolTip, после того, как указатель мыши изменился, щёлкните в любом месте по конструируемой форме. На экране появится жёлтая область, в которой появится элемент ToolTip1. Вы только что создали объект, с помощью которого будите добавлять подсказки. Выделите этот объект щелчком мыши и измените его имя с ToolTip1 на ToolTipStudent – значение свойства Name. Следует иметь отметить, что для добавления подсказок используется один и тот же объект, т.е. для каждого элемента управления не надо создавать отдельный объект. Для добавления подсказки следует отредактировать значение свойства ToolTip on ToolTipStudent в соответствии с таблицей 3.1.
Таблица 3.1
Значения свойства ToolTip on ToolTipStudent
Имя элемента управления |
Значение свойства ToolTip on ToolTipStudent |
txtFIO |
Введите фамилию и инициалы |
txtAdr |
Город, улица, номер дома и квартиры |
txtNomGr |
Номер группы должен содержать не более четырёх цифр |
-
Разместить элемент управления ListBox для выбора специальности студента из списка специальностей. Отрегулировать размеры и положение списка в форме в соответствии с рис. 3.1. Присвоить элементу имя lstSp. Над элементом lstSp разместить элемент Label. Присвоить ему имя lblSp, свойству Text – значение Специальность.
-
Сформировать список значений элемента lstSp. Для добавления элементов в список воспользоваться свойством Items элемента lstSp. Значением свойства Items должен быть список значений – названия специальностей: организация и технология защиты информации, информационные системы и технологии, маркетинг, прикладная информатика в экономике, прикладная математика в экономике, коммерция, управление качеством. Для ввода значения следует открыть диалоговое окно добавления элементов списка, щёлкнув по кнопке . В появившемся диалоговом окне ввести список значений. Чтобы упорядочить элементы списка по алфавиту, для свойства Sorted выбрать значение True. Выполнить запуск проекта и проверить работу элемента lstSp. Вернуться в режим отладки (кнопка End).
-
Добавить в форму элемент управление GroupBox (рамка). Отрегулировать его размеры и положение в форме в соответствии с рисунком 3.1. Присвоить элементу имя frmDr, свойству Text – значение Дата рождения. Назначение элемента frmDr объединить элементы управления, с помощью которых вводятся день, месяц и год рождения студента.
-
Добавить в форму элементы управления для ввода дня даты рождения студента. Чтобы создать подпись к полю ввода дня следует разместить внутри рамки (элемент frmDr) элемент Label. Присвоить элементу имя lblDay, свойству Text – значение День. В соответствии с рис. 3.1 изменить размеры и положение. Рядом с элементом lblDay разместить элемент управления NumericUpDown.
-
Элемент NumericUpDown является стандартным элементом управления Microsoft Windows. Разместить элемент управления NumericUpDown в элементе frmDr. Следующим свойствам элемента задать значения: свойству Name - UpDownDay, свойству Minimum – 1, свойству Maximum – 31, свойству Increment – 1. Проверить работу элемента.
-
В рамке (frmDr) разместить элемент управления ComboBox (поле со списком). Отрегулировать размеры и положение списка в форме в соответствии с рис. 3.1. Присвоить элементу имя cmbMonth. Значение свойства Text удалить. Рядом с элементом разместить Label. Надписи присвоить имя lblMonth, свойству Text – значение Месяц.
-
Сформировать список значений элемента cmbMonth для выбора месяца рождения студента. Для добавления элементов в список воспользоваться функцией Add. В окне редактора кода из списка Object выбрать объект FormStudent Events, из списка Procedure – событие Load. Добавить в процедуру Form_Load() следующие строки:
cmbMonth.Items().Add("январь")
cmbMonth.Items().Add("февраль")
cmbMonth.Items().Add("март")
cmbMonth.Items().Add("апрель")
cmbMonth.Items().Add("май")
cmbMonth.Items().Add("июнь")
cmbMonth.Items().Add("июль")
cmbMonth.Items().Add("август")
cmbMonth.Items().Add("сентябрь")
cmbMonth.Items().Add("октябрь")
cmbMonth.Items().Add("ноябрь")
cmbMonth.Items().Add("декабрь")
-
Повторить действия п. 4.8, 4.9 и самостоятельно разместить в рамке элементы управления для формирования значения года рождения студента и задать значения их свойствам. Элементу Label присвоить значение lblYear, свойству Text – Год, элементу NumericUpDown – UpDownYear.
-
Разместить в форме группу элементов для выбора значения – пол студента. Добавить элемент GroupBox (Name – frmPol, Text – Пол). В рамку добавить два элемента управления переключатель RadioButton, с помощью которых будет выбираться пол студента. Отрегулировать их размеры. Выделить элементы RadioButton и выровнять с помощью команд пункта меню Format\Align. Первому переключателю присвоить имя Opt1, свойству Text – значение м, второму переключателю - имя Opt2, свойству Text – значение ж. Установить значение свойства Checked для переключателей. У переключателя Opt1 свойство Checked должно иметь значение True, а у переключателя Opt2 – False.
-
Разместить элемент управления CheckBox (флажок) для ввода значения - вид обучения. Отрегулировать размеры и положение элемента, присвоить ему имя Check1, свойству Text элемента задать значение Обучение коммерческое, для свойства CheckState выбрать значение Checked.
-
Разместить в форме элемент Button, присвоить элементу имя cmdSave, свойству Text – значение Запись. Отрегулировать размеры и положение элемента.
-
Выделить элементы lblFio, lblNomSt, lblAdr, lblSp, lblNomGr, frmDr, frmPol (щелкнуть по первому элементу, а затем, удерживая клавишу Shift, выделить другие объекты) и задать значения свойствам Font и ForeColor для выбранной группы элементов.
-
Разработать процедуру добавления в файл произвольного доступа с именем Student.dat сведений о студентах. Сведения о студенте вводятся с помощью формы Студент. Для этого необходимо выполнить следующие действия.
-
Добавить в проект стандартный модуль с описанием пользовательского типа RecordStud и объявлением переменных RecStud и nRecStud. Тип RecordStud описывает данные, которые будут храниться в записи файла. Переменная RecStud предназначена для хранения сведений записываемых в файл или считанных из него. Переменная nRecStud определяет номер текущей записи файла. Для добавления стандартного модуля в проект, следует выбрать из меню Project команду Add Module. В окне Add New Item выбрать шаблон Module, нажать Add. В окне редактора кода отредактировать текст модуля следующим образом:
-
Structure RecordStud
Dim NomSt As Integer
<VBFixedString(20), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices. _
UnmanagedType.ByValTStr, SizeConst:=20)> Public FIO As String
<VBFixedString(40), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices. _
UnmanagedType.ByValTStr, SizeConst:=10)> Public Adr As String
<VBFixedString(1), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices. _
UnmanagedType.ByValTStr, SizeConst:=10)> Public Pol As String
Dim DataR As Date
Dim NomGr As Integer
<VBFixedString(30), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices. _
UnmanagedType.ByValTStr, SizeConst:=10)> Public Sp As String
Dim VidOpl As Boolean
End Structure
Module Module1
Public RecStud As RecordStud
Public nRecStud As Integer
End Module
-
В окне проекта выбрать форму FormStudent и открыть окно редактора кодов с модулем формы.
-
В процедуру FormStudent_Load() добавить строки:
FileOpen(1, "Student.dat", OpenMode.Random, _
OpenAccess.Default, OpenShare.Default, Len(RecStud))
nRecStud = LOF(1) / Len(RecStud) + 1
txtNomSt.Text = nRecStud
-
В модуль формы добавить процедуру SaveRecordStud. Так как эта процедура не связана с событиями имеющихся объектов, то её придётся добавлять вручную. Создайте каркас процедуры, добавив в класс формы следующий код:
Private Sub SaveRecordStud()
End Sub
Отредактируйте код процедуры следующим образом:
Private Sub SaveRecordStud()
RecStud.NomSt = nRecStud
RecStud.FIO = txtFIO.Text
RecStud.Adr = txtAdr.Text
If Opt1.Checked = True Then
RecStud.Pol = "м"
ElseIf Opt2.Checked = True Then
RecStud.Pol = "ж"
End If
Dim mes As String, way As String, god As String
mes = LTrim(Str(cmbMonth.SelectedIndex + 1))
way = LTrim(Str(UpDownDay.Value))
god = LTrim(Str(UpDownYear.Value))
RecStud.DataR = CDate(way + "." + mes + "." + god)
RecStud.NomGr = txtNomGr.Text
RecStud.Sp = lstSP.SelectedItem
If Check1.Checked = True Then
RecStud.VidOpl = True
Else
RecStud.VidOpl = False
End If
FilePut(1, RecStud, CInt(nRecStud))
nRecStud = nRecStud + 1
txtNomSt.Text = nRecStud
txtFIO.Text = ""
txtAdr.Text = ""
txtNomGr.Text = ""
UpDownDay.Value = 1
UpDownYear.Value = 1985
Opt1.Checked = True
Opt2.Checked = False
Check1.Checked = True
cmbMonth.Text = ""
End Sub
-
С событием Click командной кнопки CmdSave связать процедуру, вызывающую процедуру SaveRecordStud. Текст процедуры:
Private Sub cmdSave_Click(ByVal sender As System._
Object, ByVal e As System.EventArgs) Handles cmdSave.Click
SaveRecordStud()
End Sub
-
Выполнить закрытие файла Student.dat при закрытии формы FormStudent. С событием Closing объекта FormStudent Events связать процедуру:
Private Sub FormStudent_Closing(ByVal sender As Object, ByVal _
e As System.ComponentModel.CancelEventArgs) Handles _
MyBase.Closing
FileClose(1)
End Sub
-
Сохранить проект.
-
Создать новую форму (Name - FormMenu, Text - Университет) командой меню Project команда Add Windows Form и разместить в ней управляющие элементы в соответствии с рис 3.3. Кнопке Создание присвоить имя cmdCr, кнопке Просмотр – cmdLst.
-
Сделать форму главной, открывающейся первой после запуска приложения. Для этого в окне проекта выбрать строку проекта и из контекстного меню выбрать команду Properties. В диалоговом окне в категории Application выбрать из списка Startup Form значение FormMenu.
-
Связать с событием Click кнопки cmdCr процедуру открытия формы FormStudent:
Private Sub cmdCr_Click(ByVal sender As System.Object,_
ByVal e As System.EventArgs) Handles cmdCr.Click
Dim form1 As FormStudent = New FormStudent
form1.Show()
End Sub
-
Проверить работу приложения Университет по созданию файла Student.dat.
-
Создать новую форму (Name - FormStudLst, Text – Сведения о студентах) и разместить в ней следующие элементы управления, выбрав для них размеры и установив их положение в соответствии с рис. 3.3:
-
поле txtFIO1 для вывода фамилии;
-
поле txtAdr1 для вывода адреса студента;
-
поле txtDr1 для вывода даты рождения;
-
поле txtPol1 для вывода пола студента;
-
поле txtNomSt1 для вывода номера зачетной книжки;
-
поле txtNomGr1 для вывода номера группы;
-
поле txtSp1 для вывода названия специальности;
-
переключатель Check_1 для отображения вида обучения;
-
кнопку CmdUp для вывода сведений о студенте из следующей записи файла;
-
кнопку CmdDown для вывода сведений о студенте из предыдущей записи файла;
-
надписи к полям: lblFIO1, lblAdr1, lblDr1, lblPol1, lblNomSt1, lblNomGr1, lblSp1.
-
С событием Load объекта FormStudLst Events связать следующую процедуру:
Private Sub FormStudLst_Load(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
MyBase.Load
FileOpen(1, "Student.dat", OpenMode.Random, _
OpenAccess.Default, OpenShare.Default, Len(RecStud))
nRecStud = 1
ReadRecordStud()
End Sub
-
В модуль формы добавить процедуру ReadRecordStud:
Private Sub ReadRecordStud()
FileGet(1, RecStud, nRecStud)
txtFIO1.Text = RecStud.FIO
txtAdr1.Text = RecStud.Adr
txtNomSt1.Text = RecStud.NomSt
txtPol1.Text = RecStud.Pol
txtDr1.Text = RecStud.DataR
txtNomGr1.Text = RecStud.NomGr
txtSp1.Text = RecStud.Sp
If RecStud.VidOpl = True Then
Check_1.Checked = True
Else
Check_1.Checked = False
End If
End Sub
-
С событием Click кнопки cmdUp связать процедуру:
Private Sub CmdUp_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CmdUp.Click
If nRecStud < LOF(1) / Len(RecStud) Then
nRecStud = nRecStud + 1
ReadRecordStud()
Else
MsgBox("Конец файла")
End If
End Sub
-
С событием Click кнопки cmdDown связать процедуру:
Private Sub CmdDown_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles CmdDown.Click
If nRecStud > 1 Then
nRecStud = nRecStud - 1
ReadRecordStud()
Else
MsgBox("Начало файла")
End If
End Sub
-
С событием Closing объекта FormStudLst Events связать процедуру.
Private Sub FormStudLst_Closing(ByVal sender As Object,_
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles MyBase.Closing
FileClose(1)
End Sub
End Class
-
Активизировать форму FormMenu и связать с событием Click кнопки cmdLst процедуру открытия формы FormStudLst:
Private Sub cmdLst_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cmdLst.Click
Dim form2 As FormStudLst = New FormStudLst
form2.Show()
End Sub
-
Сохранить проект.
-
Проверить работу приложения Университет на контрольном примере.