summaryrefslogtreecommitdiffstats
path: root/Bachelor/Prog2/Prakt4/index.htm
blob: b94d7733bfad32a3ad7c1286f2f7e7b65e14bc4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Praktikum 3</title></head>

<body>

<table border="1" cellspacing="0" width="100%">
<caption>&nbsp;</caption>

<tbody><tr>
<td bgcolor="#efefde" width="25%">FH Darmstadt&nbsp;
<br>FB Informatik&nbsp;
<br>Prof.Dr. H.P.Weber</td>

<td>
<center><font size="+3">Programmieren II&nbsp;</font>
<br><font size="+3">Praktikum</font></center>
</td>

<td bgcolor="#efefde" width="25%">
<center><font size="+4">4</font></center>
</td>
</tr>
</tbody></table>

<br>
<table border="1" width="100%">
<tbody><tr valign="top">
<td>Ziel:</td><td>
Sie sollen die Datenstruktur Baum in Form einer Template-Klasse anwenden k�nnen.
</td>
</tr>
</tbody></table>

<br>
<table border="1" cellspacing="0" width="100%">
<tbody><tr>
<td colspan="2">
<h3 align="left">
<b>1&nbsp;&nbsp;&nbsp; W�rterliste</b></h3>
</td>
</tr>
<tr>
<td colspan="2">
Zu einer gegebenen, beliebigen Textdatei soll eine Liste der darin
auftretenden W�rter erstellt werden. Alle W�rter werden dabei
alphabetisch sortiert in eine zweite Textdatei ausgegeben. Jedes
Wort soll nur einmal in der Liste wiedergegeben werden; zus�tzlich
soll angegeben werden, wie oft es in der Ursprungsdatei vorkommt. Die Eintr�ge
in der Ausgabedatei sollen formatiert sein (s. Beispiel). Auf der Konsole soll
au�erdem die Gesamtzahl der W�rter und die Anzahl der unterschiedlichen in der Eingabedatei
auftretenden W�rter ausgegeben werden.
<br>Ein Beispiel :
</td>
</tr>
</tbody></table><table bgcolor="#fafaef" border="1" cols="2" width="100%">
<tbody><tr bgcolor="#efefde">
<td bgcolor="#efefde"><i>Eingabedatei:</i></td>

<td bgcolor="#efefde"><i>Ausgabedatei:</i></td>
</tr>

<tr>
<td width="60%">Zu einer gegebenen, beliebigen Textdatei soll eine Liste der darin
auftretenden W�rter erstellt werden. Alle W�rter werden dabei
alphabetisch sortiert in eine zweite Textdatei ausgegeben.</td>

<td><tt>Alle..........................1</tt>
<tt>Liste.........................1</tt>
<tt>Textdatei.....................2</tt>
<tt>W�rter........................2</tt>
<tt>Zu............................1</tt>
<tt>alphabetisch..................1</tt>
<tt>auftretenden..................1</tt>
<tt>ausgegeben....................1</tt>
<tt>beliebigen....................1</tt>
<tt>dabei.........................1</tt>
<tt>darin.........................1</tt>
<tt>der...........................1</tt>
<tt>eine..........................2</tt>
<tt>einer.........................1</tt>
<tt>erstellt......................1</tt>
<tt>gegebenen,....................1</tt>
<tt>in............................1</tt>
<tt>soll..........................1</tt>
<tt>sortiert......................1</tt>
<tt>werden........................1</tt>
<tt>werden........................1</tt>
<tt>zweite........................1</tt></td>
</tr>
</tbody></table>

<br>




<p><b>Technische Hinweise:</b>
</p><ul>
<li>
 Verwenden Sie die Template-Klasse <tt><b>Tree</b></tt> aus der Vorlesung, indem Sie im
Anwendungsprogramm mit einem <tt><b> Tree&lt;string&gt;</b></tt> - Objekt arbeiten. 
</li>
<li>
F�hren Sie ein Attribut <tt><b>frequency</b></tt> in die Template-Klasse
<b> <tt>TreeNode</tt></b> ein und erweitern Sie die
Methode <b><tt>insertNodeHelper</tt></b> an der
passenden Stelle, um mehrfach vorkommende W�rter durch Inkrementierung von <b><tt>frequency</tt></b>
zu z�hlen.
</li>
<li>
Modifizieren Sie die
Methode <b><tt>inOrderHelper</tt></b>  so, dass
die W�rter mit ihren H�ufigkeiten nicht auf die Konsole, sondern richtig
formatiert in die oben erw�hnte Ausgabedatei geschrieben werden.
</li>
<li>
Eine Sortierung nach dem eingebauten Code ASCII reicht aus (Sortierung nach
DUDEN ist nicht verlangt). Weiter ist nicht verlangt, echte W�rter
zu erkennen ("<tt>gegebenen,</tt>" [incl. Komma] gilt in dem Beispiel oben
auch als ein Wort).
</li>
<li>
Verwenden Sie f�r die Demonstration Ihres Programms
w�hrend des Praktikums <a href="http://www.fbi.fh-darmstadt.de/%7Eh.p.weber/Lehrveranstaltungen/PG2_Praktikum/Lab4/Max.txt">diese Datei</a>.
</li>
</ul>




<br>
<table border="1" cellspacing="0" width="100%">
<tbody><tr>
<td>
<h3>
<b>2&nbsp;&nbsp;&nbsp; Verbesserte W�rterliste (fakultativ)</b></h3>

<p>Verbessern Sie Ihr Programm aus Aufgabe 1, indem Sie echte W�rter erkennen
(also Satzzeichen und Ziffern entfernen) und eine wirkliche lexikalische
Sortierung vornehmen (also gro� und klein geschriebene W�rter nicht separat
sortieren sowie die Umlaute richtig einsortieren). Realisieren Sie zur L�sung dieser Aufgaben 
eine Klasse <tt><b>GermanWord</b></tt>,
die es Ihnen erlaubt, die Template-Klassen aus Aufgabe 1 unver�ndert zu
�bernehmen, indem Sie im Anwendungsprogramm jetzt mit einem <tt><b> Tree&lt;GermanWord&gt;</b></tt> - Objekt arbeiten. 
Ihre <tt><b>GermanWord</b></tt>-Klasse sollte folgende Methoden enthalten:
</p><ul>
<li>
Der Konstruktor �bernimmt einen <tt><b>string</b></tt> und entfernt alle Satzzeichen und 
Ziffern, so dass nur noch echte W�rter �brig bleiben. Verwenden Sie hierzu 
Methoden
der <tt><b>string</b></tt>-Klasse
wie <tt><b>find_first_of</b></tt> und <tt><b>replace</b></tt>.</li><li>
Die �berladenen Operatoren <tt><b>operator&lt;</b></tt> und <tt><b>operator&gt;</b></tt> sorgen daf�r, dass gro� und 
klein geschriebene W�rter nicht wie bei der einfachen ASCII-Code-Sortierung separat 
sortiert werden und dass die Umlaute richtig 
einsortiert werden (also z.B. '�' unter 'a').</li><li>
Eine Methode <tt><b>isEmpty</b></tt> sollte vorhanden sein, damit im Anwendungsprogramm nur 
nicht-leere <tt><b>GermanWord</b></tt>-Objekte (also keine, die nur einen 
leeren <tt><b>string</b></tt> enthalten) in den <tt><b>Tree</b></tt> eingef�gt werden k�nnen.</li><li>
Ein cast-Operator <tt><b>operator string</b></tt>&nbsp; soll vorhanden sein, damit der <tt><b>Tree</b></tt> aus 
Aufgabe 1 unver�ndert �bernommen werden kann (und <tt><b>GermanWord</b></tt>-Objekte wenn n�tig 
implizit in <tt><b>string</b></tt>s gewandelt werden).</li></ul></td>
</tr>
</tbody></table>


</body></html>