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

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

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

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

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

Вложенные файлы: 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 +_

                                  vbYesNoCancel, "Сохранение файла")

            If Button = vbYes Then

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

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

              ' сохранена база данных

              PathOld = Decl.Path

              PathSpec = Mid(Decl.Path, 1, Len(Decl.Path) - 4) + _

                            ".spe"

              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, _

                                              FileMode.OpenOrCreate)

 

                ' изменение заголовка формы

                Me.Text = "Файл: " + Decl.Path

 

                ' все пункты меню становятся  активными

                frmMenu.mnuView.Enabled = True

                frmMenu.mnuQuery.Enabled = True

                frmMenu.mnuSort.Enabled = True

                frmMenu.mnuFileSaveItem.Enabled = True

                frmMenu.mnuFileSaveAsItem.Enabled = True

                frmMenu.mnuFileCloseItem.Enabled = True

                frmMenu.mnuFileDeleteItem.Enabled = True

                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.Enabled = False

                frmMenu.mnuFileSaveAsItem.Enabled = False

                frmMenu.mnuFileCloseItem.Enabled = False

                frmMenu.mnuFileDeleteItem.Enabled = False

                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.FormClosingEventArgs) Handles _

     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 = ""

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