Me encuentro realizando un algoritmo en el programa Falcon C++. Un parte del algoritmo trata de ingresar artículos con su respectiva cantidad, esto lo implemente y funciona perfectamente. La cuestión es que no logro hacer que no se agreguen artículos que ya existen (si se ingresa un articulo y este ya existe, el mismo no se debe guardar / almacenar en el vector). Dicha parte del algoritmo deberia de funcionar asi: si se detecta que el usuario digito un articulo y presiono la tecla enter, el algoritmo deberá detectar si dicho articulo ya existe, si existe no se deberá dejar ingresar dicho articulo porque ya existe, notificara que ya existe y procedera a solicitar el siguiente articulo.
¿Cómo podría implementar la parte de que impida almacenar articulos repetidos?
- Aportó el codigo por si se requiere
Código
#include <iostream> #include <string> #include <vector> #include <algorithm> #include <cstdio> using namespace std; vector <string> art; vector <string> canti; vector <string> art_cero; string articulo, cantidad; int can, opc, a, b, c, n; void Uno(int cant) { for (int i=0; i<cant; i++) { cout<<endl<<endl<<" Ingrese art\241culo No."<<i+1<<": "; cin>>articulo; art.push_back(articulo); b=b+1; cout<<endl<<" Ingrese su cantidad: "; cin>>cantidad; canti.push_back(cantidad); if (b>1) { for(int i=0; i<art.size(); i++) { if(articulo==art[i]) { c=c+1; cout<<articulo; if(c>1) { cout<<endl<<"El articulo existe, no sera agregado"; art.pop_back(); canti.pop_back(); c=0; } } } } } } void Dos(int cant) { if(cant==0) { cout<<endl<<endl<<endl<<" No existen articulos con sus cantidades, registrelos"; } else { for (int i=0; i<art.size() && canti.size(); i++) { cout<<endl<<endl<<" Articulo: "<<art[i]<<endl; cout<<" Cantidad: "<<canti[i]<<endl; } } } void Tres(int cant) { for (int i=0; i<art.size() && canti.size(); i++) { if(canti[i]=="0") { art_cero.push_back(art[i]); } } for (int i=0; i<a; i++) { cout<<endl<<endl<<" "<<art_cero[i]; cout<<" Cantidad : 0"<<endl; } } int main() { // Se indican los ejercicios que contiene el algoritmo y su opcion o numero de acceso o ejecución cout<<endl<<endl<<endl<<endl<<endl<<" |-| Opciones |-|"<<endl<<endl; cout<<endl<<" 1) Ingresar articulos con sus respectivas cantidades"; cout<<endl<<" 2) Imprimir la lista total de art\241culos"; cout<<endl<<" 3) Consultar articulos cuya existencia sea 0"; cout<<endl<<" 4) Salir"<<endl<<endl; cout<<endl<<" Introduzca una opcion de 1 a 4: "; cin>>opc; do { switch(opc) { case 1: { system ("cls"); cout<<endl; printf("%c",168);cout<<" Cuantos art\241culos desea ingresar?: "; cin>>can; Uno(can); cout<<" ----------------------------------------------"; return main(); break; } case 2: { Dos(can); cout<<endl<<" ----------------------------------------------"; return main(); break; } case 3: { Tres(can); cout<<" ----------------------------------------------"; return main(); break; } case 4: { // Se finaliza el programa cout<<endl<<endl<<endl<<endl; exit(0); break; cout<<" ----------------------------------------------"; return main(); break; } default: // Se indica que no hay nada que ejecutar dentro de las opciones dadas system ("cls"); cout<<endl<<" El numero ingresado no esta relacionado a una opci\242n"<<endl<<endl; cout<<" ----------------------------------------------"<<endl<<endl; return main(); break; } } while(opc!=6); cout<<endl<<endl; }
No les pido que me realicen el código porque esa no es la idea, lo que deseo es: ¿saber como se puede dar solución a esto, lo que explique al principio?
Gracias de antemano por vuestra atención y ayuda.