C nur einen Wert ausgeben
lima-city → Forum → Programmiersprachen → C/C++ und D
abfragen
aufgeben
ausgeben
bekommen
besitz
code
dank
datenbank
einlesen
frage
funktion
gefundenen klassen
genannten klassen
kenntnis
klasse
note
null
sekunde
stehen
zeile
-
Hallo,
ich habe in Informatik die Aufgabe bekommen eine Datenbank zu schreiben. Diese soll einlesen, ausgeben... können. Ich habe also eine Binärdatei erstellt und lese dort Werte ein und geb sie wieder aus.
Ich bin schon die ganze zeit kurz vorm aufgeben, denn dieses Projekt ist echt sehr hart...
Aber ich werde ja eine Note dafür bekommen. Also frage ich euch nach Ideen. Ich habe mehrere Klassennamen von den Schülern (11BG1, 11BG2, 11BG3. Diese möchte ich jetzt so ändern, dass diese Klassennamen nur 1 mal angezeigt werden. Also nicht so, wie sie noch in der Tabelle stehen (z.B. 11BG3, 11BG2, 11BG3...)
Die werte der kompletten Klassennamen stehen hier drin:
schueler.klasse
wie kann ich jetzt abfragen, dass die Daten nur 1 mal ausgegeben werden. Mein Problem ist, dass die Klassen sich von den 3 genannten Klassen bis zu 50 Klassen ausweiten können...
Da wohl manche meine Frage noch nicht ganz verstanden haben hier noch etwas code:
struct datenbank
{
char vorname[25];
char nachname[20];
char klasse[20];
int punkte;
}schueler[30]; //initialisieren der anzahl der Schüler in die Struktur
FILE * datenbank;
if((datenbank = fopen(\"datenbank.datb\",\"rb\")) == NULL)
{
fprintf(stderr, \"FEHLER: Datei konnte nicht geöffnet werden\\n\");
exit(1);
}
for(int i=0;i<50;i++)
{
fseek(datenbank,i*sizeof(struct datenbank),SEEK_SET);
if(fread(&schueler,sizeof(struct datenbank),1,datenbank) == NULL)
{
break;
}
}
nun möchte ich die schueler.klasse ausgegeben haben. Jedoch jeden Datensatz, den ich besitze nur 1 mal. Wenn ich einfach
printf(\"%s \\n\",schueler.klasse);
ausgebe kann es sein, dass z.B. 11BG3 2 mal ausgegeben wird. Es soll aber nur 1 mal ausgegeben werden
Beitrag geändert: 24.5.2008 21:47:36 von raubritta -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bin mir nicht sicher ob ich dich richtig verstanden habe, aber meinst du sowas: http://ubuntuusers.de/paste/225477/
Am Ende werden alle gefundenen Klassen ausgeben, aber jede nur einmal.
In anderen Sprachen wäre es wohl ein Einzeiler ;) -
DANKE, DANKE, DANKE kochmarkus: du hast mir echt meine Note gerettet :D
es klappt!
Warum kann man hier nur einmal ein +1 Karma geben. Du hättest ein plus
100 verdient!
EINE WEITERE FRAGE HÄTTE ICH NOCH:
wie kann ich die Funktionen in VC++ 6.0 einklappen. Bei 1000 Zeilen Code ist das so schon sehr unübersichtlich!
Danke im vorraus
Beitrag geändert: 25.5.2008 16:21:57 von raubritta -
Von meinem Code sind ja gerade mal 10 Zeilen wirklich inetressant ;)
Außerdem muss ich eh meine C Kenntnisse ein bisschen auffrischen. -
Och, sie entsprach ungefähr meinen Kenntnissen. Also perfekt.
EINE WEITERE FRAGE HÄTTE ICH NOCH:
wie kann ich die Funktionen in VC++ 6.0 einklappen. Bei 1000 Zeilen Code ist das so schon sehr unübersichtlich!
<- möchte ich nochmal fragen, da du es in den 3 sekunden wohl nicht mehr gesehen hast. -
Och, sie entsprach ungefähr meinen Kenntnissen. Also perfekt.
EINE WEITERE FRAGE HÄTTE ICH NOCH:
wie kann ich die Funktionen in VC++ 6.0 einklappen. Bei 1000 Zeilen Code ist das so schon sehr unübersichtlich!
<- möchte ich nochmal fragen, da du es in den 3 sekunden wohl nicht mehr gesehen hast.
Da ich kein VC++ verwende kann ich dir da leider nicht weiterhelfen.
Aber wenn das funktioniert, dann weiß google bestimmt wie -
Google konnte mir dort leider nicht helfen (vielleicht such ich nach dem Falschen Wort oder es geht mit dem Compiler wirkilich nciht)
Naja, mir wird dann morgen hoffentlich in der Schule geholfen. -
wie kann ich die Funktionen in VC++ 6.0 einklappen. Bei 1000 Zeilen Code ist das so schon sehr unübersichtlich!
Die Funktion die du suchst heißt Code-Folding. Keine Ahnung ob und wie VC das kann, aber da haste zumindest mal ein Stichwort für die Suche ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage