使用java程序模拟电影案例(增删改查)

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("添加成功!");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值