Выполнение индивидуального задания

Пример создания приложения

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

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

Размещение компонентов на Форме

     При работе с записями ввод и вывод информации на экран удобно организовывать с помощью компонента StringGrid.

 
Рис. 6.1
 

 


     В этом задании для нанесения соответствующих надписей в колонках и строках используется фиксированная зона компонента StringGrid, поэтому в Инспекторе Объектов значения свойств FixedCols и FixedRows установите равными 1. В соответствии с заданием установите значение свойства ColCount=6, а значение свойства RowCount=10. Для возможности просмотра всего списка учащихся в компоненте StringGrid удобно использовать вертикальную линейку прокрутки, поэтому установите свойство ScrollBars в состояние ssVertical. Откройте список опций свойства +Options и установите значение goEditing в True – это даст возможность редактировать информацию в компоненте StringGrid с помощью клавиатуры и “мыши”.



Создание процедур обработки событий FormCreate и Button1Click

     Двойным нажатием клавиши “мыши” на Форме и кнопке Button1 создайте соответствующие процедуры обработки событий. Используя текст модуля UnZap, внимательно наберите операторы этих процедур.

Текст модуля UnZap

Unit UnZap;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons, Grids;

Type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

 implementation

 {$R *.DFM}

Type

 zap= record                    // объявление записи

fio   :string[20];

mat,fiz,soch:integer;

srbal :extended

end;

Var                            

 MZap: array [1..9] of zap; // объявление массива записей

procedure TForm1.FormCreate(Sender: TObject);

Var

 i:integer;

Begin

with StringGrid1 do

  begin                             // занесение информации в ячейки StringGrid1

Cells[0,0]:=' №пп ’;

Cells[1,0]:= 'Фамилия,инициалы';

Cells[2,0]:=' Математика';

Cells[3,0]:=' Физика ';

Cells[4,0]:=' Сочинение ';

Cells[5,0]:= 'Ср.балл';

for i:=1 to 9 do

Cells[0,i]:=IntToStr(i);

Cells[1,1]:= 'Первый П.П. '; Cells[2,1]:=' 3 '; Cells[3,1]:=' 3 '; Cells[4,1]:=' 3 ';

Cells[1,2]:= 'Второй В.В. '; Cells[2,2]:=' 3 '; Cells[3,2]:=' 3 '; Cells[4,2]:=' 4 ';

Cells[1,3]:= 'Третий Т.Т. '; Cells[2,3]:=' 3 '; Cells[3,3]:=' 4 '; Cells[4,3]:=' 4 ';

Cells[1,4]:= 'Четвертый Ч.Ч. '; Cells[2,4]:=' 4 '; Cells[3,4]:=' 4 '; Cells[4,4]:=' 4 ';

Cells[1,5]:= 'Пятый П.П. '; Cells[2,5]:=' 3 '; Cells[3,5]:=' 4 '; Cells[4,5]:=' 5 ';

Cells[1,6]:= 'Шестой Ш.Ш. '; Cells[2,6]:=' 5 '; Cells[3,6]:=' 4 '; Cells[4,6]:=' 4 ';

Cells[1,7]:= 'Седьмой С.С. '; Cells[2,7]:=' 5 '; Cells[3,7]:=' 5 '; Cells[4,7]:=' 4 ';

Cells[1,8]:= 'Восьмой В.В. '; Cells[2,8]:=' 5 '; Cells[3,8]:=' 5 '; Cells[4,8]:=' 5 ';

Cells[1,9]:= 'Девятый Д.Д. '; Cells[2,9]:=' 3 '; Cells[3,9]:=' 5 '; Cells[4,9]:=' 5 ';

for i:=1 to 9 do

with MZap[i] do

begin              // формирование полей массива записей

fio:=Cells[1,i];

mat:=StrToInt(Cells[2,i]);

fiz:=StrToInt(Cells[3,i]);

soch:=StrToInt(Cells[4,i]);

srbal:=(mat+fiz+soch)/3;                    // вычисление значения ср. балла

Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2); // вывод значения ср.балла

end;                                                           // в последнюю колонку StringGrid1

 end;

end;

  procedure TForm1.Button1Click(Sender: TObject);

Var

 i,j:integer;

 vper:zap;

 begin

for i:=1 to 9 do

with StringGrid1,MZap[i] do

begin

fio:=Cells[1,i];

mat:=StrToInt(Cells[2,i]);

fiz:=StrToInt(Cells[3,i]);

soch:=StrToInt(Cells[4,i]);

srbal:=(mat+fiz+soch)/3;

Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2);

end;

  for i:=2 to 9 do              // сортировка методом "пузырька"

for j:=9 downto i do

if MZap[j-1].srbal<MZap[j].srbal then

                                begin

                                     vper:=MZap[j-1];

                           MZap[j-1]:=MZap[j];

                               MZap[j]:=vper;

                                end;

for i:=1 to 9 do      // заполнение ячеек StringGrid1 полями массива записей

with StringGrid1,MZap[i] do

begin

Cells[1,i]:=fio;

Cells[2,i]:=IntToStr(mat);

Cells[3,i]:=IntToStr(fiz);

Cells[4,i]:=IntToStr(soch);

Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2);

end;

 end;

End.

Выполнение индивидуального задания

     По указанию преподавателя выберите свое индивидуальное задание. Создайте приложение и протестируйте его работу.        


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: