Помощь в учёбе, очень быстро...
Работаем вместе до победы

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

РефератПомощь в написанииУзнать стоимостьмоей работы

Показ элемента RichTextBox1 и кнопки «Сохранить отчет». Чтение первой записи в отсортированном списке. Пропуск строки между списками различных групп. Загрузка только что созданного файла в RichTextBox1. Чтение очередной записи и загрузка ее полей. Открывается файл otch. ist, находящийся в т… Фиксирование и запись в файл номера. Порядковый номер студентов в группе. Запись названий столбцов… Читать ещё >

Вывод списков групп (реферат, курсовая, диплом, контрольная)

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

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

Private Sub mnuQueryListAllItem_Click (ByVal sender As _.

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

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 TStud = New TStud ().

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

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

Path2 = CurDir () + «otch.txt» .

F4 = FreeFile ().

FileOpen (F4, Path2, OpenMode. Output).

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

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, Ind).

Call Sort (KeyK, N, Ind).

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

i = 1.

R.ReadFromFile (f1, Ind (i)).

Do While i <= N.

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

NK = R.Kurs.

PrintLine (F4, «Курс «+ CStr (NK)).

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

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

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

NG = R.Group.

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

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

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

NPP = 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.

' если еще есть записи, то считываем.

' следующую, иначе выходим из цикла.

If i <= N Then.

R.ReadFromFile (f1, Ind (i)).

Else.

Exit Do.

End If.

Loop.

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

PrintLine (F4, «»).

Loop.

Loop.

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

FileClose (F4).

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

RichTextBox1.LoadFile (Path2, _.

RichTextBoxStreamType.PlainText).

richName = Path2.

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

RichTextBox1.Visible = True.

cmdSaveOtch.Visible = True.

End Sub.

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

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

Private Sub mnuQueryListOneItem_Click (ByVal sender As _.

System.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 String.

Dim R As TStud = New TStud ().

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

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.

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

Показать весь текст
Заполнить форму текущей работой