Hilfe: Prüfungsaufgabe in C++

blubber

Erfahrenes Mitglied
Hallo,

ich hab in wenigen Tagen Klausur und wollte grad diese Übungsklausur machen, nun hab ich bei einer Aufgabe ein Problem und hoffe ihr könnt mir helfen, schnelle Hilfe wäre echt super :)

Folgender Code:

Code:
#include <iostream>
#include <iomanip>
using namespace std;  


class A {
public:
	int i;
	A() {i = 1;}
	virtual void access(int p = 5){
		add(p);
	}
	virtual void add(int p){
		i = i + p;
	}

};

class B : public A{
	float k;
public:
	B(int _k){
		k = _k;
	}

	void add (int p) {i = i+p+k;} 
};

 

void main(){

	A * p = new B(2);
	p->add(4);
	cout << p->i << endl;
	p->access(1);
	cout << p->i << endl;

};

Hier die Aufgabenstellung:
Ergänzen Sie die Definition einer Klasse C, die von der Klasse B abeleitet ist und einen parameterlosen Konstruktor besitzt, welcher den aktuellen Wert der Elementvariable i mit genau drei Nachkommastellen ausgibt:

Code:
class C : public B                 {
public:
      C                            {
      cout  << 
      }
};

Jo, das ist die Aufgabe mit der vorgegebenen Grundstruktur, bitte um Hilfe !

Danke
 
Hallo,

ich hoffe ich habe dich richtig verstanden. In dem Konstruktor der Klasse C welche von B abgeleitet ist soll der Integer der Klasse A als float mit 3 Nachkommastellen ausgegeben werden.

Müsste so klappen.

Code:
class C  : public B
{
public:
	C() :B(5) 
        {
	   char buf[50];
           // schreibe in Buffer
	   sprintf(buf, "%.3f", (float)i);
           // schreibe i mit 3 Nachkomma
           cout << buf << endl;
        }
	virtual ~C();

};

Grüße
R.
 
Hi,
erstmal danke für Deine Antwort.
Nun ist es aber so, dass die Prüfungsaufgabe auf einem Blatt Papier vorliegt und zwar ist der Code, der zu ergänzen soll so, wie ich ihn geschrieben hab, man kann also KEINE zusätzlichen Zeilen einfügen, sondern nur in die Lücken schreiben, es muss also nur der untere Code mit ein paar Dingen ergänzt werden. Es muss quasi der cout Befehl benutzt werden, man kann kein sprintf etc einfügen.

Gruß
 
Hi,
erstmal danke für Deine Antwort.
Nun ist es aber so, dass die Prüfungsaufgabe auf einem Blatt Papier vorliegt und zwar ist der Code, der zu ergänzen soll so, wie ich ihn geschrieben hab, man kann also KEINE zusätzlichen Zeilen einfügen, sondern nur in die Lücken schreiben, es muss also nur der untere Code mit ein paar Dingen ergänzt werden. Es muss quasi der cout Befehl benutzt werden, man kann kein sprintf etc einfügen.

Gruß

Mit anderen Worten hast Du bereits 90% von der Aufgabe vorgegeben und mußt nur noch die Präzisionseinstellung einsetzen und kannst ncihtmal das?

Sorry, das klingt nach einer verdienten 5...
 
:offtopic:

Mit anderen Worten hast Du bereits 90% von der Aufgabe vorgegeben und mußt nur noch die Präzisionseinstellung einsetzen und kannst ncihtmal das?

Sorry, das klingt nach einer verdienten 5...

LOL Und du kannst nicht mal deinen frechen Kommentar ohne Fehler tippen :)

:offtopic:

MFG Adi

ps: Sorry für den blöden Kommentar zum blöden Kommentar aber das musst ich jetzt mal loswerden. Wenn man schon nur kritisiert dann auch so, dass man dem anderen wenigstens mit der Kritik hilft. (Google Toolbar mit Rechtschreibeprüfung hilft da sehr weiter!!)
 
Mit der Lizenz zum Klappe-Aufreissen :-)
C++:
cout << fixed << setprecision(3) << static_cast<double>(i);

/Edit
Erscheint mir eigentlich wenig sinnvoll, eine int-Variable mit Nachkommastellen auszugeben ...
 
Zuletzt bearbeitet:
Zurück