All pastes #285060 Raw Edit

Untitled

public cpp v1 · immutable
#285060 ·published 2006-12-19 16:00 UTC
rendered paste body
daten2.h ----------------------------------------------------------------------------------------------------------#include <iostream>using namespace std;#ifndef DATEN2_H_#define DATEN2_H_class Daten{	private:		int iwert;	public:		Daten(int iVal):iwert(iVal){			cout << "Objekt [Daten] erzeugt\n";		}		~Daten(){}		int vergleichen(const Daten&);		void anzeigen() const;		int get_iwert() const { return iwert; }		friend bool operator <(const Daten& Dobj1, const Daten& Dobj2){			if(Dobj1.iwert < Dobj2.iwert)			{				return true;			}else{				return false;			}		}		friend bool operator ==(const Daten& Dobj1, const Daten& Dobj2){			if(Dobj1.iwert == Dobj2.iwert){				return true;			}else{				return false;			}		}};int Daten::vergleichen(const Daten& d){	if(iwert > d.iwert){ 		return 1; 	}else if(iwert < d.iwert){		return -1;	}	return 0;}void Daten::anzeigen() const{	cout << iwert << '\n' << endl;}#endifdaten2.h END ----------------------------------------------------------------------------------------------------temp.h ----------------------------------------------------------------------------------------------------------#include <iostream>#include <cstring>using namespace std;#ifndef TEMP_H_#define TEMP_H_class Temperatur{	private:		int grad;		char monat[20];	public:		Temperatur(int iVal, char* m=""):grad(iVal)		{			strncpy(monat, m, 20);			cout << "Objekt [Temperatur] erzeugt\n";		}		~Temperatur(){}		int vergleichen(const Temperatur&);		void anzeigen() const;		friend bool operator <(const Temperatur& Tobj1, const Temperatur& Tobj2){			if(Tobj1.grad < Tobj2.grad)			{				return true;			}else{				return false;			}		}		friend bool operator ==(const Temperatur& Tobj1, const Temperatur& Tobj2){			return(!(strcmp(Tobj1.monat, Tobj2.monat)));		}};int Temperatur::vergleichen(const Temperatur& d){	if(grad > d.grad){		return 1;	}else if(grad < d.grad){		return -1;	}	return 0;}void Temperatur::anzeigen() const{	cout << monat << " : " << grad << '\n';}#endiftemp2.h END -----------------------------------------------------------------------------------------------------main.cpp --------------------------------------------------------------------------------------------------------#include <list>#include <iostream>#include "daten2.h"#include "temp.h"using namespace std;void input_func(list<Temperatur>& tempList);void input_func(list<Daten>& datenList);void alles_anzeigen(list<Daten>& ref1, list<Temperatur>& ref2);int main(){	//Verkettete Listen der Klassen 'Daten' und 'Temperatur'	list<Daten> dElemente;	list<Temperatur> tElemente;		input_func(dElemente);	input_func(tElemente);		cout << "Listen werden sortiert ...\n";	// Jetzt wird der operator < benoetigt	dElemente.sort();	tElemente.sort();		alles_anzeigen(dElemente, tElemente);		// Die Komplette liste neu zuweisen	list<Daten> dElementeNeu = dElemente;	if(dElementeNeu.empty()){		cout << "\ndElementeNeu ist leer\n";	}else{		cout << "\ndElementeNeu konnte nicht geleert werden\n";	}		cout << "\nDrehe die Listen um ...\n";	// reverse dreht die ganze Sache auf den Kopf	dElemente.reverse();	tElemente.reverse();	alles_anzeigen(dElemente, tElemente);		cout << "\nEntferne doppelte Eintraege ...\n";	// Doppelte Eintraege werden dank unique entfernt	dElemente.unique();	tElemente.unique();	alles_anzeigen(dElemente, tElemente);		cout << "\nListe <Daten> mischen ...\n";	// Liste wird gemischt und sortiert	dElemente.merge(dElementeNeu);	dElemente.sort();	alles_anzeigen(dElemente, tElemente);		if(dElementeNeu.empty()){		cout << "\ndElementeNeu ist leer\n";	}else{		cout << "\ndElementeNeu konnte nicht geleert werden\n";	}		// Liste des Typs Daten mit 3 Elementen mit dem Wert 111 erzeugen	list<Daten> dElementeGanzNeu(3, Daten(111));		// Inhalt von dElementeGanzNeu am Anfang von dElemente einfuegen	cout << "3 Elemente am anfang von <Daten> einfuegen ...\n";	dElemente.splice(dElemente.begin(), dElementeGanzNeu);	alles_anzeigen(dElemente, tElemente);	return 0;}// Fuktion zum Einlesen der Eigenschaften fuer Temperaturvoid input_func(list <Temperatur>& tempList){	int grad;	char monat[20];	for(;;){		cout << "Monat eingeben: ";		if((!(cin >> monat))){			strcpy(monat,"keine Angabe");		}		cout << "Temperatur eingeben ( 0-70C ( 99=Ende ) ): ";		if((!(cin >> grad))||grad==99){			break;		}		if(grad > 70||grad<0){			grad=30;		}		tempList.push_back(Temperatur(grad,monat));	}}void input_func(list <Daten>& datenList){	int iwert;	for(;;){		cout << "Wert eingeben (0=Ende): ";		if((!(cin >> iwert))||iwert==0){			break;		}		datenList.push_back(Daten(iwert));	}}void alles_anzeigen(list<Daten>& ref1, list<Temperatur>& ref2){	for(list<Daten>::iterator iter = ref1.begin();	    iter!=ref1.end(); ++iter){		iter->anzeigen();	}	for(list<Temperatur>::iterator iter = ref2.begin();	    iter!=ref2.end(); ++iter){		iter->anzeigen();	}}main.cpp END -----------------------------------------------------------------------------------------------------------------