00001 //------------------------------------------------------------------------------ 00002 // 00003 // Thomas Berger (main author), Pepijn Schreinemachers, and Thorsten Arnold 00004 // 00005 // 00006 // Hohenheim University (490d) 00007 // Professorship for Land Use Economics in the Tropics and Subtropics 00008 // 00009 // May not be distributed without permission by main author 00010 // 00011 // File: MarketNonTradablesBid.h (formerly gebot.h) 00012 // 00013 // Contents: Bid submitted by one agent, contains data such as ownership, 00014 // minimum asking price or maximum offered price 00015 // 00016 // 00017 //------------------------------------------------------------------------------ 00018 00019 00020 00021 //Header für die Pachtgebot-Klasse 00022 #ifndef _MarketNonTradablesBid_h 00023 #define _MarketNonTradablesBid_h 00024 00025 00026 #include <string> 00027 00028 #include <stdio.h> 00029 #include <iostream> 00030 #include <fstream> 00031 00032 #include "FinancialMathFunctions.h" 00033 00034 //Klasse der Pachtgebote, die Pachtanbieter und Pachtnachfrager aufstellen. Je 00035 //nach dem, ob es sich um einen Anbieter (Nachfrager) handelt, sind einige der 00036 //Datenelemente zu interpretieren. 00037 class gebot 00038 { protected: 00039 int x;//x-Koordinate der angebotenen Parzelle (der Hofstelle des Nachfragers) 00040 int y;//y-Koordinate der angebotenen Parzelle (der Hofstelle des Nachfragers) 00041 int typ; //Bodentyp des Pachtgebots 00042 int b_nr; //Betriebsnr. des Pachtanbieters (Pachtnachfragers) 00043 int b_sc; //SubcatchmentNum des Pachtanbieters (Pachtnachfragers) 00044 w_jahr* vol;//damit verbundenes monatliches Wasservolumen //neu 2003 00045 double entf;//Maximalentfernung einer in Betracht kommenden Parzelle 00046 double pacht;//ausgehandelte Pachtzahlung 00047 00048 int p_nr; //Betriebsnr. eines möglichen Pachtpartners 00049 int p_sc; //SubcatchmentNum eines möglichen Pachtpartners 00050 int flag; //zur Kennzeichnung, ob bereits ausgeführte Transaktion 00051 00052 public: 00053 //Übergabe: x-Koord., y-Koord., Bodentyp, Betriebsnr., SubcatchmentNum, Volumina 00054 //und maximale Entfernung 00055 gebot(int, int, int, int, int, w_jahr*, double); 00056 virtual ~gebot() 00057 { delete vol; //neu 2003 00058 } 00059 00060 //für die Auktionsgebotsliste 00061 gebot* nextAuktion; 00062 void setNextPtr_A (gebot*); 00063 gebot* getNext_A(); 00064 00065 //Elementfunktionen liefern geschützte Informationen zurück 00066 virtual int get_flag(); 00067 virtual int get_x(); 00068 virtual int get_y(); 00069 virtual int get_typ(); 00070 virtual int get_bnr(); 00071 int getCatchmentOfOwner(){ return b_sc;} 00072 virtual w_jahr* get_vol(); 00073 virtual double get_m_vol(int); 00074 virtual double get_entf(); 00075 virtual int get_pnr(); 00076 virtual int get_psc(); 00077 virtual double get_pacht(); 00078 00079 //Elementfunktionen zur Veränderung der Eigenschaften 00080 virtual void set_flag(int);//Übergabe: true/false 00081 virtual void partner_eintragen(int, int);//Übergabe: Betr.-, Subcatchment-nr 00082 virtual void pacht_eintragen(double); 00083 00084 virtual void printToScreen(); 00085 virtual void in_datei_schreiben(FILE*); 00086 }; 00087 00088 00089 #endif 00090