管理员账号:admin 密码:123456
权限:新增电影、删除电影、修改电影、查询电影
用户账号:liuyuyang 密码:123123
权限:查询电影
总代码:474行
public class Main {
public static void main(String[] args) {
Operation operation = new Operation();
}
}
public class User {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Random;
// 用户管理类
public class UserManage {
static Scanner sc = new Scanner(System.in);
// 用户列表
static ArrayList<User> user = new ArrayList<>();
// 管理员列表
static ArrayList<User> admin = new ArrayList<>();
// 当前用户
static String thisUser = "请登录";
static {
System.out.println("欢迎来到电影管理系统");
// 添加一个管理员账号
User data = new User("admin", "123456");
user.add(data);
admin.add(data);
// 添加一个普通用户
user.add(new User("liuyuyang", "123123"));
}
// 登录
public static void login() {
System.out.println("------用户登录------");
System.out.println("请输入账号:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
// 验证码校验
boolean isCheck = check();
if (!isCheck) System.exit(0);
User data = null;
// 找到用户
for (User item : user) {
if (item.getUsername().equals(username)) {
data = item;
thisUser = item.getUsername();
}
}
// 判断用户是否存在
if (data != null) {
// 判断密码是否正确
if (!data.getPassword().equals(password)) {
System.out.println("密码错误 再仔细想想哦");
System.out.println("请重新登录");
login();
}
System.out.println("恭喜你 登录成功");
} else {
System.out.println("账号错误 或不存在");
System.out.println("是否注册一个账号?[y/n]");
String is = sc.nextLine();
// 如果用户输入y,那么就注册一个账号
if ("y".equals(is)) {
register();
}
}
}
// 注册
public static void register() {
System.out.println("------用户注册------");
System.out.println("请输入账号:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
// 验证码校验
boolean isCheck = check();
if (!isCheck) return;
// 判断账号是否存在
for (User item : user) {
if (item.getUsername().equals(username)) {
System.out.println("该账号已存在");
System.out.println("请重新注册");
register();
return;
}
}
// 添加账号
user.add(new User(username, password));
System.out.println("恭喜你 注册成功 请重新登录");
login();
}
// 校验验证码
private static boolean check() {
// 生成验证码
char[] list = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
StringBuilder code = new StringBuilder();
Random r = new Random();
for (int i = 1; i <= 5; i++) {
int n = r.nextInt(list.length);
code.append(list[n]);
}
// 校验验证码
System.out.printf("请输入验证码[%s]:", code);
String data = sc.nextLine();
if (!(code.toString()).equals(data)) {
System.out.println("验证码错误");
System.out.println("请重新登录");
login();
return false;
}
return true;
}
}
public class Film {
private String name;
private String type;
private String describe;
private String performer;
private double price;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
public String getDescribe() {
return this.describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
public String getPerformer() {
return this.performer;
}
public void setPerformer(String performer) {
this.performer = performer;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
import java.util.ArrayList;
import java.util.Scanner;
// 电影管理类
public class FilmManage {
// 电影列表
static ArrayList<Film> list = new ArrayList<>();
// 初始化数据
public static void init() {
Film f1 = new Film();
f1.setName("肖申克的救赎");
f1.setType("剧情");
f1.setDescribe("两个被囚禁的男人多年来建立了深厚的友谊,通过共同的善行找到了慰藉和最终的救赎。");
f1.setPerformer("蒂姆·罗宾斯,摩根·弗里曼");
f1.setPrice(9.99);
Film f2 = new Film();
f2.setName("教父");
f2.setType("犯罪");
f2.setDescribe("一个有组织犯罪家族的老大将他秘密的帝国的控制权转交给他不情愿的儿子。");
f2.setPerformer("马龙·白兰度,阿尔·帕西诺");
f2.setPrice(12.99);
Film f3 = new Film();
f3.setName("低俗小说");
f3.setType("犯罪");
f3.setDescribe("两个杀手、一个拳击手、一个黑帮妻子和一对餐馆抢劫犯的生活在四个暴力和救赎的故事中交织在一起。");
f3.setPerformer("约翰·特拉沃尔塔,乌玛·瑟曼");
f3.setPrice(10.99);
list.add(f1);
list.add(f2);
list.add(f3);
}
// 添加电影信息
public static void addFilm() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入电影名称:");
String name = sc.next();
System.out.print("请输入电影类型:");
String type = sc.next();
System.out.print("请输入电影简述:");
String describe = sc.next();
System.out.print("请输入电影演员:");
String performer = sc.next();
System.out.print("请输入电影票价:");
double price = sc.nextDouble();
// 创建一个新的电影对象
Film f = new Film();
f.setName(name);
f.setType(type);
f.setDescribe(describe);
f.setPerformer(performer);
f.setPrice(price);
// 添加到集合中
list.add(f);
System.out.format("添加电影:《 %s 》成功\n", f.getName());
}
// 删除电影信息
public static void delFilm() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入电影名称:");
String name = sc.next();
boolean isFilm = false;
// 判断是否存在该电影
for (Film item : list) {
if (item.getName().equals(name)) {
isFilm = true;
// 删除电影
list.remove(item);
System.out.format("删除电影:《 %s 》成功\n\n", item.getName());
break;
}
}
if (!isFilm) {
System.out.format("需要删除的电影:《 %s 》不存在\n", name);
}
}
// 修改电影信息
public static void editFilm() {
Scanner sc = new Scanner(System.in);
System.out.print("请输入电影名称:");
String name = sc.next();
// 判断是否存在该电影
boolean isExist = false;
Film f = null;
for (Film item : list) {
if (item.getName().equals(name)) {
isExist = true;
f = item;
break;
}
}
// 如果存在就修改,否则就提示不存在
if (isExist) {
System.out.print("请输入电影类型:");
String type = sc.next();
System.out.print("请输入电影简述:");
String describe = sc.next();
System.out.print("请输入电影演员:");
String performer = sc.next();
System.out.print("请输入电影票价:");
double price = sc.nextDouble();
// 创建一个新的电影对象
f.setName(name);
f.setType(type);
f.setDescribe(describe);
f.setPerformer(performer);
f.setPrice(price);
System.out.format("修改电影:《 %s 》成功\n\n", f.getName());
} else {
System.out.format("需要修改的电影:《 %s 》不存在\n", name);
}
}
// 查询电影信息
public static void queryFilm(String name) {
// 判断name是否为空,如果为空就是查询所有电影信息,否则就是查询指定电影信息
if (name.isEmpty()) {
for (Film item : list) {
System.out.println("============== 电影信息 ===============");
System.out.format("电影:%s\n类型:%s\n简述:%s\n演员:%s\n票价:%.2f\n", item.getName(), item.getType(), item.getDescribe(), item.getPerformer(), item.getPrice());
System.out.println("=====================================");
}
System.out.format("查询所有电影成功 共计:%d部\n\n", list.size());
} else {
for (Film item : list) {
if (item.getName().equals(name)) {
System.out.println("============== 电影信息 ===============");
System.out.format("电影:%s\n类型:%s\n简述:%s\n演员:%s\n票价:%.2f\n", item.getName(), item.getType(), item.getDescribe(), item.getPerformer(), item.getPrice());
System.out.println("=====================================");
}
}
System.out.format("查询电影:《 %s 》成功\n", name);
}
}
}
import java.util.Scanner;
// 操作类
public class Operation {
public Operation() {
// 初始化一些电影数据
FilmManage.init();
// 用户登录
UserManage.login();
// 判断是否登录成功
if(UserManage.thisUser.equals("请登录")) System.exit(0);
// 判断该用户是否是管理员
for (User item : UserManage.admin) {
// 如果当前用户存在于管理员列表中,那么这个用户就是管理员
boolean is = item.getUsername().equals(UserManage.thisUser);
choice(is);
// 如果是管理员,那么就不必再循环查询下去了
if (is) break;
}
}
// 选择操作
public void choice(boolean isAdmin) {
Scanner sc = new Scanner(System.in);
if (isAdmin) {
while (true) {
System.out.println("============== 电影管理系统 当前级别:管理员 ===============");
System.out.println("1 新增电影信息");
System.out.println("2 删除电影信息");
System.out.println("3 修改电影信息");
System.out.println("4 查询指定电影信息");
System.out.println("5 查询所有电影信息");
System.out.println("6 退出系统");
System.out.print("请输入您的选择:");
int n = sc.nextInt();
switch (n) {
// 添加电影信息
case 1 -> FilmManage.addFilm();
// 删除电影信息
case 2 -> FilmManage.delFilm();
// 修改电影信息
case 3 -> FilmManage.editFilm();
// 查询指定电影信息
// 查询指定电影信息
case 4 -> {
System.out.print("请输入电影名称:");
String name = sc.next();
// 传值就是查询指定电影信息
FilmManage.queryFilm(name);
}
// 查询所有电影信息
case 5 -> FilmManage.queryFilm("");
// 退出程序
case 6 -> {
System.out.println("退出系统成功");
System.exit(0);
}
}
}
} else {
while (true) {
System.out.println("============== 电影管理系统 当前级别:用户 ===============");
System.out.println("1 查询指定电影信息");
System.out.println("2 查询所有电影信息");
System.out.println("3 退出系统");
System.out.print("请输入您的选择:");
int n = sc.nextInt();
switch (n) {
// 查询指定电影信息
case 1 -> {
System.out.print("请输入电影名称:");
String name = sc.next();
// 传值就是查询指定电影信息
FilmManage.queryFilm(name);
}
// 查询所有电影信息
case 2 -> FilmManage.queryFilm("");
case 3 -> {
System.out.println("退出系统成功");
System.exit(0);
}
default -> System.out.println("输入错误,请重新输入");
}
}
}
}
}