Thema: Delphi Bußgeldrechner

Einzelnen Beitrag anzeigen

Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Bußgeldrechner

  Alt 3. Dez 2008, 09:46
Zitat von rhesusaffe89:
Hmm naja so richtig weiter bin ich nicht gekommen. Hat einer vielleicht "die" zündende Idee, das Programm zu laufen zu bekommen?
Ein ganz heißer Tipp wäre eventuell, das Ergebnis auch auszugeben, statt es vorher einzulesen
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  zulgesch, gefgesch, bußgeld: Double;
  inort: String;
  punkte, fahrverbot: Integer;
begin
  case radiogroup1.itemindex of
    0 : inort := 'ja';
    1 : inort := 'nein';
  end;
  zulgesch:= StrToFloat(Edit1.Text);
  gefgesch:= StrToFloat(Edit2.Text);
  //bußgeld:= StrToFloat(Edit3.Text); <-- Hier liest du ein, was der User gerne für ein Bußgeld hätte ;)
  if (gefgesch >= 50) and (gefgesch <=60) then
    bußgeld:= 15;
  if (gefgesch >= 60) and (gefgesch <=65) then
    bußgeld:= 25;
  end;

  Edit3.Text := FloatToStr(bußgeld); //<-- Besser wäre es, das Ergebnis am Ende der Methode auszugeben ;)
end;
end.
Im Übrigen bin ich mir nicht wirklich sicher, was Delphi zu dem 'ß' sagt. AFAIK sollte man darauf (und auch auf Umlaute) bei der Programmierung verzichten

Achso, und warum ein String für 'inort'? Ein Boolean wäre da doch IMHO deutlich sinnvoller:
Delphi-Quellcode:
inort : Boolean;
//...
inort := (RadioGroup1.ItemIndex = 1);
Und noch ein Edit: Der Hinweis von Frankfurtoder ist sowieso sehr sinnvoll. Warum denn so komplizierte If-Konstrukte, wenn es doch im Endeffekt immer nur um die Geschwindigkeitsübertretung geht?
Das ließe sich doch mit einem Case mit Bereichsüberprüfung deutlich übersichtlicher gestalten. Voraussetzung wäre allerdings, dass du die Geschwindkigeiten als Integer definierst. Ich sehe aber im Moment sowieso keinen Sinn darin, dafür einen Double zu benutzen...
Delphi-Quellcode:
Case gefgesch-zulgesch of
  0..10: bußgeld := 15;
  11..15: bußgeld := 25;
  else bußgeld := 42;
end;
Btw stimmen die Bußgelder doch sowieso nicht... Deinem Code nach muss ich 15€ Strafe zahlen, wenn ich mit 50 durch die Stadt fahre?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat