Funcao main

2 respostas
V

Ola galera!
Estou com um problema aqui e nao sei resolver! É um exercicio da facul.

No exercicio tenho duas class. Uma q se chama Professor e outra q se chama Cadastrar.

Segue as class:

import javax.swing.JOptionPane;
import java.util.Vector;

public class Professor

{

private String nome;

private int matricula;

private double cargaHoraria;
public void setNome(String n) {
	nome = n;
}

public String getNome() {
	return nome;
}

public void setMatricula(int m) {
	matricula = m;
}

public int getMatricula() {
    return matricula;
}

public void setCargaHoraria(double c) {
	cargaHoraria = c;
}

public double getCargaHoraria() {
	return cargaHoraria;
}

public double getCargaHorariaMensal() {
	return (cargaHoraria * 4.5);
}

public Professor (String n, int m, double c)
{
	nome = n;
	matricula = m;
	cargaHoraria = c;
}

}


// importando API

import javax.swing.JOptionPane;

import java.util.Vector;

public class Cadastrar {

Vector prof1 = new Vector(5);
String dados = new String();
String result = new String();
Integer busca = new Integer(2);
Professor cad = new Professor(" ",0,0);
int count = 0;
int opcao = 0;

public static void main (String args [])
{
	menu();
}
	
public void menu()
{
	while (opcao != 4) {
	String op = JOptionPane.showInputDialog (
		"Informe a sua opção informando um dos números abaixo:\n\n" +
		"1 - Inserir novo professor.\n" +
		"2 - Buscar por matricula.\n" +
		"3 - Listar professores.\n" +
		"4 - Sair.\n\n");
		
	opcao = Integer.parseInt(op);

	switch (opcao) {
	//	case 1:
	//		Cadastrar(cad);
	//		break;
			
		case 2:
			String mat = JOptionPane.showInputDialog("Informe a sua matricula");
			int matricula = Integer.parseInt (mat);
			buscarPorMatricula(matricula);
			break;
	
		case 3:
			listar();
			break;
	
		case 4: System.exit(0);
			break;
			
		default: JOptionPane.showMessageDialog(null, "Comando inválido");
		}
	}
}


public Cadastrar ()
{
	menu();
	if (count < 5) {
			
		String prof = JOptionPane.showInputDialog("Informe o nome do professor");
		String mat = JOptionPane.showInputDialog("Informe a sua matricula");
		String carga = JOptionPane.showInputDialog("Informe a carga horaria");

		int m = Integer.parseInt (mat);
		double c = Double.parseDouble (carga);
		
		cad.setNome(prof);
		cad.setMatricula(m);
		cad.setCargaHoraria(c);
		
		String nome = cad.getNome();
		int matricula = cad.getMatricula();
		double cargaHoraria = cad.getCargaHoraria();
				
		dados = "Nome: " + nome + " | " + " Matricula: " + matricula +
					" | " + " Carga Horária: " + cargaHoraria + "\n";
					
		JOptionPane.showMessageDialog(null, "Professor cadastrado com sucesso!",
							"Confirmação",JOptionPane.INFORMATION_MESSAGE);
		prof1.insertElementAt(dados, count);
		
		count += 1;
		
		}
		else
			JOptionPane.showMessageDialog (null, "Você adicionou " + count + " dados. Capacidade esgotada.",
							"Erro", JOptionPane.ERROR_MESSAGE);			
}

public void listar()
{
	if (prof1.isEmpty()) {
		JOptionPane.showMessageDialog(null, "Nenhum professor cadastrado!",
							"ERRO",JOptionPane.ERROR_MESSAGE);
	}
	else
		result = "";
		for (int j = 0; j < prof1.size(); j++) {
			result = result + prof1.elementAt(j);
		}
		JOptionPane.showMessageDialog(null, result);
}

public void buscarPorMatricula (int m)
{
	for (int k = 0; k < prof1.size(); k++){
//			busca = prof1.indexOf(m);

JOptionPane.showMessageDialog(null, "Elemento: " + busca);

}

}	

}

Acontece que quando chama o contrustror ou o metodo main apartir da funcao main, ele da erro : "cannor resolve symbol method Cadastrar(Professor).

Se alguem puder me ajudar…agradeço…

Vinicius

2 Respostas

A
public static void main (String args [])

{

Cadastrar c = new  Cadastrar();

c.menu();

}

e da uma olhda … pq pelo q eu vi no seu codigo vc tem dentro da classe um metodo chamado Cadastrar (mesmo nome e sensitive case com o nome da classe) isso nao pode

S

Acontece que sua classe Cadastrar só tem um construtor, e esse construtor não tem argumentos.

Você tá chamando:

switch (opcao) { // case 1: // Cadastrar(cad); // break;

Ou seja, o construtor com um argumento do tipo Professor.
Ou você cria o construtor que tem como argumento Professor, ou chama o construtor sem argumentos… aí depende do que o seu programa faz :wink:

Acredito que após ter comentado aquela parte, deve ter compilado numa boa.

Criado 4 de maio de 2005
Ultima resposta 5 de mai. de 2005
Respostas 2
Participantes 3