// Archivo main.cpp 
#include <iostream>
#include<locale.h>
#include <windows.h>
#include "solucion.hpp"
#include "molaridad.hpp"
#include "normalidad.hpp"
using namespace std;

void lectura(void);
void titulo(void);
int main()
{
	system("cls");
	system("color 70");
	setlocale(LC_ALL, "");
	string seguir = "S";
	while (seguir == "S" or seguir == "s")
	{
		titulo();
		Sleep(200);
		lectura();
		Sleep(200);
		cout << endl;
		cout << "\n\tDesea procesar otra solución S o N: ";
		cin >> seguir;
		while (seguir != "S" and seguir != "s" and seguir != "N" and seguir != "n")
		{
			cout << "\n\tError. Digite S o  N\t";
			Sleep(200);
			cin >> seguir;
		}
	}
}
void lectura(void)
{
	int op;
	float li, mo, eg;
	string no, fo;
	cout << "\n\tDatos del objeto de la clase solución " << endl;
	cout << "\n\t--------------------------------------";
	cout << "\n\tDigite el nombre de la solución: ";
	cin >> no;
	cout << "\n\tIngrese la fórmula química: ";
	cin >> fo;
	cout << "\n\tDigite los litros de solución: ";
	cin >> li;
	while (li <= 0)
	{
		cout << "\n\tError. Digite los litros de solución: ";
		cin >> li;
	}
	cout << endl;
	cout << "\n\t|--------------------------------------|";
	cout << "\n\t|  DIGITE NÚMERO DE OPCIÓN A PROCESAR  |";
	cout << "\n\t|--------------------------------------|";
	cout << "\n\t|  1. Concentración molar M            |";
	cout << "\n\t|  2. Concentración normal N           |";
	cout << "\n\t|--------------------------------------|";
	cout << "\n\tDigite el número de la opción: ";
	cin >> op;
	while (op < 1 or op > 2)
	{
		cout << "\n\tError. Digite el número de la opción: ";
		cin >> op;
	}
	titulo();
	Solucion Sol;
	Sol.getsolucion(no, fo);
	Sol.setsolucion();
	if (op == 1)
	{
		cout << "\n\t----------------------------------------------------------------";
		cout << "\n\n\tDigite el número de moles del soluto: ";
		cin >> mo;
		while (mo <= 0)
		{
			cout << "\n\tError. Digite el número de moles del soluto: ";
			cin >> mo;
		}
		Molaridad Mol;
		Mol.getmolaridad(no, fo, mo, li);
		Mol.setmolaridad();
		cout << "\n\tConcentración molar (M = mol/L): " << Mol.concentracion();
		cout << "\n\t-----------------------------------------------------------------";
	}
	else
	{
		cout << "\n\t----------------------------------------------------------------";
		cout << "\n\n\tDigite el número de equivalentes gramo del soluto: ";
		cin >> eg;
		while (eg <= 0)
		{
			cout << "\n\tError. Digite el número de equivalentes gramo del soluto: ";
			cin >> eg;
		}
		Normalidad Nor;
		Nor.getnormalidad(no, fo, eg, li);
		Nor.setnormalidad();
		cout << "\n\tConcentración normal (N = eqg/L): " << Nor.concentracion();
		cout << "\n\t-----------------------------------------------------------------";
	}
}
void titulo(void)
{
	system("cls");
	system("color 70");
	cout << "\n\tPrograma que determina la concentración de soluciones aplicando polimorfismo";
	cout << "\n\t----------------------------------------------------------------------------";
	cout << endl;
}
// final del archivo main.cpp
