CSCI-1301

This lab serves multiple goals:

A Class for Chemical Elements

In this lab, you will study and modify a class for chemical elements. Consult https://www.wikiwand.com/en/List_of_chemical_elements#List for a complete list of all elements.

Reading

Download ChemElemProject and extract the project. Open it in your IDE, compile, and execute it. Now read the code in “ChemElem.cs” and “Program.cs”.

The class definition “ChemElem.cs” contains:

The application program “Program.cs” performs one simple conversion from Kelvin to Celsius. It uses data given by the user to create and display a ChemElem object (implicitly calling the ToString method).

Modifying

Do the following:

  1. In “ChemElem.cs”, write getters and setters for all attributes
  2. In “ChemElem.cs”, write a constructor that requires no arguments.
  3. In “Program.cs”, create a second object using the custom constructor that takes 3 arguments, then display the value of its attributes using the getters you previously defined.
  4. In “Program.cs”, create an object using the no-args constructor, and set its values using the setters you previously defined.
  5. In “Program.cs”, display on the screen the string returned by the ToString method when it is called by the object you created in the previous step.
  6. In “Program.cs”, try calling the FromKelvinToCelsius method with one of your objects, for instance using hydrogen.FromKelvinToCelsius(34). What happens?
  7. Still in “Program.cs”, try calling the MeltingInCelsius method with the class, for instance using ChemElem.MeltingInCelsius();. What happens?

Enhancing

We now want to significantly improve this class, by adding:

  1. An attribute for the boiling point,
  2. All the tools needed to display the information in Fahrenheit degrees, in addition to Celsius and Kelvin.

You may want to comment out part or all of your “Program.cs” file before starting to change your class.

You should test all of those modifications in your “Program.cs” file as you implement them. Use relevant data, test your program, and make sure the behavior is the expected behavior.

Elements of solution Typically, you need to replace ``` csharp public ChemElem(int atomicNumberParam, string nameParam, decimal meltParam) ``` by ``` csharp public ChemElem(int atomicNumberParam, string nameParam, decimal meltParam, decimal boilParam) ``` and to add ``` csharp boil = boilParam; ``` to your constructor. More subtle, the `FromKelvinToFahrenheit` method can be defined as follows and then re-used: ``` csharp public static decimal FromKelvinToFahrenheit(decimal kelvinParam) { return kelvinParam * 9/5 - 459.67M; } public decimal MeltingInFahrenheit() { return FromKelvinToFahrenheit(melt); } public decimal BoilingInFahrenheit() { return FromKelvinToFahrenheit(boil); } ```