Skip to the content.

CSA

CSA Week 0 Week 1 Week 2 Week 3 Final Week 5 Week 6 Study
Week 7

Week 0 - Ticket

(TPT) Study Group Challenges

Assignment:

Test Prep Plans for success:

AP Exam Plans for success:

Final Result:

Tri 3: Tech Talk 0 Data Structures

Challenge #0: Menu Try Catch

Option.java

package csa.util;

public abstract class Option {

    protected String optionName = "Option";

    public String getOptionName() {
        return optionName;
    }

    public void tester() {
        System.out.println("Test");
    }
}

Menu.java

package csa.util;

import java.util.Scanner;

public class Menu {

    public boolean running = true;

    public void run(String banner, Option[] options_array) {
        while (running) {
            Scanner scanObj = new Scanner(System.in);
            // Prints the banner message.
            System.out.println(banner);
            // Iterator, prints out options of the menu.
            int i = 1;
            System.out.println("0 - Exit");
            for (Option o : options_array) {
                System.out.print(i + " - ");
                i++;
                System.out.println(o.getOptionName());
            }

            // User Input
            int userInput;
            do {
                System.out.print(">");
                userInput = getValidInput(scanObj, options_array.length);
            } while (userInput < 0 || userInput > options_array.length);

            // Checks if user input matches a menu option.
            for (int o = 0; o < options_array.length; o++) {
                if (userInput == 0) {
                    running = false;
                }
                else if (userInput == o + 1) {
                    options_array[o].tester();
                }
            }
        }
    }

    // Error Handling
    private int getValidInput(Scanner scanObj, int arrayLength) {
        try {
            int userInput = Integer.parseInt(scanObj.nextLine());
            if (userInput <= -1 || userInput > arrayLength) {
                System.out.println("Out of Range");
            }
            return userInput;
        }
        catch(NumberFormatException e) {
            System.out.println("Wrong Format");
            return -1;
        }
        catch(Exception e) {
            System.out.println("Unknown Error");
            return -1;
        }
    }
}

Challenge #1: Number Swap

NumberSwap.java

package csa.week0;
import csa.util.Option;

public class NumberSwap extends Option {

    public NumberSwap() {
        optionName = "Number Swap";
    }

    public void tester() {
        System.out.println(swap(1, 2));
        System.out.println(swap(60, 30));
        System.out.println(swap(9, -11));
    }

    private String swap(int a, int b) {
        if (a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        return (a + " " + b);
    }

}

Challenge #2: Matrix Format

Numpad.java

package csa.week0;
import csa.util.Option;

public class Numpad extends Option {

    public Numpad() {
        optionName = "Numpad";
    }

    public void tester() {
        int[][] numpad_array = new int[][] CODE IMPLEMENTATION NOT SHOWN;
        for (int[] i : numpad_array) {
            for (int j : i) {
                System.out.print(j + " ");
            }
            System.out.println();
        }
    }
}

Keyboard.java

package csa.week0;
import csa.util.Option;

public class Keyboard extends Option {

    public Keyboard() {
        optionName = "Keyboard";
    }

    public void tester() {
        char[][] keyboard_array = new char[][] CODE IMPLEMENTATION NOT SHOWN;
        for (char[] i : keyboard_array) {
            for (char j : i) {
                System.out.print(j + " ");
            }
            System.out.println();
        }
    }
}