Aufgaben zu C# und Windows-Form Programmierung - Ralf Adams (TBS1, Bochum) Version 0.3 vom 10. August 2011

Die Seite wird erstellt Johanna Lorenz
 
WEITER LESEN
Aufgaben zu C# und
     Windows-Form Programmierung
                      Ralf Adams (TBS1, Bochum)
                     Version 0.3 vom 10. August 2011

1 Erste Woche

1.1 Erster Tag
Aufgabe 1.1.1 Legen Sie eine Tabelle mit den wichtigsten Datentypen und ihrem Wer-
teberech an.

Aufgabe 1.1.2 Aus welchen zwei Teilen besteht jede Variablendeklaration?

Aufgabe 1.1.3 Deklarieren und initialisieren Sie zu jedem Datentyp eine Variable.

Aufgabe 1.1.4 Was ist der Unterschied zwischen Konstanten und Variablen?

Aufgabe 1.1.5 Ordnen Sie durch Kreuze den Werten in der Tabelle 1 mögliche Daten-
typen zu (Mehrfachzuweisung möglich):

                          Tabelle 1: Einfache Datentypen
 Wert          int       char      long      uint      double bool         String
 2
 ’C’
 1000.00
 0
 -56
 -12.0

Aufgaben zu C#                                                                      1
1 Erste Woche

 Wert           int       char      long      uint       double bool         String
 -435.123
 true
 ”abc”
 -12e50
 ”12.5”
 5e-5

1.2 Zweiter Tag
Aufgabe 1.2.1 Schreiben Sie ein Programm mit folgenden Eigenschaften: Berechnen
Sie Mantelfläche und Volumen eines Prismas mit einer rechteckigen Grundfläche den
Kantenlängen a = 70cm, b = 0.9m, h = 1m. Achten Sie auf die Maßeinheiten. Die
Formel entnehmen Sie bitte einer Formelsammlung.

Aufgabe 1.2.2 Erweitern Sie das Programm um eine Tastatureingabe der Werte.

Aufgabe 1.2.3 Schreiben Sie ein Programm mit folgenden Eigenschaften: In der Va-
riable a steht der Wert −12.5 und in der Variablen b steht der Wert 5. Das Programm
soll den Inhalt der beiden Variablen vertauschen und das Ergebnis auf den Bildschirm
ausgeben. Es reicht nicht aus die Variablen in vertauschter Reihenfolge auszugeben; der
Inhalt muss ausgetauscht werden!

Aufgabe 1.2.4 Erweitern Sie das Programm um eine Tastatureingabe der Werte.

1.3 Dritter Tag
Aufgabe 1.3.1 Füllen Sie Tabelle 2 aus. Geben Sie zu jeder Operation den Operator
und ein Beispiel an.

                           Tabelle 2: Einfache Operatoren
  Bedeutung               Operator           Beispiel
  Zuweisung               =                  int iAnzahl = 9;
  Modulo
  Addition
  Ganzzahlige Division

Aufgaben zu C#                                                                        2
1 Erste Woche

  Bedeutung               Operator          Beispiel
  Subtraktion
  Inkrement um 1
  Inkrement
  Division
  Multiplikation
  Dekrement um 1
  Dekrement
  Vorzeichen
  Konkanetation

Aufgabe 1.3.2 In welcher statischen Klasse finden Sie weitere mathematische Funktio-
nen, wie die Quadratwurzel oder den Sinus?

Aufgabe 1.3.3 Füllen Sie Tabelle 3 aus. Geben Sie zu jeder Funktion den Funktions-
namen und ein Beispiel an.

                       Tabelle 3: Mathematische Funktionen
  Bedeutung               Name              Beispiel
  Sinus                   Math.Sin()        dX = Math.Sin(dWinkel);
  Cosinus
  Tangens
  Quadratwurzel
  XY
  Minimum
  Maximum
  Runden
  Vorzeichen
  Logarithmus

                                                                      a, b bekannt.
Aufgabe 1.3.4 Bei einem rechtwinkligem Dreieck sind die Kathetenlängen√
Berechnen Sie die Länge der Hypothenuse c mit Hilfe des Pythagoras c = a2 + b2 .

Aufgaben zu C#                                                                    3
2 Zweite Woche

Aufgabe 1.3.5 Schreiben Sie ein Programm mit folgenden Eigenschaften: Ermitteln
Sie die Lösungen x√1,2 aus der quadratischen Gleichung ax2 + bx + c = 0 mit Hilfe der
                      2
Formel: x1,2 = −b± 2ab −4ac

Aufgabe 1.3.6 Ein Grashalm mit einem Durchmesser von 5mm kann eine Höhe von
1.2m erreichen. Wie hoch müsste ein entsprechender Turm aus Stahlbeton mit einem
Durchmesser von 15m sein? Welches Volumen an Stahlbeton müsste dazu verwendet
werden, wenn man von einer Wandstärke mit 50cm ausginge?

Aufgabe 1.3.7 Erweitern Sie die Berechnungen um die Tastatureingaben.

1.4 Vierter Tag
Aufgabe 1.4.1 Schreiben Sie ein Programm mit folgenden Eigenschaften: Der Anwen-
der will sein Passwort ändern. Dazu soll er zuerst sein altes Passwort eingeben. Das
alte Passwort heißt ”K90bbg6” . Stimmt die Eingabe mit dem alten Passwort überein,
soll er ein neues Passwort eingeben. Das Passwort soll zur Sicherheit wiederholt werden.
Wenn beide Eingaben gleich sind, wird dass Passwort akzeptiert, ansonsten sollen beide
Eingaben wiederholt werden.

Aufgabe 1.4.2 Erweitern Sie das Programm um folgende Eigenschaften: Das Passwort
sollte mindestens 6 Zeichen lang sein, mindestens eine Zahl, mindestens einen Groß- und
einen Kleinbuchstaben enthalten. Falls eines der Bedingungen nicht zutrifft, sollte eine
Warnung ausgegeben werden.

2 Zweite Woche

2.1 Erster Tag
Aufgabe 2.1.1 Erstellen Sie eine zur Aufgabe 1.2.1 auf Seite 2 passende Windows-Foms
Anwendung (siehe Abbildung 1 auf der nächsten Seite) mit folgenden Eigenschaften:
   • Es gibt drei TextBoxen für die zwei Kantenlängen und die Höhe. Diese sollen
     rechtsbündig justiert sein.
   • Die Vorbelegungen entsprechen der ursprünglichen Aufgabenstellung und werden
     in cm angegeben.
   • In einem Label wird das Volumen in cm3 ausgegeben. Das Volumen wird wie
     folgt berechnet: V = Grundf läche ∗ H öhe = abh
   • In einem Label wird die Mantelfläche in cm2 ausgegeben. Die Mantelfläche wird
     wie folgt berechnet: M = 2(ab + ah + bh)

Aufgaben zu C#                                                                        4
2 Zweite Woche

   • Schon beim Start werden mit den Werten der Vorbelegung die Ergebnisse ange-
     zeigt.
   • Werden formal falsche Eingaben gemacht oder negative Werte eingegeben, soll eine
     Fehlermeldung in den beiden Ergebnislabels stehen.
   • Die Berechnung wird ausgelöst, wenn eines der drei Felder verlassen wird.
   • Bei Betätigung des Buttons ”Beenden”, wird die Anwendung beendet.

Abbildung 1: Volumen und Mantelfäches eines geraden Prismas mit rechteckiger
             Grundfläche

2.2 Zweiter Tag
Aufgabe 2.2.1 Erstellen Sie eine zur Aufgabe 1.3.4 auf Seite 3 passende Windows-Foms
Anwendung (siehe Abbildung 2 auf der nächsten Seite) mit folgenden Eigenschaften:
   • Es gibt zwei Textboxen für die zwei Kathetenlängen.
   • Die Textboxen sollen rechtsbündig justiert sein.
   • Die Vorbelegungen sind 1.0 und werden in cm angegeben.
   • In einem Label wird die Länge der Hypothenuse in cm ausgegeben.
   • Schon beim Start werden mit den Werten der Vorbelegung die korrekten Ergebnisse
     angezeigt.
   • Werden formal falsche Eingaben gemacht oder negative Werte eingegeben, soll
     eine Fehlermeldung in einer Messagebox erscheinen. Im Ergebnislabel soll ”Error”
     stehen.
   • Die Berechnung wird ausgelöst, wenn eines der beiden Felder verlassen wird.
   • Bei Betätigung des Buttons ”Beenden”, wird die Anwendung beendet.

Aufgaben zu C#                                                                     5
2 Zweite Woche

                   Abbildung 2: Rechtwinkliges Dreieck, Version 1

Aufgabe 2.2.2 Erweitern Sie die Aufgabe um eine Zeichnung des rechtwinkligen Drei-
ecks (siehe Abbildung 3 auf der nächsten Seite).
   • Fügen Sie ein Label und eine TextBox für den Maßstab hinzu. Die Vorbelegung
     ist 1.0.
   • Ein Verlassen des Maßstabes soll ein Neuzeichnen zur Folge haben.
   • Das Gleiche gilt für das Verlassen der Längeneingaben.
   • Fügen Sie eine PictureBox hinzu. In diese soll das Dreieck gezeichnet werden.
     Die Hintergrundfarbe ist Color.White
   • Zeichnen Sie das Dreieck. Der Einfachheit halber gilt: 1cm =
                                                                b 100px. Die Linie a
     ist horizontal b vertikal.
   • Die drei Seiten sollen unterschiedliche Farben haben. Die Hypothenuse hat die
     Farbe Color.Red.

Aufgabe 2.2.3 Ersetzen Sie die Eingabe des Maßstabs in einer Textbox durch ein
NumericUpDown (siehe Abbildung 4 auf der nächsten Seite). Der Werteberech soll
von 0, 1 bis 2, 0 sein. Sein Inkrement 0, 1. Eine direkte Eingabe der Werte soll nicht
möglich sein (ReadOnly auf true).

2.3 Dritter Tag
Aufgabe 2.3.1 Erstellen Sie eine zur Aufgabe 1.3.5 auf Seite 3 passende Windows-Form
Anwendung mit folgenden Eigenschaften:
   • Es stehen drei TextBoxen für die drei Kooefizienten zur Verfügung.
   • Die Lösungen x1 und x2 werden in zwei Labels ausgeben.
   • Die Anzahl der Lösungen wird in einem dritten Label ausgeben.

Aufgaben zu C#                                                                      6
2 Zweite Woche

                 Abbildung 3: Rechtwinkliges Dreieck, Version 2

                 Abbildung 4: Rechtwinkliges Dreieck, Version 3

Aufgaben zu C#                                                                 7
2 Zweite Woche

   • Eingabefehler werden ebenfalls in diesem Label ausgegeben.
   • Die Startkoeffzienten sind: a = 1, 0, b = −1.0 und c = 0, 5.
   • Die Lösungen werden gleich am Anfang und nach jeder Wertänderung (nach Ver-
     lassen) ermittelt.

Aufgabe 2.3.2 Programmieren Sie ein Cäsar-Verschlüsselung (siehe Abbildung 5 auf
der nächsten Seite). In einer Textbox (Multiline = True, AcceptsReturn =
true) geben Sie den Klartext ein. In einem NumericUpDown (Minimum: 0, Maximum:
255, Inkrement: 1) legen Sie fest, um welche Stelle die Buchstaben verschoben werden
sollen. In einer TextBox (wie oben, aber ReadOnly) soll das Ergebniss ausgegeben
werden. Wichtig: Sonderzeichen mit dem Acsii-Code
2 Zweite Woche

                     Abbildung 5: Einfache Cäsar-Verschlüsselung

   • Von ◦ Celius TC nach ◦ Kelvin TK : TK = TC + 273, 15
   • Von ◦ Kelvin TK nach ◦ Celius TC : TC = TK − 273, 15
Dabei müssen einige Regeln beachtet werden: Ist die Ursprungseinheit ◦ Celsius, so kann
die Temperatur nicht kälter als −273, 15 sein. Ist die Ursprungseinheit ◦ F ahrenheit,
analog. Ist die Ursprungseinheit ◦ Kelvin, so ist der kleinste Wert 0. Werden diese Regeln
verletzt oder eine formal falsche Temperaturangabe gemacht, soll eine Fehlermeldung
(wie oder wie auch immer) erscheinen.
Vorbelegung: Temperatur = ”20,0” und die Umrechnung von ◦ Celsius nach ◦ F ahrenheit.
Wertänderungen oder eine andere Umrechnungsaufgabe lösen eine Berechnung des Er-
gebnisses aus. Bitte beachten Sie, dass die Maßeinheiten sich in der Oberfläche auch
anpassen müssen. Die Nachkommastellen sollen auf drei Stellen rerundet werden.

Aufgabe 2.4.3 Erstellen Sie eine Windows-Form Anwendung (siehe Abb. 8 auf Sei-
te 11) zur Berechnung des Widerstands einer Parallelschaltung.
   • In einer TextBox kann ein Widerstandswert in Ω eingegeben werden. Dieser wird
     einer List von double-Werten hinzugefügt.
   • Neben der TextBox steht ein Button mit der Aufschrift ”Hinzufügen”. Dieser ist
     inaktiv, wenn der Inhalt der TextBox kein gültiger double ist.
   • Die erfassten Widerstandswerte werden in einer ListBox dargestellt. Versuchen
     herauszufinden, wie Sie den Inhalt einer List mit einer ListBox ver-
     knüpfen können (DataSource).

Aufgaben zu C#                                                                          9
3 Dritte Woche

   Abbildung 6: Umrechnung            von    Abbildung 7: Umrechnung             von
                ◦                                         ◦
                  Celsius     TC     nach                   F ahrenheit    TF   nach
                ◦                                         ◦
                  F ahrenheit TF                            Celsius TC

   • Es gibt einen Button mit der Ausfschrift ”Letzten Wert löschen”. Dieser ist nur
     aktiv, wenn mindestens ein Wert erfasst wurde. Wird er betätigt, wird der letzte
     Wert der Liste gelöscht.
   • Es gibt einen Button mit der Ausfschrift ”Alle Werte löschen”. Dieser ist nur
     aktiv, wenn mindestens zwei Werte erfasst wurden. Wird er betätigt, werden alle
     Werte der Liste gelöscht.
   • In einem Label wird der Gesamtwiderstand in Ω ausgegeben. Die Formel lautet:
                 1
     RG = 1 + 1 +...+ 1 . Der Wert wird nur berechnet, wenn mindestens ein Wert
             R1   R2   RN
     erfasst wurde.

3 Dritte Woche
In dieser Woche soll ein Adress-Editor erstellt werden. Die Arbeit wird auf mehrere Tage
verteilt.

3.1 Erster Tag
Aufgabe 3.1.1 Legen Sie in einem Windows-Form Projekt eine neue Klasse Adresse
an. Diese Klasse hat folgende private Felder:
   • m_strNachname : String
   • m_strVorname : String

Aufgaben zu C#                                                                         10
3 Dritte Woche

  Abbildung 8: Widerstand     Parallel-     Abbildung 9: Widerstand    Parallel-
               schaltung mit nur einem                   schaltung mit mehreren
               Wert                                      Werten

   • m_strStrasse : String
   • m_strHausnummer : String
   • m_strPostleitzahl : String
   • m_strOrt : String

Aufgabe 3.1.2 Kapseln Sie die Felder mit Eigenschaften. Erweitern Sie diese Klas-
sen um die Felder (mit ihren Eigenschaften), die Ihnen auch wichtig sind (z.B. EMail-
Adresse, ICQ etc.).

Aufgabe 3.1.3 Fügen Sie im der Formularklasse eine Liste von Adressen hinzu:
List m_lstAdressen.

Aufgabe 3.1.4 Fügen Sie ihm ebenfalls einen Button mit dem Text ”Neu” hinzu.
Wenn man auf diesen drückt, soll sich der Text in ”Sichern” ändern und die Eingabefel-
der sollen leer sein. Die Eingabefelder sind dann nicht mehr ReadOnly. Wird nun auf
”Sichern” gedrückt, wird ein neues Adresse-Objekt angelegt und in die Liste gespei-
chert. Der Text auf dem Button wird wieder ”Neu” und die Eingabefelder ReadOnly.
Der Inhalt der Eingabefelder ist immer die zuletzt angelegte Adresse.
Erstellen Sie dazu folgende Methoden:
   • void SetReadOnly(bool bWert) Diese Methode setzt die ReadOnly-Ei-
     genschaft aller Eingabefelder auf den Wert bWert. Mit dieser Methode kann man
     dann die Eingabefelder hin- und herschalten.

Aufgaben zu C#                                                                     11
3 Dritte Woche

   • void SetEmpty() Diese Methode setzt / leert die Eingabefelder auf den Leer-
     string. Mit dieser Methode kann man bei ”Neu” die Eingabefelder leeren.
   • Adresse Eingabe2Adresse() Diese Methode erzeugt ein neues Adresse-
     Objekt. Anschließend kopiert diese Methode die Inhalte der TextBoxen in das
     neu erzeugte Adresse-Objekt. Mit return wird dieses neue Objekt dann zu-
     rückgeliefert. Mit Hilfe dieser methode kann man sich die Eingaben zu einem
     Adresse-Objekt umbauen lassen, um es dann der Liste hinzuzufügen.
Aufgabe 3.1.5 Zusatzaufgabe: Fügen Sie ein StatusStrip hinzu, der die Anzahl der
Adressen ausgibt.
Am Ende dieses Tages sollte die Anwendung wie in Abbildung 10 aussehen.

  Abbildung 10: Adressverwaltung     1.0   Abbildung 11: Adressverwaltung 1.0
                nach dem Start                           nach Adresseeingabe

3.2 Zweiter Tag
Aufgabe 3.2.1 Wir wollen durch den Adressbestand blättern. Fügen Sie einen Button
mit dem Text ”Vor” und einem mit ”Zurück” hinzu.
    • Wird die letzte Adresse in der Liste angezeigt, ist der ”Vor” inaktiv.
    • Wird ”Vor” gedrückt, wird die nächste Adresse in der List angezeigt.
    • Wird die erste Adresse in der Liste angezeigt, ist der ”Zurück” inaktiv.
    • Wird ”Zurück” gedrückt, wird die vorherige Adresse in der List angezeigt.
Tipp: Sie brauchen eine Variable, die sich merkt, an welcher Stelle in der List man
sich gerade befindet und eine Methode, die das Adresse-Objekt mit dem Index in die
Eingabefelder kopiert (void Adresse2Eingaben()).
Aufgabe 3.2.2 Zusatzaufgabe: In der Statusleiste steht in Hinweis der Art: ”Adresse 5
von 10”.

Aufgaben zu C#                                                                    12
3 Dritte Woche

   Abbildung 12: Adressverwaltung      2.0   Abbildung 13: Adressverwaltung 2.0
                 nach dem Start                            nach Adresseeingabe

3.3 Dritter Tag
Aufgabe 3.3.1 Fügen Sie einen Button mit dem Text ”Speichern” hinzu. Wird er
geklickt, erscheint ein SaveFileDialog. Seine Standardextension ist xml und seine
Filter ”Alle Dateien” und ”xml-Dateien”.
Die Adressen werden anschließend über den XmlSerializer gespeichert. Bitte beach-
ten Sie, dass dazu die Adresse-Klasse öffentlich sein muss!

Aufgabe 3.3.2 Fügen Sie einen Button mit dem Text ”Laden” hinzu. Wird er geklickt,
erscheint ein OpenFileDialog. Seine Standardextension ist xml und seine Filter ”Alle
Dateien” und ”xml-Dateien”.
Die Adressen werden anschließend über den XmlSerializer geladen. Die vorhande-
ne Adressliste wird dabei gelöscht. Bitte beachten Sie, dass die Variable, die sich ihre
aktuelle Adressposition merkt, zurückgesetzt werden muss, damit der erste Datensatz
angezeigt wird.

3.4 Vierter Tag
Aufgabe 3.4.1 Fügen Sie einen Button mit dem Text ”Bearbeiten” hinzu. Wenn die-
ser gedrückt wird, wird der aktuell angezeigte Datensatz bearbeitet. Der Button soll
inaktiv sein, wenn noch keine Adresse erfasst wurde oder man gerade eine neue Adres-
se erstellt. Während der Erfassung einer neuen Adresse und einer Änderung sollen die
Navigationsbuttons inaktiv sein.
Wird gerade ein Datensatz bearbeitet, sollen alle anderen Buttons inaktiv sein und
sich der Text von ”Bearbeiten” in ”Übernehmen” ändern. Wird ”Übernehmen” gedrückt,

Aufgaben zu C#                                                                       13
3 Dritte Woche

werden die Änderungen übernommen und TextBoxen und Buttons sind wieder wie
vorher.
Beispiele siehe Abbildung 14. Die erste Abbildung zeigt das Ausgrauen bei leerem Da-
tenbestand und die zweite bei einer Änderung. Man beachte die veränderte Beschriftung!

  Abbildung 14: Adressverwaltung      3.0   Abbildung 15: Adressverwaltung     3.0
                nach dem Start                            ”Bearbeiten”

Aufgaben zu C#                                                                       14
Sie können auch lesen