Programmieren 2 (Prof. Hasbargen) 1 Klausur Aufgabe 1 (10 Punkte) Dynamisierung von HTML-Seiten HTML-Seiten sind eine gängige Art und Weise, Informationen darzustellen. Nennen Sie die Gründe, welche Vorteile die Dynamisierung von HTML-Seiten bringt! Grundsätzlich ist eine HTML-Seite ein statisches Dokument. Interaktive Anwendungen über Benutzereingaben (Gästebücher, Kontaktformulare, Foren, Portale) Für User attraktiv - für den Betreiber effektiv ( Traffic) Dynamische Webseiten besitzen einen hohen Grad der Automatisierung.. Java Applets sind eine Möglichkeit der Dynamisierung. Nennen Sie die drei wichtigsten Methoden der Klasse Applet mit jeweils einer kurzen Erklärung! init() wird nach dem Konstruktor automatisch aufgerufen, sollte anstatt des Konstruktors für die Reservierung von Ressourcen verwendet werden. start() wird beim Starten des Applets automatisch aufgerufen, hier sollte (falls vorhanden) das Hauptprogramm des Applets stehen, oder (bei GUI-Applets) gar nichts. destroy() wird beim Verlassen der Applets automatisch aufgerufen, sollte für die Freigabe der reservierten Ressourcen verwendet werden 1
2 Aufgabe 2 (16 Punkte) Javascript Teil a. Eine andere Möglichkeit der Dynamisierung ist JavaScript. JavaScript ist kein Teil von HTML beschreiben Sie bitte kurz, was JavaScript ist: Java-Script ist eine selbständige Prog-Sprache (Scriptsprache) mit objektorientierten Anteilen die von handelsüblichen Browsern interpretiert wird (clientseitig) kann entweder in HTML eingebunden werden, oder in zusätzlichen Dateien stehen es werden Objekte und Funktionen eingebunden, die im HTML-Text benutzt werden können direkt ausführbarer Code wird im Script-Teil direkt ausgeführt wird auf Clientseite ausgeführt Teil b. JavaScript wird oft benutzt um Benutzereingaben in Formularen zu überprüfen. Welche zwei Eigenschaften bezüglich der Benutzereingabe werden durch JavaScript typischerweise überprüft? Um Eingaben des Benutzers zu überprüfen auf Vollständigkeit Konsistenz z.b. Methode: checkformular() Absenden des Formulars, wenn das Ergebnis true ist Teil c. Erklären Sie kurz die Funktionsweise einer der entsprechenden JavaScript-Methode des Typs checkformular und stellen sie stichwortartig dar, wie diese Methode in das Formular eingebunden wird. Vor dem Absenden des Formulars durch drücken des Submit-Buttons wird die Konsistenz oder Vollständigkeit der Eingaben mit der Methode checkformular() überprüft. Ist das Ergebnis false wird das Formular nicht abgesendet und der Benutzer wird auf die fehlerhafte Eingabe hingewiesen (nur, wenn vorher implementiert). Wenn das JavaScript nicht mit false abbricht, werden die Eingaben abgesendet. (im body) < form name= formularname action= action onsubmit= return checkformular() > (im head) < script type= text/javascript > function checkformular() if(document.formularname.name.value== ) alert( Bitte Namen eingeben ); return false; 2
Aufgabe 3 (20 Punkte) Code: HTML, JavaScript 3 Nehmen wir an, Einkommensteuer würde wie folgt anfallen: bei einem Jahreseinkommen von weniger als 12000 Euro gar nichts bei einem Jahreseinkommen von weniger als 30000 Euro 20% bei einem Jahreseinkommen von weniger als 50000 Euro 35% bei einem Jahreseinkommen von 50000 Euro oder mehr 50% Ihre Aufgabe: Schreiben Sie nach obiger Maßangabe ein Formular eingabe.htm in HTML mit JavaScript-Anteilen, das Vorname, Name und Jahreseinkommen in Textfeldern erfasst Geschlecht in einer Combobox erfasst und bei Drücken eines Buttons OK an den Server sendet. Dabei soll auf dem Server das PHP-Formular steuer.php aufgerufen werden. Vor dem Senden soll die Korrektheit des Formulars überprüft werden. Das heißt hier vereinfacht: Vorname, Name und Jahreseinkommen sind nicht leer (OK, mein Lösungsvorschlag checkt auch noch das Geschlecht!) 3
Aufgabe 4 (20 Punkte) Code: HTML, PHP 4 Nehmen wir an, Einkommensteuer würde wie folgt anfallen: bei einem Jahreseinkommen von weniger als 12000 Euro gar nichts bei einem Jahreseinkommen von weniger als 30000 Euro 20% bei einem Jahreseinkommen von weniger als 50000 Euro 35% bei einem Jahreseinkommen von 50000 Euro oder mehr 50% Ihre Aufgabe: Schreiben Sie nach obiger Maßgabe ein PHP-Formular steuer.php in PHP, das die vom Formular eingabe.htm der Aufgabe 3 übermittelten Daten entgegennimmt entsprechend der obigen Formel die Steuer berechnet und an den Benutzer eine HTML-Seite der folgenden Form zurücksendet: (Beispiel, korrekte Daten werden natürlich fallspezifisch von PHP generiert!!!) Sehr geehrte(r) Herr Thorsten Hasbargen Bei ihrem Jahreseinkommen von 40000 Euro Wurde eine Steuer von 14000 Euro berechnet. 4
5 LÖSUNG von Aufgabe 3: eingabe.html (html-teil mit JavaScript) <html> <head> <title>einkommensteuer</title> <script type="text/javascript"> function pruefen() var f=document.steuerformular var fehler="" //Hiermit spart man sich etwas Tipparbeit //enthaellt die Bezeichnungen der nichtausgefuellten Felder //**UEBERPRUEFUNG AUF VOLLSTAENDIGKEIT (UND KONSISTENZ) if(f.name.value=="") //Pruefung des Namens auf Vollstaendigkeit //return false fehler+="name " if(f.vorname.value=="") //Pruefung des Vornmanen auf Vollständigkeit //return false fehler+="vorname " if(f.einkommen.value=="") //Pruefung des Einkommens auf Vollständigkeit //return false fehler+="einkommen " if(!(f.geschlecht[0].checked f.geschlecht[1].checked)) //Pruefen des Geschlechts: Radiobutton-Gruppe 'Geschlecht' fehler+="geschlecht " //**Gegebenenfalls Fehlermeldungen if(fehler!="") var fehlertext="die folgenden Felder wurden nicht vollständig ausgefüllt:\n" fehlertext+=fehler alert(fehlertext) return false return true </script> </head> <body> <h1>einkommensteuer</h1> <form method="post" name="steuerformular" action="steuer.php" onsubmit="return pruefen()"> <table border="0"> <td>name</td> <td><input type="text" name="name" size=35></td> <td>vorname</td> <td><input type="text" name="vorname" size=35></td> <td>einkommen</td> <td><input type="text" name="einkommen" size=35></td> <td>geschlecht</td> <td><input type="radio" name="geschlecht" value="frau"> Frau <input type="radio" name="geschlecht" value="mann"> Mann</td> 5
</table> </form> </body> </html> <td><input type="submit" value="senden"> <input type="reset" value="löschen"></td> 6 LÖSUNG von Aufgabe 4 (php Teil) steuer.php <html> <head> <title>steuer</title> </head> <body> <?php print "<b>zinsberechnung<br>"; $steuer; $anrede; $nam =$_POST ["name"]; $vornam = $_POST ["vorname"]; $geschl = $_POST ["geschlecht"]; $einkomm = $_POST ["einkommen"]; print "Name: $nam Vorname: $vornam Einkommen: $einkomm <br>"; if ($einkomm < 12000) $steuer=0; elseif ($einkomm < 30000) $steuer =($einkomm*0.2); elseif ($einkomm < 50000) $steuer =($einkomm*0.35); else $steuer =($einkomm*0.5); if($geschl=="frau") $anrede=frau; else $anrede=herr; print "Sehr geehrte(r) $anrede $vornam $nam<br>"; print "Bei Ihrem Jahreseinkommen von $einkomm <br>"; print "Wurde eine Steuer von $steuer berechnet";?> 6
</body> </html> 7 7