Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Лабы_Ч2.doc
Скачиваний:
5
Добавлен:
09.11.2019
Размер:
2 Mб
Скачать

Создание проекта «Результаты аттестации»

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

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

  • Комплексная сортировка по группе + по фамилии студента.

  • Комплексная сортировка по количеству неудовлетворительных оценок ↓ + по среднему баллу ↑.

  • Выборка студентов какой-нибудь группы, имеющих средний балл выше 4.

  • Подсчет общего числа студентов, имеющих более 2-х неудовлетворительных оценок.

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

7.1.27Интерфейс пользователя для проекта

Интерфейс разрабатываемого проекта представлен на рисунке 10.2. Интерфейс проекта предполагает, что исходная информация будет храниться в ячейках компонента StringGrid1. Результаты обработки исходных данных будут записываться в компонент StringGrid2.

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

Кнопка «Упорядочить по неуд. и ср.баллу» обеспечивает сортировку данных по количеству неудовлетворительных оценок, а при их равенстве, по среднему баллу.

При нажатии на кнопку «Выбрать ударников какой-то группы» должен появиться компонент InputBox, с помощью которого вводится нужная группа, после чего во втором окне появится список соответствующих студентов отсортированный по фамилиям..

При нажатии на кнопку «Подсчитать количество имеющих более 2-х хвостов» во втором окне появится список соответствующих студентов отсортированный по результатам успеваемости,а их количество будет выведено в окне MessageBox

Рисунок 10.2 – Интерфейс проекта

7.1.28Определение типов данных

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

Тексты этих описаний для создаваемого проекта приведены ниже.

type

TFio = String[20]; // тип для фамилии студента

TGroup = String[5]; // тип для группы

TAttRec = record //тип для записи

fio : TFio ;

group : TGroup;

neud: integer;

srBall : real;

end;

//Тип для массива записей

TAttArray = Array[1..30] of TAttRec;

7.1.29Инициализация интерфейса

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

// Процедура підготовки до роботи

procedure TfrmRecord.FormCreate(Sender: TObject);

begin

//Настраиваем таблицу с исходными данными

with StringGrid1 do begin

ColCount :=4; RowCount :=5; FixedRows :=1;

//Заголовок таблицы в нулевой строке StringGrid1

Cells [0,0]:='Группа'; Cells [1,0]:='Студент';

Cells [2,0]:='Неуд.';Cells [3,0]:='Ср.балл';

//Несколько записей таблицы для ускорения отладки

Cells [0, 1] := 'КС051'; Cells [1,1]:='Чуб П.П.';

Cells [2, 1] := '0'; Cells [3,1] := '4,55';

Cells [0, 2] := 'КС051'; Cells [1,2] := 'Гай А.Л.';

Cells [2, 2] := '3'; Cells [3,2] := '1,55';

Cells [0, 3] := 'КС051'; Cells [1,3] := 'Кот А.В.';

Cells [2, 3] := '1'; Cells [3,3] := '2,45';

Cells [0, 4] := 'ЕМ051'; Cells [1,4] :=' Жир П.Р.';

Cells [2, 4] := '2'; Cells [3,4] := '2,00';

end;

//Настраиваем таблицу для обработанных данных

with StringGrid2 do begin

ColCount :=4; RowCount :=2; FixedRows :=1;

//Заголовок таблицы в нулевой строке StringGrid2

Cells [0,0] := 'Группа'; Cells [1,0] := 'Студент';

Cells [2,0] := 'Неуд.';Cells [3,0] := 'Ср.балл';

end;

end;