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

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

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

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

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

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

Net.doc

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

          With OpenFileDialog1

            .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

            ' файл открывается

            f1 = New FileStream(Decl.Path, FileMode.Open)

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

            N = f1.Length \ R.len

            ' аналогично открываем файл справочник для

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

            F1_sp = New FileStream(PathSpec, FileMode.Open)

            NSpec = F1_sp.Length \ Sp.len

 

            Pos = 1

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

 

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

            mnuView.Enabled = True

            mnuSort.Enabled = True

            mnuSearch.Enabled = True

            mnuQuery.Enabled = True

            mnuFileSaveItem.Enabled = True

            mnuFileSaveAsItem.Enabled = True

            mnuFileCloseItem.Enabled = True

            mnuFileDeleteItem.Enabled = True

          End If

 

          ' инициализация индексного массива Ind, который будет

          ' использоваться для сортировки данных, и массива Del

          ' для пометки удаляемых записей

          For i = 1 To Nmax

            Ind(i) = i

            Del(i) = 0

          Next i

      End Sub

 

      При выборе пункта меню «Файл à Открыть» появится диалоговое окно, в котором пользователь может выбрать файл, который нужно открыть. Полное имя файла будет записано в переменную Path модуля Declar и в том случае, если путь существует, производится чтение из выбранного файла. Файл-справочник для специальности имеет то же самое имя, что и основной файл. Отличие состоит только в расширениях этих файлов. Кроме этого, все пункты пользовательского меню становятся доступными. Для того чтобы просмотреть содержимое файла базы данных, нужно в строке меню выбрать пункт меню «Просмотр» и в нем один из возможных вариантов просмотра.

11.2. Просмотр файла базы данных

     Файл  базы данных можно просмотреть, используя форму frmInputEdit. Для этого необходимо написать еще одну пользовательскую процедуру для данной формы (не забудьте для этого перейти в окно кода формы frmInputEdit). Это процедура с именем View_Form, которая должна загрузить данные и вывести первую запись в уже известном нам виде на форме frmInputEdit. Ниже приведен код этой процедуры.

 

      Public Sub view_form()

          Dim R As TStud = New TStud()

 

          ' загрузка формы frmInputEdit

          frmMenu.Enabled = False

          Me.Enabled = True

          Me.Show()

 

          ' загрузка Файла-справочника по специальности, выполнение

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

          Call LoadSprav()

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

          N = f1.Length \ R.len

 

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

          ' новой записи

          If N = 0 Then

            Call ShowNewZap()

            cmdAdd.Enabled = True

          Else

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

            Pos = 1

            vscrZap.Value = Pos

            Call ShowZap(Pos)

 

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

            cmdTop.Enabled = True

            cmdBottom.Enabled = True

            cmdForward.Enabled = True

            cmdBackUp.Enabled = True

 

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

            cmdEdit.Enabled = True

            cmdPack.Enabled = True

 

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

            cmdAdd.Enabled = False

 

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

            cmdExit.Focus()

          End If

      End Sub

 

     В данной процедуре открытый файл проверяется на пустоту и если он пуст (т.е. файл существует, но в нем нет ни одной записи данных), то вызывается процедура создания нового файла-базы данных (процедура ShowNewZap). Если файл не является пустым, то вызывается процедура ShowZap для вывода в форму первой записи, а так же делаются активными кнопки, позволяющие перемещаться по записям базы данных.

      Для просмотра файла базы данных с использованием формы frmInputEdit необходимо в форме frmMenu написать процедуру обработки события выбора команды меню «Просмотр à Форма», которая содержит вызов пользовательской процедуры View_Form, принадлежащей форме frmInputEdit:

 

     Private Sub mnuViewFormItem_Click(ByVal sender As _

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

     Handles mnuViewFormItem.Click

         ‘ вызов процедуры загрузки формы

         frmInputEdit.View_Form

     End Sub

 

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

      Для вывода данных в виде таблицы добавим в проект еще одну форму, дадим этой форме имя frmTableReadOnly и поместим на нее элемент для отображения данных в виде таблицы (DataGridView), переименуем этот элемент, задав его имя, GridView1.

     Процедура обработки события выбора пункта меню «Просмотр à Таблица» имеет вид:

 

     Private Sub mnuViewTableItem_Click(ByVal sender As _

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

     Handles mnuViewTableItem.Click

         Dim i As Integer

         Dim j As Integer

         Dim R As TStud = New TStud()

         Dim sp As TSpec = New TSpec()

 

         With frmTableReadOnly.GridView1

 

           ' установка количества строк таблицы и ширины столбцов

           .ColumnCount = 12

 

           ' запись названий столбцов в таблицу

           .Columns(0).Name = "Номер"

           .Columns(1).Name = "Курс"

           .Columns(2).Name = "Группа"

           .Columns(3).Name = "Специальность"

           .Columns(4).Name = "ФИО"

           .Columns(5).Name = "Пол"

           .Columns(6).Name = "Кол-во оценок"

 

           For j = 1 To 5

             .Columns(j + 6).Name = "Оц.№ " + CStr(j)

           Next j

 

           ' чтение очередной записи и загрузка ее полей

           ' в таблицу

          For i = 1 To N

 

             R.ReadFromFile(f1, Ind(i))

 

             ' чтение специальности по ее коду

             j = frmInputEdit.FindSpecIndex(R.Spec)

             sp.ReadFromFile(F1_sp, j)

 

             ' загрузка новой строки в таблицу

             Dim row As String() = New String() _

          {CStr(i), R.Kurs, R.Group, _

           Trim(sp.Number) + " - " + Trim(sp.Name), Trim(R.FIO), _

          R.Pol, R.Kol, R.M(0), R.M(1), R.M(2), R.M(3), R.M(4)}

 

             .Rows.Add(row)

 

           Next i

         End With

 

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

         frmTableReadOnly.Text = "Просмотр файла: " + Decl.Path

 

         ' загрузка формы frmTableReadOnly

         frmTableReadOnly.Show()

     End Sub

 

    На этом месте  рекомендуется протестировать создаваемый проект. Особое внимание следует уделить корректности чтения записей из файла и вывода их в таблицу и элементы формы.

11.3. Изменение и удаление записей в файле базы данных

      Эти действия предусмотрены в форме  для ввода и редактирования (форма frmInputEdit) и для их выполнения используются кнопки «Изменить» (cmdEdit) и «Обновить» (cmdPack).

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

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

      ByVal e As System.EventArgs) Handles cmdEdit.Click

          Dim R As TStud = New TStud()

 

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

          ' включая измененные

          R.FIO = txtFIO.Text

          R.Kurs = CByte(txtKurs.Text)

          R.Group = CByte(txtGroup.Text)

          R.Kol = CByte(txtKol.Text)

          R.Pol = ComPol.SelectedIndex

          R.Spec = FindSpecCode(ComSpec.SelectedIndex)

          R.DataR = txtDR.Value

 
 

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

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

        If R.Kol > 2 Then

            If txtM3.Text <> "" Then

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

            Else

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

              vbExclamation, "Ошибка")

             Exit Sub

            End If

          End If

         If R.Kol > 3 Then

            If txtM4.Text <> "" Then

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

            Else

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

              vbExclamation, "Ошибка")

             Exit Sub

            End If

          End If

          If R.Kol > 4 Then

            If txtM5.Text <> "" Then

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

            Else

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

              vbExclamation, "Ошибка")

             Exit Sub

            End If

          End If

 

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

          ' на котором находилась старая запись

          R.writeToFile(f1, Pos)

 

          MsgBox("Изменение выполнено успешно!")

      End Sub

 

      С файлом исходных данных связан массив Del, который по умолчанию заполнен нулями. Удаляемым записям соответствует значение, равное единице. Для того чтобы удалить некоторые записи, необходимо отметить их на форме frmInputEdit, используя флажок-переключатель Check1, затем нажать на кнопку «Обновить». Для элемента Check1 и кнопки «Обновить» процедуры обработки события Click – щелчка левой кнопки мыши на этих объектах имеют вид:

      Private Sub Check1_CheckedChanged(ByVal sender As _

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

      Handles Check1.CheckedChanged

          ' отмечается на удаление запись  с номером Pos

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