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

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

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

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

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

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

Net.doc

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

            Ind(i) = i

          Next i

 

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

          Call Sort(KeyG, N, Ind)

          Call Sort(KeyK, N, Ind)

 

          ' вывод заголовка таблицы отчета

          PrintLine(F4, "Курс" + vbTab + "Группа" + vbTab + _

               "Кол-во студ." + vbTab + "Сред-ний балл")

 

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

          i = 1

          S.ReadFromFile(F3, Ind(i))

 

          Do While i <= N

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

            NK = S.Kurs

            Do While NK = S.Kurs And i <= N

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

              NG = S.Group

 

              ' начальные количество и сумма равны нулю

              k = 0

              Sum = 0

 

              ' вычисление количества студентов и суммы их

              ' средних баллов

              Do While NK = S.Kurs And NG = S.Group

                k = k + 1

                Sum = Sum + S.Sb

                i = i + 1

 

                If i <= N Then

                  S.ReadFromFile(F3, Ind(i))

                Else

                  Exit Do

                End If

              Loop

 

              ' вывод в файл номера курса, номера группы,

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

              PrintLine(F4, CStr(NK) + vbTab + CStr(NG) + vbTab _

                   + vbTab + vbTab + CStr(k) + vbTab + vbTab _

                   + vbTab + CStr(Format(Sum / k, "#0.00")))

            Loop

          Loop

 

          ' вспомогательные файлы закрываются

          F3.Close()

          FileClose(F4)

 
 

          ' загрузка только что созданного файла в RichTextBox1

          RichTextBox1.LoadFile(Path2, _

                                          RichTextBoxStreamType.PlainText)

          richName = Path2

 

          ' показ элемента RichTextBox1 и кнопки «Сохранить отчет»

          RichTextBox1.Visible = True

          cmdSaveOtch.Visible = True

 

      End Sub

13.3. Вычисление среднего  балла для каждого  студента

      Вычисление  среднего балла для каждого студента реализовано в процедуре обработки события выбора команды меню «Отчеты à Вычисление среднего балла».

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

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

      Также поместим на форму кнопку с системным  именем cmdSaveOtch для сохранения отчета в виде текстового файла.

      Процедура обработки события нажатия на кнопку «Сохранить отчет» имеет вид:

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

      ByVal e As System.EventArgs) Handles cmdSaveOtch.Click

          Dim i As Integer

          Dim j As Integer

 

          ' запрос имени файла для сохранения отчета

          With frmMenu.SaveFileDialog1

            .FileName = ""

            .Filter = "Все файлы (*.*)|*.*|" + _

                 "Текстовые файлы. (*.txt)|*.txt|" + _

                 "Файлы исходных данных (*.dan)|*.dan|" + _

                 "Файлы результатов (*.rez)|*.rez"

            .FilterIndex = 2

            .ShowDialog()

          End With

 

          ' если имя файла не пусто,

          If frmMenu.SaveFileDialog1.FileName <> "" Then

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

            F4 = FreeFile()

            FileOpen(f4, frmMenu.SaveFileDialog1.FileName, _

                            OpenMode.Output)

 

            ' и в него выводятся все  ячейки таблицы

            With GridView1

 

              For i = 0 To .ColumnCount - 1

 

                Print(F4, .Columns(i).Name + vbTab)

              Next i

              PrintLine(F4, "")

 

              For j = 0 To .RowCount - 1

                For i = 0 To .ColumnCount - 1

                  Print(F4, CStr(.Rows(j).Cells(i).Value) + vbTab)

                Next i

                PrintLine(F4, "")

              Next j

            End With

 

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

            FileClose(F4)

 

            ' сообщение об успешном завершении  сохранения отчета

            MsgBox("Отчет сохранен", vbOKOnly + vbInformation, _

            "Сохранение")

          End If

     End Sub

 

      А теперь приведем код процедуры обработки  события, соответствующего выбору пункта меню «Отчеты à Вычисление среднего балла». В этой процедуре предусмотрены две возможности вывода результатов: в виде, упорядоченном по курсу, группе и фамилиям студентов; или в виде, упорядоченном по курсу, группе и убыванию среднего балла. Код процедуры снабжен подробными комментариями.

      Private Sub mnuQueryBallItem_Click(ByVal sender As _

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

      Handles mnuQueryKolItem.Click

          Dim i As Integer

          Dim Ind(Nmax) As Integer

          Dim KeyK(Nmax) As Single

          Dim KeyG(Nmax) As Single

          Dim KeyFIO(Nmax) As String

          Dim KeyB(Nmax) As Single

          Dim S As TBall = New TBall()

          Dim Button As Integer

 

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

          ' содержащего информацию о среднем  балле каждого студента

          AverageBallCreate()

 

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

          F3 = New FileStream(Path1, FileMode.Open)

 

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

          For i = 1 To N

            S.ReadFromFile(F3, i)

            KeyK(i) = S.Kurs

            KeyG(i) = S.Group

            KeyFIO(i) = S.FIO

            KeyB(i) = -S.Sb ' для сортировки по убыванию

            Ind(i) = i

          Next i

 

          ' запрос о порядке вывода отчета

          Button = MsgBox("Вывод по убыванию среднего балла?", _

               vbQuestion + vbYesNo, "Вывод результата")

 

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

          ' ФИО, либо по среднему баллу,  в зависимости ответа 

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

          If Button = vbYes Then

            Call Sort(KeyB, N, Ind)

            Call Sort(KeyG, N, Ind)

            Call Sort(KeyK, N, Ind)

          Else

            Call SortStr(KeyFIO, N, Ind)

            Call Sort(KeyG, N, Ind)

            Call Sort(KeyK, N, Ind)

          End If

 

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

          frmTableRez.Text = "Просмотр файла: " + Path1

 

          With frmTableRez.GridView1

 

            .ColumnCount = 5

 

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

            .Columns(0).Name = "№"

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

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

            .Columns(3).Name = "Фамилия И.О."

            .Columns(4).Name = "Средний балл"

 

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

            ' в таблицу

            For i = 1 To N

              S.ReadFromFile(F3, Ind(i))

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

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

            {CStr(i), S.Kurs, S.Group, S.FIO, _

               CStr(Format(S.Sb, "#0.00"))}

 

              .Rows.Add(row)

            Next i

          End With

 

          ' вспомогательный файл закрывается

          F3.Close()

 

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

          frmTableRez.Show()

      End Sub

 

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

 

 

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