.. 10명의 직원에 대해 각각 6개의 데이터(성명,부서코드,월매출액,이메일 등등,,,)를 입력받아서 출력폼에 출력하는 프로그램 입니다.
출력폼에 출력할 내용은 최고 급여를 받는 사람의 데이터들이 출력되야 하는데 자꾸 코딩 초기부터 에러가 납니다.
var
Form1: TForm1;
count,hap:integer;
input:array[1..10,1..6]of string;//입력 데이터 저장 배열
output:array[1..10]of string;//계산된 급여 데이터 저장 배열
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
begin
count:=0;//카운터 위한 변수
hap:=0;
//배열 초기화
for i:=1 to 10 do
for J:=1 to 6 do
input[i,j]:='0';
for i:=1 to 10 do
output[i,j]:='0';
end;
procedure TForm1.Button2Click(Sender: TObject); //버튼2는 입력버튼
var
a,b,c,d,e,f:string;//
m,n,salary:integer;
begin
a:=Edit1.Text;
b:=Edit2.Text;
c:=Edit3.Text;
d:=Edit4.Text;
e:=Edit5.Text;
f:=Edit6.Text;
input[count+1,1]:=a;
input[count+1,2]:=b;
input[count+1,3]:=c;
input[count+1,4]:=d;
input[count+1,5]:=e;
input[count+1,6]:=f;
//월 매출수당
m:=0;
if(StrToInt(f)<=200)then
m:=StrToInt(f)*0.1
else if (StrToInt(f)<=300) then <--//이곳 부터 에러시작
m:=StrToInt(f)*0.15
else if(StrToInt(f)<=400)then
m:=StrToInt(f)*0.18
else
m:=StrToInt(f)*0.19;
//공제액
n:=0;
if(StrToInt(c)<=3)then
n:=0
else if(StrToInt(c)<=9)then
n:=StrToInt(e)*0.03
else if(StrToInt(c)<=17)then
n:=StrToInt(e)*0.05
else
n:=StrToInt(e)*0.07;
//급여계산(급여=본봉+월매출수당-공제액)
salary:=0;
salary:=StrToInt(e)+m-n;
output[count+1]:=IntToStr(salary); //급여를 계산해서 배열에 저장.
end;
이후 생략~~~~~
end.
문법적으로 아직 미숙하지만 나름대로 연구해봤는데 어디가 이상이 있는건지 잘....
고수님의 답변 부탁드립니다.
딴건 모르겠구...
m하구 n이 integer로 되 있는데
거기에 real로 형변환된 값이 저장되면서 에러 발생한것 같은데요
리얼이냐 플롯이냐... 암튼.... -.-;
소숫점까지 출력해야 되면
m, n: Real; 이렇게 해주시구여
소숫점 필요 없으면
Round(StrToInt(F) * 0.15) <= 400 머 이런 식으로...
손뗀지 한참이라 잘 모르겠는데 아무튼 해보시구 안되면
달 보세여... ㅋㅋㅋ >.~