Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 8,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 12 Beispielprojekte
  Pfeil 12.1 Spielprogramm Tetris
    Pfeil 12.1.1 Spielablauf
    Pfeil 12.1.2 Programmbeschreibung
    Pfeil 12.1.3 Steuerelemente
    Pfeil 12.1.4 Initialisierung des Programms
    Pfeil 12.1.5 Erzeugen eines neuen Blocks
    Pfeil 12.1.6 Der Zeitgeber
    Pfeil 12.1.7 Blöcke löschen
    Pfeil 12.1.8 Blöcke seitlich bewegen
    Pfeil 12.1.9 Blöcke nach unten bewegen
    Pfeil 12.1.10 Pause
  Pfeil 12.2 Lernprogramm Vokabeln
    Pfeil 12.2.1 Benutzung des Programms
    Pfeil 12.2.2 Erweiterung des Programms
    Pfeil 12.2.3 Initialisierung des Programms
    Pfeil 12.2.4 Ein Test beginnt
    Pfeil 12.2.5 Zwei Hilfsprozeduren
    Pfeil 12.2.6 Die Antwort prüfen
    Pfeil 12.2.7 Das Benutzermenü


Galileo Computing - Zum Seitenanfang

12.2 Lernprogramm Vokabeln  Zur nächsten ÜberschriftZur vorigen Überschrift

In diesem Abschnitt wird ein kleines, erweiterungsfähiges Vokabel-Lernprogramm (p1202) vorgestellt. Es beinhaltet:

  • eine Datenbank als Basis
  • ein Hauptmenü
  • eine Listenverarbeitung
  • einen Zufallsgenerator
  • eine Benutzerführung, abhängig vom Programmzustand

Galileo Computing - Zum Seitenanfang

12.2.1 Benutzung des Programms  Zur nächsten ÜberschriftZur vorigen Überschrift

Nach dem Start erscheint die Benutzeroberfläche (siehe Abbildung 12.2).

Abbildung 12.2  Benutzeroberfläche

Hauptmenü

Das Hauptmenü besteht aus:

  • Menü Allgemein, dieses Menü wiederum besteht aus
  • Menüpunkt Test beenden: vorzeitiger Testabbruch
  • Menüpunkt Programm beenden
  • Menü Richtung: zur Auswahl und Anzeige der Richtung für Frage und Antwort
  • Menüpunkt deutschenglisch
  • Menüpunkt englischdeutsch (Voreinstellung)
  • Menüpunkt deutschfranzösisch
  • Menüpunkt französischdeutsch
  • Menü Hilfe
  • Menüpunkt Anleitung: eine kurze Benutzer-Anleitung

Der Benutzer kann entweder die Richtung für Frage und Antwort wählen oder sofort einen Vokabeltest in der Voreinstellung englischdeutsch starten.

Start

Nach der Betätigung des Buttons Test starten erscheint die erste Vokabel, der Button wird deaktiviert, und der Button Prüfen/Nächster wird aktiviert:

Abbildung 12.3  Test läuft

Nachdem der Benutzer eine Übersetzung eingegeben und den Button betätigt hat, wird seine Eingabe geprüft und es erscheint ein Kommentar:

    Richtig

  • Falls er die richtige Übersetzung eingegeben hat, wird diese Vokabel aus den Listen entfernt. Er wird nicht mehr danach gefragt.

    Falsch

  • Falls er nicht die richtige Übersetzung eingegeben hat, wird mit dem Kommentar die korrekte Übersetzung angezeigt, sodass der Benutzer sie erlernen kann.

    Abbildung 12.4  Falsche Antwort

Nächste

Anschließend erscheint die nächste Vokabel. Diese wird aus der Liste der noch vorhandenen Vokabeln ausgewählt. Enthalten die Listen keine Vokabeln mehr, weil alle Vokabeln einmal richtig übersetzt wurden, ist der Test beendet. Der Button Test starten wird wieder aktiviert und der Button Prüfen/Nächster wird deaktiviert.

Der Benutzer kann eine andere Richtung wählen und wiederum einen Test beginnen.


Galileo Computing - Zum Seitenanfang

12.2.2 Erweiterung des Programms  Zur nächsten ÜberschriftZur vorigen Überschrift

Dieses Programm kann als Basis für ein größeres Projekt dienen. Es gibt viele Möglichkeiten zur Erweiterung des Programms:

  • Der Benutzer soll die Möglichkeit zur Eingabe weiterer Vokabeln haben.
  • Der Entwickler fügt weitere Sprachen und Richtungen für Frage und Antwort hinzu.
  • Der Benutzer kann die Test-Auswahl auf eine bestimmte Anzahl an Vokabeln begrenzen.
  • Der Entwickler kann die Vokabeln in Kategorien unterteilen.
  • Der Benutzer kann Tests nur noch mit Fragen aus einer (oder mehreren) Kategorien machen.
  • Es kann zu einer Frage mehrere richtige Antworten geben.
  • Der Entwickler kann das Programm als ASP.NET Anwendung internetfähig machen.
  • Der Entwickler fügt eine Zeitsteuerung per Timer hinzu. Der Benutzer hat dann nur noch eine bestimmte Zeitspanne für seine Antwort.
  • Viele andere Erweiterungen sind denkbar.

Galileo Computing - Zum Seitenanfang

12.2.3 Initialisierung des Programms  Zur nächsten ÜberschriftZur vorigen Überschrift

Zu Beginn werden die modulweiten Variabeln vereinbart und die Formular-Load-Prozedur durchlaufen:

Public Class frm1202 
   ' Liste der Fragen 
   Dim frage As New List(Of String) 
 
   ' Liste der Antworten 
   Dim antwort As New List(Of String) 
 
   ' Zufallszahl für ein Element der beiden Listen 
   Dim zufallszahl As Integer 
 
   ' Richtung der Vokabel-Abfrage 
   Dim richtung As Integer 
 
   Private Sub frm1202_Load( ... ) Handles MyBase.Load 
      ' Initialisierung des Zufallsgenerators 
      Randomize() 
      ' Startrichtung Englisch - Deutsch 
      richtung = 2 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung:

  • Die beiden Listen frage und antwort beinhalten im weiteren Verlauf des Programms die Fragen und zugehörigen Antworten je nach gewählter Testrichtung. Die Zusammengehörigkeit von Frage und Antwort ergibt sich daraus, dass die beiden zusammengehörigen Elemente der beiden Listen mit dem gleichen Index angesprochen werden.

    Zufallsgenerator

  • Der Index wird im weiteren Verlauf des Programms per Zufallsgenerator bestimmt und in der Variablen zufallszahl gespeichert.
  • Die Richtung für Frage und Antwort kann der Benutzer über das Benutzermenü auswählen.
  • Der Zufallsgenerator wird initialisiert, damit er nicht immer mit dem gleichen Wert beginnt.
  • Falls der Benutzer keine andere Richtung für Frage und Antwort auswählt, wird mit der Richtung englisch – deutsch begonnen.

Galileo Computing - Zum Seitenanfang

12.2.4 Ein Test beginnt  Zur nächsten ÜberschriftZur vorigen Überschrift

Nachdem der Benutzer den Button Start betätigt hat, beginnt der Test. Der Code der zugehörigen Ereignisprozedur (ebenfalls in p1202) lautet:

Public Class frm1202 
[ ... ] 
   Private Sub cmdStart_Click( ... ) Handles ... 
      Dim con As New OleDb.OleDbConnection 
      Dim cmd As New OleDb.OleDbCommand 
      Dim reader As OleDb.OleDbDataReader 
 
      con.ConnectionString = _ 
         "Provider=Microsoft.Jet.OLEDB.4.0;" & _ 
         "Data Source=C:\Temp\lernen.mdb" 
      cmd.Connection = con 
      cmd.CommandText = "select * from vokabel" 
 
      Try 
         con.Open() 
         reader = cmd.ExecuteReader() 
 
         ' Speicherung in den Listen gemäß 
         ' ausgewählter Richtung 
         Do While reader.Read() 
            If richtung = 1 Or richtung = 3 Then 
               frage.Add(reader("deutsch")) 
            ElseIf richtung = 2 Then 
               frage.Add(reader("englisch")) 
            Else 
               frage.Add(reader("französisch")) 
            End If 
            If richtung = 2 Or richtung = 4 Then 
               antwort.Add(reader("deutsch")) 
            ElseIf richtung = 1 Then 
               antwort.Add(reader("englisch")) 
            Else 
               antwort.Add(reader("französisch")) 
            End If 
         Loop 
 
         reader.Close() 
         con.Close() 
 
         ' Buttons und Menü (de)aktivieren 
         cmdStart.Enabled = False 
         cmdPrüfen.Enabled = True 
         mnuRichtung.Enabled = False 
 
         ' Erste Vokabel erscheint 
         Nächste_Vokabel() 
 
      Catch ex As Exception 
         MsgBox(ex.Message) 
      End Try 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung:

    Datenbank

  • Eine Verbindung zur MS Access-Datenbank C:\Temp\lernen.mdb wird geöffnet.
  • Es wird eine Auswahl-Abfrage gesendet, die alle Datensätze der Tabelle vokabel anfordert.

    OleDbReader

  • Die zurückgegebenen Datensätze werden einem OleDbReader übergeben. Beim Auslesen des Readers werden die beiden Listen frage und antwort mithilfe der Methode Add() mit den Inhalten der jeweiligen Felder gefüllt, abhängig von der jeweils eingestellten Richtung für Frage und Antwort.

    Button deaktivieren

  • Der Button Test starten und das Menü für die Richtung werden deaktiviert, damit sie nicht versehentlich während eines Tests bedient werden können.
  • Der Button Prüfen/Nächster wird aktiviert, damit der Benutzer seine Antwort überprüfen lassen kann.
  • Die Prozedur Nächste_Vokabel() dient zum Aufruf einer zufällig ausgewählten Vokabel aus der Liste frage.

Galileo Computing - Zum Seitenanfang

12.2.5 Zwei Hilfsprozeduren  Zur nächsten ÜberschriftZur vorigen Überschrift

Die beiden Hilfsprozeduren Nächste_Vokabel() und Test_Init() werden von verschiedenen Stellen des Programms aufgerufen:

Public Class frm1202 
[ ... ] 
   Sub Nächste_Vokabel() 
      ' Falls keine Vokabel mehr in der Liste: Ende 
      If frage.Count < 1 Then 
         MsgBox("Gratuliere! Alle Vokabeln geschafft") 
         Test_Init() 
 
      ' Falls noch Vokabeln in der Liste: Nächste 
      Else 
         zufallszahl = Rnd() * (frage.Count - 1) 
         lblFrage.Text = frage(zufallszahl) 
         txtAntwort.Text = "" 
      End If 
   End Sub 
 
   Sub Test_Init() 
      ' Buttons und Menü (de)aktivieren 
      cmdStart.Enabled = True 
      cmdPrüfen.Enabled = False 
      mnuRichtung.Enabled = True 
 
      ' Felder leeren 
      lblFrage.Text = "" 
      txtAntwort.Text = "" 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung der Prozedur Nächste_Vokabel():

  • Bei einer richtigen Antwort werden Frage und Antwort aus der jeweiligen Liste gelöscht. Daher sind die Listen nach einiger Zeit leer. Mithilfe der Eigenschaft Count wird dies geprüft.

    Test bestanden

  • Sind die Listen leer, so erscheint eine Erfolgsmeldung über den bestandenen Test. Der Startzustand der Benutzeroberfläche wird wiederhergestellt.
  • Sind die Listen noch nicht leer, wird eine Zufallszahl ermittelt. Der zugehörige Begriff wird eingeblendet, und das Eingabefeld wird gelöscht.

Zur Erläuterung der Prozedur Test_Init():

  • Die Prozedur dient zum Wiederherstellen des Startzustands der Benutzeroberfläche.

    Button aktivieren

  • Der Button Test starten und das Menü für die Richtung werden aktiviert, damit ein Test gestartet bzw. eine neue Richtung gewählt werden kann.
  • Der Button Prüfen/Nächster wird deaktiviert, damit er nicht versehentlich außerhalb eines Tests bedient werden kann.
  • Die alten Einträge werden aus den beiden Feldern für Frage und Antwort gelöscht.

Galileo Computing - Zum Seitenanfang

12.2.6 Die Antwort prüfen  Zur nächsten ÜberschriftZur vorigen Überschrift

Nachdem der Benutzer den Button Prüfen/Nächster betätigt hat, wird die eingegebene Antwort überprüft. Der Code der zugehörigen Ereignisprozedur (ebenfalls in p1202) lautet wie folgt:

Public Class frm1202 
[ ... ] 
   Private Sub cmdPrüfen_Click( ... ) Handles ... 
      ' Falls richtig beantwortet: 
      ' Vokabel aus Liste nehmen 
      If txtAntwort.Text = antwort(zufallszahl) Then 
         MsgBox("Richtig", , "Vokabel") 
         frage.RemoveAt(zufallszahl) 
         antwort.RemoveAt(zufallszahl) 
 
      ' Falls falsch beantwortet: richtige Antwort nennen 
      Else 
         MsgBox("Falsch, die richtige Antwort ist " & _ 
                vbCrLf & "'" & antwort(zufallszahl) & _ 
                "'", , "Vokabel") 
      End If 
 
 
      ' Nächste Vokabel erscheint 
      Nächste_Vokabel() 
   End Sub 
[ ... ] 
End Class

Zur Erläuterung:

  • Steht im Text-Eingabefeld dasselbe wie im Element der Liste antwort, das zum Element der Liste frage gehört, so war die Antwort korrekt.

    Elemente löschen

  • Es erfolgt eine Meldung. Frage und Antwort werden mithilfe der Methode RemoveAt() aus ihren jeweiligen Listen gelöscht, sodass die Listen irgendwann leer sind.

    Falsche Antwort

  • Bei einer falschen Antwort erfolgt eine Meldung, die auch die richtige Übersetzung beinhaltet. Frage und Antwort werden nicht gelöscht. Auf diese Weise kann die gleiche Frage später erneut gestellt werden.
  • Es wird die nächste Frage gestellt, und die beschriebene Prozedur beginnt von vorn.

Galileo Computing - Zum Seitenanfang

12.2.7 Das Benutzermenü  topZur vorigen Überschrift

In insgesamt sieben kurzen Ereignisprozeduren und mithilfe einer Hilfsprozedur wird die Bedienung des Benutzermenüs realisiert (ebenfalls in p1202):

Public Class frm1202 
[ ... ] 
   Private Sub mnuEndeTest_Click() Handles ... 
      ' Abbruch mit Rückfrage 
      If MsgBox("Wollen Sie den Text wirklich " _ 
               & "abbrechen?", MsgBoxStyle.YesNo, _ 
               & "Vokabel") = MsgBoxResult.Yes Then 
         Test_Init() 
      End If 
   End Sub 
 
   Private Sub mnuEndeProgramm_Click( ... ) Handles ... 
      ' Beenden mit Rückfrage 
      If MsgBox("Wollen Sie das Programm wirklich " _ 
            & "beenden?", MsgBoxStyle.YesNo, _ 
            "Vokabel") = MsgBoxResult.Yes Then 
         Me.Close() 
      End If 
   End Sub 
 
   Private Sub mnuDE_Click( ... ) Handles ... 
      ' Richtung wird geändert 
      richtung = 1 
      Check_False() 
      mnuDE.Checked = True 
   End Sub 
 
   Private Sub mnuED_Click( ... ) Handles ... 
      richtung = 2 
      Check_False() 
      mnuED.Checked = True 
   End Sub 
 
   Private Sub mnuDF_Click( ... ) Handles ... 
      richtung = 3 
      Check_False() 
      mnuDF.Checked = True 
   End Sub 
 
   Private Sub mnuFD_Click( ... ) Handles ... 
      richtung = 4 
      Check_False() 
      mnuFD.Checked = True 
   End Sub 
 
   Sub Check_False() 
      mnuDE.Checked = False 
      mnuED.Checked = False 
      mnuDF.Checked = False 
      mnuFD.Checked = False 
   End Sub 
 
   Private Sub mnuAnleitung_Click( ... ) Handles ... 
      MsgBox("Bestimmen Sie die Richtung von Frage " _ 
         & "und Antwort." & vbCrLf & "Starten Sie " _ 
         & "den Test." & vbCrLf & "Sie werden nach " _ 
         & "den Übersetzungen der Vokabeln so lange " _ 
         & "gefragt, bis Sie alle richtig übersetzt " _ 
         & "haben." & vbCrLf & "Bei einer falschen " _ 
         & "Antwort wird Ihnen die richtige Antwort " _ 
         & "genannt." , , "Vokabel") 
   End Sub 
End Class

Zur Erläuterung:

    Beenden

  • Im Hauptmenü Allgemein besteht die Möglichkeit, einen Test abzubrechen bzw. das Programm zu beenden. Zur Sicherheit wird in beiden Fällen noch einmal eine Rückfrage gestellt, damit kein Test versehentlich abgebrochen wird.

    Sprachen wählen

  • Im Hauptmenü Richtung können insgesamt vier Ereignisprozeduren zur Auswahl der Richtung von Frage und Antwort aufgerufen werden.
  • Es wird jeweils zunächst die modulweite Variable richtung auf einen neuen Wert gesetzt. Beim nächsten Start eines Tests werden dann die entsprechenden Inhalte aus der Datenbank in den beiden Listen frage und antwort gespeichert.
  • Anschließend wird dafür gesorgt, dass nur die soeben ausgewählte Richtung im Benutzermenü mit einem Häkchen versehen ist.
  • Im Hauptmenü Hilfe wird über den Menüpunkt Anleitung eine kleine Benutzeranleitung eingeblendet.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de