en un menu para listar, borrar, buscar un nombre en la clase vector:
este es mi codigo quiero hacerlo mas eficiente, controlar los nombres en mayusculas y minusculas y todo eso porfa.
Código (cpp) [Seleccionar]
//
#include <iostream>
#include <string>
#include <vector>
using std::vector;
using std::cout;
using std::cin;
using std::string;
using std::endl;
class cEstudiante{
public:
string nomv;
cEstudiante(string vnomv) : nomv(vnomv){}//constructor
};
main(){
int run, i, j=0, k=0, cont, con;
string NomEst, BusNom, PosNom;
vector<cEstudiante> vEstudiante;
int OpcMen, sigue = 1; //Variables para controlar el menu
do {
system("cls");
system (" color F0");
cout << "\n\n\t\t<<<<<<<<<<<<<<<<<<<<<<<<MENU>>>>>>>>>>>>>>>>>>>>>>>>>>\n" << endl;
cout << "\n\n 1 <**> INSERTAR DATOS" << endl;
cout << " 2 <**> BORRAR DATOS" << endl;
cout << " 3 <**> MOSTRAR DATOS" << endl;
cout << " 4 <**> BUSCAR DATOS" << endl;
cout << " 0 <**> SALIR" << endl << endl;
cout<<"\n\t Ingrese su opci\242n: ";
while(!(std::cin>>OpcMen))
{
std::cin.clear();
std::string error;
std::cin>>error;
system("cls");
cout<<"\n\tLA OPCION INGRESADA NO EXISTE\n";
cout<<"\n\tIngrese su opci\242n nuevamente: ";
}
switch(OpcMen) {
case 1:
system("cls");
cout << "\n\nENTRE EL NOMBRE:\n " ;
fflush(stdin);
getline(cin, NomEst);
system("cls");
do{
run = vEstudiante.size();
cont=0;
for (i=0;i<run;i++){
cEstudiante runEstudiante = vEstudiante[i];
if(runEstudiante.nomv == NomEst){
cont++;
} //I f
} //for
if(cont>0){
j++;
system ("cls");
cout << "\n\nESTE NOMBRE YA EXISTE!!!" << endl;
cout << "\n\nFAVOR DIGITAR OTRO NOMBRE DE ESTUDIANTE DIFERENTE\n" << endl;
system("pause");
system ("cls");
} cont=0;
}while(cont>0);
vEstudiante.push_back(cEstudiante(NomEst));
if(j==1) {
vEstudiante.erase(vEstudiante.begin()+i);
}
j=0;
break;
case 2:
system ("cls");
cout << "\nAQUIEN DESEA BORRAR :\n ";
cin >> PosNom;
for (i=0;i<run;i++){ //for inicio
cEstudiante runEstudiante = vEstudiante[i];
if(runEstudiante.nomv == PosNom){
k++;
cout << "\n\nEL NOMBRE \n" << PosNom;
vEstudiante.erase(vEstudiante.begin()+i);
cout << " FUE BORRADO CON EXITO!!!\n" << endl;
}
} //fin for
if(k==0){
cout << "\n ESTE NOMBRE NO EXITE !!!\n" << endl;
}
k=0;
system("pause");
system(" CLS");
break;
case 3:
system ("cls");
run = vEstudiante.size();
cout << "\n\nNOMBRE: \n" << endl;
for (i=0;i<run;i++){
cEstudiante PrintEstudiante = vEstudiante[i];
cout<<PrintEstudiante.nomv<<"\t "<<endl;
}
system("pause");
system ("cls");
break;
case 4:
system("cls");
cout<<"\n\nAQUIEN DESEA BUSCAR: ";
fflush(stdin);
getline(cin, BusNom);
run = vEstudiante.size();
con=0;
system("cls");
for (i=0;i<run;i++){ //inicio for
cEstudiante runEstudiante = vEstudiante[i];
if(runEstudiante.nomv == BusNom){
cout << "\nRESUTADO: \n\n" << endl;
cEstudiante PrintEstudiante = vEstudiante[i];
cout << "NOMBRE " << " POSICION\n" << endl;
cout <<PrintEstudiante.nomv<<"\t #"<< i+1<< endl<< endl;
con++;
system("pause");
}
} // fin for
system("cls");
if(con==0) {
cout << "\nESTE NOMBRE NO EXISTE : \n\n" << endl;
system("pause");}
con=0;
break;
case 0:
sigue = 0;
break;
default:
cout<<"\t\tLA OPCION INGRESADA NO EXISTE\n";
system("cls");
}
} while(sigue);
}
este es mi codigo quiero hacerlo mas eficiente, controlar los nombres en mayusculas y minusculas y todo eso porfa.