Skip to content

Commit 87f0855

Browse files
committed
Week3. Congratulations! You passed!
1 parent 2edaea4 commit 87f0855

File tree

2 files changed

+95
-36
lines changed

2 files changed

+95
-36
lines changed

Week3/src/MovieRunnerWithFilters.java

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ public void printAverageRatings(int minimalRatings) {
2525
// Print the number of raters after creating a ThirdsRating object.
2626
System.out.printf("Total movies with %d ratings is %d\n", minimalRatings, ratedList.size());
2727

28-
// You’ll call the MovieDatabase initialize method with the moviefile to set up the movie
29-
// database.
30-
MovieDatabase.initialize("ratedmoviesfull.csv");
31-
3228
// Print the number of movies in the database.
3329
System.out.println("The number of movies in the database is " + MovieDatabase.size());
3430

@@ -46,6 +42,10 @@ public void printAverageRatings(int minimalRatings) {
4642
printRatingsList(averageRatings);
4743
}
4844

45+
public int getAverageRatingsNumber(int minimalRatings) {
46+
return thirdRatings.getAverageRatings(minimalRatings).size();
47+
}
48+
4949
private void printRatingsList(ArrayList<Rating> averageRatingList) {
5050
System.out.printf("Found %d movie(s)%n", averageRatingList.size());
5151
averageRatingList.stream()
@@ -69,8 +69,10 @@ private void printRatingsList(ArrayList<Rating> averageRatingList) {
6969
* @param year int Year of produce
7070
*/
7171
public void printAverageRatingsByYear(int minimalRatings, int year) {
72-
printRatingsList(
73-
thirdRatings.getAverageRatingsByFilter(minimalRatings, new YearAfterFilter(year)));
72+
System.out.println(
73+
thirdRatings.getAverageRatingsByFilter(minimalRatings, new YearAfterFilter(year)).size());
74+
// printRatingsList(
75+
// thirdRatings.getAverageRatingsByFilter(minimalRatings, new YearAfterFilter(year)));
7476
}
7577

7678
/**
@@ -80,8 +82,11 @@ public void printAverageRatingsByYear(int minimalRatings, int year) {
8082
* @param genre Genre
8183
*/
8284
public void printAverageRatingsByGenre(int minimalRatings, String genre) {
83-
printRatingsList(
84-
thirdRatings.getAverageRatingsByFilter(minimalRatings, new GenreFilter(genre)));
85+
System.out.println(
86+
thirdRatings.getAverageRatingsByFilter(minimalRatings, new GenreFilter(genre)).size());
87+
88+
// printRatingsList(
89+
// thirdRatings.getAverageRatingsByFilter(minimalRatings, new GenreFilter(genre)));
8590
}
8691

8792
/**
@@ -92,9 +97,13 @@ public void printAverageRatingsByGenre(int minimalRatings, String genre) {
9297
* @param maxMinutes Maximum length of movies in minutes
9398
*/
9499
public void printAverageRatingsByMinutes(int minimalRatings, int minMinutes, int maxMinutes) {
95-
printRatingsList(
96-
thirdRatings.getAverageRatingsByFilter(
97-
minimalRatings, new MinutesFilter(minMinutes, maxMinutes)));
100+
System.out.println(
101+
thirdRatings
102+
.getAverageRatingsByFilter(minimalRatings, new MinutesFilter(minMinutes, maxMinutes))
103+
.size());
104+
// printRatingsList(
105+
// thirdRatings.getAverageRatingsByFilter(
106+
// minimalRatings, new MinutesFilter(minMinutes, maxMinutes)));
98107
}
99108

100109
/**
@@ -104,29 +113,39 @@ public void printAverageRatingsByMinutes(int minimalRatings, int minMinutes, int
104113
* @param directors directors of the movies
105114
*/
106115
public void printAverageRatingsByDirectors(int minimalRatings, String directors) {
107-
System.out.println("Print movies directed by " + directors);
108-
printRatingsList(
109-
thirdRatings.getAverageRatingsByFilter(minimalRatings, new DirectorsFilter(directors)));
116+
System.out.println(
117+
thirdRatings
118+
.getAverageRatingsByFilter(minimalRatings, new DirectorsFilter(directors))
119+
.size());
120+
// System.out.println("Print movies directed by " + directors);
121+
// printRatingsList(
122+
// thirdRatings.getAverageRatingsByFilter(minimalRatings, new
123+
// DirectorsFilter(directors)));
110124
}
111125

112126
public void printAverageRatingsByYearAfterAndGenre(int minimalRatings, int year, String genre) {
113127
AllFilters filters = new AllFilters();
114128
filters.addFilter(new GenreFilter(genre));
115129
filters.addFilter(new YearAfterFilter(year));
116-
System.out.printf(
117-
"Print movie(s) with at least %d rating in \"%s\" genre produced after year" + " of %d %n",
118-
minimalRatings, genre, year);
119-
printRatingsList(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters));
130+
System.out.println(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters).size());
131+
// System.out.printf(
132+
// "Print movie(s) with at least %d rating in \"%s\" genre produced after year" + " of %d
133+
// %n",
134+
// minimalRatings, genre, year);
135+
// printRatingsList(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters));
120136
}
121137

122138
public void printAverageRatingsByDirectorsAndMinutes(
123139
int minimalRatings, int minMinutes, int maxMinutes, String director) {
124140
AllFilters filters = new AllFilters();
125141
filters.addFilter(new MinutesFilter(minMinutes, maxMinutes));
126142
filters.addFilter(new DirectorsFilter(director));
127-
System.out.printf(
128-
"Print movie(s) with at least %d rating at least %d minutes long directed by %s%n",
129-
minimalRatings, minMinutes, director);
130-
printRatingsList(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters));
143+
144+
System.out.println(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters).size());
145+
146+
// System.out.printf(
147+
// "Print movie(s) with at least %d rating at least %d minutes long directed by %s%n",
148+
// minimalRatings, minMinutes, director);
149+
// printRatingsList(thirdRatings.getAverageRatingsByFilter(minimalRatings, filters));
131150
}
132151
}

Week3/src/Week3.java

Lines changed: 54 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,58 @@
11
public class Week3 {
22
public static void main(String[] args) {
3-
// ThirdRatings week3 = new ThirdRatings();
4-
// ArrayList<Rating> averageRatings = week3.getAverageRatings(1);
5-
// averageRatings.forEach(System.out::println);
6-
MovieRunnerWithFilters filters = new MovieRunnerWithFilters();
7-
filters.printAverageRatingsByYear(1, 2000);
8-
filters.printAverageRatingsByGenre(1, "Crime");
9-
filters.printAverageRatingsByMinutes(1, 110, 170);
10-
filters.printAverageRatingsByDirectors(1, "Charles Chaplin,Michael Mann,Spike Jonze");
11-
filters.printAverageRatingsByYearAfterAndGenre(1, 1980, "Romance");
12-
filters.printAverageRatingsByDirectorsAndMinutes(
13-
1, 30, 170, "Spike Jonze,Michael Mann,Charles Chaplin,Francis Ford Coppola");
14-
// MovieRunnerWithFilters filtersFull =
15-
// new MovieRunnerWithFilters("ratedmoviesfull.csv", "ratings.csv");
16-
// filtersFull.printAverageRatingsByYear(20, 2000);
3+
// MovieRunnerWithFilters filters = new MovieRunnerWithFilters();
4+
// filters.printAverageRatingsByYear(1, 2000);
5+
// filters.printAverageRatingsByGenre(1, "Crime");
6+
// filters.printAverageRatingsByMinutes(1, 110, 170);
7+
// filters.printAverageRatingsByDirectors(1, "Charles Chaplin,Michael Mann,Spike Jonze");
8+
// filters.printAverageRatingsByYearAfterAndGenre(1, 1980, "Romance");
9+
// filters.printAverageRatingsByDirectorsAndMinutes(
10+
// 1, 30, 170, "Spike Jonze,Michael Mann,Charles Chaplin,Francis Ford Coppola");
11+
12+
MovieRunnerWithFilters quiz3 = new MovieRunnerWithFilters("ratedmoviesfull.csv", "ratings.csv");
13+
System.out.print(
14+
"Q.4 number of minimal raters set to 35. " + "How many rated movies are returned? ");
15+
System.out.println(quiz3.getAverageRatingsNumber(35));
16+
17+
System.out.print(
18+
"Q.5 printAverageRatingsByYearAfter. Minimal raters 20. Year 2000. How "
19+
+ "many rated movies are returned? ");
20+
quiz3.printAverageRatingsByYear(20, 2000);
21+
22+
System.out.print(
23+
"Q.6 printAverageRatingsByGenre. minimal raters 20. genre Comedy. How many "
24+
+ "rated"
25+
+ " movies are returned? ");
26+
quiz3.printAverageRatingsByGenre(20, "Comedy");
27+
28+
System.out.print(
29+
"Q.7 printAverageRatingsByMinutes. Minimal raters 5. Movies that take at "
30+
+ "least 105 minutes and at most 135 minutes. How many rated movies are returned? ");
31+
quiz3.printAverageRatingsByMinutes(5, 105, 135);
32+
33+
System.out.println(
34+
"Q.8 printAverageRatingsByDirectors. Minimal raters 4. And one of these directors:");
35+
System.out.println(
36+
"\"Clint Eastwood,Joel Coen,Martin Scorsese,Roman Polanski,Nora Ephron,Ridley Scott,Sydney Pollack\"");
37+
System.out.print("How many rated movies are returned? ");
38+
quiz3.printAverageRatingsByDirectors(
39+
4,
40+
"Clint Eastwood,Joel Coen,Martin Scorsese,Roman Polanski,Nora Ephron,Ridley Scott,Sydney Pollack");
41+
42+
System.out.println(
43+
"Q.9 printAverageRatingsByYearAfterAndGenre. Minimal raters 8, the year "
44+
+ "set to 1990, and the genre set to \"Drama\".");
45+
System.out.print("How many rated movies are returned? ");
46+
quiz3.printAverageRatingsByYearAfterAndGenre(8, 1990, "Drama");
47+
48+
System.out.print(
49+
"Q.10 printAverageRatingsByDirectorsAndMinutes. \n"
50+
+ "Minimal raters 3 \n"
51+
+ "and the length of the film set to at least 90 minutes and no more than 180 minutes.\n"
52+
+ "Find all the movies that have at least one of these directors: \n"
53+
+ "\"Clint Eastwood,Joel Coen,Tim Burton,Ron Howard,Nora Ephron,Sydney Pollack\". \n"
54+
+ "How many rated movies are returned? ");
55+
quiz3.printAverageRatingsByDirectorsAndMinutes(
56+
3, 90, 180, "Clint Eastwood,Joel Coen,Tim Burton,Ron Howard,Nora Ephron,Sydney Pollack");
1757
}
1858
}

0 commit comments

Comments
 (0)