hi ich muss bis morgen ein projekt für die schule fertiggestellt habe und in diesem sollte auch dateihandlig mit filtern und sortieren enthalten sein. Leider muss ich feststellen das ich aus dem Unterricht zu wenig behalten habe und bekomme gerade gar nix mehr auf die reihe.
meine versuche sind so schlecht das man aus diesen nxi gescheites machen kann,deshalb wäre ich euch sehr verbunden wenn ihr einen quellcode(funktion) posten könntet.
also ich brauche die funktionen für die einzelnen punkte dort:
allerdings fehlt überall noch das datum und die highscore muss noch aus 100 einträge erweitert werden
meine versuche sind so schlecht das man aus diesen nxi gescheites machen kann,deshalb wäre ich euch sehr verbunden wenn ihr einen quellcode(funktion) posten könntet.
also ich brauche die funktionen für die einzelnen punkte dort:
Code:
void hfilter()
{
int mint;
system("CLS");
design();
gotoxy(30,3);
cout<<"+++ Filterung +++"<<endl;
gotoxy(30,8);
printf("1: Namen filtern");
gotoxy(30,10);
printf("2: Datum filtern");
gotoxy(30,12);
printf("3: Puntke filtern");
gotoxy(30,16);
printf("4: Nach Namen sortieren");
gotoxy(30,18);
printf("5: Nach Datum sortieren");
gotoxy(30,20);
printf("6: Nach Punkten sortieren");
gotoxy(38,22);
cin>>mint;
switch(mint)
{
case 1:cout<<"Bitte geben sie den zu suchenden Namen ein:"<<endl;
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
}
nach punkten sortieren habe ich schon aber nich sehr schön(wird direkt nach der eingabe gemacht wo das datum noch fehlt):
void punktespeichern()
{
struct Highscore Feld[ANZAHL];
int i=0;
FILE* datei;
system("CLS");
design();
gotoxy(20,3);
printf("+++ Niklas Bart's SNAKE Vers 1.0 +++");
if ((datei = fopen("Highscore.dat", "a+b")) == NULL)
{
fprintf(stderr, "Datei konnte nicht geoeffnet werden!\n");
exit(1);
}
fseek(datei,0,SEEK_SET);
while(i<ANZAHL)
{
fread(&Feld[i],sizeof(struct Highscore),1,datei);
if(feof(datei)!=NULL) break;
i++;
}
fclose(datei);
gotoxy(26,9);
cout<<"Sie haben "<<punkte<<" Punkte erreicht"<<endl;
gotoxy(26,12);
cout<<"Bitte geben sie ihren Namen ein:\n"<<endl;
gotoxy(26,15);
gets(Feld[9].Name); // atuelle Punkte und Name
Feld[9].Punkte=punkte;
//Sortieren der Highscore und die nidrigste Punktzahl dann beim neu schreiben rasschmeissen
int j,len=10;
struct Highscore buffer;
gotoxy(0,0);
for(i=0; i<len; i++)
{
for(j=0; j<len; j++)
{
if(Feld[j].Punkte<Feld[i].Punkte)
{
buffer=Feld[i];
Feld[i]=Feld[j];
Feld[j]=buffer;
}
}
j=0;
}
if ((datei = fopen("Highscore.dat", "w")) == NULL)
{
fprintf(stderr, "Datei konnte nicht geoeffnet werden!\n");
exit(1);
}
fwrite(Feld,sizeof(struct Highscore),10,datei);
fclose(datei);
system("CLS");
design();
gotoxy(29,3);
cout<<"Punkte gespeichert"<<endl;
gotoxy(38,20);
Sleep(1000);
}
global habe ich folgende struktur:
struct Highscore
{
char Name[100];
int Punkte;
int Datum;
};
das spiel ist übrigens snake
ich wäre sehr dankbar wenn mir wer helfen kann
keine objektorientierte programmierung plz
thx
mfg cyber
einlesen sieht bei mir so aus:
struct Highscore Feld[ANZAHL];
int i=0;
int h=8;
FILE* datei;
system("CLS");
design();
gotoxy(30,3);
cout<<"+++ Highscore +++"<<endl;
gotoxy(24,6);
cout<<"Name"<<endl;
gotoxy(47,6);
cout<<"Punkte"<<endl;
if ((datei = fopen("Highscore.dat", "a+b")) == NULL)
{
fprintf(stderr, "Datei konnte nicht geoeffnet werden!\n");
exit(1);
}
fseek(datei,0,SEEK_SET);
while(i<ANZAHL)
{
fread(&Feld[i],sizeof(struct Highscore),1,datei);
if(feof(datei)!=NULL)
break;
gotoxy(24,h);
cout<<Feld[i].Name<<endl;
gotoxy(49,h);
cout<<Feld[i].Punkte<<endl;
h++;
i++;
}
fclose(datei);
gotoxy(38,20);
getch();
allerdings fehlt überall noch das datum und die highscore muss noch aus 100 einträge erweitert werden