004
05.12.2004, 15:03 Uhr
~CPluPlusFlo
Gast
|
Zitat von ~wajo: |
Servus, ich studiere im 1. Semester Mechatronik, d.h. hab erst seit ca. 2 Monaten mit C++ zu tun und habe ein kleines Problem bei einer Informatik-Übungsaufgabe. Kenne mich leider mit C++ noch nicht so gut aus . Aufgabe ist es, ein Ampelsimulationsprogramm zu schreiben, welches die jeweilige Ampelphase als Text am Bildschirm ausgibt (zsges. Datentyp enum mit mit gruen, gelb, rot und gelbrot). Dies soll über eine switch-Anweisung geschehen. Für die Dauer der Phasen soll die Funktion time (0), sowie der Header <ctime> verwendet werden. Mein Problem besteht darin, dass ich leider keine Ahnung hab, wie time (0) überhaupt zu verwenden ist, bzw. wie die Aufgabe gelöst werden kann. Wer kann mir helfen oder mir einige Tipps zur Verwendung von time (0) geben? Schon mal vielen Dank im voraus!!
|
Servus, Probiers mal damit:
C++: |
#include <iostream.h>
//Simulation einer Ampelschaltung
class Ampel {
public: Ampel(); Ampel(int zust); void weiter(); void anschalten(); int print(); int zustand; };
Ampel::Ampel() {
zustand=6; }
Ampel::Ampel(int zust) {
zustand=zust; }
void Ampel::anschalten(){
zustand=6;
}
void Ampel::weiter(){
if(zustand==6) {zustand=3;} else if (zustand==4) {zustand=0;} else {zustand++;}
}
int Ampel::print(){
switch(zustand) { case 0: cout<<"Die Ampel ist gruen"<<endl;break; case 1: cout<<"Die Ampel ist gruen blinkend"<<endl;break; case 2: cout<<"Die Ampel ist gelb"<<endl;break; case 3: cout<<"Die Ampel ist rot"<<endl;break; case 4: cout<<"Die Ampel ist rot und gelb"<<endl;break; case 6: cout<<"Die Ampel ist gelb blinkend"<<endl;break; default: cout<<"Fehler"<<endl; }
return 0;}
int afunkt() { int a; Ampel A; A.print(); do{ cout<<endl<<"Die Ampel weiterschalten(1)"<<endl; cout<<"Die Ampel ausschalten = auf gelb blinkend stellen(2)"<<endl; cout<<"Den Zustand der Ampel zeigen(3)"<<endl; cout<<"Ins Hauptmenue(4)"<<endl; cin>>a; switch(a){ case 1:A.weiter();cout<<endl;break; case 2:A.anschalten();cout<<endl;break; case 3:A.print();cout<<endl;break; }
}while (a!=4);
return A.print(); }
int nfunkt(){
int ant,a,zust;
cout<<endl<<"Sie wollen also eine neue Ampel erstellen:"<<endl<<endl; cout<<"Sie haben 2 Moeglichkeiten:"<<endl; cout<<"Eine Ampel im Zustand gelb blinkend erstellen (1)"<<endl; cout<<"Einen konkreten Zustand fuer die neue Ampel angeben (2)"<<endl;
cin>>ant;cout<<endl;
if (ant==1) {
Ampel C; C.print(); do{ cout<<endl<<"Die Ampel weiterschalten(1)"<<endl; cout<<"Die Ampel ausschalten = auf gelb blinkend stellen(2)"<<endl; cout<<"Den Zustand der Ampel zeigen(3)"<<endl; cout<<"Ins Hauptmenue(4)"<<endl; cin>>a;
switch(a){ case 1:C.weiter();cout<<endl;break; case 2:C.anschalten();cout<<endl;break; case 3:C.print();cout<<endl;break; }
}while (a!=4); return C.print(); }
else if(ant==2) { cout<<"Geben Sie die Zahl fuer den jeweiligen Zustand ein:"<<endl<<endl; cout<<"0 = gruen"<<endl; cout<<"1 = gruen blinkend"<<endl; cout<<"2 = gelb"<<endl; cout<<"3 = rot"<<endl; cout<<"4 = rot+gelb"<<endl; cout<<"6 = gelb blinkend"<<endl; cout<<"Eingabe:"; cin>>zust;
Ampel C(zust); cout<<endl; C.print(); do{ cout<<endl<<"Die Ampel weiterschalten(1)"<<endl; cout<<"Die Ampel ausschalten = auf gelb blinkend stellen(2)"<<endl; cout<<"Den Zustand der Ampel zeigen(3)"<<endl; cout<<"Ins Hauptmenue(4)"<<endl; cin>>a;
switch(a){ case 1:C.weiter();cout<<endl;break; case 2:C.anschalten();cout<<endl;break; case 3:C.print();cout<<endl;break; }
}while (a!=4); return C.print();} }
int main(){
char amp;
while(amp!='e'){ cout<<"\n"; cout<<"***Hauptmenue***"<<endl; cout<<"Ampel A bearbeiten (a)"<<endl; cout<<"Eine neue Ampel erstellen(n)"<<endl; cout<<"Exit (e)"<<endl; cin>>amp; cout<<"\n"; if(amp=='a'||amp=='A') {afunkt();} else if (amp=='n'||amp=='N') {nfunkt();} }
return 0; }
|
Bearbeitung von typecast: |
cpp-Tags gesetzt und ThWboard code aktiviert
|
Dieser Post wurde am 05.12.2004 um 15:29 Uhr von typecast editiert. |