public static void main(String[] args) {
//完成电影案例
//1、创建电影对象:定义电影类
//2、创建一个电影操作对象:专门负责对电影数据进行业务处理(上架、下架、查询、封杀)
MovieService movieService = new MovieService();
movieService.start();
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Movie {
private String name;
private double score;
private String actor;
private double price;
}
public class MovieService {
//4、准备电影集合,存储全部上架的电影数据
private static List<Movie> movies = new ArrayList<>();
private static Scanner sc = new Scanner(System.in);
public void start() {
while (true) {
//3、准备操作界面
System.out.println("\t\t\t\t\t\t\t\t\t\t----电影信息操作系统----");
System.out.print("1.上架\t");
System.out.print("2.下架某个电影\t");
System.out.print("3.查询某个电影\t");
System.out.print("4.修改封杀某个明星\t");
System.out.print("5.修改某个电影\t");
System.out.print("6.展示全部电影\t");
System.out.print("7.退出系统\t");
System.out.print("\n请输入你的操作命令:");
String command = sc.next();
switch (command) {
case "1":
//上架电影
addMovie();
break;
case "2":
//下架某个电影
delistMovie();
break;
case "3":
//查询某个电影
queryMovie();
break;
case "4":
//修改封杀某个明星的电影
deleteStar();
break;
case "5":
//修改某个电影
updateMovie();
break;
case "6":
//展示全部电影
showAllMovie();
break;
case "7":
//退出系统
System.out.println("退出系统");
return;
default:
System.out.println("输入有误,请重新输入");
}
}
}
/**
* @param
* @return
* @create by: 小郭
* @description: 修改某个电影
* @create time: 2024/11/18 20:41
*/
private void updateMovie() {
System.out.println("----修改电影信息----");
System.out.print("请输入电影名称:");
String name = sc.next();
Movie movie = queryMovieByName(name);
if (movie != null) {
System.out.print("请输入新的电影名称:");
movie.setName(sc.next());
System.out.print("请输入新的电影评分:");
movie.setScore(sc.nextDouble());
System.out.print("请输入新的主演:");
movie.setActor(sc.next());
System.out.print("请输入新的电影价格:");
movie.setPrice(sc.nextDouble());
System.out.println("修改成功!");
}else{
System.out.println("没有找到该电影");
}
}
/**
* @param
* @return
* @create by: 小郭
* @description: 展示全部电影
* @create time: 2024/11/18 20:40
*/
private void showAllMovie() {
System.out.println("----全部电影信息----");
for (Movie movie : movies) {
System.out.println("名称:" + movie.getName() + ",评分:" + movie.getScore() + ",主演:" + movie.getActor() + ",价格:" + movie.getPrice());
}
}
/**
* @param
* @return
* @create by: 小郭
* @description: 删除明星
* @create time: 2024/11/18 20:32
*/
private void deleteStar() {
System.out.println("----封杀明星电影----");
System.out.print("请输入要封杀的明星:");
String name = sc.next();
//1、遍历集合,获取每一个电影对象,判断是否包含明星
for (int i = 0; i < movies.size(); i++) {
Movie movie = movies.get(i);
if (movie.getActor().contains(name)) {
//2、如果包含,就删除
movies.remove(movie);
i--; //退一步
}
}
System.out.println("封杀成功!");
//展示全部电影
showAllMovie();
if (movies.size() == 0) {
System.out.println("全部电影已下架");
}
}
/**
* @param
* @return
* @create by: 小郭
* @description: 下架电影
* @create time: 2024/11/18 20:29
*/
private void delistMovie() {
System.out.println("----下架电影----");
System.out.print("请输入电影名称:");
String name = sc.next();
Movie movie = queryMovieByName(name);
if (movie != null) {
//1、判断是否下架
System.out.print("是否下架(y/n):");
String answer = sc.next();
if (answer.equals("y")) {
//2、下架,从集合中删除
movies.remove(movie);
System.out.println("下架成功!");
} else {
System.out.println("取消下架!");
}
} else {
System.out.println("没有找到该电影");
}
}
/**
* @param
* @return
* @create by: 小郭
* @description: 查询电影
* @create time: 2024/11/18 20:17
*/
private void queryMovie() {
System.out.println("----查询电影----");
//分析:查询电影,其实就是根据电影名称,查询到对应的电影对象,然后打印出来
//1、提示用户输入电影名称
System.out.print("请输入电影名称:");
String name = sc.next();
Movie movie = queryMovieByName(name); // 调用业务方法
if (movie != null) {
//2、打印电影对象
System.out.println("名称:" + movie.getName() + ",评分:" + movie.getScore() + ",主演:" + movie.getActor() + ",价格:" + movie.getPrice());
} else {
System.out.println("没有找到该电影");
}
}
//根据电影名称查询电影对象返回
private Movie queryMovieByName(String name) {
//1、遍历集合,获取每一个电影对象,判断电影名称是否相同
for (Movie movie : movies) {
if (movie.getName().equals(name)) {
return movie; // 找到就返回
}
}
return null; // 没有找到就返回null
}
/**
* @param
* @return
* @create by: 小郭
* @description: 上架电影
* @create time: 2024/11/18 20:16
*/
private void addMovie() {
System.out.println("----上架电影----");
//分析:每次点击一次上架电影,其实就是新增一部电影,每部电影是一个电影对象封装数据的
//1、创建电影对象,封装这部电影的信息
Movie movie = new Movie();
//2、给电影对象注入数据
System.out.print("请输入电影名称:");
movie.setName(sc.next());
System.out.print("请输入电影评分:");
movie.setScore(sc.nextDouble());
System.out.print("请输入主演:");
movie.setActor(sc.next());
System.out.print("请输入电影价格:");
movie.setPrice(sc.nextDouble());
//3、调用业务方法,将电影对象添加到集合中
movies.add(movie);
System.out.println("添加成功!");
}
}
标签:java,电影,改查,System,print,movie,增删,println,out
From: https://blog.csdn.net/Coisini__S/article/details/143892173