Navigation

Eigene Programme

Codeschnipsel

Libraries

english

BarChart

Diese Klasse ist dafür da, ein Säulendiagramm in der Konsole anzuzeigen. Sie hat mehrere Constructoren, die dazu da sind, die Beschreibungen (Horizontale Achse) sowie die Werte (Vertikale Achse) und die Schritte (Zahlensprünge der vertikalen Achse) einzugeben. Für die Werte werden nur Ganzzahlen akzeptiert. Das Anwendungsbeispiel unten sollte zeigen, wie es funktioniert. In diesem Beispiel wird nur einer der Constructoren gezeigt, in der Testklasse selbst werden alle durchgespielt

Anmerkung: Diese Klasse funktioniert zwar auch in der DOS-Konsole von Windows, aber durch die Breitenbeschränkung dieser ist es dort nur für eine begrenzte Anzahl Beschreibungen sinnvoll

Ihr könnt die untenstehende Testklasse (mit den Tests aller anderen Constructoren) hier herunterladen: barchart.zip
(In den Testfunktionen wird das Argument bool beginAtZero nicht genutzt. Dies würde verursachen, dass die vertikale Achse immer bei 0 beginnt)

Anwendungsbeispiele:

Das Anwendungsbeispiel ist hier und in der Downloadbaren Klasse so begrenzt, dass es auch in der Windows-DOS-Konsole anzeigbar sein sollte (Grund: s.o.). Es Zeigt ein Diagramm der Frequenzanalyse der Buchstaben.
Die Tests alles anderen Constructoren wurden hier der Übersicht halber entfernt.

001: #include <iostream>
002: using namespace std;
003: 
004: #include "barchart.h"
005: 
006: BarChart testCtor6();
007: 
008: int main(int argc, char *argv[]) {
009:     testCtor6().display();
010:     cout << endl << "Press Enter to quit";
011:     getchar(); //wait
012: }
013: 
014: BarChart testCtor6() {
015:     // unsigned long = values between 0 and ULONG_MAX inclusive
016:     // ULONG_MAX is at least FFFFFFFF (4'294'967'295), but can differ between platforms
017:     // Usually, it's FFFFFFFF (4'294'967'295) on 32-Bit-platforms
018:     // source: http://upload.wikimedia.org/wikipedia/de/4/48/Alphabet_haufigkeit.png
019:     //         http://home.att.net/~jackklein/c/inttypes.html
020:     map<string, unsigned long> values;
021:     values["A"] = 11945590l;
022:     values["B"] = 4561458l;
023:     values["C"] = 6044137l;
024:     values["D"] = 9270289l;
025:     values["E"] = 29924830l;
026:     values["F"] = 3535341l;
027:     values["G"] = 5900424l;
028:     values["H"] = 8391552l;
029:     values["I"] = 15885699l;
030:     values["J"] = 626522l;
031:     values["K"] = 3314564l;
032:     values["L"] = 8306966l;
033:     values["M"] = 5367829l;
034:     values["N"] = 17890909l;
035:     values["O"] = 6381588l;
036:     values["P"] = 2722782l;
037:     values["Q"] = 114811l;
038:     return BarChart(values, 1000000l);
039: }
040: 

Ausgaben:

30000000 |                 #                                                 
29000000 |                 #                                                 
28000000 |                 #                                                 
27000000 |                 #                                                 
26000000 |                 #                                                 
25000000 |                 #                                                 
24000000 |                 #                                                 
23000000 |                 #                                                 
22000000 |                 #                                                 
21000000 |                 #                                                 
20000000 |                 #                                                 
19000000 |                 #                                                 
18000000 |                 #                                   #             
17000000 |                 #                                   #             
16000000 |                 #               #                   #             
15000000 |                 #               #                   #             
14000000 |                 #               #                   #             
13000000 |                 #               #                   #             
12000000 | #               #               #                   #             
11000000 | #               #               #                   #             
10000000 | #               #               #                   #             
 9000000 | #           #   #               #                   #             
 8000000 | #           #   #           #   #           #       #             
 7000000 | #           #   #           #   #           #       #             
 6000000 | #       #   #   #       #   #   #           #       #   #         
 5000000 | #   #   #   #   #       #   #   #           #   #   #   #         
 4000000 | #   #   #   #   #   #   #   #   #           #   #   #   #         
 3000000 | #   #   #   #   #   #   #   #   #       #   #   #   #   #   #     
 2000000 | #   #   #   #   #   #   #   #   #       #   #   #   #   #   #     
 1000000 | #   #   #   #   #   #   #   #   #   #   #   #   #   #   #   #     
         |___________________________________________________________________
           A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q  

Press Enter to quit