12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону

^ 12. Сортировка данных
Сортировка данных в данной информационной системе делается с помощью индексного массива Ind, описанного в модуле Declar. В данном случае результатом сортировки будет не отсортированный файл, а вспомогательный массив номеров (индексов 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону) Ind, показывающий в каком порядке следует выбирать записи файла, чтоб они создавали отсортированную последовательность.

Методы сортировки опишем в стандартном модуле, который нужно добавить в проект под именованием Sorting. Для сортировки данных будем использовать метод сортировки 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону обменом (способ «пузырьковой» сортировки).

Приведем код процедуры сортировки по числовым полям.

Public Sub Sort(Key() As Single, N As Integer, Ind() As Integer)

Dim i As Integer

Dim j As 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону Integer

Dim k As Integer


For j = 1 To N - 1

For i = 1 To N - j

If Key(Ind(i)) > Key(Ind(i + 1)) Then

k = Ind(i)

Ind(i) = Ind(i + 1)

Ind(i + 1) = k

End If

Next i

Next j

End Sub


Перед воззванием к этой 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону процедуре нужно инициализировать массив Ind и занести элементы главного поля сортируемого файла во вспомогательный массив Key. Благодаря описанию массива Key как вещественного в него можно записывать числовые данные хоть 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону какого типа: как Single, так и Integer и Byte.

Не считая того, эта процедура применима и для сортировки по убыванию ключа; для этого довольно при инициализации массива Key помножить значения главных полей на 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону минус единицу.

Для процедур сортировки по строковым полям и полям типа даты приведем только заглавия, потому что код тела этих процедур стопроцентно совпадает с кодом тела процедуры сортировки по числовым полям 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону.

Заголовок процедуры сортировки по строковым полям имеет вид:

Public Sub SortStr(Key() As String , N As Integer, _

Ind() As Integer)


Заголовок процедуры сортировки по полям типа даты имеет вид:

Public Sub SortDate(Key() As Date 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, N As Integer, _

Ind() As Integer)


Опишем сейчас работу с обозначенными процедурами сортировки. Т.е. опишем процедуры обработки событий выбора пт меню «Сортировка  По курсу», «Сортировка  По группе», «Сортировка  По 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону ФИО» и «Сортировка  Исходный порядок». При всем этом нужно предугадать корректное выполнение вложенных сортировок.


Выбор пт меню «Сортировка  По курсу»


Private Sub mnuSortKursItem_Click(ByVal sender As _

System.Object, ByVal e As System.EventArgs 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону) _

Handles mnuSortKursItem.Click

Dim i As Integer

Dim KeyK(Nmax) As Single

Dim R As TStud = New TStud()


' подготовка к сортировке

For i = 1 To N

R.ReadFromFile(f1, i)

KeyK(i) = R.Kurs

Next i


' вызов процедуры сортировки

Sort(KeyK 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, N, Ind)

End Sub


Выбор пт меню «Сортировка  По группе»


Private Sub mnuSortGroupItem_Click(ByVal sender As _

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

Handles mnuSortGroupItem.Click

Dim i As Integer

Dim KeyK(Nmax 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону) As Single

Dim R As TStud = New TStud()


' подготовка к сортировке

For i = 1 To N

R.ReadFromFile(f1, i)

KeyK(i) = R.Group

Next i


' вызов процедуры сортировки

Sort(KeyK, N, Ind)

End Sub


Выбор пт меню «Сортировка  По ФИО 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону»


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

ByVal e As System.EventArgs) Handles mnuSortFIOItem.Click

Dim i As Integer

Dim KeyK(Nmax) As String

Dim R As TStud = New TStud()


' подготовка к сортировке

For 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону i = 1 To N

R.ReadFromFile(f1, i)

KeyK(i) = Trim(R.FIO)

Next i


' вызов процедуры сортировки

SortStr(KeyK, N, Ind)

End Sub


Выбор пт меню «Сортировка  Начальный порядок»


Private Sub mnuSortUnsorted_Click(ByVal sender 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону As _

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

Handles mnuSortUnsorted.Click

Dim i As Integer


' возвращение начальных значений массивам Ind и Del

For i = 1 To Nmax

Ind(i) = i

Del(i) = 0

Next i

End Sub


Сейчас, при выборе хоть какого 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону из этих пт меню, записи в начальном файле будут выводиться в порядке, определяемом значениями индексного массива Ind, как во время просмотра в виде формы, так и во время просмотра в виде 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону таблицы.

В команды меню «Сортировка» вынесены сортировки по одному полю (ключу) данных. А если нужно выполнить сортировку по набору ключей, т.е. представить данные о студентах так, что поначалу идут записи 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону по возрастанию номера курса, записи в границах 1-го курса – по возрастанию номера группы, а записи в границах одной группы – по фамилиям в алфавитном порядке. Тут мы встречаемся с сортировкой по набору 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону ключей.

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

Допустим, необходимо выполнить сортировку по набору ключей: «Курс», «Группа», «Фамилия И.О.». Представим, что начальный файл отсортирован по последнему ключу (в нашем 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону случае по полю «Фамилия И.О.). Сортируя приобретенный файл по предыдущему ключу (по полю «Группа»), мы можем быть убеждены, что в границах 1-го значения данного ключа записи сохраняют упорядоченность по последнему 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону ключу (это следует из характеристики стойкости метода). Т.е. данные будут отсортированы по полю «Группа», а снутри каждой группы – по полю «Фамилия И.О.». Повторяя процесс сортировки по всем ключам от последнего к 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону первому (т.е. в порядке, оборотном требуемому), мы получим файл, отсортированный по набору ключей. Снова же напомним, что файл по сути не сортируется, а сортируется индексный массив. Подчеркнем, что в описанном процессе 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону индексный массив, являющийся результатом сортировки по некому ключу, является начальным для сортировки по следующему ключу.

Таким макаром, процедуры модуля Sorting позволяют производить сортировку записей файла по нескольким подчиненным ключам.

Если нужно выполнить 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону вложенную сортировку по другой совокупы полей (к примеру, в других задачках), то необходимо возвратиться к начальному порядку, а потом выполнить поочередные сортировки в порядке, оборотном порядку рассматриваемой совокупы полей.

Заметим, но, что 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону при удалении записи в отсортированных данных (это может быть исключительно в режиме просмотра в виде формы) порядок следования записей нарушается, ворачиваясь к начальному виду.


На этом месте опять следует 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону протестировать проект на работоспособность и правильность работы. Проверка корректности работы сортировок может быть осуществлена с помощью просмотра данных в виде таблицы. Повышенное внимание уделить правильности правки и удаления отсортированных записей.

13. Задачки, решаемые в информационной 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону системе

В техническом задании запланировано решение последующих задач:

  1. Вывод списков групп по запросам для одной группы и для всех групп.

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

  3. Для каждой учебной группы вычисление 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону количества студентов и среднего балла в группе.

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

Заметим, что 1-ый пункт – это практически 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону два разных отчета: списки всех групп и перечень одной, обозначенной группы. Из-за этого мы при разработке пт меню поставили в соответствие этому отчету два пт меню: «Отчеты  Списки групп  Все группы» и «Отчеты 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону  Списки групп  Одна группа».

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

Поместим этот элемент на форму frmMenu, задав ему последующие характеристики:

Name = RichTextBox1

Системное имя

Font = Courier 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону New

Шрифт

ReadOnly = True

Запрет редактирования

ScrollBars = Vertical

Вертикальная полоса прокрутки

Visible = False

Объект невидим


Не считая этого элемента поместим на форму к тому же кнопку (Name = cmdSaveOtch, Visible = False), при нажатии которой будем сохранять просматриваемый отчет. Таким макаром, макет 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону формы frmMenu , доработанный для вывода результатов имеет вид, представленный на рисунке 8.

По нажатию кнопки «Сохранить отчет» текущий отчет (т.е. отчет, который просматривается на этот момент) должен быть сохранен. Таким макаром, так как 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону мы генерируем отчеты в текстовый файл с заблаговременно данным именованием, то по нажатию кнопки должна быть изготовлена копия файла с отчетом.



Набросок 8. Макет главной формы в режиме конструктора


Приведем код процедуры обработки действия 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону нажатия на кнопку «Сохранить отчет».

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

ByVal e As System.EventArgs) Handles cmdSaveOtch.Click

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

With SaveFileDialog1

.FileName = ""

.Filter = "Все 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону файлы (*.*)|*.*|" + _

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

"Файлы начальных данных (*.dan)|*.dan|" + _

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

.FilterIndex = 2

.ShowDialog()

End With


' если название файла не пусто и не равно имени

' просматриваемого файла,

If SaveFileDialog1.FileName "" And 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону _

richName SaveFileDialog1.FileName Then

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

FileCopy(richName, SaveFileDialog1.FileName)

' его удаление

Kill(richName)

' и вывод в RichTextBox1 нового файла

richName = SaveFileDialog1.FileName

RichTextBox1.LoadFile(richName, _

RichTextBoxStreamType.PlainText)


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

MsgBox 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону("Отчет сохранен", vbOKOnly + vbInformation, _

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

End If


End Sub


13.1. Вывод списков групп

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

До того как привести код этой процедуры 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, обсудим метод, реализованный в ней. Мысль метода состоит в последующем: поначалу файл с данными о студентах должен быть «отсортирован» по курсу, группе и фамилии; результатом чего станет индексный массив Ind 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, который позволит просматривать записи файла в отсортированном виде конкретно таким макаром. Такая упорядоченность записей файла практически представляет его разбитым на группы записей, самая внутренняя группа имеет схожие значения для курса и группы 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону и упорядочена в алфавитном порядке фамилий. Потому в самом наружном цикле перебираются курсы, во вложенном в него цикле перебираются номера групп, и в последующем по уровню вложенности цикле (для схожих значений курса и группы во 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону всех записях) выбираются и выводятся в текстовый файл фамилии студентов. Код процедуры обеспечен подробными комментами.


Private Sub mnuQueryListAllItem_Click(ByVal sender As _

System.Object, ByVal e As System.EventArgs 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону) _

Handles mnuQueryListAllItem.Click

Dim i As Integer

Dim Ind(Nmax) As Integer

Dim NK As Byte

Dim NG As Byte

Dim NPP As Integer

Dim KeyK(Nmax) As Single

Dim KeyG(Nmax) As Single

Dim KeyFIO(Nmax) As String

Dim R As 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону TStud = New TStud()


' раскрывается временный вспомогательный файл otch.ist,

' находящийся в той же папке, что и работающий проект

Path2 = CurDir() + "\otch.txt"

F4 = FreeFile()

FileOpen(F4, Path2, OpenMode.Output)


' подготовка данных для 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону сортировки по курсу, группе и ФИО

For i = 1 To N

R.ReadFromFile(f1, i)

KeyK(i) = R.Kurs

KeyG(i) = R.Group

KeyFIO(i) = R.FIO

Ind(i) = i

Next i


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

Call SortStr(KeyFIO, N, Ind)

Call Sort(KeyG, N 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, Ind)

Call Sort(KeyK, N, Ind)


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

i = 1

R.ReadFromFile(f1, Ind(i))


Do While i <= N


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

NK = R.Kurs

PrintLine(F 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону4, "Курс " + CStr(NK))


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


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

' текущей группы

NG = R.Group

PrintLine(F4, vbTab + "Группа " + CStr(NG))


' порядковый номер студентов в группе

' начинается с единицы

NPP 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону = 1


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


' запись в файл ФИО студента

PrintLine(F4, vbTab + vbTab + CStr(NPP) + "." + _

vbTab + R.FIO)

NPP = NPP + 1

i = i + 1


' если есть еще записи, то 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону считываем

' последующую, по другому выходим из цикла

If i <= N Then

R.ReadFromFile(f1, Ind(i))

Else

Exit Do

End If

Loop


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

PrintLine(F4, "")

Loop


Loop


' файла отчета запирается

FileClose(F4)


' загрузка только-только сделанного файла 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону в RichTextBox1

RichTextBox1.LoadFile(Path2, _

RichTextBoxStreamType.PlainText)

richName = Path2


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

RichTextBox1.Visible = True

cmdSaveOtch.Visible = True

End Sub


Вывод перечня одной группы реализован в процедуре обработки действия выбора пт 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону меню «Отчеты  Списки групп  Одна группа»

В этой задачке у юзера поначалу запрашиваются значения для курса и группы, и проверяется правильность введенных значений. Потом файл начальных данных упорядочивается по полю «Фамилия» в алфавитном 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону порядке; после этого он просматривается, из него выбираются и выводятся в текстовый файл записи, в каких значения курса и группы совпадают со значениями, введенными юзером.

Private Sub mnuQueryListOneItem_Click(ByVal sender As _

System 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону.Object, ByVal e As System.EventArgs) _

Handles mnuQueryListOneItem.Click

Dim i As Integer

Dim Ind(Nmax) As Integer

Dim NK As Byte

Dim NG As Byte

Dim NPP As Integer

Dim TempStr As String

Dim KeyFIO(Nmax) As 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону String

Dim R As TStud = New TStud()


' раскрывается файл otch.ist, находящийся в той же папке,

' что и работающий проект

Path2 = CurDir() + "\otch.ist"

F4 = FreeFile()

FileOpen(F4, Path2, OpenMode.Output)


' запрос у юзера 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону интересующего его курса

TempStr = InputBox("Введите курс", "Ввод курса")

Do While Not IsNumeric(TempStr)


'если введенный курс не является числом,

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

If (TempStr = "") Then

' то файл запирается и осуществляется выход

' из процедуры

FileClose(F 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону4)

Exit Sub

End If

' если введенный курс не является числом,

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

MsgBox("Курс - число", vbOKOnly + vbExclamation, _

"Ошибка")

TempStr = InputBox("Введите курс", "Ввод курса")

Loop


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

NK 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону = CByte(TempStr)


' запрос у юзера интересующей его группы

TempStr = InputBox("Введите группу", "Ввод группы")

Do While Not IsNumeric(TempStr)


'если введенная группа не является числом,

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

If (TempStr = "") Then

' то файл запирается 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону и осуществляется выход

' из процедуры

FileClose(F4)

Exit Sub

End If

' если введенная группа не является числом,

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

MsgBox("Группа-число", vbOKOnly + vbExclamation, _

"Ошибка")

TempStr = InputBox("Введите группу", "Ввод группы 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону")

Loop


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

NG = CByte(TempStr)


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

For i = 1 To N

R.ReadFromFile(f1, i)

KeyFIO(i) = R.FIO

Ind(i) = i

Next i


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

Call SortStr(KeyFIO, N 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, Ind)


' запись в файл инфы о курсе и группы

PrintLine(F4, "Курс " + CStr(NK) + ", Группа " + CStr(NG))


' порядковый номер студентов в группе

' начинается с единицы

NPP = 1

For i = 1 To N

' считывание последующей записи и если 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону курс и группа

' соответствуют, то делается вывод в файл отчета

R.ReadFromFile(f1, Ind(i))

If R.Kurs = NK And R.Group = NG Then

PrintLine(F4, vbTab + CStr(NPP) + "." + vbTab + R.FIO)

NPP = NPP + 1

End 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону If

Next i


' файл отчета запирается

FileClose(F4)


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

RichTextBox1.LoadFile(Path2, _

RichTextBoxStreamType.PlainText)

richName = Path2


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

RichTextBox1.Visible = True

cmdSaveOtch.Visible = True

End Sub


13.2. Количество студентов и средний 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону балл в группах

Во 2-ой и третьей задачке из числа запланированных задач нужно для каждого студента вычислить средний балл. Вынесем вычисление среднего балла каждого студента в отдельную пользовательскую функцию, которая будет 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону принадлежать форме frmMenu. В этой процедуре создается вспомогательный файл прямого доступа с записями пользовательского типа Tball, содержащий столько же записей, сколько находится в файле начальных данных. Пользовательский тип Tball содержит поле для 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону вычисления среднего балла. Код процедуры приведен ниже.

Private Sub AverageBallCreate()

Dim i As Integer

Dim j As Integer

Dim KeyK(Nmax) As Single

Dim KeyG(Nmax) As Single

Dim KeyFIO(Nmax) As String

Dim KeyB(Nmax) As Single

Dim 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону R As TStud = New TStud()

Dim S As TBall = New TBall()


' раскрывается вспомогательный файл Ball.avg, находящийся в

' той же папке, что и работающий проект

Path1 = CurDir + "\Ball.avg"

F3 = New FileStream(Path1, FileMode 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону.Create)


' читается последующая запись из основного файла базы данных

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

' балле выводится во вспомогательный файл

For i = 1 To N

R.ReadFromFile(f1, i)

S.Sb = 0


For j = 1 To 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону R.Kol

S.Sb = S.Sb + R.M(j - 1)

Next j


S.Sb = S.Sb / R.Kol

S.Kurs = R.Kurs

S.Group = R.Group

S.FIO = R.FIO


S.writeToFile(F3, i)

Next i


' вспомогательный файл 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону запирается

F3.Close()

End Sub


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

В файле начальных данных содержатся только оценки, потому в 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону этой процедуре, поначалу формируется вспомогательный файл с данными о студентах (курс, группа, ФИО, средний балл). Потом вспомогательный файл упорядочивается по курсу и группе. После чего рассчитывается количество записей в группе с 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону схожими значениями курса и группы, также средний балл в этой же группе.

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

Private Sub mnuQueryKolItem_Click(ByVal sender As _

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

Handles mnuQueryBallItem.Click

Dim Sum As Double

Dim k As Integer

Dim i As Integer

Dim Ind(Nmax) As Integer

Dim KeyK(Nmax 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону) As Single

Dim KeyG(Nmax) As Single

Dim NK As Byte

Dim NG As Byte

Dim S As TBall = New TBall()


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

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

AverageBallCreate()


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

F 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону3 = New FileStream(Path1, FileMode.Open)


' раскрывается вспомогательный файл kol.avg, находящийся в

' той же папке, что и работающий проект

Path2 = CurDir() + "\kol.avg"

F4 = FreeFile()

FileOpen(F4, Path2, OpenMode.Output)


' подготовка данных 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону для сортировки по курсу и группе

For i = 1 To N

S.ReadFromFile(F3, i)

KeyK(i) = S.Kurs

KeyG(i) = S.Group

Ind(i) = i

Next i


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

Call Sort(KeyG, N, Ind)

Call Sort(KeyK, N, Ind 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону)


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

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

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


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

i = 1

S.ReadFromFile(F3, Ind(i))


Do While i <= N

' фиксирование 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону номера текущего курса

NK = S.Kurs

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

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

NG = S.Group


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

k = 0

Sum = 0


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

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

Do While NK = S.Kurs 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону 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


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

' количества студентов и 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону среднего балла группы

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

RichTextBox 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону1.LoadFile(Path2, _

RichTextBoxStreamType.PlainText)

richName = Path2


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

RichTextBox1.Visible = True

cmdSaveOtch.Visible = True


End Sub

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

Вычисление среднего балла для каждого студента 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону реализовано в процедуре обработки действия выбора команды меню «Отчеты  Вычисление среднего балла».

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

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

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

Процедура 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону обработки действия нажатия на кнопку «Сохранить отчет» имеет вид:

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


' запрос 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону названии файла для сохранения отчета

With frmMenu.SaveFileDialog1

.FileName = ""

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

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

"Файлы начальных данных (*.dan)|*.dan|" + _

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

.FilterIndex = 2

.ShowDialog()

End With


' если название файла не пусто,

If frmMenu 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону.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 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону)

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)


' сообщение об успешном окончании 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону сохранения отчета

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

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

End If

End Sub


А сейчас приведем код процедуры обработки действия, соответственного выбору пт меню «Отчеты  Вычисление среднего балла». В этой процедуре предусмотрены две способности вывода результатов 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону: в виде, упорядоченном по курсу, группе и фамилиям студентов; либо в виде, упорядоченном по курсу, группе и убыванию среднего балла. Код процедуры обеспечен подробными комментами.

Private Sub mnuQueryBallItem_Click(ByVal sender As _

System 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону.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 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону S As TBall = New TBall()

Dim Button As Integer


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

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

AverageBallCreate()


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

F3 = New FileStream(Path1, FileMode.Open)


' подготовка 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону данных для сортировок

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 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону = MsgBox("Вывод по убыванию среднего балла?", _

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


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

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

' юзера на запрос

If Button = vbYes Then

Call Sort 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону(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


' наполнение заголовка 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону формы frmTableRez

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


With frmTableRez.GridView1


.ColumnCount = 5


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

.Columns(0).Name = "№"

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

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

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

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


' чтение 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону очередной записи и загрузка ее полей

' в таблицу

For i = 1 To N

S.ReadFromFile(F3, Ind(i))

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

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

{CStr(i), S.Kurs, S.Group, S.FIO 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, _

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


.Rows.Add(row)

Next i

End With


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

F3.Close()


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

frmTableRez.Show()

End Sub


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

Часть III

Проекты для самостоятельной разработки

^ 14. Общие требования

Техническое задание 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону на каждый проект содержит постановку задачки, в какой определяется объект предметной области и функции информационной системы. Для объекта предметной области, задаваемого перечислением его параметров, нужно найти пользовательский тип данных для хранения экземпляров объекта в 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону виде записей файла прямого доступа.

Информационная система должна содержать средства: для ввода, редактирования и просмотра данных в комфортной для юзера форме; для организации сортировки по отдельным полям и по совокупы 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону полей данных; для организации поиска по одному либо нескольким аспектам; для составления отчетов на базе имеющихся в системе данных.

Каждое задание содержит:

– описание параметров объекта предметной области;

– перечисление полей данных, для которых нужно сделать 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону файлы-справочники, применяемые при заполнении полей данных; при всем этом нужно предугадать возможность прибавления, конфигурации и корректного удаления записей в справочниках;

– перечисление полей данных, по которым может быть упорядочение; при всем 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону этом сортировка по перечисленным полям данных должна обеспечить сортировку по хоть какой совокупы перечисленных полей (вложенную сортировку).

– перечисление полей данных, которые могут выступать в качестве характеристик поиска;

– задачки обработки данных, решаемые информационной системой и 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону вид выходных документов, представляющих результаты обработки.

В каждом задании подразумевается создание 1-го либо нескольких файлов прямого доступа для хранения начальных данных. Этот файл должен содержать количество записей, нужное для как 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону можно более полного тестирования информационной системы. Рекомендуемое количество записей 15 – 20, зависимо от задания.

Поиск нужно организовать таким макаром, чтоб в этом случае, если некий из характеристик не задан, итог поиска должен содержать все записи 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, надлежащие остальным характеристикам поиска. Если ни один из характеристик не задан, то итог поиска должен содержать все записи.

В тех заданиях, в каких нужно выполнить поиск по дате либо времени 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону с указанием начала и конца периода поиска, так как дата является одним параметром и параметр время является одним параметром, поиск должен осуществляться:

а) в рамках периода, если заданы его начало и конец;

б) от начала 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону периода до текущей даты, если задано только начало периода;

в) от малой даты до конца периода, если задан только конец периода.

Характеристики даты и времени не заданы едва в этом случае, если 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону не заданы ни начало, ни конец периода поиска для соответственного параметра.

Один из методов организации поиска по нескольким характеристикам состоит в последующем:

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

В большинстве заданий целенаправлено сделать очередной файл прямого доступа с записями другого пользовательского типа, соответственного структуре создаваемых 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону записей. Этот файл может служить для хранения результатов промежных вычислений – результатов обработки начальных данных.

В каждом задании определен вид выходных документов; все выходные документы, обычно, выводятся в текстовый файл, их содержимое 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону можно просматривать как во время работы информационной системы, так и после выхода из нее. В неких заданиях вид выходного документа для одной из задач может быть не определен, в данном случае вид выходного документа студент 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону определяет без помощи других.

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

По выполненному заданию студент должен представить отчет, в отчет врубаются: титульный лист 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону, оглавление, основная часть, перечень использованных источников. Основная часть отчета содержит:

– постановку задачки;

– описание структуры проекта;

– описание интерфейса сделанного приложения;

– описание форм, применяемых для ввода, просмотра и корректировки данных;

– тестовый пример, демонстрирующий 12. Сортировка данных - Учебно-методическое пособие для студентов экономического факультета Ростов-на-Дону работоспособность приложения;

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

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



12-klassifikaciya-sredstv-reklami-i-ih-harakteristika-diplomnaya-rabota.html
12-klinicheskaya-epidemiologiya-poyasnitelnaya-zapiska-epidemiologiya-uchebnaya-disciplina-soderzhashaya-sistematizirovannie.html
12-koncepciya-i-principi-logisticheskoj-deyatelnosti-testi.html