Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Adriano Assis 20788078
- // Diogo Faria
- // Jessica de Marchi 20668136
- // Lavinia Miranda
- // Victor Furtado 20880059
- package agendaaljv;
- // Importação da classe Scanner
- import java.util.Scanner;
- public class AgendaALJV {
- // Declaração de variáveis globais
- public static int i = 0, xI = 0, iAM = 0, iD1 = 0, iD2 = 0, iD3 = 0, novoD, novoM, escolha, resp, respMD, numm, numd, mNum;
- public static int n = 15;
- public static String nomes [] = new String[n];
- public static int dias [] = new int[n];
- public static int meses [] = new int[n];
- Scanner entrada = new Scanner (System.in);
- // Criação do metódo menu que imprime o Menu da agenda
- public static void menu() {
- System.out.println("=================================================================");
- System.out.println("│\t\t\t MENU DA AGENDA\t\t\t│");
- System.out.println("│\t1 - Novo Cadastro\t\t\t\t\t│");
- System.out.println("│\t2 - Excluir um amigo\t\t\t\t\t│");
- System.out.println("│\t3 - Alterar dia ou mês\t\t\t\t\t│");
- System.out.println("│\t4 - Consultar dia e mês\t\t\t\t\t│");
- System.out.println("│\t5 - Consultar aniversariantes do mês\t\t\t│");
- System.out.println("│\t6 - Consultar aniversariantes pela inicial do nome\t│");
- System.out.println("│\t7 - Mostrar agenda ordenada por nome\t\t\t│");
- System.out.println("│\t8 - Sair\t\t\t\t\t\t│");
- System.out.println("=================================================================");
- System.out.println("");
- System.out.print("Digite a opção desejada: ");
- }
- /* Criação do método de entrada do nome da pessoa utilizando toLowerCase
- em seguida para que o nome se torne inteiro minuscúlo */
- public static void lerValorN(Scanner entrada){
- System.out.print("Digite o nome: ");
- nomes [i] = entrada.nextLine();
- nomes [i] = nomes[i].toLowerCase();
- }
- /* Criação dos metódos com entradas int's, onde foi utilizado um try e catch
- junto da classe Integer + o comando parse, onde caso ocorra a entrada de um
- carácter diferente de um número, ele acusa que está errado e retorna para
- digitar novamente */
- public static void lerValorM(Scanner entrada){
- try{
- System.out.print("Digite o mês: ");
- meses [i] = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Mês inválido. ");
- lerValorM (entrada);
- }
- }
- public static void lerValorD(Scanner entrada){
- try{
- System.out.print("Digite o dia: ");
- dias [i] = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido. ");
- lerValorD (entrada);
- }
- }
- public static void lerValorExcluir(Scanner entrada){
- try{
- System.out.println("Escolha o número referente a pessoa que deseja "
- + "excluir da agenda (1 a 15): ");
- escolha = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- lerValorExcluir (entrada);
- }
- }
- public static void lerValorAlterar(Scanner entrada){
- try{
- System.out.print("Escolha o número referente a pessoa que deseja "
- + "alterar o dia ou o mês (1 a 15): ");
- resp = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Opção inválida. ");
- lerValorAlterar (entrada);
- }
- }
- public static void lerValorAlterar1(Scanner entrada){
- try{
- System.out.println("Deseja alterar o dia(1) ou o mês(2)?");
- respMD = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Opção inválida. ");
- lerValorAlterar1 (entrada);
- }
- }
- public static void lerValorNovoD1(Scanner entrada){
- try{
- System.out.println("Digite o novo dia: ");
- novoD = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 28 dias. ");
- lerValorNovoD1 (entrada);
- }
- }
- public static void lerValorNovoD2(Scanner entrada){
- try{
- System.out.println("Digite o novo dia: ");
- novoD = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 30 dias. ");
- lerValorNovoD2 (entrada);
- }
- }
- public static void lerValorNovoD3(Scanner entrada){
- try{
- System.out.println("Digite o novo dia: ");
- novoD = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 31 dias. ");
- lerValorNovoD3 (entrada);
- }
- }
- public static void lerValorNovoM(Scanner entrada){
- try{
- System.out.print("Mês inválido, os meses são de 1 a 12. "
- + "Digite novamente: ");
- novoM = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- lerValorNovoM (entrada);
- }
- }
- public static void lerValorNovoM1(Scanner entrada){
- try{
- System.out.print("Mês inválido, o novo mês possui apenas 28 dias, "
- + "diferente do mês atual ou os meses são entre 1 e 12. "
- + "Digite novamente: ");
- novoM = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- lerValorNovoM1 (entrada);
- }
- }
- public static void lerValorNovoM2(Scanner entrada){
- try{
- System.out.print("Mês inválido, o novo mês possui apenas 30 dias, "
- + "diferente do mês atual ou os meses são entre 1 e 12. "
- + "Digite novamente: ");
- novoM = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- lerValorNovoM2 (entrada);
- }
- }
- public static void lerValorNovoM3 (Scanner entrada){
- try{
- System.out.println("Digite o novo mês: ");
- novoM = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- lerValorNovoM3 (entrada);
- }
- }
- public static void lerValorNumm(Scanner entrada){
- try{
- System.out.println("Digite o número correspondente ao mês (1 a 12): ");
- numm = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Mês inválido, os meses são entre 1 e 12. ");
- lerValorNumm (entrada);
- }
- }
- public static void lerValorNumd1(Scanner entrada){
- try{
- System.out.println("Digite o dia: ");
- numd = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 31 dias. ");
- lerValorNumd1 (entrada);
- }
- }
- public static void lerValorNumd2(Scanner entrada){
- try{
- System.out.println("Digite o dia: ");
- numd = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 30 dias. ");
- lerValorNumd2 (entrada);
- }
- }
- public static void lerValorNumd3(Scanner entrada){
- try{
- System.out.println("Digite o dia: ");
- numd = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Dia inválido, este mês tem 28 dias. ");
- lerValorNumd3 (entrada);
- }
- }
- public static void lerValorMNum(Scanner entrada){
- try{
- System.out.println("Digite o número correspondente ao mês (1 a 12): ");
- mNum = Integer.parseInt(entrada.nextLine());
- }
- catch(Exception e){
- System.out.print("Mês inválido, os meses são entre 1 e 12. ");
- lerValorMNum (entrada);
- }
- }
- /* Criação do método novocadastro para que sejam realizados os cadastros
- das pessoas na agenda */
- public static void novocadastro() {
- Scanner entrada = new Scanner(System.in);
- // Enquanto i < n será possível adicionar pessoas na agenda
- while (i < n){
- // Metódo de entrada do nome
- lerValorN (entrada);
- /* Enquanto o nome começar com um número ou um espaço o usuário deverá
- digitar novamente o nome */
- while (nomes [i].charAt(0) == '0' || nomes [i].charAt(0) == '1'
- || nomes [i].charAt(0) == '2' || nomes [i].charAt(0) == '3'
- || nomes [i].charAt(0) == '4' || nomes [i].charAt(0) == '5'
- || nomes [i].charAt(0) == '6' || nomes [i].charAt(0) == '7'
- || nomes [i].charAt(0) == '8' || nomes [i].charAt(0) == '9'
- || nomes [i].charAt(0) == ' '){
- System.out.print("O nome não se pode começar com número ou"
- + " espaço. ");
- lerValorN (entrada);
- }
- // Metódo de entrada do mês
- lerValorM (entrada);
- // Laço para validar o mês
- do{
- if (meses[i] < 1 || meses[i] > 12){
- System.out.print("Mês inválido, os meses vão de 1 a 12. ");
- lerValorM (entrada);
- }
- } while(meses[i] < 1 || meses[i] > 12);
- // Switch para entrada dos dias
- switch(meses[i]){
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- // Método de entrada do dia
- lerValorD(entrada);
- // Laço para validar o dia dos meses acima
- do{
- if (dias[i] < 1 || dias[i] > 31){
- System.out.print("Esse mês só tem 31 dias. ");
- lerValorD(entrada);
- }
- else {
- System.out.println(" ");
- }
- } while(dias[i] < 1 || dias[i] > 31);
- System.out.println("Cadastro concluído!");
- System.out.println(" ");
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- // Método de entrada do dia
- lerValorD(entrada);
- // Laço para validar o dia dos meses acima
- do{
- if (dias[i] < 1 || dias[i] > 30){
- System.out.print("Esse mês só tem 30 dias. ");
- lerValorD(entrada);
- }
- else {
- System.out.println(" ");
- }
- } while(dias[i] < 1 || dias[i] > 30);
- System.out.println("Cadastro concluído!");
- System.out.println(" ");
- break;
- case 2:
- // Método de entrada do dia
- lerValorD(entrada);
- // Laço para validar os dias do mês de fevereiro
- do{
- if (dias[i] < 1 || dias[i] > 28){
- System.out.print("Esse mês só tem 28 dias. ");
- dias[i] = entrada.nextInt();
- }
- else {
- System.out.println(" ");
- }
- } while(dias[i] < 1 || dias[i] > 28);
- System.out.println("Cadastro concluído!");
- System.out.println(" ");
- break;
- // Após a entrada do nome, dia e mês retorna ao menu
- default:
- menu();
- }
- // Contador do vetor
- i = i + 1;
- break;
- }
- /* Caso i seja igual ou maior a 15, que é o limite de contatos da agenda,
- irá exibir o aviso de que está cheia e irá retornar ao menu
- */
- if (i >= n){
- System.out.println("Agenda está cheia, para adicionar um novo "
- + "amigo, por favor exclua alguém.");
- System.out.println(" ");
- }
- }
- // Criação do método para excluir um contato
- public static void excluir() {
- Scanner entrada = new Scanner (System.in);
- // Declaração de variáveis
- int pos = 1, x = 0;
- // Exibição da agenda
- System.out.println("==============================");
- System.out.println("\t AGENDA");
- /* Enquanto existirem contatos na agenda eles serão exibidos com um
- número de 1 a 15 na frente */
- while(nomes [x] != null){
- System.out.println(pos + ". " + nomes[x]);
- x++;
- pos++;
- if (x == 15){
- break;
- }
- }
- System.out.println("==============================");
- // Método de entrada de quem irá ser excluído
- lerValorExcluir(entrada);
- /* Enquanto a escolha for menor que 1 e maior que 15 ele retornará
- ao método de entrada de exclusão */
- while (escolha < 1 || escolha > 15){
- lerValorExcluir(entrada);
- }
- /* Ao mostrar a agenda que começa em 1 e vai até 15, ele diminui em 1
- para que se escolha o vetor certo para excluir */
- escolha = escolha - 1;
- /* A partir da escolha ele irá trocar a posição do vetor e sempre, pelo
- menos o último vetor, ficará vazio */
- switch (escolha){
- case 0:
- nomes[0] = nomes[1];
- dias[0] = dias[1];
- meses[0] = meses[1];
- nomes[1] = nomes[2];
- dias[1] = dias[2];
- meses[1] = meses[2];
- nomes[2] = nomes[3];
- dias[2] = dias[3];
- meses[2] = meses[3];
- nomes[3] = nomes[4];
- dias[3] = dias[4];
- meses[3] = meses[4];
- nomes[4] = nomes[5];
- dias[4] = dias[5];
- meses[4] = meses[5];
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 1:
- nomes[1] = nomes[2];
- dias[1] = dias[2];
- meses[1] = meses[2];
- nomes[2] = nomes[3];
- dias[2] = dias[3];
- meses[2] = meses[3];
- nomes[3] = nomes[4];
- dias[3] = dias[4];
- meses[3] = meses[4];
- nomes[4] = nomes[5];
- dias[4] = dias[5];
- meses[4] = meses[5];
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 2:
- nomes[2] = nomes[3];
- dias[2] = dias[3];
- meses[2] = meses[3];
- nomes[3] = nomes[4];
- dias[3] = dias[4];
- meses[3] = meses[4];
- nomes[4] = nomes[5];
- dias[4] = dias[5];
- meses[4] = meses[5];
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 3:
- nomes[3] = nomes[4];
- dias[3] = dias[4];
- meses[3] = meses[4];
- nomes[4] = nomes[5];
- dias[4] = dias[5];
- meses[4] = meses[5];
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 4:
- nomes[4] = nomes[5];
- dias[4] = dias[5];
- meses[4] = meses[5];
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 5:
- nomes[5] = nomes[6];
- dias[5] = dias[6];
- meses[5] = meses[6];
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 6:
- nomes[6] = nomes[7];
- dias[6] = dias[7];
- meses[6] = meses[7];
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 7:
- nomes[7] = nomes[8];
- dias[7] = dias[8];
- meses[7] = meses[8];
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 8:
- nomes[8] = nomes[9];
- dias[8] = dias[9];
- meses[8] = meses[9];
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 9:
- nomes[9] = nomes[10];
- dias[9] = dias[10];
- meses[9] = meses[10];
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 10:
- nomes[10] = nomes[11];
- dias[10] = dias[11];
- meses[10] = meses[11];
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 11:
- nomes[11] = nomes[12];
- dias[11] = dias[12];
- meses[11] = meses[12];
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 12:
- nomes[12] = nomes[13];
- dias[12] = dias[13];
- meses[12] = meses[13];
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 13:
- nomes[13] = nomes[14];
- dias[13] = dias[14];
- meses[13] = meses[14];
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- case 14:
- nomes[14] = null;
- dias[14] = 0;
- meses[14] = 0;
- System.out.println("A pessoa foi excluída.");
- break;
- }
- // Liberação de espaço no vetor diminuindo o contador em 1
- i = i - 1;
- }
- // Criação do método para alterar dia ou mês
- public static void alterar() {
- Scanner entrada = new Scanner (System.in);
- // Declaração de variáveis
- int pos = 1, x = 0;
- // Exibição da agenda
- System.out.println("==============================");
- System.out.println("\t AGENDA");
- /* Enquanto existirem contatos na agenda eles serão exibidos com um
- número de 1 a 15 na frente */
- while(nomes [x] != null){
- System.out.println(pos + ". " + nomes[x]);
- x++;
- pos++;
- if (x == 15){
- break;
- }
- }
- System.out.println("==============================");
- // Método de entrada da escolha do contato a ser alterado
- lerValorAlterar(entrada);
- /* Enquanto a escolha for menor que 1 e maior que 15 ele retornará
- ao método de entrada de alteração de contato */
- while (resp < 1 || resp > 15){
- System.out.print("Opção inválida. ");
- lerValorAlterar(entrada);
- }
- /* Ao mostrar a agenda que começa em 1 e vai até 15, ele diminui em 1
- para que se escolha o vetor certo para alterar */
- resp = resp - 1;
- // Método de entrada de escolha de alteração do dia ou mês
- lerValorAlterar1(entrada);
- /* Enquanto a escolha for menor que 1 e maior que 2 ele retornará
- ao método de entrada de alteração do dia ou mês */
- while (respMD < 1 || respMD > 2){
- System.out.print("Opção inválida. ");
- lerValorAlterar1(entrada);
- }
- /* Caso a entrada seja 1, que é para alterar o dia, e o mês atual for
- fevereiro ele irá chamar o método de entrada do novo dia */
- if (meses[resp] == 2){
- if (respMD == 1){
- lerValorNovoD1(entrada);
- /* Enquanto a escolha for menor que 1 e maior que 28 ele
- retornará ao método de entrada do novo dia */
- while (novoD < 1 || novoD > 28){
- lerValorNovoD1(entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo dia
- através da entrada do usuário */
- switch (resp){
- case 0:
- dias[resp] = novoD;
- break;
- case 1:
- dias[resp] = novoD;
- break;
- case 2:
- dias[resp] = novoD;
- break;
- case 3:
- dias[resp] = novoD;
- break;
- case 4:
- dias[resp] = novoD;
- break;
- case 5:
- dias[resp] = novoD;
- break;
- case 6:
- dias[resp] = novoD;
- break;
- case 7:
- dias[resp] = novoD;
- break;
- case 8:
- dias[resp] = novoD;
- break;
- case 9:
- dias[resp] = novoD;
- break;
- case 10:
- dias[resp] = novoD;
- break;
- case 11:
- dias[resp] = novoD;
- break;
- case 12:
- dias[resp] = novoD;
- break;
- case 13:
- dias[resp] = novoD;
- break;
- case 14:
- dias[resp] = novoD;
- break;
- }
- // Impressão do dia alterado
- System.out.println("O dia foi alterado para " + novoD + ".");
- }
- }
- /* Caso a entrada seja 1, que é para alterar o dia, e o mês atual houver
- 30 dias ele irá chamar o método de entrada do novo dia */
- if (meses[resp] == 4 || meses[resp] == 6 || meses[resp] == 9 || meses[resp] == 11){
- if (respMD == 1){
- lerValorNovoD2(entrada);
- /* Enquanto a escolha for menor que 1 e maior que 30 ele
- retornará ao método de entrada do novo dia */
- while (novoD < 1 || novoD > 30){
- lerValorNovoD2(entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo dia
- através da entrada do usuário */
- switch (resp){
- case 0:
- dias[resp] = novoD;
- break;
- case 1:
- dias[resp] = novoD;
- break;
- case 2:
- dias[resp] = novoD;
- break;
- case 3:
- dias[resp] = novoD;
- break;
- case 4:
- dias[resp] = novoD;
- break;
- case 5:
- dias[resp] = novoD;
- break;
- case 6:
- dias[resp] = novoD;
- break;
- case 7:
- dias[resp] = novoD;
- break;
- case 8:
- dias[resp] = novoD;
- break;
- case 9:
- dias[resp] = novoD;
- break;
- case 10:
- dias[resp] = novoD;
- break;
- case 11:
- dias[resp] = novoD;
- break;
- case 12:
- dias[resp] = novoD;
- break;
- case 13:
- dias[resp] = novoD;
- break;
- case 14:
- dias[resp] = novoD;
- break;
- }
- // Impressão do dia alterado
- System.out.println("O dia foi alterado para " + novoD + ".");
- }
- }
- /* Caso a entrada seja 1, que é para alterar o dia, e o mês atual houver
- 31 dias ele irá chamar o método de entrada do novo dia */
- if (meses[resp] == 1 || meses[resp] == 3 || meses[resp] == 5
- || meses[resp] == 7 || meses[resp] == 8
- || meses[resp] == 10 || meses[resp] == 12){
- if (respMD == 1){
- lerValorNovoD3 (entrada);
- /* Enquanto a escolha for menor que 1 e maior que 31 ele
- retornará ao método de entrada do novo dia */
- while (novoD < 1 || novoD > 31){
- lerValorNovoD3 (entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo dia
- através da entrada do usuário */
- switch (resp){
- case 0:
- dias[resp] = novoD;
- break;
- case 1:
- dias[resp] = novoD;
- break;
- case 2:
- dias[resp] = novoD;
- break;
- case 3:
- dias[resp] = novoD;
- break;
- case 4:
- dias[resp] = novoD;
- break;
- case 5:
- dias[resp] = novoD;
- break;
- case 6:
- dias[resp] = novoD;
- break;
- case 7:
- dias[resp] = novoD;
- break;
- case 8:
- dias[resp] = novoD;
- break;
- case 9:
- dias[resp] = novoD;
- break;
- case 10:
- dias[resp] = novoD;
- break;
- case 11:
- dias[resp] = novoD;
- break;
- case 12:
- dias[resp] = novoD;
- break;
- case 13:
- dias[resp] = novoD;
- break;
- case 14:
- dias[resp] = novoD;
- break;
- }
- // Impressão do dia alterado
- System.out.println("O dia foi alterado para " + novoD + ".");
- }
- }
- // Caso a entrada for 2, será chamado o método de entrada do novo mês
- if (respMD == 2){
- lerValorNovoM3 (entrada);
- /* Se o dia atual for 29 ou 30 e o novo mês digitado for 2 ou menor
- que 1 e maior que 12 será solicitado que o usuário digite novamente
- o novo mês, pois o mês 2 não pode receber dia 29 ou 30 */
- if(dias[resp] == 29 || dias[resp] == 30){
- while (novoM == 2 || novoM < 1 || novoM > 12){
- lerValorNovoM1 (entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo mês
- através da entrada do usuário */
- switch (resp){
- case 0:
- meses[resp] = novoM;
- break;
- case 1:
- meses[resp] = novoM;
- break;
- case 2:
- meses[resp] = novoM;
- break;
- case 3:
- meses[resp] = novoM;
- break;
- case 4:
- meses[resp] = novoM;
- break;
- case 5:
- meses[resp] = novoM;
- break;
- case 6:
- meses[resp] = novoM;
- break;
- case 7:
- meses[resp] = novoM;
- break;
- case 8:
- meses[resp] = novoM;
- break;
- case 9:
- meses[resp] = novoM;
- break;
- case 10:
- meses[resp] = novoM;
- break;
- case 11:
- meses[resp] = novoM;
- break;
- case 12:
- meses[resp] = novoM;
- break;
- case 13:
- meses[resp] = novoM;
- break;
- case 14:
- meses[resp] = novoM;
- break;
- }
- // Impressão do mês alterado
- System.out.println("O mês foi alterado para " + novoM + ".");
- }
- /* Se o dia atual for 31 e o novo mês digitado for 2, 4, 6, 9, 11 ou
- menor que 1 e maior que 12 será solicitado que o usuário digite
- novamente o novo mês, pois o estes meses não podem receber o dia 31 */
- if(dias[resp] == 31){
- while (novoM == 2 || novoM == 4 || novoM == 6 || novoM == 9
- || novoM == 11 || novoM < 1 || novoM > 12){
- lerValorNovoM2 (entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo mês
- através da entrada do usuário */
- switch (resp){
- case 0:
- meses[resp] = novoM;
- break;
- case 1:
- meses[resp] = novoM;
- break;
- case 2:
- meses[resp] = novoM;
- break;
- case 3:
- meses[resp] = novoM;
- break;
- case 4:
- meses[resp] = novoM;
- break;
- case 5:
- meses[resp] = novoM;
- break;
- case 6:
- meses[resp] = novoM;
- break;
- case 7:
- meses[resp] = novoM;
- break;
- case 8:
- meses[resp] = novoM;
- break;
- case 9:
- meses[resp] = novoM;
- break;
- case 10:
- meses[resp] = novoM;
- break;
- case 11:
- meses[resp] = novoM;
- break;
- case 12:
- meses[resp] = novoM;
- break;
- case 13:
- meses[resp] = novoM;
- break;
- case 14:
- meses[resp] = novoM;
- break;
- }
- // Impressão do mês alterado
- System.out.println("O mês foi alterado para " + novoM + ".");
- }
- /* Se o dia atual estiver entre 1 e 28 e o novo mês digitado for
- menor que 1 e maior que 12 será solicitado que o usuário digite
- novamente o novo mês, pois os meses são de 1 a 12 */
- if(dias[resp] >= 1 || dias[resp] <= 28){
- while (novoM < 1 || novoM > 12){
- lerValorNovoM (entrada);
- }
- /* A partir da escolha do contato ele receberá o seu novo mês
- através da entrada do usuário */
- switch (resp){
- case 0:
- meses[resp] = novoM;
- break;
- case 1:
- meses[resp] = novoM;
- break;
- case 2:
- meses[resp] = novoM;
- break;
- case 3:
- meses[resp] = novoM;
- break;
- case 4:
- meses[resp] = novoM;
- break;
- case 5:
- meses[resp] = novoM;
- break;
- case 6:
- meses[resp] = novoM;
- break;
- case 7:
- meses[resp] = novoM;
- break;
- case 8:
- meses[resp] = novoM;
- break;
- case 9:
- meses[resp] = novoM;
- break;
- case 10:
- meses[resp] = novoM;
- break;
- case 11:
- meses[resp] = novoM;
- break;
- case 12:
- meses[resp] = novoM;
- break;
- case 13:
- meses[resp] = novoM;
- break;
- case 14:
- meses[resp] = novoM;
- break;
- }
- //Impressão do mês alterado
- System.out.println("O mês foi alterado para " + novoM + ".");
- }
- }
- }
- // Criação do método de consulta de dia e mês
- public static void consuldm() {
- Scanner entrada = new Scanner(System.in);
- Scanner entradaS = new Scanner(System.in);
- // Declaração de variável
- String ok;
- // Método de entrada do mês a ser consultado
- lerValorNumm (entrada);
- /* Enquanto o mês for menor que 1 e maior que 12, irá ser solicitado
- que o usuário digite novamente */
- do{
- if (numm < 1 || numm > 12){
- lerValorNumm (entrada);
- }
- } while(numm < 1 || numm > 12);
- /* Caso o mês escolhido possua 31 dias será solicitado a entrada
- do dia */
- switch(numm){
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- lerValorNumd1(entrada);
- /* Se o dia for menor que 1 e maior que 31 ele irá solicitar
- que o usuário digite o dia novamente */
- do{
- if (numd < 1 || numd > 31){
- lerValorNumd1(entrada);
- }
- else {
- System.out.println(" ");
- }
- } while(numd < 1 || numd > 31);
- // Impressão dos aniversariantes
- System.out.println("Os aniversariantes dessa data são: ");
- /* A partir do mês e dia digitados ele irá verificar a qual
- vetor o dia pertence e irá imprimir os nomes dos contatos */
- for(iD1 = 0; iD1 < 15; iD1++){
- if(numd == dias[iD1]){
- System.out.println(""+nomes[iD1]);
- }
- }
- System.out.println(" ");
- break;
- /* Caso o mês escolhido possua 30 dias será solicitado a entrada
- do dia */
- case 4:
- case 6:
- case 9:
- case 11:
- lerValorNumd2(entrada);
- /* Se o dia for menor que 1 e maior que 30 ele irá solicitar
- que o usuário digite o dia novamente */
- do{
- if (numd < 1 || numd > 30){
- lerValorNumd2(entrada);
- }
- else {
- System.out.println(" ");
- }
- } while(numd < 1 || numd > 30);
- // Impressão dos aniversariantes
- System.out.println("Os aniversariantes dessa data são: ");
- /* A partir do mês e dia digitados ele irá verificar a qual
- vetor o dia pertence e irá imprimir os nomes dos contatos */
- for(iD2 = 0; iD2 < 15; iD2++){
- if(numd == dias[iD2]){
- System.out.println(""+nomes[iD2]);
- }
- }
- System.out.println(" ");
- break;
- /* Caso o mês escolhido possua 28 dias será solicitado a entrada
- do dia */
- case 2:
- lerValorNumd3(entrada);
- /* Se o dia for menor que 1 e maior que 28 ele irá solicitar
- que o usuário digite o dia novamente */
- do{
- if (numd < 1 || numd > 28){
- lerValorNumd3(entrada);
- }
- else {
- System.out.println(" ");
- }
- } while(numd < 1 || numd > 28);
- // Impressão dos aniversariantes
- System.out.println("Os aniversariantes dessa data são: ");
- /* A partir do mês e dia digitados ele irá verificar a qual
- vetor o dia pertence e irá imprimir os nomes dos contatos */
- for(iD3 = 0; iD3 < 15; iD3++){
- if(numd == dias[iD3]){
- System.out.println(""+nomes[iD3]);
- }
- }
- System.out.println(" ");
- break;
- default:
- menu();
- }
- /* Após a exibição dos nomes será solicitado ao usuário que digite
- 'ok' quando desejar retornar ao menu */
- System.out.println("==============================");
- System.out.print("Quando desejar voltar ao menu digite 'OK' : ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- /* Enquanto for diferente de 'ok' será solicitado que digite
- novamente */
- while (!"OK".equals(ok)){
- System.out.print("Por favor digite ok para voltar ao menu: ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- if ("OK".equals(ok)){
- break;
- }
- }
- }
- // Criação do método para consultar aniversariantes do mês
- public static void anivermes() {
- Scanner entrada = new Scanner(System.in);
- Scanner entradaS = new Scanner(System.in);
- // Declaração de variável
- String ok;
- // Método para entrada do mês
- lerValorMNum (entrada);
- /* Enquanto o mês for menor que 1 e maior que 12 será solicitado que
- o usuário digite novamente o mês */
- do{
- if (mNum < 1 || mNum > 12){
- lerValorMNum (entrada);
- }
- } while(mNum < 1 || mNum > 12);
- // Se o mês estiver entre 1 e 12 serão exibidos os nomes
- if (mNum >= 1 && mNum <= 12){
- System.out.println("Os aniversariantes do mês são: ");
- /* A partir do mês digitado ele irá verificar a qual vetor o
- mês pertence e irá imprimir os nomes dos contatos */
- for(iAM = 0; iAM < 15; iAM++){
- if(mNum == meses[iAM]){
- System.out.println(""+nomes[iAM]);
- }
- }
- /* Após a exibição dos nomes será solicitado ao usuário que digite
- 'ok' quando desejar retornar ao menu */
- System.out.println("==============================");
- System.out.print("Quando desejar voltar ao menu digite 'OK' : ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- /* Enquanto for diferente de 'ok' será solicitado que digite
- novamente */
- while (!"OK".equals(ok)){
- System.out.print("Por favor digite ok para voltar ao menu: ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- if ("OK".equals(ok)){
- break;
- }
- }
- }
- else{
- anivermes();
- }
- }
- /* Criação do método para consulta de aniversariantes pela letra inicial do
- nome */
- public static void aniversariantes() {
- Scanner entrada = new Scanner (System.in);
- Scanner entradaS = new Scanner (System.in);
- // Declaração de variáveis
- String ok;
- char cA;
- int a;
- /* Entrada de inicial do nome + toLowerCase para que ela se torne
- minúscula */
- System.out.print("Digite a letra inicial do nome para ver os "
- + "aniversariantes com essa inicial: ");
- cA = entrada.next().charAt(0);
- cA = Character.toLowerCase(cA);
- /* Laço para verificar em qual vetor está localizado o nome
- com a inicial digitada */
- for (a = 0; a < i; a++){
- if (nomes[a] != null){
- if (cA == nomes[a].charAt(0)){
- System.out.println(nomes[a]);
- }
- }
- if (a == 15){
- break;
- }
- }
- /* Após a exibição dos nomes será solicitado ao usuário que digite
- 'ok' quando desejar retornar ao menu */
- System.out.println("==============================");
- System.out.print("Quando desejar voltar ao menu digite 'OK' : ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- /* Enquanto for diferente de 'ok' será solicitado que digite
- novamente */
- while (!"OK".equals(ok)){
- System.out.print("Por favor digite ok para voltar ao menu: ");
- ok = entradaS.nextLine();
- ok = ok.toUpperCase();
- if ("OK".equals(ok)){
- break;
- }
- }
- }
- // Criação do método para consultar agenda em ordem alfabética
- public static void consulagenda() {
- Scanner entrada = new Scanner(System.in);
- // Declaração de variáveis
- String ok, temp;
- System.out.println("==============================");
- System.out.println("\t AGENDA");
- // Utilização do BubbleSort para ordernar os nomes em ordem alfabética
- for (int j = 0; j < i; j++){
- for (int y = j + 1; y < i; y++){
- if (nomes[y].compareTo(nomes[j]) < 0){
- temp = nomes[j];
- nomes[j] = nomes[y];
- nomes[y] = temp;
- }
- }
- System.out.println(nomes[j]);
- }
- /* Após a exibição dos nomes será solicitado ao usuário que digite
- 'ok' quando desejar retornar ao menu */
- System.out.println("==============================");
- System.out.print("Quando desejar voltar ao menu digite 'ok': ");
- ok = entrada.nextLine();
- ok = ok.toUpperCase();
- /* Enquanto for diferente de 'ok' será solicitado que digite
- novamente */
- while (!"OK".equals(ok)){
- System.out.print("Por favor digite 'ok' para voltar ao menu: ");
- ok = entrada.nextLine();
- ok = ok.toUpperCase();
- if ("OK".equals(ok)){
- break;
- }
- }
- }
- // Criação do método main
- public static void main(String[] args){
- Scanner entrada = new Scanner(System.in);
- // Declaração de variável
- String opcao;
- /* Laço para que quando o usuário digitar a opção desejada chame os
- métodos */
- do{
- // Chamar o método menu e entrada da opção
- menu();
- opcao = entrada.nextLine();
- /* Se entrada desejada estiver entre 1 e 8 será chamado o método
- correspondente */
- switch (opcao){
- case "1":
- novocadastro();
- break;
- case "2":
- excluir();
- break;
- case "3":
- alterar();
- break;
- case "4":
- consuldm();
- break;
- case "5":
- anivermes();
- break;
- case "6":
- aniversariantes();
- break;
- case "7":
- consulagenda();
- break;
- case "8":
- System.out.println("Programa encerrado. "
- + "Obrigado por utilizar a agenda!");
- System.exit(0);
- break;
- /* Caso a entrada for diferente de 1-8 irá acusar opção inválida e
- será solicitado que digite novamente */
- default:
- System.out.println("");
- System.out.println("\t Opção inválida, as opções vão de 1 a "
- + "8.");
- System.out.println("");
- }
- // Enquanto a opção for diferente de 8 ele 'rodará' a agenda
- } while (opcao != "8");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement