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

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

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

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

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

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

Net.doc

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

          R.Pol = CByte(ComPol.SelectedIndex)

          R.Spec = FindSpecCode(ComSpec.SelectedIndex)

          R.DataR = txtDR.Value

 

          ' проверка корректности введенных данных в поле

          ' специальности

          If R.Spec = 0 Then

            MsgBox("Неверное значение поля специальность!")

            Exit Sub

          End If

 

          ' проверка непустоты полей оценок

          If (txtM1.Text = "") Or (txtM2.Text = "") Or _

          (R.Kol > 2) And (txtM3.Text = "") Or _

          (R.Kol > 3) And (txtM4.Text = "") Or _

          (R.Kol > 4) And (txtM5.Text = "") Then

              MsgBox("Введены не все оценки!")

              Exit Sub

          End If

 

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

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

          If R.Kol > 2 Then R.M(2) = CByte(txtM3.Text)

          If R.Kol > 3 Then R.M(3) = CByte(txtM4.Text)

          If R.Kol > 4 Then R.M(4) = CByte(txtM5.Text)

          ' позиция передвигается,

          Pos = N + 1

          ' количество записей увеличивается

          N = N + 1

          ' запись вносится в файл

          R.writeToFile(f1, Pos)

 

          ' кнопки «Начало» и «Назад» становятся активными

          cmdTop.Enabled = True

          cmdBackUp.Enabled = True

          cmdExit.Focus()

 

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

          Call ShowNewZap()

      End Sub

 

    А теперь попытайтесь заполнить файл данными (1–2 записи) и закрыть форму frmInputEdit с сохранением файлов.

      Заметим, что количество видимых на форме элементов txtM«i», предназначенных для ввода оценок прямо зависит от содержимого элемента txtKol. Таким образом, скрытие лишних видимых элементов и показ нужных невидимых элементов txtM«i» должны зависеть от изменения содержимого txtKol, т.е. далее необходимо обработать событие изменения содержимого элемента txtKol. Приведем код процедуры обработки этого события.

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

        ByVal e As System.EventArgs) Handles txtKol.ValueChanged

          Dim i As Integer = txtKol.Value

 

          ' все элементы, соответствующие оценкам скрываются

          txtM1.Visible = False

          txtM2.Visible = False

          txtM3.Visible = False

          txtM4.Visible = False

          txtM5.Visible = False

          ' открываются первые несколько элементов

          ' их количество зависит от значения элемента txtKol

          If i > 0 Then txtM1.Visible = True

          If i > 1 Then txtM2.Visible = True

          If i > 2 Then txtM3.Visible = True

          If i > 3 Then txtM4.Visible = True

          If i > 4 Then txtM5.Visible = True

 

      End Sub

 

     Таким образом, при изменении содержимого  элемента txtKol все элементы txtM, соответствующие оценкам скрываются, затем открывается столько элементов, сколько указано в содержимом элемента txtKol.

     Кроме этого необходимо предусмотреть  проверку корректности вводимых данных в поля, соответствующие оценкам. Это можно сделать с помощью  следующей обработки события изменения содержимого элементов txtM.

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

      ByVal e As System.EventArgs) Handles txtM5.TextChanged, _

      txtM4.TextChanged, txtM3.TextChanged, txtM2.TextChanged, _

      txtM1.TextChanged

          Dim txtM As TextBox = sender

          ' если содержимое элемента txtM(Index) является числом

          If IsNumeric(txtM.Text) = True Then

            ' и не находится в пределах от 2 до 5,

            If CByte(txtM.Text) < 2 Or CByte(txtM.Text) > 5 Then

              ' пользователь получает предупреждение об ошибке

              MsgBox("Неверная оценка", vbExclamation + vbOKOnly, _

                 "Ошибка")

            End If

          ElseIf txtM.Text <> "" Then

            ' если содержимое не является цифрой,

            ' пользователь получает предупреждение об ошибке

            MsgBox("Оценка должна являться цифрой!", vbOKOnly + _

              vbExclamation, "Ошибка")

          End If

      End Sub

 

    В этом месте  нужно выполнить полное тестирование формы frmInputEdit, для этого необходимо заполнить файл данными (4–5 записей) и сохранить его.

 

     Кроме ввода новых данных форма frmInputEdit должна позволять просматривать и редактировать существующие данные, для этого необходимо описать перемещение по записям нашей базы данных. Для перемещения по записям будем использовать кнопки «Начало» (cmdTop), «Конец» (cmdBottom), «Назад» (cmdBackUp) и «Вперед» (cmdForward). Опишем обработку событий нажатия для каждой кнопки:

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

        ByVal e As System.EventArgs) Handles cmdTop.Click

          ' вывод первой записи данных

          Pos = 1

          Call ShowZap(Pos)

 

          ' кнопки перемещения по записям становятся активными

          frmMenu.Text = frmMenu.Text + " Авт"

          cmdTop.Enabled = True

          cmdBottom.Enabled = True

          cmdForward.Enabled = True

          cmdBackUp.Enabled = True

 

          ' кнопки «Изменить» и «Обновить» становятся активными

          cmdEdit.Enabled = True

          cmdPack.Enabled = True

 

          ' кнопка «Добавить» становится неактивной

          frmMenu.Text = frmMenu.Text + "ор: "

          cmdAdd.Enabled = False

 

          ' фокус передается на кнопку «Выход»

          cmdExit.Focus()

      End Sub

 

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

      ByVal e As System.EventArgs) Handles cmdBottom.Click

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

          Pos = N

          Call ShowZap(Pos)

 

          ' кнопки перемещения по записям становятся активными

          frmMenu.Text = frmMenu.Text + "дов "

          cmdTop.Enabled = True

          cmdBottom.Enabled = True

          cmdForward.Enabled = True

          cmdBackUp.Enabled = True

 

          ' кнопки «Изменить» и «Обновить» становятся активными

          cmdEdit.Enabled = True

          cmdPack.Enabled = True

 

          ' кнопка «Добавить» становится неактивной

          cmdAdd.Enabled = False

 

          ' фокус передается на кнопку «Выход»

          cmdExit.Focus()

      End Sub

 

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

      ByVal e As System.EventArgs) Handles cmdBackUp.Click

          ' переход на предыдущую позицию

          Pos = Pos - 1

 

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

          frmMenu.Text = frmMenu.Text + "рохо"

          cmdTop.Enabled = True

          cmdBottom.Enabled = True

          cmdForward.Enabled = True

          cmdEdit.Enabled = True

          cmdPack.Enabled = True

 

          ' если запись первая, то кнопка «Назад»

          ' становится неактивной

          If Pos <= 1 Then

            cmdBackUp.Enabled = False

            Pos = 1

          End If

 

          ' вывод записи с номером Pos

          Call ShowZap(Pos)

      End Sub

 

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

      ByVal e As System.EventArgs) Handles cmdForward.Click

          ' переход на следующую позицию

          frmMenu.Text = frmMenu.Text + "Ско"

          Pos = Pos + 1

 

          ' если была не последняя запись,

          If Pos <= N Then

            ' то переход на следующую запись

            vscrZap.Value = Pos

            Call ShowZap(Pos)

            cmdBackUp.Enabled = True

            cmdExit.Focus()

          Else

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

            Call ShowNewZap()

          End If

      End Sub

      Для перемещения по записям базы данных можно использовать полосу прокрутки (элемент управления VscrZap). При помощи полосы прокрутки можно перемещаться на одну или несколько записей в базе. Процедура обработки события изменения значения имеет вид:

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

    ByVal e As System.Windows.Forms.ScrollEventArgs) _

    Handles vscrZap.Scroll

 

         ‘ максимальное значение полосы прокрутки  равно

         ‘ количеству записей

         VScrZap.Maximum = N

 

         ‘ перемещение на запись по значению полосы прокрутки

         Pos = VScrZap.Value

         Call ShowZap(Pos)

     End Sub

 

     Заметим, что во всех этих процедурах обработки событий нажатия на кнопки вызывается процедура ShowZap. Эта процедура позволяет загрузить в элементы формы все поля указанной записи, т.е. именно она обеспечивает просмотр определенной записи в данных.

 

    Новый этап тестирования проекта для проверки возможности перемещения по записям базы данных с использованием описанных возможностей.

 

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

     Для очередного этапа тестирования проекта  необходимо подготовить тестовый файл, в котором должно быть 15–20 записей с разными значениями курсов (2–3 курса), для каждого значения курса должно быть несколько групп (2–3 группы), в каждой группе должно быть несколько студентов (3–4 студента).

    Создайте файл, удовлетворяющий описанным выше требованиям, и сохраните его в папке проекта. Этот файл будет использоваться для тестирования заявленных функций приложения.

11. Работа с существующим файлом

11.1. Открытие файла

      Для открытия файла необходимо выполнить  команду «Файл à Открыть». Ей соответствует процедура обработки события, приведенная ниже.

 

      Private Sub mnuFileOpenItem_Click(ByVal sender As _

      System.Object, ByVal e As System.EventArgs) _

      Handles mnuFileOpenItem.Click

          Dim R As TStud = New TStud()

          Dim Sp As TSpec = New TSpec()

          Dim i As Integer

 

          Decl.Path = PathUntitled

          ' запрос имени файла базы данных

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