blob: bbd2dfbb575305464df0fab0eeb92f3a8b1c3dc3 (
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Praktikum 3</title></head>
<body>
<table border="1" cellspacing="0" width="100%">
<caption> </caption>
<tbody><tr>
<td bgcolor="#efefde" width="25%">FH Darmstadt
<br>FB Informatik
<br>Prof.Dr. H.P.Weber</td>
<td>
<center><font size="+3">Programmieren II </font>
<br><font size="+3">Praktikum</font></center>
</td>
<td bgcolor="#efefde" width="25%">
<center><font size="+4">3</font></center>
</td>
</tr>
</tbody></table>
<br>
<table border="1" width="100%">
<tbody><tr valign="top">
<td>Ziel:</td><td>
Sie sollen Dateien ein- und auslesen und die enthaltenen Daten weiter verarbeiten k�nnen.
</td>
</tr>
</tbody></table>
<br>
<br>
<table border="1" cellspacing="0" width="100%">
<tbody><tr>
<td colspan="2">
<h3 align="left">
<b>1 Einlesen einer Bin�rdatei und Weiterverarbeitung ihrer Daten</b></h3>
</td>
</tr>
<tr>
<td>
Der Spielleiter der Tischtennis-Bezirksklasse m�chte
den aktuellen Tabellenstand des Spielbetriebs darstellen lassen. Eine <a href="http://www.fbi.fh-darmstadt.de/%7Eh.p.weber/Lehrveranstaltungen/PG2_Praktikum/Lab3/tabletennis.dta"> Datei
</a> mit dem
aktuellen Stand aller Mannschaften steht hierf�r zur Verf�gung; allerdings noch nicht
in Form einer sortierten Tabelle. Die Mannschaftsdaten liegen als Bin�rdatei
vor. Die nebenstehende Abbildung zeigt die verwendete Datenstruktur. Der in der
Datei vorhandene C-String f�r 'teamName' ist in den einzelnen Datens�tzen
unterschiedlich lang und enth�lt jeweils als letztes Zeichen eine bin�re Null.<p>Als Hexadezimal-Darstellung sieht das
dann beispielsweise so aus - zu sehen ist zu Beginn der Datei der TSV Auerbach (teamName) mit 18 Spielen (matchesPlayed),
64:86 S�tzen (gamesWon : gamesLost) und 14:22 Punkten (pointsWon : pointsLost).<br>
</p>
</td>
<td>
<table border="1" width="100%">
<tbody><tr>
<td><i>Attribut</i></td>
<td><i>Datentyp</i></td>
</tr>
<tr>
<td>teamName</td>
<td> std::string</td>
</tr>
<tr>
<td>matchesPlayed</td>
<td>int</td>
</tr>
<tr>
<td>gamesWon</td>
<td>int</td>
</tr>
<tr>
<td>gamesLost</td>
<td>int</td>
</tr>
<tr>
<td>pointsWon</td>
<td>int</td>
</tr>
<tr>
<td>pointsLost</td>
<td>int</td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td colspan="2">
<img src="index_dateien/AuschnittBinaerdatei.gif" border="0" height="65" width="604">
<p><b>Technische Hinweise:</b>
</p><p> Entwerfen Sie ein Anwendungsprogramm, das
</p><ul>
<li>
die Daten dieser Datei in eine Tabelle einliest, sie am Bildschirm ausgibt,
innerhalb der Tabelle sortiert und danach nochmals am Bildschirm ausgibt und
</li>
<li>
die sortierte Tabelle in einer Textdatei speichert.
</li>
</ul>
Sehen Sie folgende Klassen vor:
<blockquote><tt><b>Team</b></tt> hat die oben dargestellte
Attributstruktur, die zur bin�ren Eingabedatei passt,<br><tt><b>Table</b></tt> enth�lt einen <b> <tt>vector<Team></tt></b>
(mit allen Mannschaften) als Attribut.</blockquote>
Zum Sortieren der Mannschaften innerhalb der Tabelle k�nnen Sie einen
beliebigen Sortieralgorithmus verwenden. Die Reihenfolge
der Mannschaften in der sortierten Tabelle wird bestimmt durch
<ol>
<li>
die Anzahl der gewonnenen Punkte (pointsWon)</li>
<li>
bei Gleichheit: Anzahl der verlorenen Punkte (pointsLost)</li>
<li>
bei Gleichheit: Differenz der Satzresultate (gamesWon - gamesLost)</li>
<li>
bei Gleichheit: urspr�ngliche Reihenfolge</li>
</ol>
</td>
</tr>
</tbody></table>
<br>
<br>
<br>
<table border="1" cellspacing="0" height="292" width="100%">
<tbody><tr>
<td colspan="2" height="39">
<h3 align="left">
<b>2 Bestandsliste (fakultativ)</b></h3>
<p>
</p></td></tr><tr>
<td height="245">
F�r eine Eisenwarenhandlung soll eine Bestandsliste gef�hrt werden, die
Auskunft �ber die vorhandenen Werkzeuge (toolName) einschlie�lich St�ckzahl im
Lager (inStock) und Einzelpreis (unitPrice) gibt. Schreiben Sie ein Programm, das men�gesteuert
<ul>
<li>die Bin�rdatei
(Random Access File) "<b><font face="Courier New" size="2">tools.dta</font></b>"
mit 100 leeren Records initialisiert,
</li>
<li>
die Eingabe der Daten f�r jedes Werkzeug erlaubt,
</li>
<li>
alle Werkzeuge mit ihren Daten auflistet,
</li>
<li>
das L�schen eines nicht mehr ben�tigten Records erm�glicht
</li>
<li>
und die Aktualisierung jeder Information in der Datei erlaubt.
</li>
</ul>
<p>Die partNumber jedes Werkzeugs soll auch die Record-Nummer sein.
<br>
Benutzen Sie <a href="http://www.fbi.fh-darmstadt.de/%7Eh.p.weber/Lehrveranstaltungen/PG2_Praktikum/Lab3/tools.dta">diese Datei</a> zum Testen Ihres Programms.
</p></td>
<td height="245" width="20%">
<table align="center" border="1">
<tbody><tr>
<td><i>Attribut</i></td>
<td><i>Datentyp</i></td>
</tr>
<tr>
<td>partNumber</td>
<td> int</td>
</tr>
<tr>
<td>toolName</td>
<td>char[30]</td>
</tr>
<tr>
<td>inStock</td>
<td>int</td>
</tr>
<tr>
<td>unitPrice</td>
<td>double</td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</body></html>
|