Проектирование информационной системы
Курсовая работа, 29 Декабря 2010, автор: пользователь скрыл имя
Краткое описание
Функциональный подход реализует принцип движения «от задач» и применяется, когда определен комплекс задач, для обслуживания которых создается информационная система. В этом случае можно выделить минимальный необходимый набор объектов предметной области, которые должны быть описаны.
В предметном подходе объекты предметной области определяются с таким расчетом, чтобы их можно было использовать при решении множества разнообразных, заранее не определенных задач.
Вложенные файлы: 1 файл
Net.doc
— 623.50 Кб (Скачать файл)Для ввода значений полей новой записи файла данных должна быть активизирована форма, подготовленная для ввода данных, т.е. в ней некоторые поля должны быть очищены, а некоторые должны быть заполнены значениями по умолчанию. Из кнопок, обеспечивающих перемещение, активной должна быть только кнопка «Добавить». Все эти действия предусмотрены в пользовательской процедуре ShowNewZap. Опишем код этой процедуры.
Public Sub ShowNewZap()
' загружаем Файл-справочник специальности, выполняя
' пользовательскую процедуру
Call LoadSprav()
' полоса прокрутки становится неактивной
vscrZap.Enabled = False
' кнопка «Добавить» становится активной
cmdAdd.Enabled = True
' кнопки «Вперед», «Конец», «Изменить» и «Обновить»
' становятся неактивными
cmdForward.Enabled = False
cmdBottom.Enabled = False
cmdPack.Enabled = False
cmdEdit.Enabled = False
' начальное заполнение элементов,
' соответствующих полям записей
txtFIO.Text = ""
txtKurs.Value = 1
txtGroup.Value = 1
txtKol.Value = 2
ComPol.Text = ComPol.Items(1)
ComSpec.SelectedIndex = 0
txtDR.Value = Now
' в начале предоставлена возможность ввода двух оценок
' пользователь может увеличить их количество до пяти
txtM1.Visible = True
txtM2.Visible = True
txtM3.Visible = False
txtM4.Visible = False
txtM5.Visible = False
' очистка значений элементов txtM,
' которые могли остаться после ввода предыдущей записи
txtM1.Text = ""
txtM2.Text = ""
txtM3.Text = ""
txtM4.Text = ""
txtM5.Text = ""
lblZap.Text = "Новая запись"
txtFIO.Focus()
Check1.Visible = False
End Sub
После ввода всех значений новой записи, для внесения ее в базу данных нужно нажать на кнопку «Добавить».
После окончания ввода данных необходимо закрыть форму frmInputEdit. При этом все введенные данные должны сохраниться, поэтому при закрытии формы необходимо запросить у пользователя имя файла, в который должно производиться сохранение. Но поскольку эту форму можно закрыть несколькими способами (например, нажав на кнопку «Выход» или кнопку в правом верхнем углу формы), поэтому необходимо обработать все события, обеспечивающие закрытие формы. А поскольку выходу из формы соответствует одна и та же последовательность действий, то оформим ее в виде пользовательской процедуры ExitFromInputEdit.
Sub ExitFromInputEdit()
Dim PathOld As String
Dim PathOldSpec As String
' если путь к основному файлу равен "c:\untitled.dan", т.е.
' форма открыта в режиме создания,
frmMenu.Text = frmMenu.Text + " В.А."
If LCase(Decl.Path) = PathUntitled Then
' то выводится запрос пользователю о сохранении базы
Button = MsgBox("Сохранить файл?", vbQuestion +_
If Button = vbYes Then
' если пользователь подтверждает сохранение, то
' следует запрос имени файла, в который будет
' сохранена база данных
PathOld = Decl.Path
PathSpec = Mid(Decl.Path, 1, Len(Decl.Path) - 4) + _
".
PathOldSpec = PathSpec
With frmMenu.SaveFileDialog1
.FileName = ""
.Filter = "Все файлы (*.*)|*.*|" + _
"текстовые файлы(*.txt)|*.txt|" + _
"файлы исх. данных(*.dan) |*.dan|" + _
"файлы результата (*.rez)|*.rez"
.FilterIndex = 3
.ShowDialog()
Decl.Path = .FileName
If Decl.Path <> "" Then
PathSpec = Mid(Decl.Path, 1, Len(Decl.Path) - 4) _
+ ".spe"
End If
End With
' если путь не пуст, т.е. пользователь указал
' имя нового файла,
If Decl.Path <> "" Then
' то файлы закрывается и переименовываются
CloseAllFiles()
If Not (Dir(Decl.Path) = "") Then
Kill(Decl.Path)
Kill(PathSpec)
End If
Rename(PathOld, Decl.Path)
Rename(PathOldSpec, Decl.PathSpec)
' затем открываются файлы с
' новыми именами
f1 = New FileStream(Decl.Path, FileMode.OpenOrCreate)
F1_sp = New FileStream(Decl.PathSpec, _
' изменение заголовка формы
Me.Text = "Файл: " + Decl.Path
' все пункты меню становятся активными
frmMenu.mnuView.Enabled = True
frmMenu.mnuQuery.Enabled = True
frmMenu.mnuSort.Enabled = True
frmMenu.mnuFileSaveItem.
frmMenu.mnuFileSaveAsItem.
frmMenu.mnuFileCloseItem.
frmMenu.mnuFileDeleteItem.
frmMenu.mnuSearch.Enabled = True
' форма закрывается
Me.Hide()
' форма frmMenu становится активной
frmMenu.Show()
frmMenu.Enabled = True
frmMenu.Focus()
Else
' иначе считается, что нажата кнопка
' «Отмена»
Decl.Path = PathOld
PathSpec = PathOldSpec
Button = vbCancel
End If
Else
' если пользователь на вопрос о сохранении
' файла нажал кнопку «Нет»
If Button = vbNo Then
Pos = 0
N = 0
' файлы закрываются и удаляются
CloseAllFiles()
Kill(Decl.Path)
Kill(PathSpec)
' пункты меню, которые были неактивными в
' начале работы программы,
' становятся неактивными
frmMenu.mnuFileSaveItem.
frmMenu.mnuFileSaveAsItem.
frmMenu.mnuFileCloseItem.
frmMenu.mnuFileDeleteItem.
frmMenu.mnuView.Enabled = False
frmMenu.mnuSort.Enabled = False
frmMenu.mnuQuery.Enabled = False
frmMenu.mnuSearch.Enabled = False
' форма закрывается
Me.Hide()
' форма frmMenu становится активной
frmMenu.Show()
frmMenu.Enabled = True
frmMenu.Focus()
End If
End If
Else
' в случае если форма была открыта в режиме просмотра,
' она закрывается
Me.Hide()
' форма frmMenu становится активной
frmMenu.Show()
frmMenu.Enabled = True
frmMenu.Focus()
End If
End Sub
Теперь, опишем процедуры обработки событий нажатия на кнопку «Выход» или кнопку в правом верхнем углу формы.
Обработка события закрытия формы по нажатию кнопки «Выход»:
Private Sub cmdExit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles cmdExit.Click
‘ вызов процедуры закрытия формы
ExitFromInputEdit()
End Sub
Обработка события закрытия формы по нажатию кнопки :
Private Sub frmInputEdit_FormClosing(ByVal sender As _
System.Object,
ByVal e As System.Windows.Forms.
MyBase.FormClosing
Call ExitFromInputEdit()
‘ в том случае, если нажата кнопка «Отмена», то с формы
' выход не происходит
If Button = vbCancel Then e.Cancel = True
End Sub
Хотя подготовлено еще не все программное обеспечение формы, можно запустить проект, но пока не сохранять данные, так как наверняка будут сделаны ошибки, которые необходимо исправить.
Для работы с данными, а именно для вывода в форму полей очередной просматриваемой записи, предусмотрена процедура ShowZap. Она выполняет загрузку элементов формы значениями полей текущей записи (записи с номером i). Ниже приводится код этой процедуры, параметром ее является номер записи в файле.
Public Sub ShowZap(ByVal i As Integer)
Dim R As TStud = New TStud()
' номер записи не должен быть нулем!
If i <> 0 Then
' максимальное значение полосы прокрутки равно
' количеству записей
vscrZap.Maximum = N + 1
vscrZap.Enabled = True
Check1.Checked = False
txtM1.Text = ""
txtM1.Visible = False
txtM2.Text = ""
txtM2.Visible = False
txtM3.Text = ""