/*------------------------------------------------------------------------- | The software accompanies the paper | | | | Classes and Objects of Chemical Thermodynamics in Object-Oriented | | Programming. 2. A Class of Chemical Species | | | | E.B. Rudnyi | | E-mail: rudnyi@comp.chem.msu.su | | Homepages: http://www.chem.msu.su/~rudnyi/welcome.html | | | | presented at Second Electronic Computational Chemistry Conference, | | November 1995, http://hackberry.chem.niu.edu/ECCC2/ | --------------------------------------------------------------------------*/ #include #include "species.h" #include "memtst.h" void print_formula(formula& t) { if (t) { cout << "formula " << t << ", massa is " << t.mass() << ", number of characters " << t.len() << endl; cout << "molecular formula "; for (int i = 0; i < t.nel(); i++) cout << t.el(i) << t.noa(i) << ' '; cout << endl; cout << "number of K atoms is " << t.noa(elem("K")) << endl << endl; } else cout << "formula is not determined" << endl << endl; } int main() { memory test; formula a; formula b("K2SO4"); a = b; print_formula(a); a = "Al2(SO4)3"; print_formula(a); b = "KSO4-"; print_formula(b); b = "SO4e2 "; print_formula(b); b = "C60e-10 "; print_formula(b); do { cout << endl; cout << "Enter first formula (spaces are not allowed)" << endl; cin >> a; print_formula(a); cout << "Enter second formula (spaces are not allowed)" << endl; cin >> b; print_formula(b); cout << "results of comparisons" << endl; cout << "a < b is " << (a < b) << endl; cout << "a <= b is " << (a <= b) << endl; cout << "a == b is " << (a == b) << endl; cout << "a >= b is " << (a >= b) << endl; cout << "a > b is " << (a > b) << endl; } while (a && b); return 0; }