Skip to content

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.

Notifications You must be signed in to change notification settings

Williamjacobsen/ChemSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChemSolver

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.

Features

  • 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.

Getting Started

Prerequisites

Clone the Repository

git clone https://github.com/Williamjacobsen/ChemSolver.git
cd ChemSolver

Build and Run

dotnet build
dotnet run

On some systems, the application may attempt to resize the console window. If you experience issues, remove or comment out Console.SetWindowSize() in Program.cs.

Project Structure

  • 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).

Example Inputs

Redox Reaction

Input: MnO_4^-1 + NO_2^-1 -> MnO_2 + NO_3^-1 Solution type: s (acidic)

Oxidation Number

Input: NO_3^-1 Output: Oxidation number of N is +5

Organic Naming

Input: CH(CH)CH(cc)CH(ch)C(c)CC Output: 3,4-diethyl-2-methylhexane

Authors

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages