Day20:面向对象项目之DVD管理系统

package com.biu.demo03;

public class DVD {
	private String name;	//名称
	private String factory;//出版社
	private double price;//价格
	private int status;//状态
	private int count;//借出次数
	
	@Override
	public String toString() {
		String statu = status == 0 ? "可借" : "已借出";
		return "名称:《" + name + "》\t出版社:" + factory + "\t价格:" + price + "\t状态:" 
				+ statu + "  \t借出次数:"+ count;
	}
	
	public DVD() {
		super();
	}
	public DVD(String name, String factory, double price, int status, int count) {
		super();
		this.name = name;
		this.factory = factory;
		this.price = price;
		this.status = status;
		this.count = count;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getFactory() {
		return factory;
	}
	public void setFactory(String factory) {
		this.factory = factory;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public int getStatus() {
		return status;
	}
	public void setStatus(int status) {
		this.status = status;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	
}

package com.biu.demo03;

import java.util.Arrays;
import java.util.Scanner;

public class DVDMgr {
	Scanner sc = new Scanner(System.in);
	DVD[] dvds = new DVD[4];
	
	//初始化
	public void init() {
		dvds[0] = new DVD("罗马假日","罗马",34,0,0);
		dvds[1] = new DVD("我是传奇","美国",42,1,1);
		dvds[2] = new DVD("红海行动","中国",56,0,8);
		dvds[3] = new DVD("未知死亡","印度",63,1,5);
	}
	
	//菜单
	public void menu() {
		System.out.println("*************迷你DVD管理系统**************");
		System.out.println("\t1.新增DVD\n\t2.查看DVD\n\t3.删除DVD\n\t4.借出DVD\n\t5.归还DVD\n\t6.DVD排行榜\n\t0.退出");
		System.out.print("请输入功能号:");
	}
	
	//1.新增DVD
	public void addDVD() {
		System.out.println("**********添加DVD**********");
		System.out.print("请输入DVD名称:");
		String name = sc.next();
		for(int i=0; i<dvds.length; i++) {
			if(name.equals(dvds[i].getName())) {
				System.out.println("此书已存在,添加失败!");
				return;
			}
		}
		System.out.print("请输入DVD的出版社:");
		String factory = sc.next();
		System.out.print("请输入DVD价格:");
		double price = sc.nextDouble();
		System.out.println("《" + name + "》添加成功!");
		
		DVD dvd = new DVD();
		dvd.setName(name);
		dvd.setFactory(factory);
		dvd.setPrice(price);
		dvd.setCount(0);
		dvd.setStatus(0);
		dvds = Arrays.copyOf(dvds, dvds.length+1);
		dvds[dvds.length-1] = dvd;
	}
	
	//2.查看DVD
	public void showAllDVD() {
		for (int i=0; i<dvds.length; i++) {
			if(dvds[i]!=null) {
				System.out.println((i+1) + ". "+ dvds[i]);
			}
		}
	}
	
	//3.删除DVD
	public void delDVD() {
		System.out.println("**********删除DVD**********");
		System.out.print("请输入要删除的DVD名称:");
		boolean flag = false;
		String name = sc.next();
		for(int i=0; i<dvds.length; i++) {
			if (null != dvds[i] && name.equals(dvds[i].getName())) {
				flag = true;
				//改变长度并删除,避免了空值占位
				DVD[] temp=new DVD[dvds.length-1];
				System.arraycopy(dvds, 0, temp, 0, i);
				System.arraycopy(dvds, i+1, temp, i, temp.length-i);
				dvds=temp;
				System.out.println("删除成功!");
				break;
			}
		}
		if(!flag) {
			System.out.println("您要删除的DVD不存在!");
		}
	}
	
	//4.借出DVD
	public void lendDVD() {
		boolean flag = false;
		System.out.println("**********借出DVD**********");
		System.out.print("请输入要借出的DVD名称:");
		String name = sc.next();
		for (int i = 0; i < dvds.length; i++) {
			if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() == 0) {
				//不为空、输入的DVD有、状态为可借 -> 可借
				flag = true;
				System.out.println("《" + name +"》,借出成功!");
				dvds[i].setStatus(1);
				dvds[i].setCount(dvds[i].getCount()+1);
				break;
			}else if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() != 0) {
				//不为空、输入的DVD有、状态为已借出 -> 不可借
				flag = true;
				System.out.println("《" + name +"》,已经被借出!");
				break;
			}
		}
		if (!flag) {
			System.out.println("您要借出的DVD不存在!");
		}
	}
	
	//5.归还DVD
	public void revertDVD() {
		boolean flag = false;
		System.out.println("**********归还DVD**********");
		System.out.print("请输入要归还的DVD名称:");
		String name = sc.next();
		for (int i = 0; i < dvds.length; i++) {
			if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() != 0) {
				//不为空、输入的DVD有、状态为已借出 -> 可归还
				flag = true;
				System.out.println("《" + name +"》,归还成功!");
				dvds[i].setStatus(0);
				break;
			}else if (null != dvds[i] && name.equals(dvds[i].getName()) && dvds[i].getStatus() == 0) {
				//不为空、输入的DVD有、状态为可借 -> 不可归还
				flag = true;
				System.out.println("《" + name +"》,没有被借出,无法归还!");
				break;
			}
		}
		if (!flag) {
			System.out.println("您要归还的DVD不存在!");
		}
	}
	
	//6.DVD排行榜
	public void rankDVD() {
		System.out.println("**********DVD排行榜**********");
		//冒泡排序
		for(int j=0; j<dvds.length-1; j++) {
			for (int i = 0; i < dvds.length-1-j; i++) {
				if (dvds[i] != null && dvds[i].getCount() < dvds[i+1].getCount()) {
					DVD temp = dvds[i];
					dvds[i]=dvds[i+1];
					dvds[i+1]=temp;
				}
			}
		}
		showAllDVD();
	}
	
	//程序开始
	public void start() {
		int num = -1;
		do {
			menu();
			boolean isExit = false;
			int choose = sc.nextInt();
			switch (choose) {
			case 1:
				//新增DVD
				addDVD();
				System.out.println();
				break;
			case 2:
				//查看DVD
				showAllDVD();
				System.out.println();
				break;
			case 3:
				//3.删除DVD
				delDVD();
				System.out.println();
				break;
			case 4:
				//4.借出DVD
				lendDVD();
				System.out.println();
				break;
			case 5:
				//5.归还DVD
				revertDVD();
				System.out.println();
				break;
			case 6:
				//6.DVD排行榜
				rankDVD();
				System.out.println();
				break;
			case 0:
				System.out.print("是否退出?(y/n):");
				String exit = sc.next();
				if (exit.equals("y")) {
					isExit = true;
				} else if (exit.equals("n")) {
					System.out.println("继续操作。\n");
					break;
				} else {
					System.out.println("您的输入有误!\n");
				}
				break;

			default:
				System.out.println("您的输入有误!");
				break;
			}
			if(isExit) {
				System.out.println("\n您已成功退出系统!");
				break;
			}
		} while (num!=0);
	}
	
}

package com.biu.demo03;

public class Test {
	public static void main(String[] args) {
		DVDMgr mgr = new DVDMgr();
		mgr.init();
		mgr.start();
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值