daten in c einlesen

Neue Frage »

Auf diesen Beitrag antworten »
lama777 daten in c einlesen

Meine Frage:
hallo zusammen,

wir haben eine datei (exam.dat), diese enthält in der ersten zeile die richtige lösung einer multiple choice aufgabe( zb. ACDEBACD....., insgesamt 20 antworten)
in den darauf folgenden zeilen stehen jeweils Studentennummer und die Lösung der studenten, insgesamt 100 Studenten mit 100 Lösungen.
wir sollen jetzt die datei aufmachen und nach studentennummer sortieren, ausserdem sollen wir die lösung der studenten mit der musterlösung(erste zeile in der datei exam.dat) vergleichen und auswerten.
richtige antwort 4 punkte falsche -1. keine antwort 0. ( keine antwort ist in der datei mit X gekennzeichnet). ausgeben soll das programm die richtige lösung und die studentennummer mit der erreichten punktzahl.

Meine Ideen:
wir haben bereits geschafft die erste zeile einzulesen, unser problem ist jedoch dass wir nicht wissen wie man den vergleich machen soll.

code:
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:
#include <stdio.h>
#include <stdlib.h>
/*
 * MultipleChoice
 */
int main()
{
    /*Prototypen*/
    void Musterloesung(char *);
    char Ergebniss[21];
    void Student(char *);
    /*Variablen*/
    char Loesung [2000];
    char Matrnummer[100];
    Musterloesung(Ergebniss);
    Student(Loesung);
    return 0;
}
void Musterloesung(char *Ergebniss)
    {
        FILE *erg;
        erg = fopen("exam.dat" , "r");
        int a;
        for (a=0; a<20; a=a+1)
        {
           Ergebniss[a]=fgetc (erg);
        }
       printf ("%s", Ergebniss);
    }
void Student (char *Loesung)
    {
        char Matrnummer[100];
        char Loesungstud[50];
        FILE *erg;
        erg = fopen("exam.dat" , "r");
        while((fgets(erg, 100, stdin)) != NULL)
            printf("%s", erg);
    }


Edit (Karlito): [code]-Tags
 
Auf diesen Beitrag antworten »
Karlito

Hallo,

Hier mal ein paar Tipps:

  • die Prototypen bitte über die main und nicht in der main deklarieren
  • macht euch erstmal klar, welche Aktionen nacheinander ausgeführt werden müssen. Überlegt Schritt für Schritt, was genau zu tun ist. Macht daran erst fest, welche Funktionen ihr braucht und was die Funktionen liefern.
  • der Vergleich kommt ja erst ganz am Ende. Formuliert bitte erstmal einen Plan. Dann sehen wir weiter.
  • denkt daran, dass Strings in C Nullterminiert sind. Wie muss man das machen? (Das Auslesen der Lösung ist dehalb schon nicht ganz richtig)


Gruß,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »