diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fe541ab --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# IntelliJ project files +.idea +*.iml + diff --git a/src/tfc/Darasa.java b/src/tfc/Darasa.java new file mode 100644 index 0000000..5aa5aaf --- /dev/null +++ b/src/tfc/Darasa.java @@ -0,0 +1,42 @@ +package tfc; + +import java.util.ArrayList; + +public class Darasa { + // list of class members + ArrayList classMembers; + + public Darasa() { + // initialize list on instantiation + classMembers = new ArrayList<>(); + } + + // this method returns true if addition is successful and false otherwise + public boolean addClassMember(String name) { + // check if name exists + if (classMembers.contains(name)) { + return false; + } else { + // add member + classMembers.add(name); + return true; + } + } + + // this method returns true if removal is successful and false otherwise + public boolean removeClassMember(String name) { + // check if name exists + if (classMembers.contains(name)) { + // remove member + classMembers.remove(name); + return true; + } else { + return false; + } + } + + // this method returns the members of the class as a list + public ArrayList getDarasaMembers() { + return classMembers; + } +} diff --git a/src/tfc/SangJoseph.java b/src/tfc/SangJoseph.java new file mode 100644 index 0000000..876c752 --- /dev/null +++ b/src/tfc/SangJoseph.java @@ -0,0 +1,48 @@ +package tfc; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class SangJoseph { + public static void main(String[] args) { + // create instances + Darasa standard1 = new Darasa(); + Darasa standard2 = new Darasa(); + Darasa standard3 = new Darasa(); + + // add members + standard1.addClassMember("Githeko"); + standard1.addClassMember("Muschiri"); + + standard2.addClassMember("Wambugu"); + standard2.addClassMember("Kamande"); + + standard3.addClassMember("Joseph"); + standard3.addClassMember("Kibet"); + + // create school + Shule hillSchool = new Shule("Hill School"); + // add darasas + hillSchool.addDarasa("Standard 1", standard1); + hillSchool.addDarasa("Standard 2", standard2); + hillSchool.addDarasa("Standard 3", standard3); + + // display all classes and students + List list = hillSchool.getShule(); + System.out.println("School: " + list.get(0)); + HashMap dictionary = (HashMap) list.get(1); + System.out.println("--"); + Iterator iterator = dictionary.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry pair = (Map.Entry) iterator.next(); + System.out.println("Class: " + pair.getKey()); + Darasa darasa = (Darasa) pair.getValue(); + for (String name : darasa.getDarasaMembers()) { + System.out.println(name); + } + System.out.println("--"); + } + } +} diff --git a/src/tfc/Shule.java b/src/tfc/Shule.java new file mode 100644 index 0000000..eeff31a --- /dev/null +++ b/src/tfc/Shule.java @@ -0,0 +1,44 @@ +package tfc; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class Shule { + // fields + private String shuleName; + private HashMap shule; + + // constructor that assigns school name and instantiates dictrionary + public Shule(String shuleName) { + this.shuleName = shuleName; + shule = new HashMap<>(); + } + + // add a darasa and return dictionary representation + public HashMap addDarasa(String darasaName, Darasa darasa) { + if (shule.containsKey(darasaName)) { + // if darasa name already exists, do not add + return shule; + } else { + shule.put(darasaName, darasa); + return shule; + } + } + + // remove a darasa and return dictionary representation + public HashMap removeDarasa(String darasaName) { + shule.remove(darasaName); + return shule; + } + + public List getShule() { + // create a list + List shuleInfo = new ArrayList(); + // insert school name + shuleInfo.add(shuleName); + // insert dictionary of darasas + shuleInfo.add(shule); + return shuleInfo; + } +}