ayudaaaaa

tablandia
21 de Noviembre del 2005
necesito hacer el metodo de la burbuja e implementarselo a un programa que ya tengo pero el metodo tiene que ser que los nombres los acomode alfabeticamente y no se como puedo hacerlo porfavor necesito de su ayuda gracias mando el codigo que tengo

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<io.h>
#include<ctype.h>
#include<stdlib.h>

struct vehiculo
{
char marca[30], modelo[10],costo[10],color[10];
} x;

void capturar ()
{
int fd;
int dim;
printf("n Marca:= ");
fflush(stdin);gets(x.marca);
printf("n Modelo:= ");
gets(x.modelo);
printf("n Costo:= ");
gets(x.costo);
printf("n Color:= ");
gets(x.color);
if((fd=open("vehiculo.txt",4))<0)
fd=creat("vehiculo.txt",0751);
lseek(fd,0l,2);
dim=strlen(x.marca);
write(fd,&dim,2);
write(fd,&(x.marca),dim);
dim=strlen(x.modelo);
write(fd,&dim,2);
write(fd,&(x.modelo),dim);
dim=strlen(x.costo);
write(fd,&dim,2);
write(fd,&(x.costo),dim);
dim=strlen(x.color);
write(fd,&dim,2);
write(fd,&(x.color),dim);
close(fd);
}
void mostrar ()
{
int fd, k;
char aux[30];
fd=open("vehiculo.txt",0);
while((read(fd,&k,2))>0)
{
fflush(stdin);
read(fd,aux,k);
printf("n Marca:= ");
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
printf("n Modelo:= ");
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
printf("n Costo:= ");
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
printf("n Color:= ");
write(1,aux,k);
getch();
cout<<"n";
}
close(fd);
}
void buscar()
{
int fd,k,band=0;
char aux[30],marca[30];
printf("n A ver cual marca quieres buscar:= ");
fflush(stdin);
gets(marca);
fd=open("vehiculo.txt",0);
while((read(fd,&k,2))>0)
{
read(fd,&aux,k);
aux[k]='';
if(strcmp(aux,marca)==0)
{
band=1;
write(1,"n Marca:= ",7);
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
write(1,"n Modelo:= ",8);
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
write(1,"n Costo:= ",7);
write(1,aux,k);
read(fd,&k,2);
read(fd,aux,k);
write(1,"n Color:= ",7);
write(1,aux,k);
getch();
}
}
if(band==0)
{
clrscr();
printf("n El vehiculo lo encontre(quieres buscarlo de nuevo).");
getch();
}
close(fd);
}
void modificar()
{
int fd, fd2, c, band=0, nreg=4, dim;
char aux[30],marca2[30], respuesta;
printf("n Introduce la marca que vas a modificar:");
fflush(stdin);gets(marca2);
fd=open("vehiculo.txt",0);
while ((read(fd,&c,2))>0)
{
read(fd,aux,c);
aux[c]='';
if (strcmp(marca2,aux)==0)
{
band=1;
break;
}
}
if (band==1)
{
lseek(fd,0L ,0);
fd2=creat("temporal.txt",0751);
lseek(fd2,0L,2);
while((read(fd,&c,2))>0)
{
if(nreg%4==0)
{
read(fd,aux,c);
aux[c]='';
if(strcmp(aux,marca2)!=0)
{
write(fd2,&c,2);
write(fd2,aux,c);
}
else
{
write(1,"n Marca: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Modelo: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Costo: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Color: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
getch();
printf("nn A poco quieres modificar 1 o mas registros?:");
scanf("%c",&respuesta);
if(respuesta=='s'||respuesta=='S')
{
clrscr();
printf("n Introduce tus nuevos datos del vehiculo");
printf("nnn Marca:= ");
fflush(stdin);
gets(x.marca);
printf("n Modelo:= ");
gets(x.modelo);
printf("n Costo:= ");
gets(x.costo);
printf("n Color:= ");
gets(x.color);
lseek(fd2,0l,2);
dim=strlen(x.marca);
write(fd2,&dim,2);
write(fd2,&(x.marca),dim);
dim=strlen(x.modelo);
write(fd2,&dim,2);
write(fd2,&(x.modelo),dim);
dim=strlen(x.costo);
write(fd2,&dim,2);
write(fd2,&(x.costo),dim);
dim=strlen(x.color);
write(fd2,&dim,2);
write(fd2,&(x.color),dim);

}
else
return;
}
}
else
{
read(fd,aux,c);
nreg++;
}
}
close(fd);
close(fd2);
remove("vehiculo.txt");
rename("temporal.txt","vehiculo.txt");
}
else{
cout<<"n El vehiculo no se encontro";
getch();
}
}
void eliminar()
{ //inicio

int fd, fd2, c, band=0, nreg=4, dim;
char aux[30],marca2[30], respuesta;
printf("n Introduce la marca que necesitas cambiar:");
fflush(stdin);gets(marca2);
fd=open("vehiculo.txt",0);
while ((read(fd,&c,2))>0)
{
read(fd,aux,c);
aux[c]='';
if (strcmp(marca2,aux)==0)
{
band=1;
break;
}
}
if (band==1)
{
lseek(fd,0L ,0);
fd2=creat("temporal.txt",0751);
lseek(fd2,0L,2);

while((read(fd,&c,2))>0)
{
if(nreg%4==0)
{
read(fd,aux,c);
aux[c]='';
if(strcmp(aux,marca2)!=0)
{
write(fd2,&c,2);
write(fd2,aux,c);
}
else
{
write(1,"n Marca: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Modelo: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Costo: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
write(1,"n Color: ",9);
write(1,aux,c);
read(fd,&c,2);
read(fd,aux,c);
getch();
printf("nn ¨Quieres eliminar el registro? ");
scanf("%c",&respuesta);

if(respuesta=='s'||respuesta=='S');

else return;

}
}
else
{
read(fd,aux,c);
nreg++;
}
}
close(fd);
close(fd2);
remove("vehiculo.txt");
rename("temporal.txt","vehiculo.txt");
}
else{
cout<<"n El vehiculo no lo encuentro";
getch();
}
}

void main ()
{
int opc;
char cad[5];
do{

textmode(BW80);
textbackground(GREEN); textcolor(LIGHTRED);
clrscr();



clrscr();
printf("nn §§§§§§§§ UN MENU (POS PA VER QUIEN PREGUNTA)§§§§§§nn");
printf("n OPCION 1, - CAPTURA n ");
printf("n OPCION 2, - MOSTRAR n ");
printf("n OPCION 3, - BUSCAR n ");
printf("n OPCION 4, - MODIFICAR n ");
printf("n OPCION 5, - ELIMINAR n ");
printf("n OPCION 6, - SALIR n ");

scanf("%d",&opc);

switch (opc){
case 1:capturar();break;
case 2:mostrar();break;
case 3:buscar();break;
case 4:modificar();break;
case 5:eliminar();break;
case 6:printf("n ale bay....");getch();break;
}
}while(opc!=6);
}



Caiman
21 de Noviembre del 2005
Usa el comando strcmp para comparar cadenas y con eso verás si la cadena vale + ó - y podrás acomodarlas.

hello mira aki tengo un codigo
21 de Noviembre del 2005
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
char arreglo[100][20];
char *arr=" ";
int numeromaxelementos,re;
int primero, ultimo,cancel=0;
int i,j;
char r,aux[20];
cout<<"proporcione total de nombres a ordenar (1-100): ";
cin>>numeromaxelementos;
for(i=0;i<numeromaxelementos;i++)
{
cout<<"proporcione el nombre Nº "<<(i+1)<<": ";
cin>>arreglo[i];
cout<<"desea cancelar reservacion [s/n]:";
cin>>r;
if(r=='s')
{
strcpy(arreglo[i],arr);
cancel=cancel+1;
}
}
for(i=(numeromaxelementos-1);i>0;i--)
{
for(j=0;j<i;j++)
{
if(strcmp(arreglo[j],arreglo[j+1])>0)
{
strcpy(aux,arreglo[j]);
strcpy(arreglo[j],arreglo[j+1]);
strcpy(arreglo[j+1],aux);
}
}
}
clrscr();
re=numeromaxelementos-cancel;
cout<<"El Total de reservaciones es: "<<re<<endl;
cout<<"El total de cancelaciones es: "<<cancel<<endl;
cout<<"Los clientes son: "<<endl;
for(i=0;i<numeromaxelementos;i++)
{
cout<<arreglo[i]<<endl;
}
getch();
return;
}