Java基础数组电影管理系统

java电影管理系统

## 实现对数组中元素的增伤改查

beans:


## Admin.java

package com.batis.beans;
/**
 * @author Administrator
 *	管理员实体类
 *		
 */

public class Admin {
	private int id;//管理员工号
	private String name;//管理员姓名
	private String pass;//管理员密码
	public Admin() {
		super();
	}
	public Admin(int id, String name, String pass) {
		super();
		this.id = id;
		this.name = name;
		this.pass = pass;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	@Override
	public String toString() {
		return "Admin [id=" + id + ", name=" + name + ", pass=" + pass + "]";
	}
	
}

## Movies.java

package com.batis.beans;
/**
 * 电影的实体类
 * @author Administrator
 *	
 */
public class Movies {
	private String name;//电影名称
	private String actor;//电影主演
	private int time;//电影时长
	public Movies() {
		super();
	}
	public Movies(String name, String actor, int time) {
		super();
		this.name = name;
		this.actor = actor;
		this.time = time;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getActor() {
		return actor;
	}
	public void setActor(String actor) {
		this.actor = actor;
	}
	public int getTime() {
		return time;
	}
	public void setTime(int time) {
		this.time = time;
	}
	@Override
	public String toString() {
		return this.name + "\t" + this.actor + "\t" + time;
	}
	
}

主方法

Test.java
package com.batis.test;

import com.batis.service.Service;

/**
 * 程序的主方法
 * @author Administrator
 *	简单的电影管理系统
 */
public class Test {

	public static void main(String[] args) {
		new Service().start();
	}
}

业务层

Service.java
package com.batis.service;

import java.util.Scanner;

import com.batis.beans.Admin;
import com.batis.beans.Movies;

/**
 * 程序的业务类
 * @author Administrator
 *		ctrl + shift +o 导入所需要的包
 */
public class Service {
	//键盘录入对象。
	private Scanner sc = new Scanner(System.in);
	//设计模拟数据库,使用对象数组来完成
	private Admin[] admins = new Admin[10];
	private Movies[] movies = new Movies[30];
	//封装程序的入口,保证init()初始化数据这个方法只被执行一次
	public void start() {
		// TODO Auto-generated method stub
		init();
		menu1();
	}
	//定义初始化数据的方法,保证该方法只能被调用一次
	public void init() {
		admins[0] = new Admin(101,"张三","12345");
		admins[1] = new Admin(102,"李四","12345");
		
		movies[0] = new Movies("钢铁侠","唐尼",180);
		movies[1] = new Movies("青蜂侠","李小龙",168);
		movies[2] = new Movies("煎饼侠","大鹏",155);
	}
	
	/*	定义菜单方法
	 * 	这里可以不定义成为静态的,下面的定义成静态的
	 * 		因为非静态的可以访问静态的
	 * 	下面的方法也可以定义成为不是静态的
	 * 		同一个包中非静态的可以自由访问
	 */
	public void menu1() {
		System.out.println("==电影管理系统==");
		System.out.println("1:注册");
		System.out.println("2:登录");
		System.out.println("3:退出程序");
		int choose = sc.nextInt();
		switch (choose) {
		case 1:
			register();
			break;
		case 2:
			login();
			break;
		case 3:
			System.out.println("系统已退出");
			System.exit(0);
			break;

		default:
			System.out.println("输入有误");
			break;
		}
		menu1();
	}
	
	/*
	 * 定义一个管理员的查找法,方便我们对数据信息的定位
	 */
	public int getAdminIndex(int id) {
		int index = -1;
		for(int i = 0; i < admins.length; i++) {
			//找到了
			if(admins[i]!=null && admins[i].getId() ==id) {
				index = i;
				break;
			}
		}
		return index;
	}
	
	/*
	 * 管理员注册
	 */
	public void register() {
		System.out.println("请输入注册工号");
		int id = sc.nextInt();
		System.out.println("请输入您的姓名");
		String name = sc.next();
		System.out.println("请输入您的密码");
		String pass = sc.next();
		
		//根据查找法,传入输入的id查找对应的个工号有没有被注册
		 
		int index = getAdminIndex(id);
		if(index >= 0) {
			System.out.println("该工号已被注册");
			return;
		}
		
		/*	如果没有找到,则向数组中做添加的动作
		 * 	因为不知道数组中有多少个元素
		 * 	应该从第几位开始存入
		 * 	所以使用for循环,当数组中有元素为空既可以存储这个对象
		 */
		for(int i = 1; i < admins.length; i++) {
			if(admins[i] == null) {
				//数组存储对象new一个对象放在数组中即可
				admins[i] = new Admin(id,name,pass);
				System.out.println("添加成功");
				return;
			}
		}
		//如果上面没有结束掉方法的调用,走到这则说明没有添加
		System.out.println("添加失败");
	}
	/*
	 * 管理员登录
	 */
	public void login() {
		System.out.println("请输入您的工号");
		int id = sc.nextInt();
		/*
		 * 使用查找法,判断输入的工号是否存在
		 * 不存在则直接返回掉
		 */
		int index = getAdminIndex(id);
		if(index < 0) {
			System.out.println("该工号尚未激活");
			return;
		}
		
		//走到这说明没有结束掉方法,可以进行数据的判断,给用户三次机会
		for(int i = 1; i <= 3; i++) {
			System.out.println("请输入您的密码");
			String pass = sc.next();
			//进行判断,已经确定有这个账号,判断密码是否一致即可
			if(admins[index].getPass().equals(pass) ){
				System.out.println("登录成功");
				//跳转二级菜单
				menu2(index);
				//跳出这个循环
				break;
			}
			//在这个for循环里面,当次数等于3的时候退出这个程序
			if(i == 3) {
				System.out.println("登录失败");
				System.exit(0);
			}else{
				System.out.println("密码输入有误,您还有:"+(3-i)+"次机会");
			}
		}
	}
	//根据传入的索引取出这个值
	public void menu2(int index) {
		System.out.println("==电影管理系统==欢迎"+admins[index].getName());
		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.println("7:退出程序");
		int choose = sc.nextInt();
		switch (choose) {
		case 1:
			findMovieByName();
			break;
		case 2:
			showAllMovies();
			break;
		case 3:
			changeMovieTimes();
			break;
		case 4:
			addOneMovie();
			break;
		case 5:
			delOneMovie();
			break;
		case 6:
			menu1();
			break;
		case 7:
			System.out.println("程序已退出");
			System.exit(0);
			break;

		default:
			System.out.println("输入有误");
			break;
		}
		menu2(index);
	}
	/*
	 * 定义影片的查找法
	 */
	public int getMovieIndex(String name) {
		int index = -1;
		for(int i = 0; i < movies.length; i++) {
			//查找
			if(movies[i]!=null && movies[i].getName().contentEquals(name)) {
				index = i;
				break;
			}
		}
		return index;
	}
	/*
	 * 根据电影名称查找电影
	 */
	public int findMovieByName() {
		System.out.println("请输入要查找的影片名称");
		String name = sc.next();
		int index = getMovieIndex(name);
		if(index < 0) {
			System.out.println("影片不存在");
			return -1;
		}
		System.out.println("影片名称\t影片主演\t一片时长");
		System.out.println(movies[index].toString());
		return index;
	}
	/*
	 * 展示所有影片
	 */
	public void showAllMovies() {
		System.out.println("影片名称\t影片主演\t影片时长");
		for(int i = 0; i < movies.length; i++) {
			if(movies[i]!=null) {
				System.out.println(movies[i].toString());
			}
		}
	}
	/*
	 * 修改影片时长
	 */
	public void changeMovieTimes() {
		//查找影片,如果影片不存在返回值为-1
		int index = findMovieByName();
		if(index < 0) {
			System.out.println("影片不存在");
			return;
		}
		System.out.println("请输入修改后时长");
		int newTime = sc.nextInt();
		movies[index].setTime(newTime);
		System.out.println("修改成功");
	}
	/*
	 * 添加一部新的影片
	 */
	public void addOneMovie() {
		System.out.println("请输入新的影片的名称");
		String name = sc.next();
		System.out.println("请输入该影片的主演");
		String actor = sc.next();
		System.out.println("请输入该影片的时长");
		int time = sc.nextInt();
		//查找
		int index = getMovieIndex(name);
		if(index >=0) {
			System.out.println("该影片已经存在");
			return;
		}
		//添加
		for(int i =1; i < movies.length; i++) {
			if(movies[i] == null) {
				movies[i] =new Movies(name,actor,time);
				System.out.println("添加成功");
				return;
			}
		}
		System.out.println("添加失败");
		
		
	}
	/*
	 * 删除一部旧的影片
	 */
	public void delOneMovie() {
		int index = findMovieByName();
		if(index < 0) {
			System.out.println("该影片不存在");
			return;
		}
		//删除判断
		System.out.println("是否确定删除该影片?(y/n)");
		String choose = sc.next();
		if(choose.equals("n")) {
			return;
		}
		//删除
		movies[index] = null;
		System.out.println("删除成功");
	}
}

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值