ArrayList之模仿电影系统综合案例
1.题目要求
完成电影的上架,以及电影信息浏览功能.id查询,id删除
2.思路分析
- 数据封装:定义
Cinema类封装电影 ID、名称、价格、描述等核心属性,通过set/get方法实现属性赋值与读取; - 数据存储:使用
ArrayList集合存储多个Cinema对象,支持电影信息的动态增、删、查操作; - 功能实现:
- 上线电影:接收用户输入的电影信息,创建
Cinema对象并添加至集合; - 浏览电影:遍历集合,打印所有电影的完整信息;
- 按 ID 查询:遍历集合匹配 ID,找到则展示信息,未找到提示 “不存在”;
- 下架电影:遍历集合匹配 ID,找到则删除该对象并提示成功,未找到提示 “不存在”;
- 上线电影:接收用户输入的电影信息,创建
- 交互设计:通过循环菜单接收用户指令(add/query/exit/id/remove),调用对应方法实现功能,直至用户选择退出
3.解题过程
package Date318; public class Cinema { public int id;//电影id public String name;//电影名字 private double originalPrice;//电影原价 private double specialPrice;//电影优惠价 private String info;//其他信息 public Cinema() { } public Cinema(int id, String name, double originalPrice, double specialPrice, String info) { this.id = id; this.name = name; this.originalPrice = originalPrice; this.specialPrice = specialPrice; this.info = info; } public int getId() { return id; } @Override public String toString() { return "Cinema{" + "id=" + id + ", name='" + name + '\'' + ", originalPrice=" + originalPrice + ", specialPrice=" + specialPrice + ", info='" + info + '\'' + '}'; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getOriginalPrice() { return originalPrice; } public void setOriginalPrice(double originalPrice) { this.originalPrice = originalPrice; } public double getSpecialPrice() { return specialPrice; } public void setSpecialPrice(double specialPrice) { this.specialPrice = specialPrice; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } }package Date318; import java.util.ArrayList; import java.util.Scanner; public class Cinema2 { private ArrayList<Cinema> Cinemas = new ArrayList<>(); private Scanner sc = new Scanner(System.in);//键盘录入 //添加信息 public void add() { System.out.println("===电影上线==="); Cinema Cinemase = new Cinema(); System.out.println("请您输入电影id"); int id = sc.nextInt(); Cinemase.setId(id); System.out.println("请您输入电影名字"); String name = sc.next(); Cinemase.setName(name); System.out.println("请您输入电影原价"); double originalPrice = sc.nextDouble(); Cinemase.setOriginalPrice(originalPrice); System.out.println("请您输入电影优惠价"); double specialPrice = sc.nextDouble(); Cinemase.setSpecialPrice(specialPrice); System.out.println("请您输入电影其他信息"); String info = sc.next(); Cinemase.setInfo(info); Cinemas.add(Cinemase); System.out.println("恭喜你,上架成功~~~"); } public void Cinema5() { for (int i = 0; i < Cinemas.size(); i++) { Cinema c = Cinemas.get(i); System.out.println("电影id:" + c.getId()); System.out.println("电影名字:" + c.getName()); System.out.println("电影原价:" + c.getOriginalPrice()); System.out.println("电影优惠价:" + c.getSpecialPrice()); System.out.println("电影其他信息:" + c.getInfo()); System.out.println("----------------------------------------------------------------------------"); } } public void Cinema4(int id) { for (int i = 0; i < Cinemas.size(); i++) { Cinema c = Cinemas.get(i); if (c.getId() == id) { System.out.println("电影id:" + c.getId()); System.out.println("电影名字:" + c.getName()); System.out.println("电影原价:" + c.getOriginalPrice()); System.out.println("电影优惠价:" + c.getSpecialPrice()); System.out.println("电影其他信息:" + c.getInfo()); return; } } System.out.println("不存在"); } //下架 public void Cinema6(int id) { boolean exist = false; for (int i = 0; i < Cinemas.size(); i++) { Cinema c = Cinemas.get(i); if (c.getId() == id) { Cinemas.remove(i); exist = true; System.out.println("下架成功!"); break; } } if (!exist) { System.out.println("不存在"); } } public void start() { while (true) { System.out.println("1.上线电影(add)"); System.out.println("2.浏览电影(query)"); System.out.println("3.退出系统(exit)"); System.out.println("4.选择要查询电影的id(id)"); System.out.println("请您输入操作命令"); System.out.println("5.选择要删除的id(remove)"); String m = sc.next(); switch (m) { case "add": add(); break; case "query": Cinema5(); break; case "exit": return; case "id": System.out.println("请输入"); int id = sc.nextInt(); Cinema4(id); break; case "remove": System.out.println("要删除的id"); int r = sc.nextInt(); Cinema6(r); break; default: System.out.println("无"); } } } }package Date318; public class Cinema3 { public static void main(String[] args) { Cinema2 s = new Cinema2(); s.start(); } }