Проектирование информационной системы

Автор работы: Пользователь скрыл имя, 29 Декабря 2010 в 04:20, курсовая работа

Краткое описание

Функциональный подход реализует принцип движения «от задач» и применяется, когда определен комплекс задач, для обслуживания которых создается информационная система. В этом случае можно выделить минимальный необходимый набор объектов предметной области, которые должны быть описаны.

В предметном подходе объекты предметной области определяются с таким расчетом, чтобы их можно было использовать при решении множества разнообразных, заранее не определенных задач.

Вложенные файлы: 1 файл

Net.doc

— 623.50 Кб (Скачать файл)

            txtM3.Visible = False

            txtM4.Text = ""

            txtM4.Visible = False

            txtM5.Text = ""

            txtM5.Visible = False

 

            ' производится чтение записи  и заполнение элементов

            ' формы, соответствующих полям записи

            R.ReadFromFile(f1, Ind(i))

            txtFIO.Text = R.FIO

            ComPol.SelectedIndex = R.Pol

            txtKurs.Text = CStr(R.Kurs)

            txtGroup.Text = CStr(R.Group)

            txtKol.Text = CStr(R.Kol)

            ComSpec.SelectedIndex = FindSpecIndex(R.Spec)

            txtDR.Value = R.DataR

 

            If R.Kol > 0 Then

              txtM1.Visible = True

              txtM1.Text = CStr(R.M(0))

            End If

            If R.Kol > 1 Then

              txtM2.Visible = True

              txtM2.Text = CStr(R.M(1))

            End If

            If R.Kol > 2 Then

              txtM3.Visible = True

              txtM3.Text = CStr(R.M(2))

            End If

            If R.Kol > 3 Then

              txtM4.Visible = True

              txtM4.Text = CStr(R.M(3))

            End If

            If R.Kol > 4 Then

              txtM5.Visible = True

              txtM5.Text = CStr(R.M(4))

            End If

 

            ' вывод номера записи и отметки  об ее удалении

            lblZap.Text = CStr(i) + "из" + CStr(N)

            Check1.Visible = True

            Check1.Checked = Del(Ind(i))

 

            ' значение полосы прокрутки полагается равным

            ' номеру записи

            vscrZap.Value = i

          End If

      End Sub

 

10.2.2. Процедуры обработки событий

      Для работы пользователя с файлом справочником на форму были помещены кнопки cmdAddSpec, cmdEditSpec и cmdDelSpec, соответственно, для добавления, изменения и удаления записей в файле справочнике. Опишем процедуры обработки событий нажатия на эти кнопки.

      Процедура обработки события для добавления записи в файл-справочник.

      Private Sub cmdAddSpec_Click(ByVal sender As System.Object,_

       ByVal e As System.EventArgs) Handles cmdAddSpec.Click

          Dim TempStr As String

          Dim Sp As TSpec = New TSpec()

          Dim tempIndex As Integer

 

          ' текущая форма становится неактивной

          Me.Enabled = False

 

          ' до тех пор пока пользователь не введет число, происходит

          ' запрос учетного номера новой специальности

          TempStr = InputBox("Введите учетный номер специальности", _

                                  "Ввод данных")

          Do While Not (IsNumeric(TempStr))

            If (TempStr = "") Then

              Me.Enabled = True

              Exit Sub

            End If

            MsgBox("Ошибка ввода", vbOKOnly + vbExclamation, _

               "Ошибка")

            TempStr = InputBox("Введите учетный номер" + _

                 " специальности", "Ввод данных")

          Loop

          ' учетный номер записывается в структуру Sp

          Sp.Code = CByte(TempStr)

          ' запрос кода специальности

          TempStr = InputBox("Введите код сциальности (6 цифр)", _

               "Ввод данных")

          ' код записывается в структуру Sp

          Sp.Number = TempStr

          ' запрос названия новой специальности

          TempStr = InputBox("Введите название специальности", _

               "Ввод данных")

          ' название записывается в структуру Sp

          Sp.Name = TempStr

 

          ' проверяется попытка повторного использования учетного

          ' номера специальности в файле справочнике

          tempIndex = FindSpecIndex(Sp.Code)

 

          ' если такой номер уже есть,

          If 0 <> tempIndex Then

            ' то выводится сообщение о возможности изменения данных

            If (vbYes = MsgBox("Такой учетный номер уже есть! " _

                      + " Перезаписать?", vbYesNo + vbExclamation, _

                      "Предупреждение")) Then

              ' изменение данных записи

              Sp.writeToFile(F1_sp, tempIndex)

            End If

          Else

            ' добавление новой записи в справочник

            Sp.writeToFile(F1_sp, NSpec + 1)

          End If

          ' вызов пользовательской процедуры загрузки записей

          ' справочника в элемент ComSpec

          Call LoadSprav()

          ' текущая форма становится активной

          Me.Enabled = True

      End Sub

 

      Процедура обработки события изменения  записи в файле-справочнике.

      Private Sub cmdEditSpec_Click(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles cmdEditSpec.Click

          Dim Sp As TSpec = New TSpec()

          Dim i As Integer

 

          ' текущая форма становится неактивной

          Me.Enabled = False

 

          ' чтение текущей записи из файла-справочника

         i = ComSpec.SelectedIndex

          Sp.ReadFromFile(F1_sp, i)

 

          ' запрос на изменение кода специальности

          If (vbNo = MsgBox("Код специальности оставить без" + _

           " изменения?", vbYesNo + vbExclamation, "Вопрос:")) Then

            Sp.Number = InputBox("Введите новый код " + _

                   "специальности (6 цифр)", "Ввод данных")

          End If

 

          ' запрос на изменение кода специальности

          If (vbNo = MsgBox("Название специальности оставить " + _

                "без изменения?", vbYesNo + vbExclamation, _

                "Вопрос:")) Then

            Sp.Name = InputBox("Введите новое название " + _

                 "специальности", "Ввод данных")

          End If

 

          ' запись обновленных данных

          Sp.writeToFile(F1_sp, i)

 

          ' вызов пользовательской процедуры загрузки записей

          ' справочника в элемент ComSpec

          Call LoadSprav()

 

          ' текущая форма становится активной

          Me.Enabled = True

      End Sub

 

      Процедура обработки события удаления записи из файла-справочника.

 

      Private Sub cmdDelSpec_Click(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles cmdDelSpec.Click

          Dim i As Integer

          Dim j As Integer

          Dim ListIndex As Integer

 

          Dim Sp As TSpec = New TSpec()

          Dim R As TStud = New TStud()

          Dim TempFile As FileStream

 

          ' текущая форма становится неактивной

          Me.Enabled = False

 

          ' сообщение о возможности удаления записей

          ' из основного файла

          If (vbNo = MsgBox("Внимание!!! Все данные, " + _

           "содержащие удаляемую информацию будут уничтожены!" + _

           " Продолжить?", vbYesNo + vbExclamation, _

           "Предупреждение:")) Then

            ' если была нажата кнопка «Нет», то выход из процедуры

            ' и текущая форма становится неактивной

            Me.Enabled = True

            Exit Sub

          End If

 

          ' отметка на удаление всех записей основного файла базы,

          ' в которых содержится информация об удаляемой спец-ности

          ListIndex = ComSpec.SelectedIndex

          If ListIndex <> 0 Then

            Sp.ReadFromFile(F1_sp, ListIndex)

 

            For i = 1 To N

              R.ReadFromFile(f1, i)

              If R.Spec = Sp.Code Then

                Del(i) = 1

              End If

            Next i

 

          End If

 

          ' запись во временный файл всех данных, за исключением

          ' данных об удаляемой специальности

          TempFile = New FileStream (PathTemp, FileMode.Create)

          j = 1

          For i = 1 To NSpec

            Sp.ReadFromFile(F1_sp, i)

            If i <> ListIndex Then

              Sp.writeToFile(TempFile, j)

              j = j + 1

            End If

          Next i

 

          F1_sp.Close()

          TempFile.Close()

 

          ' перезапись измененного файла-справочника

          Kill(PathSpec)

          Rename(PathTemp, PathSpec)

 

          ' загрузка обновленного файла-справочника

          F1_sp = New FileStream(PathSpec, FileMode.Open)

 

          ' вызов пользовательской процедуры загрузки записей

          ' справочника в элемент ComSpec

          Call LoadSprav()

 

          ' текущая форма становится активной

          Me.Enabled = True

 

          ' вызов процедуры удаления отмеченных записей

          ' основного файла данных

          cmdPack_Click(sender, e)

      End Sub

 

    В этом месте  снова запустите проект для проверки взаимодействия основного файла  базы данных с файлом-справочником, но сохранять записи также пока невозможно, так как не реализована кнопка «Добавить». Не забывайте регулярно сохранять проект.

 

      Процедура обработки события нажатия на кнопку «Добавить» обеспечивает добавление записи в файл базы данных и подготовку к вводу полей новой записи.

      Private Sub cmdAdd_Click(ByVal sender As System.Object, _

      ByVal e As System.EventArgs) Handles cmdAdd.Click

          Dim R As TStud = New TStud()

          Dim Sp As TSpec = New TSpec()

 

          ' заполнение полей записи

          R.FIO = txtFIO.Text

          R.Kurs = CByte(txtKurs.Text)

          R.Group = CByte(txtGroup.Text)

          R.Kol = CByte(txtKol.Text)

Информация о работе Проектирование информационной системы