所以我有两节课 它应该像一个数字电影商店,所以它应该返回用户名,电影名称和电影评级 这是界面之一:
import modelo.Matriz;
public class MenuConsola {
private Matriz userItem;
public MenuConsola(){
String[] peliculas = { "Toy story2", "Jumanji", "Amelie", "Wolverine", "Spider Man", "Yes Men", "Sabrina",
"Tom and Huck", "Sudden Death", "GoldenEye" };
String[] usuarios = { "Jhon", "Michael", "Jimmy", "Janis", "Carla", "Angie" };
userItem = new Matriz(peliculas, usuarios);
cargarMatriz();
mostrarBanner();
mostrarUsuarios();
System.out.println("\n");
mostrarPeliculas();
//System.out.println(mostrarMatriz());
}
public void cargarMatriz(){
userItem.cargarCalificaciones();
}
public String mostrarMatriz(){
return userItem.mostrarMatriz();
}
static void appendChars(StringBuilder sb, char c, int count) {
for (int i = 0; i < count; i++) {
sb.append(c);
}
}
public void mostrarUsuarios(){
System.out.println("Usuarios:");
String[] usuarios = userItem.obtenerUsuarios();
int c = 1;
for(String us : usuarios){
System.out.println(c + ". " + us + "\t");
c++;
}
}
public void mostrarPeliculas(){
System.out.println("Peliculas:");
String[] pelis = userItem.obtenerPeliculas();
int c = 1;
for(String pel : pelis){
System.out.println(c + ". " + pel + "\t");
c++;
}
}
**public void mostrarMayor(){
System.out.println(userItem.darPeliculaMayorPromedio());
}
public void mostrarMenor(){
System.out.println(userItem.darPeliculaMenorPromedio());
}**
public static void main(String[] args) {
MenuConsola menu = new MenuConsola();
}
}
这是矩阵之一:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Matriz {
private String[] peliculas;
private String[] usuarios;
private int[][] calificaciones;
public Matriz(String[] pelis, String[] users) {
this.peliculas = pelis;
this.usuarios = users;
calificaciones = new int[users.length][pelis.length];
}
public void cargarCalificaciones() {
BufferedReader br;
try {
br = new BufferedReader(new FileReader("data/userItem.txt"));
String linea = "";
int fila = 0;
while ((linea = br.readLine()) != null) {
String[] data = linea.split("\t");
int col = 0;
for (String strRatig : data) {
calificaciones[fila][col] = Integer.parseInt(strRatig);
col++;
}
fila++;
}
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
}
}
public String mostrarMatriz(){
String mensaje = "";
for(int i = 0; i<calificaciones.length; i++){
for(int j = 0; j < calificaciones[0].length; j++){
mensaje += " " + calificaciones[i][j];
}
mensaje += "\n";
}
return (mensaje);
}
public String[] obtenerPeliculas() {
return peliculas;
}
*/
public String[] obtenerUsuarios() {
return usuarios;
}
**public String darPeliculaMayorPromedio**(){
int mayor = calificaciones[0][0];
String peliMayor = "";
for ( int i = 0 ; i < calificaciones.length ; i++ )
{
for ( int j = 0 ; j < calificaciones[i].length ; j++ )
{
if ( calificaciones[i][j] > mayor )
{
mayor = calificaciones[i][j];
peliMayor = peliculas[j];
}
}
}
return peliMayor;
}
**public String darPeliculaMenorPromedio(){**
int menor = calificaciones[0][0];
String peliMenor = "";
for ( int i = 0 ; i < calificaciones.length ; i++ )
{
for ( int j = 0 ; j < calificaciones[i].length ; j++ )
{
if ( calificaciones[i][j] < menor )
{
menor = calificaciones[i][j];
peliMenor = peliculas[j];
}
}
}
return peliMenor;
}
}
好的,这就是所有的代码,我不知道为什么它不打印什么?是不是初始化了数组或矩阵?编译时我没有给出任何错误,直到最后两个方法
才正常执行答案 0 :(得分:1)
我认为这可能是因为你没有启动你的数组,你的内容通过它所以它什么都不返回。尝试初始化数组中的值,然后您可能会发现您将得到一些结果
答案 1 :(得分:0)
似乎没有足够的代码来准确回答这个问题。 使用调试器逐步完成是最好的选择,但这里有一些我可以头脑风暴的潜在失败
userItem不是静态的。因为你在封装的方法中调用userItem.darPeliculaMenorPromedio(),你需要有一个实例化的对象(我可以看到你没有)或者类需要是静态的(我认为它不是因为方法是不是静态的) - 这应该抛出一个错误,所以我假设它没有执行。
你永远不会执行morerarMayor和mostrarMenor的功能。我不能看到你的主要课程,以及里面有什么电话,但你需要在你的主要电话中调用和执行这两个功能。