Académique Documents
Professionnel Documents
Culture Documents
Estructura II
Anulacin Insercin
Filas
#include <iostream> #include <iomanip> using namespace std; //declaracion de la estructura tipo registro struct ahorro{ int cuenta; char nom[25]; double saldo; }reg; int ne=6; //variable general //asignacion directa de datos a laestructura struct ahorro vec[]={{111,"Diaz",234},{222,"Perez",800},{333,"Caceres",567},{444,"Avila",678}, {555,"Gomez",1233},{666,"Ramos",1400} };
Estructura II
//insercin de registros en cualquier posicin void inserta(int p, struct ahorro x){ if(p>ne){ p=ne; vec[p]=x; ne++; return; } int f; for(f=ne;f>p;f--){ vec[f+1]=vec[f]; } vec[p]=x; cout<<"\n registro insertado \n"; cout<<endl; ne++; } void anula(int p){ int f; for(f=p;f<ne;f++){ vec[f]=vec[f+1]; } ne--; }
De acuerdo a la figura de la tabla 1 si se desea insertar un registro en la fila 3 , tenemos que desplazar todos los registros una fila ms hacia el ltimo registro Incrementando la cantidad de elementos en 1
Es contrario a la insercin debemos desplazar los registros hacia el registro anular Al final se debe quitar en 1 la cantidad de registros totales=> Ne=ne-1
void Ordena(struct ahorro vector[], int ne){ int c,p; struct ahorro aux; for(c=0;c<ne-1;c++){ for(p=c+1;p<ne;p++){ if(vector[c].saldo<vector[p].saldo){ aux=vector[c]; vector[c]=vector[p]; vector[p]=aux; } } } }
Proceso de Ordenamiento ,hay varias formas de ordenar por burbuja ,insercin directa ,Shell cada uno tiene ventajas y desventajas , la facilidad es el intercambio de filas entre registros
Estructura II
/// ordena por nombre void Ordena2(struct ahorro vector[], int ne){ int c,p; struct ahorro aux; for(c=0;c<ne-1;c++){ for(p=c+1;p<ne;p++){ if(strcmp(vector[c].nom,vector[p].nom)>0){ aux=vector[c]; vector[c]=vector[p]; vector[p]=aux; } } } }// fin ordena2 void listado(){ cout<<"\n Listado de Ahorristas \n"; cout<<setw(10)<<"Cuenta"<<setw(25)<<"Cliente"<<setw(12)<<"Saldo"<<"\n" ; for(int f=0;f<ne; f++){ cout<<setw(10)<<vec[f].cuenta<<setw(25)<<vec[f].nom<<setw(12)<<vec[f].sa ldo<<"\n"; } } main(){ vec[6].cuenta=777; strcpy(vec[6].nom,"Vidal"); vec[6].saldo=567; ne++; reg.cuenta=888; strcpy(reg.nom,"Berrio"); reg.saldo=1300; inserta(2,reg); Ordena2(vec,ne); int f;
Estructura II
system("pause");
} Nota.- Queda como trabajo para el alumno ,resolver los ejemplos propuestos con un men de opciones:
Ingrese OPcion=>