Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class HuxleyCode {
- public static void main(String[] args) {
- Scanner keyboard = new Scanner(System.in);
- String comando = "";
- boolean primeiraLeitura = true;
- String[] materias = {"Algoritmo", "SD", "Fisica", "Logica", "Estatistica"};
- Matricula matricula = new Matricula();
- while (keyboard.hasNextLine() && primeiraLeitura) {
- comando = keyboard.nextLine();
- if (!comando.equals("") && comando != null) {
- matricula.matricular(comando);
- } else {
- primeiraLeitura = false;
- }
- }
- while(keyboard.hasNextLine() && !comando.equals("#")) {
- comando = keyboard.nextLine();
- if (comando != null) {
- matricula.cancelar(comando);
- }
- }
- for (int i = 0; i < 5; i++) {
- System.out.printf("Estao matriculados na turma de %s %d aluno(os)\n", materias[i], matricula.contarAlunos(materias[i], 0));
- }
- }
- }
- class Matricula {
- private String declaracaoMatricula;
- private Matricula next;
- Matricula(){
- this.declaracaoMatricula = null;
- this.next = null;
- }
- public void matricular(String comando) {
- if (this.declaracaoMatricula == null) {
- this.declaracaoMatricula = comando;
- this.next = new Matricula();
- } else {
- if (this.declaracaoMatricula.equals(comando)) {
- this.declaracaoMatricula = comando;
- } else {
- this.next.matricular(comando);
- }
- }
- }
- public void cancelar(String comando) {
- if (this.declaracaoMatricula != null && this.declaracaoMatricula.equals(comando)) {
- this.declaracaoMatricula = this.next.declaracaoMatricula;
- if (this.next.next != null) {
- this.next = this.next.next;
- }
- } else if (this.declaracaoMatricula != null && !this.declaracaoMatricula.equals(comando)) {
- if (this.next != null) {
- this.next.cancelar(comando);
- }
- }
- }
- public int contarAlunos(String nome, int contador) {
- if (this.declaracaoMatricula != null && this.declaracaoMatricula.contains(nome)) {
- contador++;
- } else if (this.next != null) {
- return this.next.contarAlunos(nome, contador);
- }
- return contador;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement