00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _PopulationNetworkSegment_h
00021 #define _PopulationNetworkSegment_h
00022
00023
00024 #include "MatrixDouble.h"
00025 #include "BasicDefines.h"
00026
00027
00028
00030 class AvailablePermanentCrops
00031 {
00032 public:
00033
00034 double purchasePrice;
00035 int accessible;
00036 double annuityYields;
00037 double investmentCosts;
00038 double cashDemandYear0;
00039 double cashDemandAverage;
00040 int lpColumnInvestment;
00041 int lpYieldRow;
00042 int soilSuitability;
00043 double minimumArea;
00044 int objectID;
00045
00046
00047 MatrixDouble averageLaborDemands;
00048
00049
00050 MatrixDouble averageMachineryDemands;
00051
00053 AvailablePermanentCrops()
00054 { purchasePrice = 0.0;
00055 accessible = 0;
00056 annuityYields = 0.0;
00057 investmentCosts = 0.0;
00058 cashDemandYear0 = 0.0;
00059 cashDemandAverage = 0.0;
00060 lpColumnInvestment = -1;
00061 lpYieldRow = -1;
00062 soilSuitability = -1;
00063 minimumArea = 0.0;
00064 objectID = -1;
00065 }
00066
00068 virtual ~AvailablePermanentCrops()
00069 { averageLaborDemands.deallocate();
00070 averageMachineryDemands.deallocate();
00071 }
00072 };
00073
00074
00075
00076
00077
00078 typedef struct
00079 { char name[OBJNAME];
00080 int code;
00081 int typ;
00082 int divisible;
00083 double purPrice;
00084 int lifeSp;
00085 int boden;
00086 double mindest;
00087 int activity;
00088 int capacity;
00089 int yieldRow;
00090 double size;
00091 int seg;
00092 int available;
00093 int accessible;
00094 double shareEC;
00095 double rateDC;
00096 } investart;
00097
00098
00099
00100 typedef struct
00101 { char acc[3];
00102
00103 int code;
00104 double anz;
00105 double ask;
00106 int alter;
00107 double shareEC;
00108 double rateDC;
00109 } investdef;
00110
00111
00112
00113 class segment
00114 { protected:
00115 int sgID;
00116 int nwID;
00117 double schw_wert;
00118 double* invBounds;
00119
00120 char filename[MXLENGTH];
00121 FILE* datenstrom;
00122
00123 public:
00124 segment(int sg, int nw, char* in);
00125 virtual ~segment()
00126 {
00127 delete [] registryOfAvailablePermanentCrops;
00128
00129 delete [] invest_matrix;
00130 delete [] invBounds;
00131 }
00132
00133 segment* nextSegment;
00134 virtual void setNextPtr (segment*);
00135 virtual segment* getNext();
00136
00137 double rateLC;
00138 double rateSC;
00139 double rateSD;
00140 double shareEC;
00141 double ikalk;
00142 double bonus;
00143 double sunkcost;
00144 double sog;
00145 double opplohn;
00146 int inv_anzahl;
00147
00148 investart* invest_matrix;
00149
00150 AvailablePermanentCrops* registryOfAvailablePermanentCrops;
00151 int numberOfAvailablePermanentCrops;
00152
00153 virtual double get_sw();
00154 virtual int get_sgID();
00155 virtual int get_nwID();
00156 virtual int get_objnummer(int objID);
00157 virtual int get_n_dauer(int objID);
00158 virtual int getObjectIdForLpActivity(int lpActivity);
00159 virtual int getIDforOutput(double leistg);
00160 virtual int getIDforPurchasePrice(double pp);
00161 virtual int getIDforObjectType(int objType);
00162 virtual double getPPforID(int objID);
00163 virtual double getSFforID(int objID);
00164 virtual double getILCforID(int objID);
00165 virtual int getLPRowforID(int objID);
00166 virtual char* getNameForID(int objID);
00167 virtual double getInvBound(int sClass);
00168 virtual int getNumberOfAvailablePermanentCrops();
00169
00170 virtual void readSegmentInput();
00171 virtual void writeSegmentInput(char*);
00172
00173
00174
00175
00176
00177 virtual void wert_updaten(int, double, int, int);
00178
00179
00180 virtual void createRegistryOfAvailablePermanentCrops();
00181
00182 virtual void writeRegistryOfAvailablePermanentCropsToFile(char*);
00183 virtual void writeRegistryOfAvailablePermanentCropsToStream(FILE* stream);
00184 virtual void updateProductionCostsOfAvailablePermanentCrops();
00185 virtual AvailablePermanentCrops* getPointerToRegistryOfAvailablePermanentCrops();
00186
00187
00188 virtual void updateAccessToPermanentCrop(int objectID);
00189
00190
00191 virtual void printToScreen();
00192
00193 };
00194
00195
00196 #endif
00197