Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » daten in c einlesen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen daten in c einlesen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
lama777
Grünschnabel


Dabei seit: 18.10.2016
Beiträge: 1

daten in c einlesen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Dateianhang:
txt exam.txt (2,40 KB, 316 mal heruntergeladen)
18.10.2016 14:28 lama777 ist offline Beiträge von lama777 suchen Nehmen Sie lama777 in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
19.10.2016 16:52 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » daten in c einlesen