ChemSolver is a console-based chemistry problem solver developed in C#. It provides interactive tools to help with tasks such as exploring the periodic table, analyzing redox reactions, calculating oxidation numbers, and naming organic compounds.
-
Interactive Periodic Table
Navigate a virtual periodic table and retrieve detailed element data from a JSON database. -
Redox Reaction Balancer
Input redox reactions and receive step-by-step assistance for balancing, including electron transfer, charge balancing (acidic or basic solutions), and final equation generation. -
Oxidation Number Calculator
Analyze chemical formulas to calculate the oxidation number of elements in compounds or ions. -
Organic Compound Naming Tool
Parses structural representations of organic molecules and provides IUPAC-compliant names, including support for branched chains and multiple bonds.
- .NET SDK (version 6 or later)
git clone https://github.com/Williamjacobsen/ChemSolver.git
cd ChemSolverdotnet build
dotnet runOn some systems, the application may attempt to resize the console window. If you experience issues, remove or comment out
Console.SetWindowSize()inProgram.cs.
-
Program.cs— Contains all core code, including:Program— Entry point and main menu.Chemistry— Main chemistry logic:- Periodic Table
- Redox Reactions
- Oxidation Numbers
- Organic Naming
UI— Terminal-based user interface and menu navigation.JsonHandler— Utilities for loading and parsing JSON data.
-
PeriodicTable.json— JSON file containing periodic element data (required for the Periodic Table feature).
Input: MnO_4^-1 + NO_2^-1 -> MnO_2 + NO_3^-1 Solution type: s (acidic)
Input: NO_3^-1 Output: Oxidation number of N is +5
Input: CH(CH)CH(cc)CH(ch)C(c)CC Output: 3,4-diethyl-2-methylhexane
- William Jacobsen
- Søren Laursen