Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: practice.java
- * Name:
- * Section Leader:
- * --------------------
- * This file is the starter file for the Hailstone problem.
- */
- import acm.graphics.GCanvas;
- import acm.graphics.GLabel;
- import acm.graphics.GLine;
- import acm.program.*;
- import java.util.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class Practice extends GraphicsProgram {
- public Practice() {
- }
- public void addTeacher(String teacher) {
- teachers.add(teacher);
- }
- public void addSubject(String teacher, String subject) {
- if (teachers.contains(teacher)) {
- ArrayList<String> sub;
- sub = Tsubjects.get(teacher);
- sub.add(subject);
- Tsubjects.put(teacher,sub);
- ArrayList<String> teach;
- teach = Steachers.get(subject);
- teach.add(teacher);
- Steachers.put(subject, teach);
- }
- }
- public void addPupil(String pupil, String subject) {
- if (pupils.contains(pupil)) {
- pupils.add(pupil);
- ArrayList<String> pup;
- pup = Spupils.get(subject);
- pup.add(pupil);
- Spupils.put(subject,pup);
- ArrayList<String> sub;
- sub = Psubjects.get(pupil);
- sub.add(subject);
- Psubjects.put(pupil,sub);
- }
- }
- public Iterator<String> getTeachers(String pupil) {
- if (pupils.contains(pupil)) {
- ArrayList <String> temp;
- ArrayList <String> answer = new ArrayList <String>();
- temp=Psubjects.get(pupil);
- for (int i=0;i<temp.size();i++) {
- if (Steachers.get(temp.get(i))!=null) {
- mergeArr(answer,Steachers.get(temp.get(i)));
- }
- }
- for (int i=0;i<answer.size();i++) {
- if (!teachers.contains(answer.get(i))) {
- answer.remove(i);
- }
- }
- return answer.iterator();
- }
- return null;
- }
- private void mergeArr (ArrayList a,ArrayList b) {
- for (int i=0;i<b.size();i++) {
- if (!a.contains(b.get(i))) {
- a.add(b.get(i));
- }
- }
- }
- public Iterator<String> getPupils(String teacher) {
- if (teachers.contains(teacher)) {
- ArrayList <String> temp;
- ArrayList <String> answer = new ArrayList <String>();
- temp=Tsubjects.get(teacher);
- for (int i=0;i<temp.size();i++) {
- if (Spupils.get(temp.get(i))!=null) {
- mergeArr(answer,Spupils.get(temp.get(i)));
- }
- }
- return answer.iterator();
- }
- return null;
- }
- public void removeTeacher(String teacher) {
- for (int i=0;i<teachers.size();i++) {
- if (teachers.get(i).equals(teacher)) {
- teachers.remove(i);
- }
- }
- Tsubjects.remove(teacher);
- }
- ArrayList <String> teachers;
- Map < String,ArrayList<String> > Tsubjects = new HashMap < String,ArrayList<String> >();
- ArrayList <String> pupils;
- Map < String,ArrayList<String> > Spupils = new HashMap < String,ArrayList<String> >();
- Map < String,ArrayList<String> > Psubjects = new HashMap < String,ArrayList<String> >();
- Map < String,ArrayList<String> > Steachers = new HashMap < String,ArrayList<String> >();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement