觀影指南(使用java語言模擬實現觀影指南. 實現添加電影,查看電影列表,分類查看電影列表,顯示人氣最高的電影)

實現思路

  • 添加實體類
    MMovie(電影)
    屬性:Name(電影名稱)
    Type(類型)
    Donny(人氣)

  • 創建觀影指南類
    MMovieManager(觀影指南管理類)
    方法:初始化電影數據、添加 、顯示全部、根據類別顯示、顯示人氣最高的電影信息

在這裏遇到一個坑,代碼中用到了多個Scanner流,當你執行完輸入任務後關閉任意一個,再次執行到輸入語句的時候會出現一個NoSuchElementException異常。這是因爲你的Scanner.close會調用System.in.close方法,System.in關閉了。你之後new Scanner並不會幫你開啓System.in的流,所以報錯了.所以切記不要調用 .close()方法

接下來直接上代碼

1.MMovie類

public class MMovie {
	private String name;
	private String type;
	private double donny;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public double getDonny() {
		return donny;
	}
	public void setDonny(double donny) {
		this.donny = donny;
	}
	public MMovie(String name, String type, double donny) {
		this.name = name;
		this.type = type;
		this.donny = donny;
	}
	
}

2.MMovieManager類

import java.util.ArrayList;
import java.util.Scanner;
public class MMovieManager {
	ArrayList<MMovie> list=new ArrayList<MMovie>();
	
	public MMovie getMovie() {
		Scanner input=new Scanner(System.in);
		System.out.println("請輸入添加的電影名稱:");
		String name=input.nextLine();
		System.out.println("請輸入添加的電影類型:");
		String type=input.nextLine();
		System.out.println("請輸入添加的電影人氣:");
		double donny=input.nextDouble();
		return new MMovie(name,type,donny);
	}

	public ArrayList<MMovie> addMovie(MMovie movie){
		list.add(movie);
		System.out.println("添加成功!");
		return list;
	}
	
	public void showMovie() {
		for (MMovie mMovie : list) {
				System.out.println("電影名稱:"+mMovie.getName()+"\n電影類型:"+mMovie.getType()+"\n電影人氣:"+mMovie.getDonny());	
				}
	}
	
	public void csMovie() {
		Scanner input2=new Scanner(System.in);
		String [] type= {"","科幻片","喜劇片","動作片"};
		System.out.println("請選擇分類");
		System.out.println("1.科幻片");
		System.out.println("2.喜劇片");
		System.out.println("3.動作片");
		int  i=input2.nextInt();
		for (MMovie mMovie : list) {
			if(mMovie.getType().equals(type[i])) {
				System.out.println("電影名稱:"+mMovie.getName()+"\n電影類型:"+mMovie.getType()+"\n電影人氣:"+mMovie.getDonny());	
			}
		}
	}
	
	public void popularMovie() {
		int flag=0;
		int count=list.size();
		System.out.println(count);
		double label=list.get(0).getDonny();
		for(int i=0;i<count;i++) {
				if(list.get(i).getDonny()>=label) {
				   flag=i;
				   label=list.get(i).getDonny();
				   
				}
		}
		System.out.println("電影名稱:"+list.get(flag).getName()+"\n電影類型:"+list.get(flag).getType()+"\n電影人氣:"+list.get(flag).getDonny());	
	}
	
}

3.最後再來個測試類Test

import java.util.Scanner;
public class Test {
	
	 public static void main(String[] args) {
		 boolean flag=true;
		 MMovie movie=null;
		 MMovieManager mm=new MMovieManager();
		 do {
			System.out.println("1.添加電影");
			System.out.println("2.查看電影列表");
			System.out.println("3.分類管理");
			System.out.println("4.顯示人氣最高電影");
			System.out.println("5.退出該系統");
			System.out.println("請選擇:");
			Scanner input=new Scanner(System.in);
			int	label=input.nextInt();
				switch(label) {
				case 1:
					movie=mm.getMovie();
					mm.addMovie(movie);
					break;
				case 2:
					mm.showMovie();
					break;
				case 3:
					mm.csMovie();
					break;
				case 4:
					mm.popularMovie();
					break;
				case 5:
					input.close();
					System.exit(0);
					break;
				default :
					System.out.println("輸入有誤!請重新輸入!");
				}		
		flag=false;
		 }while(!flag);
		
	 }


}

執行結果如下

1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
1
請輸入添加的電影名稱:
功夫熊貓
請輸入添加的電影類型:
動作片
請輸入添加的電影人氣:
8.5
添加成功!
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
1
請輸入添加的電影名稱:
唐人街探案
請輸入添加的電影類型:
喜劇片
請輸入添加的電影人氣:
8.2
添加成功!
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
1
請輸入添加的電影名稱:
流浪地球
請輸入添加的電影類型:
科幻片
請輸入添加的電影人氣:
9.5
添加成功!
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
2
電影名稱:功夫熊貓
電影類型:動作片
電影人氣:8.5
電影名稱:唐人街探案
電影類型:喜劇片
電影人氣:8.2
電影名稱:流浪地球
電影類型:科幻片
電影人氣:9.5
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
3
請選擇分類
1.科幻片
2.喜劇片
3.動作片
1
電影名稱:流浪地球
電影類型:科幻片
電影人氣:9.5
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
3
請選擇分類
1.科幻片
2.喜劇片
3.動作片
2
電影名稱:唐人街探案
電影類型:喜劇片
電影人氣:8.2
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
3
請選擇分類
1.科幻片
2.喜劇片
3.動作片
3
電影名稱:功夫熊貓
電影類型:動作片
電影人氣:8.5
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:
4
3
電影名稱:流浪地球
電影類型:科幻片
電影人氣:9.5
1.添加電影
2.查看電影列表
3.分類管理
4.顯示人氣最高電影
5.退出該系統
請選擇:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章