Waarom maak je de tabelheaders "statisch" ?
Kun je niet beter ze in een string variabele steken, een functie maken a la "int getMaxLengteArray(const float[](of w/e type) & compleetT1, const string & header)" en een functie van "getLengteArrayItem(const float & kapitaal)". De string header heb je nodig voor in het geval je header dus groter is in lengte dan de gegevens in je array, zodat de headers goed blijven. & staat voor reference variable in C++, dus ik denk dat dit gewoon 'ref' is in java?
Dan kun je bijvoorbeeld met de uitlijning manueel spelen door bvb eerst de maximale lengte op te vragen en aangezien je de uitlijning rechts hebt in de voorbeeld, hoef je maar spaties toe te voegen met een loop.
Iets op het gedacht van:
Eerst de maximale lengte uit je array halen, die dan gebruiken om je headers dynamischer te maken. Bij de uitlijning van je headers kun je dan maximum lengte \ 2 (A) doen, je string ook \ 2 (B) en dan kun je eerst een loop doen van spaties tot (A-B) om dan je string te outputten.
Daarna weer een loop om de resterende spaties er te krijgen. Dan kun je ook gemakkelijker de plusjes en de verticale bars er aan toe voegen in plaats van ze statisch te plaatsen.
Dan kun je de "content" van de tabel ook gemakkelijker invullen. Door je "algemene functies" kun je de functies voor elke rij & kolom van de tabel gebruiken en die zo dynamisch aanpakken.
Geen idee of je hier iets mee bent, aangezien ik waarschijnlijk je oefening redelijk wat ingewikkelder heb gemaakt
Trouwens, let ook op in je voorbeeld: je gebruikt de bit operator |, in wat ik zie wil je || (logische OF). Wat je nog gemakkelijker kunt doen is dus het in een switch steken en die laat trapvallen
Code:
string test = "";
switch(int value)
{
case 1:
test += "1\n";
case 10:
test += "10\n";
break;
case 2:
test += "2\n";
break;
case 22:
case 23:
test += "Te lui om 22 of 23 apart te schrijven";
break;
case 4:
test += "4\n";
default:
test += "Geen van bovenstaande waarden";
break;
}
--> indien value 4 zou zijn, krijg je "4 [enter] Geen van bovenstaande waarden" in de string, omdat je het laat doorvallen.
--> indien value 2, krijg je "2" in de string
--> indien value 1, krijg je "1 [enter] 10" in de string
--> indien value 10, krijg je "10" in de string
--> indien value 255, krijg je "Geen van bovenstaande waarden" in de string
--> indien value 23 (of 22), krijg je "Te lui om 22 of 23 apart te schrijven" in de string