Sistema de Votação com o J2ME – Java para dispositivos móveis
Boa noite computêros…
Dando continuidade a nossas aventuras pelo J2ME, lembram da Introdução?
Sabem que eu tenho uma certa mania de postar provas e exercícios aqui no blog… se procurarem vão encontrar algumas espalhadas por aí…
Que tal mais uma???
Monte um programa em J2ME que efetue a votação de filmes considerando os seguintes critérios:
- Para cada filme será exibido o encarte. Serão 5 filmes para a votação.
- Cada filme deverá receber notas de 0 a 5.
- A votação só encerra quando a última pessoa efetuar a votação. O qual deverá sempre ser perguntado após a votação.
- Ao final deverá exibir a classificação em ordem de crescente e o encarte do filme(obs: a referência será a média das notas votadas).
Código:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class votacaoRegimental extends MIDlet implements CommandListener{
private Command exitCommand;
private Command votarCommand;
private Command resCommand;
private Command voltarCommand;
private Display display;
private Image img_1,img_2,img_3,img_4,img_5;
private ChoiceGroup filme_1,filme_2,filme_3,filme_4,filme_5;
private int qtde_1,qtde_2,qtde_3,qtde_4,qtde_5;
private Form frmPrincipal;
private Form frmVoto;
private Form frmResultado;
public votacaoRegimental(){
display = Display.getDisplay(this);
frmPrincipal = new Form("Votação de filmes");
qtde_1 = 0;
qtde_2 = 0;
qtde_3 = 0;
qtde_4 = 0;
qtde_5 = 0;
exitCommand = new Command("Sair", Command.EXIT, 1);
votarCommand = new Command("Votar", Command.SCREEN, 1);
String votos[] = {"0","1","2","3","4","5"};
filme_1 = new ChoiceGroup("Filme 1",Choice.EXCLUSIVE, votos,null);
filme_2 = new ChoiceGroup("Filme 2",Choice.EXCLUSIVE, votos,null);
filme_3 = new ChoiceGroup("Filme 3",Choice.EXCLUSIVE, votos,null);
filme_4 = new ChoiceGroup("Filme 4",Choice.EXCLUSIVE, votos,null);
filme_5 = new ChoiceGroup("Filme 5",Choice.EXCLUSIVE, votos,null);
filme_1.setSelectedIndex(0,true);
frmPrincipal.addCommand(exitCommand);
frmPrincipal.addCommand(votarCommand);
try{
img_1 = Image.createImage("/filme1.png");
frmPrincipal.append(img_1);
}
catch(Exception e){}
frmPrincipal.append(filme_1);
try{
img_1 = Image.createImage("/filme2.png");
frmPrincipal.append(img_1);
}
catch(Exception e){}
frmPrincipal.append(filme_2);
try{
img_1 = Image.createImage("/filme3.png");
frmPrincipal.append(img_1);
}
catch(Exception e){}
frmPrincipal.append(filme_3);
try{
img_1 = Image.createImage("/filme4.png");
frmPrincipal.append(img_1);
}
catch(Exception e){}
frmPrincipal.append(filme_4);
try{
img_1 = Image.createImage("/filme5.png");
frmPrincipal.append(img_1);
}
catch(Exception e){}
frmPrincipal.append(filme_5);
frmPrincipal.setCommandListener(this);
}
public void zerar(){
filme_1.setSelectedIndex(0,true);
filme_2.setSelectedIndex(0,true);
filme_3.setSelectedIndex(0,true);
filme_4.setSelectedIndex(0,true);
filme_5.setSelectedIndex(0,true);
}
public void startApp() {
display.setCurrent(frmPrincipal); //o formulário será o objeto inicial da tela
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c, Displayable s) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
else if (c == votarCommand){
qtde_1 += filme_1.getSelectedIndex();
qtde_2 += filme_2.getSelectedIndex();
qtde_3 += filme_3.getSelectedIndex();
qtde_4 += filme_4.getSelectedIndex();
qtde_5 += filme_5.getSelectedIndex();
Votos v = new Votos();
}
}
class Votos implements CommandListener{
public Votos(){
frmVoto = new Form("Voto computado");
voltarCommand = new Command("Voltar", Command.SCREEN,1);
frmVoto.addCommand(voltarCommand);
display.setCurrent(frmVoto);
resCommand = new Command("Resultado",Command.SCREEN,1);
frmVoto.addCommand(resCommand);
frmVoto.setCommandListener(this);
StringItem texto = new StringItem("Voto Computado, você pode visualizar os resultados, ou voltar para a Votação através do menu.","...");
frmVoto.append(texto);
}
public void commandAction(Command c, Displayable s) {
if (c==voltarCommand){
zerar();
display.setCurrent(frmPrincipal);
}
else if (c==resCommand){
Resultado r = new Resultado();
}
}
}
class Resultado implements CommandListener{
public Resultado(){
frmResultado = new Form("Resultado da Votação");
voltarCommand = new Command("Menu Principal", Command.SCREEN,1);
frmResultado.addCommand(voltarCommand);
display.setCurrent(frmResultado);
frmResultado.setCommandListener(this);
int[] qtde_votos = {qtde_1,qtde_2,qtde_3,qtde_4,qtde_5};
int[] numero_filme = {1,2,3,4,5};
int aux;
int aux2;
for(int i=0;i< qtde_votos[j]){
aux = qtde_votos[i];
aux2 = numero_filme[i];
qtde_votos[i] = qtde_votos[j];
numero_filme[i] = numero_filme[j];
qtde_votos[j] = aux;
numero_filme[j] = aux2;
}
}
}
Image imgs[] = new Image[numero_filme.length];
for (int i=0;i
O código num tá comentado porque num tive tempo ainda de comentá-lo, portanto, se houver alguma dúvida comenta ae…
Obs:Desculpa pela zona do código, mas foi assim mesmo que fiz… Não é a melhor forma eu concordo… mas numa prova valendo 5 pontos na média, não podemos pensar só em como fazer da melhor forma, maximizando a utilização de recursos (deixe isso para Teoria da Computação).
Amigo seu codigo tá incompleto