Projekt Chemie Tools und Projekt Zeitansage: Unterschied zwischen den Seiten

Aus ITA-Wiki
(Unterschied zwischen Seiten)
Wechseln zu: Navigation, Suche
itawiki>Bozkurt
 
itawiki>Marco Bakera
K (10 Versionen: Import aus dem Wiki der ITA11)
 
Zeile 1: Zeile 1:
{{Projektinfo| Aufwand=12 | Teamgröße=2-3 | Schwierigkeit=mittel | Kontakt=[[Benutzer:Bakera|Herr Bakera]]}}
+
{{Projektinfo| Aufwand=12 | Teamgröße=1-2 | Schwierigkeit=mittel-schwer | Kontakt=[[Benutzer:Bakera|Herr Bakera]]}}
  +
[[Datei:Uhr.gif|rechts]]
   
  +
==Kurzbeschreibung==
   
  +
Programmiere einen Server, der die aktuelle Uhrzeit an die Clients sendet. Programmiere einen Client, der die gesendete Uhrzeit empfangen und anzeigen kann.
   
  +
==Aufgabenbeschreibung==
==Kurzbeschreibung==
 
  +
[[Datei:Client-server.png|miniatur|rechts]]
   
  +
Bei diesem Projekt wird eine Anwendung aus zwei Komponenten aufgebaut werden: einem Client und einem Server.
Die Chemiker benötigen Hilfe. Sie müssen häufig ähnliche Berechnungen für ihre Versuche durchführen. Ein kleines Programm kann ihnen sicherlich die Arbeit erleichtern. Erleichtert ihnen ihren beruflichen Alltag mit einem kleinen Programm.
 
   
  +
Der Server ist eine Konsolenanwendung, die auf dem Port 4711 horcht.
== Auftrag==
 
   
  +
Der Client ist eine Windows-Forms-Anwendung. Sie besteht aus einem Textfeld und einem Button. Beim Klick auf den Button verbindet sich der Client auf den Port 4711 des Servers. Sobald eine Verbindung zwischen Client und Server hergestellt wurde, sendet der Server die aktuelle Uhrzeit und das aktuelle Datum als Text an den Client. Der Client zeigt die empfangene Uhrzeit und das Datum in einem Textfeld an.
Informiere dich über die tägliche Laborarbeit eines Chemikers und erstelle ein Programm, das ihn oder sie bei dieser Arbeit unterstützt.
 
   
== Meilensteine ==
+
==Meilensteine==
   
  +
# Erstelle für den Server und den Client jeweils ein Projekt.
# Bedarfsanalyse: Sprich mit einem CTA – ab jetzt Auftraggeber genannt – über seine Aufgaben im Labor und ermittle ein Problem, das du mit einem Programm lösen kannst.
 
  +
# Programmiere zuerst den Server. Er startet einen TCPListener auf dem lokalen Rechner auf der IP 127.0.0.1 auf Port 4711 und wartet auf eine Verbindung.
# Lasse dir von ihm oder ihr das Problem erklären und notiere dir, wie er oder sie das Problem gelöst hat. Was sind die Eingabewerte? Wie wird das Ergebnis berechnet? Wie soll das Ergebnis dargestellt werden?
 
  +
# (optional) Beim Start des Servers können der Port und die IP-Adresse als Kommandozeilenargument konfiguriert werden.
# Halte zwei wichtige Dinge in einer Dokumentation fest: (1) Was soll das Programm können und (2) skizziere, wie das Programm aussehen soll und wie es sich bedienen lassen soll.
 
  +
# Sobald eine Verbindung hergestellt wurde, fragt der Server die aktuelle Systemzeit über die Klasse DateTime ab.
# Lasse dir sinnvolle Eingabe- und Ausgabewerte geben, mit denen du das Programm später testen kannst.
 
  +
# Der Server wandelt Datum und Uhrzeit für den Versand über das Netzwerk in ein Byte-Array um.
# Erstelle einen Prototypen, der aus einer GUI ohne Funktionalitäten besteht.
 
  +
# Das Byte-Array wird über einen Stream gesendet.
# Erstelle ein Klassendiagramm, mit den wichtigen Klassen, um dein Problem zu lösen. Halte das Klassendiagramm in der Dokumentation fest.
 
# Programmiere die Klassen und steuere sie mit dem Prototypen sinnvoll an. Kommentiere den Quelltext an den wichtigen Stellen.
+
# Programmiere nun den Client. Erstelle die GUI entsprechend den Anforderungen.
  +
# Der Client baut eine Verbindung zum Server auf.
# Teste das Programm mit sinnvollen Eingabe- und Ausgabewerten. Halte die Testergebnisse in einer Dokumentation fest und korrigiere Fehler, die du hierbei noch entdeckst.
 
  +
# Aus dem Stream der Verbindung liest der Client die gesendete Nachricht aus.
# Stelle das Programm in einer kurzen Präsentation bei deinem Auftraggeber vor. Wenn er zufrieden ist, bist du es auch.
 
  +
# Die empfangene Nachricht wird in der GUI ausgegeben.
# (optional) Dein Auftraggeber hat vielleicht noch eine Idee für eine Erweiterung deines Programms. Halte diese mögliche Erweiterung in deiner Dokumentation fest.
 
  +
# Teste das Programm. Führen Netzwerkprobleme zum Absturz des Programms? Funktioniert die Kommunikation auch zwischen unterschiedlichen Rechnern? Können mehrere Clients gleichzeitig auf den Server zugreifen? Wie viele sind es maximal? Halte die Ergebnisse in einer Dokumentation fest und korrigiere Fehler, die du hierbei noch entdeckst.
# (optional) Erweitere dein Programm um die neue Funktionalität.
 
  +
# Erstelle eine Dokumentation, die allgemein erklärt, wie man eine Client-Server-Anwendung unter C# programmiert.
   
  +
==Ressourcen==
== Projektgruppen ==
 
   
  +
* Die MSDN-Dokumentation der Klassen IPAdress, TCPClient, TCPListener und NetworkStream in den Namensräumen System.Net und System.Net.Sockets.
Bitte tragt euch für ein Projekt im Artikel [[Projekte von Herrn Bakera]] ein.
 
  +
* Die Klasse DateTime
   
== Ressourcen ==
+
== Projektgruppen ==
Ein Chemiker als Auftraggeber.
 
   
  +
Bitte tragt euch für ein Projekt im Artikel [[Projekte von Herrn Bakera]] ein.
== Vorschläge zu Feature´s ==
 
   
  +
== Dateien/Links ==
- Als App für Android, Blackbarry, (iPhone) <br>
 
  +
* [https://www.lo-net2.de/link.php?files%7Cita11%40tbs1.nw.lo-net2.de%7C%2F1197%2CProjekttag%2F1230%2CProjekt+Zeitansage%7C/|Projekt Zeitansage] - Projektbeschreibung
- Drucken von Notizen <br>
 
- Umschreiben für Macbooks <br>
 

Version vom 28. Februar 2014, 18:45 Uhr

Projektinformationen
Aufwand (Ph) 12
Teamgröße 1-2
Schwierigkeitsgrad mittel-schwer
Ansprechpartner Herr Bakera
Projekttag

Kurzbeschreibung

Programmiere einen Server, der die aktuelle Uhrzeit an die Clients sendet. Programmiere einen Client, der die gesendete Uhrzeit empfangen und anzeigen kann.

Aufgabenbeschreibung

Bei diesem Projekt wird eine Anwendung aus zwei Komponenten aufgebaut werden: einem Client und einem Server.

Der Server ist eine Konsolenanwendung, die auf dem Port 4711 horcht.

Der Client ist eine Windows-Forms-Anwendung. Sie besteht aus einem Textfeld und einem Button. Beim Klick auf den Button verbindet sich der Client auf den Port 4711 des Servers. Sobald eine Verbindung zwischen Client und Server hergestellt wurde, sendet der Server die aktuelle Uhrzeit und das aktuelle Datum als Text an den Client. Der Client zeigt die empfangene Uhrzeit und das Datum in einem Textfeld an.

Meilensteine

  1. Erstelle für den Server und den Client jeweils ein Projekt.
  2. Programmiere zuerst den Server. Er startet einen TCPListener auf dem lokalen Rechner auf der IP 127.0.0.1 auf Port 4711 und wartet auf eine Verbindung.
  3. (optional) Beim Start des Servers können der Port und die IP-Adresse als Kommandozeilenargument konfiguriert werden.
  4. Sobald eine Verbindung hergestellt wurde, fragt der Server die aktuelle Systemzeit über die Klasse DateTime ab.
  5. Der Server wandelt Datum und Uhrzeit für den Versand über das Netzwerk in ein Byte-Array um.
  6. Das Byte-Array wird über einen Stream gesendet.
  7. Programmiere nun den Client. Erstelle die GUI entsprechend den Anforderungen.
  8. Der Client baut eine Verbindung zum Server auf.
  9. Aus dem Stream der Verbindung liest der Client die gesendete Nachricht aus.
  10. Die empfangene Nachricht wird in der GUI ausgegeben.
  11. Teste das Programm. Führen Netzwerkprobleme zum Absturz des Programms? Funktioniert die Kommunikation auch zwischen unterschiedlichen Rechnern? Können mehrere Clients gleichzeitig auf den Server zugreifen? Wie viele sind es maximal? Halte die Ergebnisse in einer Dokumentation fest und korrigiere Fehler, die du hierbei noch entdeckst.
  12. Erstelle eine Dokumentation, die allgemein erklärt, wie man eine Client-Server-Anwendung unter C# programmiert.

Ressourcen

  • Die MSDN-Dokumentation der Klassen IPAdress, TCPClient, TCPListener und NetworkStream in den Namensräumen System.Net und System.Net.Sockets.
  • Die Klasse DateTime

Projektgruppen

Bitte tragt euch für ein Projekt im Artikel Projekte von Herrn Bakera ein.

Dateien/Links