1.5명의 학생 데이터에서 제일 높은 점수의 학생 데이터를 출력폼에 출력
----입력 폼----------------------------------|
성명(lab,1) Text,1 |
학과(lab.2) Text.2 입력버튼(Btn.1) |
영어(lab.3) Text.3 출력버튼(Btn.2) |
국어(lab.4) Text.4 |
---------------------------------------------|
input 배열변수에 5학생의 데이타 4가지씩을 저장시킵니다.
그럼 배열은 input:array[1..5,1..4]or string; 이 되겠죠?
a,b,c,d:string;
edit1.text:=a;//입력폼 입력된 자료들을 입력될때 마다
edit1.text:=b;
edit1.text:=c;
edit1.text:=d;
//count는 위에서 integer로 정하고 초기값 '0'으로 할당했음
input[count+1,1]:=a;//
input[count+1,1]:=b;
input[count+1,1]:=c;
input[count+1,1]:=d;
//입력폼에서 입력된 값중 Text3,4는 점수를 합산하여 총점을 냅니다.
총점갑은 hap 변수에 저장.
그렇다면 이제 출력폼에 총점이 가장 높은 학생의 데이터가 출력되어야 하는데 어떻게 점수를 비교해야 하나요?
---------출력폼-----------------|
최고점수 학생 |
|
성명(lab.1) Text.1 |
학과(lab.2) Text.2 |
총점(lab.3) Text.3 |
--------------------------------|
고수님들의 답변을 부탁드립니다.
즐거운 하루되세요~!
안녕하세요.
음 제가 제대로 이해하는건지? 맞는지는 저도 햇갈리지만..쩝
제가 볼때는 그냥 단순한것 같은데요..
입력된 학생들 수만큼 이름과 학과 그리고 총점을 배열값을 생성해서 집어넣으면 되고 점수에 해당하는 인덱스번호를 루프로 서로 돌려서 비교하면 될것 같은데요..
예로 그냥 5명이라고 하면..
var
sName : array [0..4] of string;
sClass : array [0..4] of string;
iTotal : array [0..4] of Integer;
iCnt, iNo : Byte; //카운터 및 최고점수번호.
iTop : Interger; //최고점수.
//=초기화..
procedure ~~FormShow(Sender : TSender);
var
i : Byte;
begin
for i := 0 to 4 do
begin
sName[i] := '';
sClass[i] := '';
iTotal[i] := 0;
end;
iCnt := 0;
iNo := 0;
iTop := 0;
end;
// 입력시..
procedure Tform1.Button1.Click( Sender : TSender );
begin
sName[iCnt] := '이름';
sClass[iCnt] := '학과';
iTotal[iCnt] := 총점..
//가장 최고점수와 비교.
if iTop < iTotal[iCnt] then
begin
iTop := iTotal[iCnt];
iNo := iCnt;
end;
Inc( iCnt );
end;
//=======출력.
procedure TForm2.Button2.Click( Sender : TSender );
begin
ShowMessage( sName[iNo] +#13+
sClass[iNo] +#13+
IntToStr( iTotaliNo] );
end;
//출력시.
입력할때..