2016-11-30 3 views
0

Also muss ich eine Filmdatenbank mit Java erstellen, die die Attribute name, rating, director, year und group hat. Das Programm muss auch Einen Film hinzufügen, Einen Film nach Titel entfernen, Film nach Titel sortieren, Sortiere Film nach Bewertung, Sortiere Film nach Box Office Gross, Zeige Filme von einem Regisseur, Drucke in eine Datenbankdatei (du kannst dein eigenes Protokoll definieren) und Lese aus einer Datenbankdatei. Ich stoße in einen Fehler mit ArrayList <Movie> es sagt, dass es nicht zu einem Typ aufgelöst werden kann und so mir Fehler gibt, wenn Film angerufen wird. HierMovie Database java error

ist der Brocken, der den Fehler geben hier

ArrayList<Movie> movieDB = new ArrayList<Movie>(); 
int choice; 
Scanner input = new Scanner(System.in); 
String mvname, director, fileName; 
int year;  
double rating, gross; 

ist der Code, ich habe bisher

import java.awt.List; 
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Scanner; 
public class MovieDatabase 
{ 
    public static void main(String[]args) throws Exception 
    { 
      ArrayList<Movie> movieDB = new ArrayList<Movie>(); 
      int choice; 

      Scanner input=new Scanner(System.in); 
      String mvname,director,fileName; 
      int year;  
      double rating,gross; 
      while(true) 
      { 
       //menu 
       System.out.println("1.Add a movie\n2.Remove a moive\n3.Sort movie by Title\n4.Sort movie by Rating"); 
       System.out.println("5.Sort movie by Box office Gross\n6.Show movies by a director"); 
       System.out.print("7.Print to a database file\n8.Read from a database file\n9.exit: "); 
       choice=input.nextInt(); 

       switch(choice) 
       { 
        case 1: System.out.println("Enter movie name: "); 
          mvname=input.next(); 
          System.out.println("Enter year: "); 
          year=input.nextInt(); 
          System.out.println("Enter Director name: "); 
          director=input.next(); 
          System.out.println("Enter movie rating: "); 
          rating=input.nextDouble(); 
          System.out.println("Enter Box Office Gross: "); 

          gross=input.nextDouble(); 
          //add new moive object ot movie data base 
          movieDB.add(new Movie(mvname,year,rating,director,gross)); 
          break; 

        case 2: System.out.println("Enter movie title: "); 
          mvname=input.next(); 
          //remove specified movie object by title 
          for(Movie m:movieDB) 
          { 
            if(mvname.equals(m.getMovie_name())) 
            { 
             movieDB.remove(m); 
            } 
          } 
          break; 

        case 3: //Sort the movie data records by movie title 
          Collections.sort(movieDB,Movie.titleComparator); 
          System.out.println("After sorting by title"); 
          for(Movie m:movieDB) 
          { 
            System.out.println(m.toString()); 
          } 
          break; 

        case 4: //Sort the movie data records by movie rating 
          Collections.sort(movieDB,Movie.rateComparator); 
          System.out.println("After sorting by rating"); 
          for(Movie m:movieDB) 
          { 
            System.out.println(m.toString()); 
          } 
          break; 

        case 5: //Sort the movie data records by movie gross 
          Collections.sort(movieDB,Movie.grossComparator); 
          System.out.println("After sorting by gross"); 
          for(Movie m:movieDB) 
          { 
            System.out.println(m.toString()); 
          } 
          break; 

        case 6: //display movies by director name 
          System.out.println("Enter Director name: "); 
          director=input.next(); 
          for(Movie m:movieDB) 
          { 
            if(director.equals(m.getMovie_Director())) 
            { 
             System.out.println(m.toString()); 
            } 
          } 
          break; 

        case 7: //print movie data records to a text file 
          System.out.println("Enter File name: "); 
          fileName=input.next(); 
          FileWriter fWriter = null; 
          BufferedWriter writer = null; 
          fWriter = new FileWriter(fileName+".txt",true); 
          writer = new BufferedWriter(fWriter); 
          for(Movie m:movieDB) 
          { 
            writer.write(m.toString()); 
            System.out.println(m.toString()); 
          } 
          break; 

        case 8: 
          //read movie data records from a text file 
          System.out.println("Enter File name: "); 
          fileName=input.next(); 
          BufferedReader br = new BufferedReader(new FileReader(fileName+".txt")); 
          String line; 
          while((line = br.readLine()) != null) 
          { 
            System.out.println(line); 
            String lines[]=line.split(" "); 
            mvname=lines[0]; 
            year=Integer.parseInt(lines[1]); 
            rating=Double.parseDouble(lines[2]); 
            director=lines[3]; 
            gross=Double.parseDouble(lines[4]); 
            movieDB.add(new Movie(mvname,year,rating,director,gross)); 
          } 
          br.close(); 

          break; 

        case 9:System.exit(1); 
        default: System.out.println("Wrong Choice!"); 
       } 
      } 
    } 
}  
+0

formatieren Sie bitte Ihren Code, das ist schrecklich zu lesen. Warum haben Sie auch ein JavaScript-Tag hinzugefügt? – UnholySheep

+0

Könnte es sein, dass Sie keine Movie-Klasse haben oder dass die Movie-Klasse nicht importiert wurde? –

+1

Warum importieren Sie 'java.awt.List', aber nicht' java.util.ArrayList'? –

Antwort

0

Sie falsch geschrieben haben den Klassennamen Film unter

ArrayList<Movie> movieDB = new ArrayList<Moive>(); 

Versuchen Sie dies und lassen Sie uns wissen, ob es immer noch mit dem Fehler fehlschlägt.

+0

habe es gerade versucht und es hat nicht funktioniert – thewizzard

+0

Wo ist dein Filmunterricht? Ist es im selben Paket? – Amit

+0

Ich habe gerade einen Film-Kurs geschrieben und versucht, ihn auf moviedatabase zu erweitern, aber das hat es nicht behoben, vorausgesetzt, ich habe es richtig gemacht – thewizzard