1ª PARTE:
Faça um algoritmo que irá cadastrar o nome dos 20 alunos de uma turma, suas 2 notas e, automaticamente, sua média calculada da seguinte forma: (N1*4 + N2*6) /10. A média deve ser calculada pelo algoritmo logo quando o usuário digita as duas primeiras notas do aluno. Quando todos os alunos estiverem cadastrados, o algoritmo deve perguntar ao usuário se o mesmo deseja a lista dos alunos ordenada por ordem alfabética ou por ordem da menor para a maior média. O usuário informa qual opção deseja e o algoritmo irá ordenar a lista dos alunos (por nome ou média) e irá exibi-la ao usuário.
2ª PARTE:
Utilizando o algoritmo da questão anterior, após informar a lista dos alunos, permita que o usuário possa fazer a busca por um determinado nome de aluno e exiba suas notas caso o aluno esteja cadastrado na lista. Para isso o algoritmo deve perguntar qual o nome do aluno a ser buscado e irá iniciar uma busca na lista de nomes. Obs.: para esta busca podemos supor que a lista de nomes está organizada em ordem alfabética. Crie uma função chamada busca para realizar a busca pelo nome e faça uma chamada a esta função quando o usuário informar o nome desejado. Dentro da função diga se o nome pesquisado existe na listagem ou não.
(PS1.: Como estava sem saco de ficar cadastrando 20 alunos e suas respectivas notas, coloquei uma opção para o cadastramento automatico.)
//Autor: Thiago Campos
//Data: 11.06.2012
import java.util.Scanner;
/**
*
* @author Thiago
*/
public
class Aluno {
public static void main(String[] args) {
//declaração de variaveis
Scanner leia = new Scanner(System.in);
String aluno[] = new String[20];
String linha[] = new String[20];
double n1[] = new double[20];
double n2[] = new double[20];
double media[] = new double[20];
int j = 0;
int op, sair = 0;
int tipo;
String busca;
//menu
do cadastro
do {
System.out.println("Escolha a opção de cadastramento;\n1-Cadastro
Automatico"
+
"\n2-Cadatro Manual");
tipo =
leia.nextInt();
} while (tipo
> 0 ^ tipo < 3);
//Inicio
do cadastramento automatico
if (tipo == 1)
{ //condição para cadastramento automatico
//nome
do aluno
aluno[0] =
"Raniere Oliveira";
aluno[1] =
"Raul Cesar";
aluno[2] =
"PH Dantas";
aluno[3] =
"Roberto Queiroz";
aluno[4] =
"Leonardo Souto";
aluno[5] =
"Carla Souza";
aluno[6] =
"Rodrigo Garcia";
aluno[7] =
"Tiago Galas";
aluno[8] = "Brunno
Carvalho";
aluno[9] =
"Thiago Campos";
aluno[10]
= "Beto Barbosa";
aluno[11]
= "Caio Oliveira";
aluno[12]
= "Lee Hernandiz";
aluno[13]
= "Herivelton Paiva";
aluno[14]
= "Augustinho Paizinho";
aluno[15]
= "Hugo Leonardo";
aluno[16]
= "Edlyn Bruce";
aluno[17]
= "Tiago Alves";
aluno[18]
= "Srta Skimming";
aluno[19]
= "Rafael Teta";
//primeira nota
n1[0] =
6.5;
n1[1] =
9.0;
n1[2] =
7.9;
n1[3] =
4.2;
n1[4] =
7.8;
n1[5] =
8.0;
n1[6] =
5.5;
n1[7] =
4.0;
n1[8] =
7.4;
n1[9] =
9.2;
n1[10] =
5.8;
n1[11] =
5.0;
n1[12] =
6.8;
n1[13] =
8.7;
n1[14] =
5.9;
n1[15] =
6.2;
n1[16] =
7.3;
n1[17] =
8.3;
n1[18] =
1.5;
n1[19] =
6.9;
//segunda nota
n2[0] =
3.9;
n2[1] =
6.0;
n2[2] =
4.9;
n2[3] =
7.0;
n2[4] =
6.5;
n2[5] =
6.0;
n2[6] =
4.9;
n2[7] =
3.0;
n2[8] =
6.9;
n2[9] =
7.7;
n2[10] =
6.7;
n2[11] =
7.0;
n2[12] =
6.9;
n2[13] =
7.4;
n2[14] =
4.3;
n2[15] =
7.1;
n2[16] =
5.5;
n2[17] =
6.6;
n2[18] =
2.9;
n2[19] =
3.3;
//media do aluno
for (int i
= 0; i < aluno.length; i++) {
media[i] = ((n1[i]) * 4 + (n2[i]) * 6) / 10;
}
} //fim
do if para cadastramento automatico
else {
//inicio da entrada dos dados manual
for (int i = 0; i < aluno.length;
i++) {
System.out.print("O nome
do aluno:");
aluno[i] = leia.nextLine();
}
//cadatramento das notas dos alunos
for (int i = 0; i < aluno.length;
i++) {
System.out.println("Digite
as notas de(o) " + aluno[i]);
n1[i]
= leia.nextDouble();
n2[i] = leia.nextDouble();
media[i] = ((n1[i]) * 4 + (n2[i]) * 6) / 10;
} //fim
do for - entrada dos dados manual
} //fim
do else
//inicio
das respostas
while
(sair != 4) { //condição para o menu opções
op =
0; //inicializando a variavel
System.out.println("Escolha a opção;\n1-Ordenar por Nome"
+ "\n2-Ordenar por Média\n3-Buscar um aluno\n4-Fechar programa");
op = leia.nextInt();
//Escolha da
opção Ordenar
switch
(op) {
//Ordena
por nome
case 1:
//codigo de ordenação
j = 0; //zera
a condição do laço
while (j < aluno.length) { //Será responsavel por refazer
j++;
for (int i = 0; i
< aluno.length - 1; i++) {
if
(aluno[i].compareTo(aluno[i + 1]) > 0) {
String aux;
//ordenação
do aluno
aux =
aluno[i + 1];
aluno[i +
1] = aluno[i];
aluno[i] = aux;
double
aux1; //ordenação da nota 1
aux1 = n1[i
+ 1];
n1[i + 1] =
n1[i];
n1[i] =
aux1;
double
aux2; //ordenação da nota 2
aux2 = n2[i
+ 1];
n2[i + 1] =
n2[i];
n2[i] = aux2;
double
aux3; //ordenação da media
aux3 =
media[i + 1];
media[i +
1] = media[i];
media[i] =
aux3;
} //fim do if
} //fim for
} //fim do while
//imprime a resposta do case 1
System.out.println("\nNOME----------------NOTA-------NOTA2-------MÉDIA");
for (int i = 0; i <
aluno.length; i++) {
System.out.printf("->%s
-------- %.2f -------- %.2f --------- %.2f"
+
"\n", aluno[i], n1[i], n2[i], media[i]);
} //fim do for
System.out.println(); //Espaçamento
break; //Para o Case 1
case 2: //vai ordenar conforme a media
//codigo de ordenação
j = 0; //zera a condição do laço
while (j < aluno.length) { //Será responsavel por refazer a ordenação
j++;
//inicio da
ordenação
for (int i = 0; i < aluno.length - 1; i++) {
//Codigo
condicional
if (media[i]
> media[i + 1]) {
//vai
ordenar os nomes conforme o criterio do if (media)
String aux;
//ordenação do aluno
aux =
aluno[i + 1];
aluno[i +
1] = aluno[i];
aluno[i] =
aux;
double
aux1; //ordenação da nota 1
aux1 = n1[i
+ 1];
n1[i + 1] =
n1[i];
n1[i] =
aux1;
double aux2; //ordenação
da nota 2
aux2 = n2[i
+ 1];
n2[i + 1] =
n2[i];
n2[i] =
aux2;
//vai
ordenar os nomes conforme o criterio do if (media)
double
aux3; //ordenação da media
aux3 =
media[i + 1];
media[i +
1] = media[i];
media[i] = aux3;
} //fim do if
} //fim for
} //fim do while
System.out.printf("\nNOME --------------------- MEDIA\n");
//laço da impressão
for (int i = 0; i <
aluno.length; i++) {
System.out.printf("->%s
------------ %.2f\n", aluno[i], media[i]);
} // fim do for - impressao
System.out.println(); //Espaçamento
break; //Para o Case 2
case 3: //busca por um nome
System.out.print("\nInforme o nome do aluno desejado:");
busca = leia.nextLine();
busca = leia.nextLine(); //opção encontrada para parar o nextLine()
int buscaV = Pesquisar(busca, aluno); //Envia o nome de busca e o vetor de aluno
if (buscaV != 21) { // Traz a posição do aluno
System.out.printf("->%s
--> %.2f --> %.2f --> %.2f\n"
+
"\n", aluno[buscaV], n1[buscaV], n2[buscaV], media[buscaV]); //Dados do aluno na posição
}
else {
System.out.print("Desculpe, aluno não encontrado!\n");
} //fim do if
break; //Para o Case 3
case 4: //sai do programa
sair = op;
System.out.println("Programa Fechado!");
break;
} //fim
do swhith
} //fim
do while
} //fim
do main
//------------------------------------------------------------------------------------------
/** INICIO DA FUNÇÃO PESQUISAR*/
//------------------------------------------------------------------------------------------
public static int Pesquisar(String busca,
String aluno[]) {
int pos =21; //Inicializa a variavel pos com a posição 21
for (int i = 0; i < aluno.length;
i++) {
if
(busca.equalsIgnoreCase(aluno[i])) {
//Verifica se encontra o aluno
pos =
i; //Salva a posição do aluno
System.out.println("\nAluno encontrado!");
} //fim do if
} //fim do for
return pos; //Retorna a posição do aluno encontrado ou o valor 21
} // fim da função Pesquisar
} //fim da classe Aluno
Pessoal, a idéia deste blog é ajudar estudantes a tirar suas dúvidas. Ps. Também sou estudante e tenho muiiitas dúvidas! rs...).
Portanto, quem encontrar erros... não me critique, me ajude!
Está Ótimo !! Parabéns;
ResponderExcluirObrigado amigo!
ExcluirBoa thiagao de muito boa ajuda esse blog
ResponderExcluirObrigado Thiago!
Excluirfudeoroso thiago!! mas uma coisa, como faria a busca em função?
ResponderExcluirPaizinho creio que a sua pergunta ja está respondida. Acrescentei ao código a função Pesquisar. Ela retornará a posição do aluno e o main irá imprimir os dados desse aluno.
ExcluirEspero que tenha ajudado.
Muito bom cara! :D
ResponderExcluirObrigado!
ResponderExcluirBoa noite Thiago! Sou Antonio Bernardo, morro em Teresina-PI. Estou inciando meus estudos em java e utilizando o código que você postou para aprendizado. Gostaria de saber como ficaria o método deletar.
ResponderExcluire-mail: sena.rosa@hotmail.com