萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 739|回复: 1

请教各位高手一个C++编程题,急啊

[复制链接]
发表于 2005-12-21 12:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
Eine Wetterstation erhält von ihren Messstationen (die hier nicht näher betrachtet werden) in regelmäßigen Abständen aktuelle Messwerte. Zur Vereinfachung der Aufgabe wird nur eine einzige Messstation für die Temperatur angenommen; sie übermittelt ihre Daten, indem sie die Methode void setz_Temp(int temp) der Wetterstation aufruft. Die Wetterstation vergleicht diese mit einem intern gespeicherten Wert und speichert sie nur, wenn die Temperatur um mindestens 1 °C davon abweicht.

Jeder Interessent an den Wetterwerten kann sich bei der Wetterstation an- und auch wieder abmelden und bekommt, wenn er angemeldet ist, jede Änderung dadurch mitgeteilt, dass die Wetterstation seine Methode void update(int temp) aufruft. Er muss dazu das Interface Abonnent implementieren, das diese Methode deklariert (anders formuliert: Er muss dazu von der rein virtuellen Klasse Abonnent abgeleitet sein, die...).

Für die An- und Abmeldung stellt die Wetterstation die Methoden void attach(Abonnent *) und void detach(Abonnent *) zur Verfügung. Die Wetterstation verwaltet die Anmeldungen intern in einem STL-Container des Typs list. Ist ein Interessent, der sich anmeldet, bereits angemeldet, oder einer, der sich abmelden möchte, nicht angemeldet, wird eine domain_error-Exception mit entsprechendem Erläuterungstext geworfen ("Err: schon angemeldet bzw. "Err: nicht angemeldet").

Ein TestAbonnent implementiert das Interface Abonnent und definiert zusätzlich einen Konstruktor, der einen Zeiger auf die Wetterstation übernimmt, sowie die Methoden void anmelden() und void abmelden(), die in beliebiger Folge aufgerufen werden können. Der TestAbonnent gibt für jede aufgetretene Exception und jede empfangene update()-Meldung eine entsprechende Zeile auf der Konsole im folgenden Format aus

Err: schon angemeldet
Neue Temperatur: 26 Grad
Err: nicht angemeldet
...
Schreiben Sie

die Klassenvereinbarungen der Klassen Wetterstation, Abonnent und TestAbonnent in jeweils einer .h-Datei,

die Implementierung der Klassen Wetterstation und TestAbonnent in jeweils einer .cpp-Datei,

ein Testprogramm main() in der Datei main.cpp, das eine Wetterstation und zwei TestAbonnenten a und b erzeugt und dann folgende Testfolge ausführt:

a anmelden
b anmelden
24 ° melden
a anmelden
24 ° melden
a abmelden
23 ° melden
b abmelden
24 ° melden
b abmelden
Die Messstation wird dabei in der Weise simuliert, dass das Testprogramm der Wetterstation neue Temperaturwerte meldet. Bei korrekter Programmierung sollte sich die folgende Bildschirmausgabe ergeben:

Neue Temperatur: 24 Grad      
Neue Temperatur: 24 Grad
Err: schon angemeldet
Neue Temperatur: 23 Grad
Err: nicht angemeldet


谢谢啦!!!!!!!!!
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2005-12-21 14:14 | 显示全部楼层
这题不难,静下心来好好做,主要就是个login checking。找个学长引入门,大概要一两个小时。学会了,就可以开使写小程序挣钱了。

顶一顶,鼓励下。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-2-1 00:57 , Processed in 1.355709 second(s), 17 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表