hallo,
bitte um Hilfe!!!!!!
die Aufgabenstellung liegt als Attachmet bei!!
danke
MfG
baldi123
Druckbare Version
hallo,
bitte um Hilfe!!!!!!
die Aufgabenstellung liegt als Attachmet bei!!
danke
MfG
baldi123
Was hat diese Aufgabe mit AVRs zu tun???
darf man hier keine allgemeinen probleme zu C posten?????
MfG
baldi123
Beschreib vielleicht einfach mal das Problem das du hast....
ich weis einfach nicht was dieses programm machen sollte!!
bzw. wie man so etwas programmieren könnte??
MfG
das programm ist eine mini "DB" um 10 werte zu speicher zu ändern.
ich hoffe es hilft die sieht mir nach einem spiel auf ein schachbrett ausCode:void Insert(void)
{
// Liest die Daten einer Figur in die Struktur f1 ein. Zum eigentlichen Einfügen der Daten in das
// Array wird die Funktion InsertRecord aufgerufen. Der Rückgabewert von InsertRecord wird
// In der Funktion Insert() nicht behandelt.
TFigur f;
werte per Tasttaur einlesen;
f.name = <wert>;
f.xpos = <wert>;
f.ypos= <wert>;
f.energie = <wert>;
f. typ= <wert>;
InsertRecord(f);
return;
}
int InsertRecord(struct TFigur f)
{
// Fügt einen neuen Datensatz am Ende des Arrays "figuren" ein
// Rückgabewert InsertOK: 1...Falls der Satz eingefügt werden kann
// 0...Wenn Puffer voll, nicht eingefügt
// -1...Wenn Figur schon vorkommt, nicht eingefügt
// Eingabeparameter f: Strukturvariable f, wird in Array "figuren" eingefügt
// Die Funktion InsertRecord() darf keinerlei Ausgaben machen, da sie auch bei der
// Importfunktion aufgerufen wird.
int InsertOK = 1;
if(ACTLEN<10)
{
for(int p=0;p<ACTLEN;p++)
{
if(strcmp(figuren[p].name,f.name)==0)
{
return -1;
}
}
figuren[ACTLEN] = f;
ACTLEN++;
}
else
{
InsertOK = 0;
}
return InsertOK;
}
kann mir hier jemand auch noch die restlichen funktionen zeigen!?!?!?
biiitttee
MfG
baldi123
was brauchst du den noch ?
was sagt dein lehrer dazu ?
mein lehrer sagt gar nichst dazu!!
ich bräuchte das komplette programm!!!
bitte
habe e schon fast alles!!
Code:#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
struct TFigur
{
char name[30]; // Name der Figur
int xpos; // X-Position auf dem Feld (0...1000)
int ypos; // Y-Position auf dem Feld (0...1000)
int energie; // Lebensenergie 0...100
int typ; // A=Mensch Z=Zwerg E=Elb O=Ork M=Magier H=Hobbit
};
//Globale Variable und Konstante
const int ARRLEN = 10; // Länge des Figuren-Array
int ACTLEN = 0; // nächste freie Stelle im Array
int saveit = 0; // Merker: Wenn Änderugen, dann speichern vor Ende
struct TFigur figuren[ARRLEN]; // Figuren-Array
char datei[] = "figur1"; // Name der Datei in der die Datensätze gespeichert werden
// Funktionsprototypen
void Insert(void);
int InsertRecord(struct TFigur);
void Delete(void);
void Save(void);
void Import(void);
void Load(void);
void Display(void);
// Hauptprogramm
void main(void)
{
char iAuswahl;
Load(); // Beim Programmstart eventuell vorhandene Datensätze aus Datei laden
do
{
system("CLS"); // Bildschirm löschen
printf(" Funktion auswaehlen\n");
printf(" ===================\n\n");
printf(" 1...Figur anlegen\n");
printf(" 2...Figur loeschen\n");
printf(" 3...Figuren anzeigen\n");
printf(" 4...Speichern\n");
printf(" 5...Import\n\n");
printf(" 0...beenden\n\n");
printf("Auswahl -> ");
fflush(stdin); // Tastaturpuffer leeren
scanf("%i",&iAuswahl);
switch(iAuswahl)
{
case 1:
Insert();
break;
case 2:
Delete();
break;
case 3:
Display();
break;
case 4:
Save();
break;
case 5:
Import();
break;
case 0:
if (saveit)
{
iAuswahl = 99;
printf("\n\aBitte Daten zuerst speichern!\n");
system("pause");
}
break;
default:
printf("\n\aUngueltige Auswahl!\n");
system("pause");
}
} while (iAuswahl != 0);
printf("\n\nPROGRAMM-ENDE!\n\n");
return;
}
void Insert(void)
{
// Liest die Daten einer Figur in die Struktur f1 ein. Zum eigentlichen Einfügen der Daten in das
// Array wird die Funktion InsertRecord aufgerufen. Der Rückgabewert von InsertRecord wird
// In der Funktion Insert() nicht behandelt.
struct TFigur f1;
int y;
saveit = 1; // Datenbank wird verändert
printf(" Name: ");
scanf("%s",&f1.name);
printf(" Typ: ");
scanf("%s",&f1.typ);
printf(" X-Pos: ");
scanf("%i",&f1.xpos);
printf(" Y-Pos: ");
scanf("%i",&f1.ypos);
printf("Energie: ");
scanf("%i",&f1.energie);
y = InsertRecord(f1);
printf("\nDatensatz eingefuegt - %i Saetze sind vorhanden\n",ACTLEN);
system("pause");
return;
}
int InsertRecord(struct TFigur f)
{
// Fügt einen neuen Datensatz am Ende des Arrays "figuren" ein
// Rückgabewert InsertOK: 1...Falls der Satz eingefügt werden kann
// 0...Wenn Puffer voll, nicht eingefügt
// -1...Wenn Figur schon vorkommt, nicht eingefügt
// Eingabeparameter f: Strukturvariable f, wird in Array "figuren" eingefügt
// Die Funktion InsertRecord() darf keinerlei Ausgaben machen, da sie auch bei der
// Importfunktion aufgerufen wird.
int InsertOK = 1; // Standardvoraussetzung
int ctr; // Kontrollhilfszeichen
if(ACTLEN == 9)
{
InsertOK = 0;
}
else
{
for(int i = 0; i <= ACTLEN; i++)
{
ctr = strcmp(figuren[i].name,f.name);
if(ctr == 0) // Gleichheitsbedingung
{InsertOK = -1; break;}
}
}
// Einfügeprozess
if(InsertOK == 1)
{
ACTLEN++;
figuren[ACTLEN] = f;
}
return InsertOK;
}
void Save(void)
{
// Diese Funktion schreibt den Inhalt des Arrays "figuren" in die Datei
// Es wird angezeigt, wieviele Sätze in die Datei gespeichert wurden
// Der Merker "saveit" wird auf 0 gesetzt
FILE *out;
int i;
out = fopen(datei,"wb");
if (out == NULL)
{
printf("\nDie Datei kann nicht geoeffnet werden! - Keine Saetze geschrieben!");
}
else
{
for (i = 0; i < ACTLEN; i++)
{
fwrite(&figuren[i],sizeof(figuren[i]),1,out);
}
fclose(out);
printf("\nEs wurden %i Datensaetze eingeschrieben\n",i);
saveit = 0;
}
system("pause");
return;
}
void Load(void)
{
// Diese Funktion wird beim Programmstart aufgerufen und liest bereits vorhandene
// Datensätze in das Array "figuren" ein.
// Am Ende wird die Anzahl der gelesenen Sätze angezeigt
FILE *in;
struct TFigur f; // Variable auf TFigur zum Einlesen
int counter = 0;
in = fopen(datei,"rb");
if (in == NULL)
{
printf("\nDie Datei kann nicht geoeffnet werden! - Keine Saetze geladen!");
}
else
{
fread(&f,sizeof(f),1,in);
while(!feof(in))
{
counter++;
figuren[ACTLEN++] = f;
fread(&f,sizeof(f),1,in);
}
fclose(in);
printf("Es wurden %i Datensaetze eingelesen\n",counter);
}
system("pause");
return;
}
void Display(void)
{
// Diese Funktion zeigt die Datensätze im Array "figuren" an
// Am Ende wird die Anzahl der angezeigten Sätze angezeigt
int i;
printf("\nName der Figur Typ XPos YPos Energie\n");
for (i = 0; i < ACTLEN; i++)
{
printf("%-21s",figuren[i].name);
printf(" %c ",figuren[i].typ);
printf("%5i",figuren[i].xpos);
printf("%5i",figuren[i].ypos);
printf("%5i\n",figuren[i].energie);
}
printf("\nEs wurden %i Datensaetze angezeigt!\n",i);
system("pause");
return;
}
void Delete(void)
{
// Es wird der Name der Figur eingelesen. Diese wird dann im Array gesucht.
// Falls sie gefunden wird, wird sie aus dem Array entfernt. Alle Arrayelemente
// rechts des gelöschten Elements werden um eine Position nach links verschoben
// Im Falle des Löschens muss die Variable ACTLEN um eins vermindert werden und
// ebenso muss die Variable "saveit" gesetzt werden
return;
}
void Import(void)
{
// Liest den Namen einer Textdatei (CSV-Datei) ein, in der die einzelnen Werte durch ';' getrennt stehen
// Die Reihenfolge der Werte entspricht der Reihenfolge der Daten in der Struktur
// Die eingelesene Zeichenkette soll an die Funktion Analyse() übergeben werden. Analyse() liefert
// als Rückgabewert die einzelnen Werte in einer Variable vom Typ TFigur
// Zum Einfügen in das Array soll wiederum die Funktion InsertRecord() verwendet werden. Ist das Array
// "figuren" voll (wird durch den Rückgabewert von InsertRecord() angezeigt), dann muss der Importvorgang
// abgebrochen werden
return;
}
struct TFigur Analyze(char t[])
{
// Zerlegt den Eingabestring t in die Komponenten
// ->Name
// ->Typ
// ->XPosition
// ->YPosition
// ->Energie
// und gibt diese in der Strukturvariable RetVal zurück
struct TFigur RetVal;
return RetVal;
}
hallo, ich kann dir nicht weiterhelfen.
gratuliere dir aber zu deinem hervorragenden sauberen programmierstiel in "c". sowas erwarte ich von allen "c"-programmen. mit deiner arbeit könnte man winavr wieder auf die beine helfen. schade das du nicht mit dem avr arbeitest.
mfg pebisoft