A
chemist needs to record data of elements in periodic table. Draw the class
diagram and develop the classChemicalElement with name, atomicNum
andatomicWeight as private attributes. Code the constructorand toString()
method. The main() method inChemicalDemo class must store data of chemicals in
acollection and is menu driven with the followingoptions: a) Add new element,
b)sort based onatomicNum and c)search based on name.
Sol:
Class
Diagram:
|
package key;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
class ChemicalElement
{
private String name;
private int atomicNum;
private float atomicWeight;
public ChemicalElement(String name, int atomicNum, float atomicWeight)
{
this.name = name;
this.atomicNum = atomicNum;
this.atomicWeight = atomicWeight;
}
public String getName() {
return name;
}
public int getAtomicNum() {
return atomicNum;
}
public String toString() {
return "name=" + name + ", atomicNum=" + atomicNum + ", atomicWeight=" + atomicWeight;
}
}
class SortByAtomicNumber implements Comparator<ChemicalElement>
{
public int compare(ChemicalElement c1, ChemicalElement c2)
{
return (int)(c1.getAtomicNum()-c2.getAtomicNum());
}
}
public class ChemicalDemo
{
static ArrayList<ChemicalElement> cel= new ArrayList<ChemicalElement>();
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
while(true)
{
System.out.println("enter 1.
Add new element 2. sort based on atomicNum 3. search based on name 4.
exit");
int choice=sc.nextInt();
switch(choice)
{
case 1:
System.out.println("enter name, atomic number and its
atomic weight");
cel.add(new ChemicalElement(sc.next(),sc.nextInt(),sc.nextFloat()));
break;
case 2:
System.out.println("sorted
names based on atomic number");
Collections.sort(cel,new
SortByAtomicNumber());
for(ChemicalElement ob:cel)
System.out.println(ob);
break;
case 3:
System.out.println("enter name
to be searched");
String
key=sc.next();
for(ChemicalElement ob:cel)
if(ob.getName().equals(key))
{
System.out.println(ob);
break;
}
break;
case 4:
return;
default:
System.out.println("invalid
choice");
}
}
}
}
enter 1. Add new element 2. sort based on atomicNum 3. search based on name 4. exit
1
enter name, atomic number and its atomic weight
hydrogen
1
1.007
enter 1. Add new element 2. sort based on atomicNum 3. search based on name 4. exit
1
enter name, atomic number and its atomic weight
helium
2
4.002
enter 1. Add new element 2. sort based on atomicNum 3. search based on name 4. exit
2
sorted names based on atomic number
name=hydrogen, atomicNum=1, atomicWeight=1.007
name=helium, atomicNum=2, atomicWeight=4.002
enter 1. Add new element 2. sort based on atomicNum 3. search based on name 4. exit
3
enter name to be searched
helium
name=helium, atomicNum=2, atomicWeight=4.002
enter 1. Add new element 2. sort based on atomicNum 3. search based on name 4. exit
4
No comments:
Post a Comment