#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <process.h>


struct punt{
	int x;
	int y;
	};

struct figura{
	char nom [30];
	int color;
	int n_costats;
	struct punt punts [10];
	};

void guardarNova(void){

	char iarxiu[] = "c:/tc/fig.txt";
	char oarxiu[] = "c:/tc/fig_aux.txt";
	
	struct figura nova;

	struct punt punts[10];	

	char nom[30];
	int numClau, n_costats;
	int n;

	FILE *ifitxer, *ofitxer;
	
	ifitxer = fopen(iarxiu,"r");
     	ofitxer = fopen(oarxiu,"w");

	printf("\nEntreu el nom de la figura:\n");
	scanf("%s",&nova.nom);
	printf("\nEntreu el color de la figura: 0 negre, 1 blau, 2 verd, 3 cian,");
	printf("4 vermell, 5 magenta, 6 marro, 7 gris clar, 8 gris fosc, 9 blau clar,");
	printf("10 verd clar, 11 cian clar, 12 vermell clar, 13 magenta clar, 14 groc, 15 blanc.\n");
	scanf("%d",&nova.color);
	printf("\nEntreu el nombre de costats (maxim 10) de la figura:\n");
	scanf("%d",&nova.n_costats);
	printf("\nEntreu els punts per parelles de valors:\n");
	for(n = 0; n < nova.n_costats; n++){
		scanf("%d",&nova.punts[n].x);
		scanf("%d",&nova.punts[n].y);
		}

	fprintf(ofitxer, "%s %d %d ", nova.nom, nova.color, nova.n_costats);
	
	for(n = 0; n < nova.n_costats; n++)fprintf(ofitxer, "%d %d ", nova.punts[n].x, nova.punts[n].y);

	while(numClau != -333){

		fscanf(ifitxer,"%s %d %d",&nom,&numClau, &n_costats);
		
		for(n = 0; n < n_costats; n++){
			fscanf(ifitxer, "%d", &punts[n].x);
			fscanf(ifitxer, "%d", &punts[n].y);
		}

		fprintf(ofitxer, "%s %d %d ", nom, numClau, n_costats);
		for(n = 0; n < n_costats; n++)fprintf(ofitxer, "%d %d ", punts[n].x, punts[n].y);
	}

	fclose(ifitxer);
	fclose(ofitxer);		

}


void eliminar(char nomEliminar[30]){

	struct punt punts[10];

	char iarxiu[] = "c:/tc/fig.txt";
	char oarxiu[] = "c:/tc/fig_aux.txt";
	char nom[30];
	int numClau, n_costats;
	int n;

	FILE *ifitxer, *ofitxer;

    	ifitxer = fopen(iarxiu,"r");
    	ofitxer = fopen(oarxiu,"w");

    	while(numClau != -333){

		fscanf(ifitxer,"%s %d %d",&nom,&numClau, &n_costats);
		for(n = 0; n < n_costats; n++){
			fscanf(ifitxer, "%d", &punts[n].x);
			fscanf(ifitxer, "%d", &punts[n].y);
		}

		if(strcmp(nom, nomEliminar)){
			fprintf(ofitxer, "%s %d %d ", nom, numClau, n_costats);
			for(n = 0; n < n_costats; n++)fprintf(ofitxer, "%d %d ", punts[n].x, punts[n].y);
		}		
	}

	fclose(ifitxer);
	fclose(ofitxer);
	
}


void copiarArx(void){

	struct punt punts[10];

	char iarxiu[] = "c:/tc/fig_aux.txt";
	char oarxiu[] = "c:/tc/fig.txt";
	char nom[30];
	int numClau, n_costats;
	int n;

	FILE *ifitxer, *ofitxer;

    	ifitxer = fopen(iarxiu,"r");
    	ofitxer = fopen(oarxiu,"w");

    	while(numClau != -333){

		fscanf(ifitxer,"%s %d %d",&nom,&numClau, &n_costats);
		for(n = 0; n < n_costats; n++){
			fscanf(ifitxer, "%d", &punts[n].x);
			fscanf(ifitxer, "%d", &punts[n].y);
		}
		fprintf(ofitxer, "%s %d %d ", nom, numClau, n_costats);
		for(n = 0; n < n_costats; n++)fprintf(ofitxer, "%d %d ", punts[n].x, punts[n].y);
	}

	fclose(ifitxer);
	fclose(ofitxer);
	
}


void main(void){


int tria = 0, n = 1;


while (tria != 6){
	clrscr();
	printf("1.-Crear una nova figura.\n");
	printf("2.-Modificar una figura existent.\n");
	printf("3.-Eliminar una figura ja creada.\n");
	printf("4.-Consultar una figura.\n");
	printf("5.-Visualitzar una figura.\n");
	printf("6.-Sortir.\n");

	scanf("%d",&tria);

	switch(tria){
		case 1:
			printf("\nEntreu el nom de la figura:\n");
			scanf("%s",&nova.nom);
			printf("\nEntreu el color de la figura: 0 negre, 1 blau, 2 verd, 3 cian,");
			printf("4 vermell, 5 magenta, 6 marro, 7 gris clar, 8 gris fosc, 9 blau clar,");
			printf("10 verd clar, 11 cian clar, 12 vermell clar, 13 magenta clar, 14 groc, 15 blanc.\n");
			scanf("%d",&nova.color);
			printf("\nEntreu el nombre de costats de la figura:\n");
			scanf("%d",&nova.n_costats);
			printf("\nEntreu els punts (maxim 10) per parelles de valors:\n");
			for(n = 0; n < nova.n_costats; n++){
				scanf("%d",&nova.punts[n].x);
				scanf("%d",&nova.punts[n].y);
			}

			n++;
			nova.punts[n].x=nova.punts[0].x;
			nova.punts[n].y=nova.punts[0].y;

			f = fopen("d:\\dades.txt","w");

			for(n = 0; n < 21; n++);
			/*char_escrits[n] =*/ fwrite(&nova.nom[n],sizeof(char),1,f);

			fclose(f);



			break;




		case 2:
			printf("En Cerni la t‚ daurada, no Paz?.");
			scanf("%d",&n);
			break;

	}
	}
	}
