|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Re: Ayuda con metodo de ordenacion
|
en: 21 Junio 2010, 06:36 am
|
ya lo solucione: void ordenar(struct ferreteria datos) { FILE *f; char clave[10]; int nclaves=0; int valor1[23]; int i,n,m,j,p; if((f=fopen(nombre,"r"))==NULL) { printf("\nEL FICHERO NO EXISTE."); getch(); exit(0); } nclaves=0; fread(&datos, sizeof(datos),1,f); while(!feof(f)) { valor1[nclaves]=atoi(datos.clave); fread(&datos, sizeof(datos),1,f); nclaves++; } for(i=0;i<nclaves;i++){ for(j=0;j<nclaves-1;j++){ if(valor1[i]<valor1[j]){ m=valor1[i]; valor1[i]=valor1[j]; valor1[j]=m; } } } printf("Claves Ordenadas.....\n"); for (i=0;i<nclaves; i++) { printf("clave: %d \n", valor1[i]); } getch(); fclose(f); }
Gracias por todas y cada una de sus respuestas
|
|
|
2
|
Programación / Programación C/C++ / Re: Ayuda con metodo de ordenacion
|
en: 18 Junio 2010, 19:22 pm
|
MIL gracias x sus respuestas sorry si les di un codigo con "basura" no me di cuenta es k como soy principiante pues cuando veo k no funciona simplente le pongo " / " e intento con otra cosa, aqui el codigo sin "basura" #include <stdio.h> #include <conio.h> #include <string.h> #include <graphics.h> #include <stdlib.h> #include <process.h> #define TAM 20 #include <ctype.h> #include "graphics.h" char nombre[20]; /****************************estructura principal************************/ struct ferreteria { char articulo[TAM]; char clave[10]; char precio[10]; char marca[10]; }datos; /***********************************funciones*******************************/ void ordenar(struct ferreteria); void insertar(struct ferreteria ); void visualizar(struct ferreteria ); void buscar(struct ferreteria ); void modificar(struct ferreteria ); void borrar(struct ferreteria ); void acerca(); void articulo(struct ferreteria ); void precio(struct ferreteria ); void clave(struct ferreteria ); void marca(struct ferreteria ); int valido(char *, struct ferreteria ); /***************************iniciamos el menu principal******************/ void main() { /*********************************iniciamos los graficos**************/ int gdriver = DETECT, gmode, errorcode; int midx, midy, i; initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Error de Graficos: %s\n", grapherrormsg(errorcode)); printf("Presiona una tecla para continuar:"); getch(); exit(1); } char opcion; int salir=0; /**************************terminamos graficas********************/ do { clrscr(); setfillstyle(SOLID_FILL,BLUE); bar(120,60,550,240); /*primer bar 3d*/ /*sobre el primer*/ printf("\n\n\n"); printf("\n\n\t\tCONTROL DE FERRETERIA\n\n"); printf("\t\t\t1. ALTAS\n" ); printf("\t\t\t2. MOSTRAR TODO\n" ); printf("\t\t\t3. CONSULTAR\n" ); printf("\t\t\t4. MODIFICAR \n" ); printf("\t\t\t5. BAJAS\n" ); printf("\t\t\t6. INREGRANTE\n"); printf("\t\t\t7. ORDENAR\n\n" ); moveto(250,300);outtext("PULSA ESC PARA SALIR"); /*pocision de esc*/ setfillstyle(SOLID_FILL,7); /*color de fondo 2*/ bar(0,0,120,240); setbkcolor(BLUE); /*color de fondo3*/ rectangle(120,60,550,240); rectangle(116,56,554,244); /*rectangulo sobre otro*/ rectangle(240,295,420,310); rectangle(236,291,424,314); opcion=getch(); clrscr(); switch(opcion) { case '1': insertar(datos); break; case '2': visualizar(datos); break; case '3': buscar(datos); break; case '4': modificar(datos); break; case '5': borrar(datos); break; case '6': acerca(); break; case '7': ordenar(datos); case 27: salir=1; break; } } while(!salir); } /**************************insertar los datos en la estructura**************/ void insertar(struct ferreteria datos) { clrscr(); /*limpiamos pantalla*/ FILE *f; FILE *control; int result; char clave[10]; printf("\t\t LOS DIRECTORIOS SON \n C: \n D: \n K: \n\n"); printf("\n INTRODUCE EL NOMBRE DE EL ARCHIVO\n"); gets(nombre); f=fopen(nombre,"at+"); clrscr(); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } /*************************************************/ printf("PARA TERMINAR LA INTRODUCCION DE REGISTROS, EN CLAVE ESCRIBE '*'\n"); printf("CLAVE:"); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); while(!result) { printf("LA CLAVE YA EXISTE\n"); printf("CLAVE: "); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); } strcpy(datos.clave,clave); while(strcmp(datos.clave,"*")) { printf("ARTICULO: "); gets(datos.articulo); fflush(stdin); printf("PRECIO "); gets(datos.precio); fflush(stdin); printf("MARCA: "); gets(datos.marca); fflush(stdin); fwrite(&datos,sizeof(datos),1,f); fprintf(control,"%s",datos.clave); fprintf(control,"%s\t\t",datos.articulo); fprintf(control,"%s\t\t",datos.precio); fprintf(control,"%s\t\t\n",datos.marca); clrscr(); printf("PARA TERMINAR LA INTRODUCCION DE REGISTROS, EN CLAVE ESCRIBE '*'\n"); printf("CLAVE:"); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); while(!result) { printf("LA CLAVE YA EXISTE\n"); printf("CLAVE: "); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); } strcpy(datos.clave,clave); } fclose(f); fclose(control); } /**********************************ver los datos introducidos***************/ void visualizar(struct ferreteria datos) { clrscr(); FILE *f; f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } while(fread(&datos,sizeof(datos),1,f)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n", datos.marca); getch(); clrscr(); } fclose(f); } void buscar(struct ferreteria datos) { clrscr(); char opcion; int salir=0; do { clrscr(); setfillstyle(SOLID_FILL,BLUE); bar(0,0,640,120); printf("\t\t\t\tBUSCAR\n"); printf("\t\t\t\t------\n"); printf("\t\t\t1. ARTICULO\n"); printf("\t\t\t2. CLAVE\n"); printf("\t\t\t3. PRECIO\n"); printf("\t\t\t4. MARCA\n\n"); moveto(250,300);outtext("PULSA ESC PARA SALIR"); rectangle(240,295,420,310); //rectan de salir rectangle(236,291,424,314); //rectan1 de salir rectangle(0,0,638,120); opcion=getch(); switch(opcion) { case '1': articulo(datos); break; case '2': clave(datos); break; case '3': precio(datos); break; case '4': marca(datos); break; case 27: salir=1; break; } } while(!salir); } /**************************FUNCION PARA MODIFICAR FERRETERIA...************/ void modificar(struct ferreteria datos) { clrscr(); FILE *f; FILE *control; char opcion, articulo[TAM],clave[10]; int salir=0,salirf=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); printf("INGRESA LA CLAVE A MODIFICAR: "); gets(clave); fflush(stdin); fread(&datos,sizeof(datos),1,f); while(!feof(f)&&!salir) { if(!strcmp(datos.clave,clave)) { printf("ARTICUL0 (antiguo): %s\n", datos.articulo); printf("ARTICULO (nuevo): "); gets(datos.articulo); fflush(stdin); printf("CLAVE (antiguo): %s\n", datos.clave); printf("CLAVE (nuevo): "); gets(datos.clave); fflush(stdin); printf("PRECIO (antiguo): %s\n", datos.precio); printf("PRECIO(nuevo): "); gets(datos.precio); fflush(stdin); printf("MARCA (antiguo): %s\n", datos.marca); printf("MARCA (nuevo): "); gets(datos.marca); fflush(stdin); fseek(f,-(long)sizeof(datos),SEEK_CUR); fwrite(&datos,sizeof(datos),1,f); fwrite(&datos,sizeof(datos),1,control); encontrado=1; salir=1; } else fread(&datos,sizeof(datos),1,f); } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO QUE BUSCA\n"); fclose(f); printf("¨DESEA MODIFICAR OTRO REGISTRO? (S/N)?\n"); opcion=toupper(getch()); if(opcion=='N') salirf=1; else salir=0; } while(!salirf); } void borrar(struct ferreteria datos) { clrscr(); FILE *f, *f_temp; char opcion, clave[10]; int salir=0; do { system("cls"); f=fopen(nombre,"rt+"); f_temp=fopen("ferreteria_temp","wt+"); if(!f) { printf("ERROR EN LA APERTURA DEL ARCHIVO\n"); getch(); exit(1); } if(!f_temp) { printf("ERROR EN LA APERTURA DEL ARCHIVO TEMPORAL\n"); getch(); exit(1); } printf("INGRESA LA CLAVE A BORRAR: "); gets(clave); fflush(stdin); fread(&datos,sizeof(datos),1,f); while(!feof(f)) { if(strcmp(clave,datos.clave)) fwrite(&datos,sizeof(datos),1,f_temp); fread(&datos,sizeof(datos),1,f); } fclose(f); fclose(f_temp); remove(nombre); rename("ferreteria_temp",nombre); printf("¨DESEA BORRAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; } while(!salir); } void acerca() { clrscr(); setfillstyle(SOLID_FILL,BLUE); bar(26,76,604,184); rectangle(26,76,604,184); gotoxy(5,5); printf("PROYECTO PARA EXTRAORDENARIO POR:\n\n"); printf("\tLuis Antonio Vallejo Salgado\n"); rectangle(30,80,600,180); moveto(250,300);outtext("PULSA ESC PARA SALIR"); rectangle(240,295,420,310); rectangle(236,291,424,314); getch(); } /***********************************funcion de el articulo a escribir*******/ void articulo(struct ferreteria datos) { clrscr(); FILE *f; char articulo[TAM], opcion; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DEL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA EL ARTICULO A BUSCAR: "); gets(articulo); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(datos.articulo,articulo)) { printf("ARTICULO %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /***************************funcion de el precio *************************/ void precio(struct ferreteria datos) { clrscr(); FILE *f; char opcion, precio[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INTRODUCE EL PRECIO A BUSCAR: "); gets(precio); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(precio,datos.precio)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /**************************funcion para el campo clave y todo su desarrollo**/ void clave(struct ferreteria datos) { clrscr(); FILE *f; char opcion, clave[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA LA CLAVE A BUSCAR: "); gets(clave); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(clave,datos.clave)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /**********************************funcion para el campo marca*************/ void marca(struct ferreteria datos) { FILE *f; char opcion, marca[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA LA MARCA A BUSCAR: "); gets(marca); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(marca,datos.marca)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)?\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /***********esta funcion es para ver si el archivo esta bien hecho o no****/ int valido(char clave[], struct ferreteria datos) { FILE *f; int esvalido=1; f=fopen(nombre,"rt+"); fread(&datos,sizeof(datos),1,f); while(!feof(f)&&esvalido) { if(!strcmp(clave,datos.clave)) esvalido=0; else fread(&datos,sizeof(datos),1,f); } fclose(f); return esvalido; } /***************************ordenar las claves por m. de burbuja*************************************/ void ordenar(struct ferreteria datos) { FILE *f; int p, aux; int nclaves=1; int arreglo1[50]; int arreglo2[50]; int valor[200]; int x,i=1,j=2, temp; int a; int valor1[23]; if((f=fopen(nombre,"rt+"))==NULL) { printf("\nEL FICHERO NO EXISTE."); getch(); exit(0); } while(!feof(f)&&!exit) { fread(&datos, sizeof(datos),1,f); valor1[nclaves]=atoi(datos.clave); nclaves=nclaves+1; } if(valor1[i]>valor1[j]) { valor[j]=aux; valor[i]=valor[j]; valor[j]=valor[i]; j++; i++; } else { i++; j++; } for(i=1;i<=nclaves;i++) { printf("%d",valor[i]); } fclose(f); getch(); }
Littlehorse, se ve k sabes mucho, e checar lo que me dijste y pus sigue sin jalar :S sobre lo de valor[j]=aux; valor[i]=valor[j]; valor[j]=valor[i];
Segun yo sta bien...
|
|
|
3
|
Programación / Programación C/C++ / Re: Ayuda con metodo de ordenacion
|
en: 18 Junio 2010, 04:29 am
|
no no no ordena anda le doy a la opcion de ordenas y me sale un numero asi: -213666 y ya es todo lo k me sale... lo k tengo en ordenacion es: void ordenar(struct ferreteria datos) { FILE *f; int p, aux; int nclaves=1; int arreglo1[50]; int arreglo2[50]; int valor[200]; int x,i=1,j=2, temp; int a; int valor1[23]; if((f=fopen(nombre,"rt+"))==NULL) { printf("\nEL FICHERO NO EXISTE."); getch(); exit(0); } while(!feof(f)&&!exit) { fread(&datos, sizeof(datos),1,f); valor1[nclaves]=atoi(datos.clave); nclaves=nclaves+1; } if(valor1[i]>valor1[j]) { valor[j]=aux; valor[i]=valor[j]; valor[j]=valor[i]; j++; i++; } else { i++; j++; } for(i=1;i<=nclaves;i++) { printf("%d",valor[i]); } fclose(f); getch(); }
Es que el programa crea un archivo .txt y despues desde ese archivo deve de ordenarlos en el programa es lo k no me sale.. Y gracias por responder hermano
|
|
|
4
|
Programación / Programación C/C++ / Ayuda con metodo de ordenacion
|
en: 18 Junio 2010, 02:29 am
|
Hola a todos, bueno quieresa ver si me echan la mano para hacer que corra bien un programita que ya me saco CANAS tras CANAS no ya sta la mayoria lo uniko k me falta es el metodo de ordenacion que no me corre en la Universidad el Ingeniero nos dijo que por el metodo de ordenacion que queramos y yo lo ise por el de la burbuja pero no me sale no se si alguien de ustedes me podria ayudar si lo hacen MIL gracias o si ven en donde esta mi error DIGANME por que yo ya no doy mas xD saluditos y espero respuesta aqui les dejo el codigo (lo corri en Turbo C) #include <stdio.h> #include <conio.h> #include <string.h> #include <graphics.h> #include <stdlib.h> #include <process.h> #define TAM 20 #include <ctype.h> #include "graphics.h" char nombre[20]; /****************************estructura principal************************/ struct ferreteria { char articulo[TAM]; /*c articulo*/ char clave[10]; char precio[10]; /* precio*/ char marca[10]; //otro }datos; /***********************************funciones*******************************/ void ordenar(struct ferreteria); // void crear(); void insertar(struct ferreteria ); void visualizar(struct ferreteria ); void buscar(struct ferreteria ); void modificar(struct ferreteria ); void borrar(struct ferreteria ); void acerca(); void articulo(struct ferreteria ); void precio(struct ferreteria ); void clave(struct ferreteria ); void marca(struct ferreteria ); int valido(char *, struct ferreteria ); /***************************iniciamos el menu principal******************/ void main() { /*********************************iniciamos los graficos**************/
int gdriver = DETECT, gmode, errorcode; int midx, midy, i;
initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Error de Graficos: %s\n", grapherrormsg(errorcode)); printf("Presiona una tecla para continuar:"); getch(); exit(1); }
char opcion; int salir=0; /**************************terminamos graficas********************/ do {
clrscr();
setfillstyle(SOLID_FILL,BLUE); bar(120,60,550,240); /*primer bar 3d*/ /*sobre el primer*/
printf("\n\n\n"); printf("\n\n\t\tCONTROL DE FERRETERIA\n\n"); // printf("\n\n\t0. CREAR\n" ); printf("\t\t\t1. ALTAS\n" ); printf("\t\t\t2. MOSTRAR TODO\n" ); printf("\t\t\t3. CONSULTAR\n" ); printf("\t\t\t4. MODIFICAR \n" ); printf("\t\t\t5. BAJAS\n" ); printf("\t\t\t6. INTEGRANTES\n"); printf("\t\t\t7. ORDENAR\n\n" ); moveto(250,300);outtext("PULSA ESC PARA SALIR"); /*pocision de esc*/ setfillstyle(SOLID_FILL,7); /*color de fondo 2*/ bar(0,0,120,240); setbkcolor(BLUE); /*color de fondo3*/ rectangle(120,60,550,240); rectangle(116,56,554,244); /*rectangulo sobre otro*/ rectangle(240,295,420,310); rectangle(236,291,424,314);
opcion=getch(); clrscr(); switch(opcion) { case '1': insertar(datos); break;
case '2': visualizar(datos); break;
case '3': buscar(datos); break;
case '4': modificar(datos); break;
case '5': borrar(datos); break;
case '6': acerca(); break;
case '7': ordenar(datos);
case 27: salir=1; break; } } while(!salir); }
/**************************insertar los datos en la estructura**************/ void insertar(struct ferreteria datos) { clrscr(); /*limpiamos pantalla*/ FILE *f; FILE *control; int result; char clave[10]; printf("\t\t LOS DIRECTORIOS SON \n C: \n D: \n K: \n\n");
printf("\n INTRODUCE EL NOMBRE DE EL ARCHIVO\n");
gets(nombre); f=fopen(nombre,"at+"); //control=fopen("contro.doc","w+"); clrscr(); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); }
/*************************************************/ printf("PARA TERMINAR LA INTRODUCCION DE REGISTROS, EN CLAVE ESCRIBE '*'\n"); // fprintf(control,"clave"); /* l clave l producto l precio l marca l */ // fprintf(control,"\t\t producto"); /* l_______l__________l________l_______l */ // fprintf(control,"\t\t precio"); // fprintf(control,"\t\t marca\n"); /*imprimimos con formato*/ printf("CLAVE:"); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); while(!result) { printf("LA CLAVE YA EXISTE\n"); printf("CLAVE: "); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); } strcpy(datos.clave,clave); while(strcmp(datos.clave,"*")) {
printf("ARTICULO: "); gets(datos.articulo); fflush(stdin); printf("PRECIO "); gets(datos.precio); fflush(stdin);
printf("MARCA: "); gets(datos.marca); fflush(stdin);
fwrite(&datos,sizeof(datos),1,f); fprintf(control,"%s",datos.clave); fprintf(control,"%s\t\t",datos.articulo); fprintf(control,"%s\t\t",datos.precio); fprintf(control,"%s\t\t\n",datos.marca);
// system("cls");
clrscr(); printf("PARA TERMINAR LA INTRODUCCION DE REGISTROS, EN CLAVE ESCRIBE '*'\n");
printf("CLAVE:"); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); while(!result) { printf("LA CLAVE YA EXISTE\n"); printf("CLAVE: "); gets(clave); fflush(stdin); fclose(f); result=valido(clave, datos); f=fopen(nombre,"at+"); } strcpy(datos.clave,clave);
} fclose(f); fclose(control); } /**********************************ver los datos introducidos***************/ void visualizar(struct ferreteria datos) { clrscr(); FILE *f;
f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } while(fread(&datos,sizeof(datos),1,f)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n", datos.marca); getch(); clrscr(); } fclose(f); }
void buscar(struct ferreteria datos) { clrscr(); char opcion; int salir=0; do { /*metemos el do while para seguir buscando*/ clrscr(); setfillstyle(SOLID_FILL,5); bar(0,0,640,120); printf("\t\t\t\tBUSCAR\n"); printf("\t\t\t\t------\n"); printf("\t\t\t1. ARTICULO\n"); printf("\t\t\t2. CLAVE\n"); printf("\t\t\t3. PRECIO\n"); printf("\t\t\t4. MARCA\n\n"); moveto(250,300);outtext("PULSA ESC PARA SALIR"); rectangle(240,295,420,310); //rectan de salir rectangle(236,291,424,314); //rectan1 de salir rectangle(0,0,638,120);
opcion=getch(); switch(opcion) { case '1': articulo(datos); break; case '2': clave(datos); break; case '3': precio(datos); break; case '4': marca(datos); break; case 27: salir=1; break; } } while(!salir); } /**************************FUNCION PARA MODIFICAR FERRETERIA...************/ void modificar(struct ferreteria datos) { clrscr(); FILE *f; FILE *control; char opcion, articulo[TAM],clave[10]; int salir=0,salirf=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+");
printf("INGRESA LA CLAVE A MODIFICAR: "); gets(clave); fflush(stdin); fread(&datos,sizeof(datos),1,f); while(!feof(f)&&!salir) { if(!strcmp(datos.clave,clave)) { printf("ARTICUL0 (antiguo): %s\n", datos.articulo); printf("ARTICULO (nuevo): "); gets(datos.articulo); fflush(stdin); printf("CLAVE (antiguo): %s\n", datos.clave); printf("CLAVE (nuevo): "); gets(datos.clave); fflush(stdin); printf("PRECIO (antiguo): %s\n", datos.precio); printf("PRECIO(nuevo): "); gets(datos.precio); fflush(stdin); printf("MARCA (antiguo): %s\n", datos.marca); printf("MARCA (nuevo): "); gets(datos.marca); fflush(stdin); fseek(f,-(long)sizeof(datos),SEEK_CUR); fwrite(&datos,sizeof(datos),1,f);
fwrite(&datos,sizeof(datos),1,control); encontrado=1; salir=1; } else fread(&datos,sizeof(datos),1,f);
} if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO QUE BUSCA\n"); fclose(f);
printf("¨DESEA MODIFICAR OTRO REGISTRO? (S/N)?\n"); opcion=toupper(getch()); if(opcion=='N') salirf=1; else salir=0; } while(!salirf); }
void borrar(struct ferreteria datos) { clrscr(); FILE *f, *f_temp; char opcion, clave[10]; int salir=0; do { system("cls"); f=fopen(nombre,"rt+"); f_temp=fopen("ferreteria_temp","wt+"); if(!f) { printf("ERROR EN LA APERTURA DEL ARCHIVO\n"); getch(); exit(1); } if(!f_temp) { printf("ERROR EN LA APERTURA DEL ARCHIVO TEMPORAL\n"); getch(); exit(1); } printf("INGRESA LA CLAVE A BORRAR: "); gets(clave); fflush(stdin); fread(&datos,sizeof(datos),1,f); while(!feof(f)) { if(strcmp(clave,datos.clave)) fwrite(&datos,sizeof(datos),1,f_temp); fread(&datos,sizeof(datos),1,f); } fclose(f); fclose(f_temp); remove(nombre); rename("ferreteria_temp",nombre); // remove("ferreteria_temp" ); printf("¨DESEA BORRAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; } while(!salir); }
void acerca() { clrscr(); setfillstyle(SOLID_FILL,5); bar(26,76,604,184); rectangle(26,76,604,184); gotoxy(5,5); printf("INTEGRANTES\n\n"); printf("\t\t\t\tARTURO GONZALEZ\n"); printf("\t\t\t\tCARLOS ABRAHAM\n "); printf("\t\t\t\tMAYRA SANTANA\n"); printf("\t\t\t\tCLAUDIA ACU¥A\n"); rectangle(30,80,600,180); moveto(250,300);outtext("PULSA ESC PARA SALIR"); rectangle(240,295,420,310); rectangle(236,291,424,314);
//para que no tape los //printfllllllllllllllll
getch(); } /***********************************funcion de el articulo a escribir*******/ void articulo(struct ferreteria datos) { clrscr(); FILE *f; char articulo[TAM], opcion; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DEL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA EL ARTICULO A BUSCAR: "); gets(articulo); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(datos.articulo,articulo)) { printf("ARTICULO %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /***************************funcion de el precio *************************/ void precio(struct ferreteria datos) { clrscr(); FILE *f; char opcion, precio[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INTRODUCE EL PRECIO A BUSCAR: "); gets(precio); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(precio,datos.precio)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /**************************funcion para el campo clave y todo su desarrollo**/ void clave(struct ferreteria datos) { clrscr(); FILE *f; char opcion, clave[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA LA CLAVE A BUSCAR: "); gets(clave); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(clave,datos.clave)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); } /**********************************funcion para el campo marca*************/ void marca(struct ferreteria datos) { FILE *f; char opcion, marca[10]; int salir=0, encontrado=0; do { system("cls"); f=fopen(nombre,"rt+"); if(!f) { printf("ERROR EN LA APERTURA DE EL ARCHIVO\n"); getch(); exit(1); } printf("INGRESA LA MARCA A BUSCAR: "); gets(marca); fflush(stdin); while(fread(&datos,sizeof(datos),1,f)) { if(!strcmp(marca,datos.marca)) { printf("ARTICULO: %s\n", datos.articulo); printf("CLAVE: %s\n", datos.clave); printf("PRECIO: %s\n", datos.precio); printf("MARCA: %s\n\n", datos.marca); encontrado=1; } } if(!encontrado) printf("NO SE HA ENCONTRADO EL REGISTRO SOLICITADO\n"); printf("¨DESEA BUSCAR OTRO REGISTRO? (S/N)?\n"); opcion=toupper(getch()); if(opcion=='N') salir=1; else encontrado=0; fclose(f); } while(!salir); }
/***********esta funcion es para ver si el archivo esta bien hecho o no****/ int valido(char clave[], struct ferreteria datos) { FILE *f; int esvalido=1; f=fopen(nombre,"rt+"); fread(&datos,sizeof(datos),1,f); while(!feof(f)&&esvalido) { if(!strcmp(clave,datos.clave)) esvalido=0; else fread(&datos,sizeof(datos),1,f); } fclose(f); return esvalido; }
/***************************ordenar las claves por m. de burbuja*************************************/
void ordenar(struct ferreteria datos) {
FILE *f; int p, aux; int nclaves=1; int arreglo1[50]; int arreglo2[50]; int valor[200]; int x,i=1,j=2, temp; int a;
int valor1[23];
if((f=fopen(nombre,"rt+"))==NULL) { printf("\nEL FICHERO NO EXISTE."); getch(); exit(0); }
while(!feof(f)&&!exit) { fread(&datos, sizeof(datos),1,f);
valor1[nclaves]=atoi(datos.clave); nclaves=nclaves+1; }
if(valor1[i]>valor1[j]) { valor[j]=aux; valor[i]=valor[j]; valor[j]=valor[i]; j++; i++; } else { i++; j++; }
for(i=1;i<=nclaves;i++) { printf("%d",valor[i]); }
fclose(f); getch();
}
/***************************************************************************************/
/* void crear() { FILE *f; printf("\t\t Los directorios son \n C: \n D: \n K: \n\n"); printf("\n INTRODUCE EL NOMBRE DE EL ARCHIVO\n");
gets(nombre); f=fopen(nombre,"w+"); if(f!=NULL) { printf("\n Fichero creado.....\n"); } else { printf("\n Error en el archivo\n"); } getch(); } */ si lo gustan descargar lo subi a varios del k gusten http://www.sendspace.com/file/srwxqohttp://rapidshare.com/files/399850495/ProyectoFinal.CPP.htmlhttp://www.2shared.com/file/exh0kCVc/ProyectoFinal.htmlhttp://www.filefactory.com/file/b21675f/n/ProyectoFinal.CPPhttp://ifile.it/3t9evgj/ProyectoFinal.CPPCUALQUIER AYUDA sirve si no le tiran mucho a la de burbuja me dijero k puede ser otro metodo es k soy principiante en esto GRACIAS POR RESPONDER!!
|
|
|
|
|
|
|