- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: C-Programm ("Figuren speichern")

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2004
    Beiträge
    11

    C-Programm ("Figuren speichern")

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo,

    bitte um Hilfe!!!!!!

    die Aufgabenstellung liegt als Attachmet bei!!

    danke

    MfG
    baldi123
    Angehängte Dateien Angehängte Dateien

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2005
    Beiträge
    18
    Was hat diese Aufgabe mit AVRs zu tun???

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2004
    Beiträge
    11
    darf man hier keine allgemeinen probleme zu C posten?????

    MfG
    baldi123

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Beschreib vielleicht einfach mal das Problem das du hast....

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2004
    Beiträge
    11
    ich weis einfach nicht was dieses programm machen sollte!!
    bzw. wie man so etwas programmieren könnte??

    MfG

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    das programm ist eine mini "DB" um 10 werte zu speicher zu ändern.

    Code:
    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;
    
    }
    ich hoffe es hilft die sieht mir nach einem spiel auf ein schachbrett aus
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2004
    Beiträge
    11
    kann mir hier jemand auch noch die restlichen funktionen zeigen!?!?!?
    biiitttee

    MfG
    baldi123

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    was brauchst du den noch ?

    was sagt dein lehrer dazu ?
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    03.12.2004
    Beiträge
    11
    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;
    }

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    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

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress