#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
void print_menu(int &v1, string &p1,bool &opt1, bool &opt2, bool &opt3, bool &opt4, bool &opt5, bool &opt6);
void salidaTam(string p1, int salida);
void salidaPer(string p1);
void salidaFor(string p1);
void salidaVir(string p1);
void salidaCol(string p1);
void sub_menu(int &v1,bool &opt1, bool &opt2, bool &opt3, bool &opt4, bool &opt5, bool &opt6);
int main()
{
struct regtxt{
string tamanio;
string perforaciones;
string forma;
string virola;
string color;
};
string subopc;
int resp;
int resp2;
int resp3;
bool opc1,opc2,opc3,opc4,opc5,opc6;
opc1=opc2=opc3=opc4=opc5=opc6=true;
regtxt registro;
print_menu(resp,subopc,opc1,opc2,opc3,opc4,opc5,opc6);
while(resp != 6){
print_menu(resp,subopc,opc1,opc2,opc3,opc4,opc5,opc6);
}
return 0;
}
void salidaTam(string p1, int salida){
string linea;
ifstream fentrada("Botones.txt");
ofstream fsalida1("Salida1.txt");
while(!fentrada.eof()){
getline(fentrada,linea);
if (p1=="a"){
if (linea.substr(0,1)=="c"){
fsalida1<<linea<<endl;
}
}
if (p1=="b"){
if (linea.substr(0,1)=="m"){
fsalida1<<linea<<endl;
}
}
if (p1=="c"){
if (linea.substr(0,1)=="g"){
fsalida1<<linea<<endl;
}
}
}
}
void salidaPer(string p1){
string linea;
ifstream fentrada("Botones.txt");
ofstream fsalida1("Salida1.txt");
while(!fentrada.eof()){
getline(fentrada,linea);
if (p1=="a"){
if (linea.substr(2,1)=="1"){
fsalida1<<linea<<endl;
}
}
if (p1=="b"){
if (linea.substr(2,1)=="2"){
fsalida1<<linea<<endl;
}
}
if (p1=="c"){
if (linea.substr(2,1)=="4"){
fsalida1<<linea<<endl;
}
}
}
}
void salidaFor(string p1){
string linea;
ifstream fentrada("Botones.txt");
ofstream fsalida1("Salida1.txt");
while(!fentrada.eof()){
getline(fentrada,linea);
if (p1=="a"){
if (linea.substr(4,4)=="Redo"){
fsalida1<<linea<<endl;
}
}
if (p1=="b"){
if (linea.substr(4,4)=="Cuad"){
fsalida1<<linea<<endl;
}
}
if (p1=="c"){
if (linea.substr(4,4)=="Tria"){
fsalida1<<linea<<endl;
}
}
}
}
void salidaVir(string p1){
string linea;
ifstream fentrada("Botones.txt");
ofstream fsalida1("Salida1.txt");
while(!fentrada.eof()){
getline(fentrada,linea);
if (p1=="a"){
if (linea.substr(9,3)=="Con"){
fsalida1<<linea<<endl;
}
}
if (p1=="b"){
if (linea.substr(9,3)=="Sin"){
fsalida1<<linea<<endl;
}
}
}
}
void salidaCol(string p1){
string linea;
ifstream fentrada("Botones.txt");
ofstream fsalida1("Salida1.txt");
while(!fentrada.eof()){
getline(fentrada,linea);
if (p1=="a"){
if (linea.substr(13,5)=="Blanc"){
fsalida1<<linea<<endl;
}
}
if (p1=="b"){
if (linea.substr(13,5)=="Negro"){
fsalida1<<linea<<endl;
}
}
if (p1=="c"){
if (linea.substr(13,5)=="Rojo "){
fsalida1<<linea<<endl;
}
}
if (p1=="d"){
if (linea.substr(13,5)=="Amari"){
fsalida1<<linea<<endl;
}
}
}
}
void sub_menu(int &v1,bool &opt1, bool &opt2, bool &opt3, bool &opt4, bool &opt5, bool &opt6, int &salida){
int v2;
do{
cout << "Elija como quiere seguir: " <<endl;
cout << "1. Seguir aplicando filtros a la caja actual" <<endl;
cout << "2. Crear otra caja" <<endl;
cout << "3. Salir del programa" <<endl;
cin>>v2;
}while(v2 <= 0 || v2 >3);
if(v2==1){
return;
}
if(v2==2){
opt1=opt2=opt3=opt4=opt5=opt6=true;
salida++;
}
if(v2==3){
v1 = 6;
}
}
void print_menu(int &v1, string &p1,bool &opt1, bool &opt2, bool &opt3, bool &opt4, bool &opt5, bool &opt6){
int resp=0,cond1=0,cond2=0,cond3=0,cond4=0,cond5=0;
int salida=1; //variable que define el nombre de salida (todavia no se como aplicarla)
string subopc;
do{
cout << "Elija como quiere filtrar los botones: " <<endl;
if (opt1){
cout << "1. Tamanio" <<endl;
}
if (opt2){
cout << "2. Perforaciones" <<endl;
}
if (opt3){
cout << "3. Forma" <<endl;
}
if (opt4){
cout << "4. Virola" <<endl;
}
if (opt5){
cout << "5. Color" <<endl;
}
if (opt6){
cout << "6. Salir del programa" <<endl;
}
cin>> v1;
if(v1 == 1 && opt1 != false){
opt1 = false;
do{
cout << "Eliga la subopcion" <<endl;
cout << "a. Chico" << endl;
cout << "b. Mediano" << endl;
cout << "c. Grande" << endl;
cin >> p1;
}while (p1 < "a" || p1 > "c");
salidaTam(p1,salida);
}
if (v1 == 2 && opt2 != false){
opt2 = false;
do{
cout << "Eliga la subopcion" <<endl;
cout << "a. 1 Perforacion" << endl;
cout << "b. 2 Perforaciones" << endl;
cout << "c. 4 Perforaciones" << endl;
cin >> p1;
}while (p1 < "a" || p1 > "c");
salidaPer(p1);
}
if (v1 == 3 && opt3 != false){
opt3 = false;
do{
cout << "Eliga la subopcion" <<endl;
cout << "a. Redondo" << endl;
cout << "b. Cuadrado" << endl;
cout << "c. Triangulo" << endl;
cin >> p1;
}while (p1 < "a" || p1 > "c");
salidaFor(p1);
}
if(v1 == 4 && opt4 != false){
opt4 = false;
do{
cout << "Eliga la subopcion" <<endl;
cout << "a. Con virola" << endl;
cout << "b. Sin virola" << endl;
cin >> p1;
}while (p1 < "a" || p1 > "b");
salidaVir(p1);
}
if(v1 == 5 && opt5 != false){
opt5 = false;
do{
cout << "Eliga la subopcion" <<endl;
cout << "a. Blanco" << endl;
cout << "b. Negro" << endl;
cout << "c. Rojo" << endl;
cout << "d. Amarillo" << endl;
cin >> p1;
}while (p1 < "a" || p1 > "d");
salidaCol(p1);
}
sub_menu(v1,opt1,opt2,opt3,opt4,opt5,opt6,salida);
}while(v1 <= 0 || v1 >6);
}