利用面向对象实现DVD管理系统

实现需求:1.新增DVD;

                  2.查看DVD;

                  3.删除DVD;

                  4.借出DVD;

                  5.归还DVD;

                  6.退出DVD。

实现代码如下:

首先需要一个DVD类

public class DVD {
	private int serial;    //序号
	private String state;  //状态
	private String name;   //名称
	private int outDate;   //借出日期
	private String out;
	private int time;      //借出次数
	
	public DVD(){
	}
	public DVD(int serial,String state,String name,int outDate,int time){
		this.serial=serial;
		this.state=state;
		this.name=name;
		this.outDate=outDate;
		this.time=time;
	}
	
	public int getOutDate() {
		return outDate;
	}
	public void setOutDate(int outDate) {
		this.outDate = outDate;
	}
	public String getOut() {
		return out;
	}
	public void setOut(String out) {
		this.out = out;
	}
	public int getSerial() {
		return serial;
	}
	public void setSerial(int serial) {
		this.serial = serial;
	}
	public String getState() {
		return state;
	}
	public void setState(String state) {
		this.state = state;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getTime() {
		return time;
	}
	public void setTime(int time) {
		this.time = time;
	}
	
	//查看格式
	public String toString() {
		return this.getSerial()+"\t"+this.getState()+"\t<<"+this.getName()+">>\t"+this.getOut()+"\t"+this.getTime()+"次";
	}
	
	
}

其次DVD实现类

//DVD管理器
public class DVDMgr {
	Scanner input = new Scanner(System.in);
	DVD[] dvd = new DVD[4];
	int back; //返回键
	//初始化三个DVD数组对象
	public void init(){
		DVD s1 = new DVD(1,"已借出","罗马假日",1,15);
		dvd[0]=s1;
		DVD s2 = new DVD(2,"可 借","风声鹤唳",0,12);
		dvd[1]=s2;
		DVD s3 = new DVD(3,"可 借","浪漫满屋",0,30);
		dvd[2]=s3;	
	}
	//主菜单
	public void start(){
		do{
			System.out.println("欢迎使用迷你DVD 管理器");
			System.out.println("-----------------------------");
			System.out.println("1. 新增DVD\n2. 查看DVD\n3. 删除DVD\n4. 借出DVD\n5. 归还DVD\n6. 退出DVD");
			System.out.println("-----------------------------");
			System.out.print("请选择:");
			int num = input.nextInt();
			switch(num){
			case 1:
				this.addDVD();
				break;
			case 2:
				this.queryDVD();
				break;
			case 3:
				this.delDVD();
				break;
			case 4:
				this.loan();
				break;
			case 5:
				this.backDVD();
				break;
			case 6:
				System.out.println("谢谢使用");
				return;
			default:
				System.out.println("输入错误");
				break;
			}
			do{
				System.out.println("输入0返回");
				back = input.nextInt();
				if(back!=0){
					System.out.println("输入错误");
				}
			}while(back!=0);
		}while(true);
	}
	
	//新增DVD
	public void addDVD(){
		System.out.println("---> 新增DVD\n");
		System.out.print("请输入DVD名称:");
		String name = input.next();
		//1.判断数组是否已满	
		//2.找到第一个为null的下标,赋值
		boolean tag = false;
		for(int i=0;i<dvd.length;i++){
			if(dvd[i]==null){
				dvd[i]=new DVD();
				dvd[i].setName(name);
				System.out.println("新增《"+dvd[i].getName()+"》成功!");
				System.out.println("**************************");
				dvd[i].setState("可 借");
				dvd[i].setSerial(i+1);
				tag = true;
				break;
			}
		}
		if(!tag){
			System.out.println("新增《"+name+"》失败!货架已满!");
		}
	}
	//查看DVD
	public void queryDVD(){
		System.out.println("---> 查看DVD");
		System.out.println("\n序号\t状 态\t名称\t\t借出日期\t借出次数");
		int serial = 1;
		for(int i=0;i<dvd.length;i++){
			if(dvd[i]!=null){
				dvd[i].setSerial(serial++);
				dvd[i].setOut(dvd[i].getOutDate()+"日");
				if(dvd[i].getState().equals("可 借")){
					dvd[i].setOut(" ");
				}
				System.out.println(dvd[i]);
			}
		}
		System.out.println("**************************");
	}
	//删除DVD
	public void delDVD(){
		System.out.println("---> 删除DVD\n");
		System.out.print("请输入DVD名称:");
		String name = input.next();
//		(1)删除失败,没有找到匹配信息!
//		(2)删除失败: 为借出状态,不能删除!
//		(3)删除成功:
		int index=-1;
		boolean tag = false;
		for(int i=0;i<dvd.length;i++){
			if(dvd[i]!=null&&name.equals(dvd[i].getName())&&dvd[i].getState().equals("可 借")){
				index=i;
				tag = true;
				break;
			}else if(dvd[i]!=null&&name.equals(dvd[i].getName())&&dvd[i].getState().equals("已借出")){
				tag = true;
				System.out.println("《"+name+"》为借出状态,不能删除!");
				break;
			}
		}	
		if(!tag){
			System.out.println("没有找到匹配信息!");	
		}
		//删除操作
		if(index!=-1){
			for(int i=index;i<dvd.length-1;i++){
				dvd[i]=dvd[i+1];
			}
			dvd[dvd.length-1]=null;
			System.out.println("删除《"+name+"》成功!");
		}
		System.out.println("**************************");
	}
	//借出DVD
	public void loan(){
		System.out.println("---> 借出DVD\n");
		System.out.print("请输入DVD名称:");
		String name = input.next();
//		(1)借出DVD失败:
//     		没有DVD
//  		已经借出
//		(2)借出DVD成功:
		int index=-1;
		boolean tag = false;
		for(int i=0;i<dvd.length;i++){
			if(dvd[i]!=null&&name.equals(dvd[i].getName())&&"可 借".equals(dvd[i].getState())){
				index=i;
				tag=true;
				break;
			}else if(dvd[i]!=null&&name.equals(dvd[i].getName())&&"已借出".equals(dvd[i].getState())){
				tag=true;
				System.out.println("《"+name+"》已被借出!");
				break;
			}
		}
		if(!tag){
			System.out.println("《"+name+"》暂时没有上架!");
		}
		//借出操作
		if(index!=-1){
			System.out.print("请输入借出日期:");
			int outDate = input.nextInt();
			dvd[index].setOutDate(outDate);
			dvd[index].setState("已借出");
			dvd[index].setTime(dvd[index].getTime()+1);
			System.out.println("借出《"+name+"》成功!");
		}
		System.out.println("**************************");
	}
	//归还DVD
	public void backDVD(){
		System.out.println("---> 归还DVD\n");
		System.out.print("请输入DVD名称:");
		String name = input.next();
//		1.归还成功
//		2.归还失败
//			暂时没有此DVD
//			还没有借出
		int index=-1;
		boolean tag = false;
		for(int i=0;i<dvd.length;i++){
			if(dvd[i]!=null&&name.equals(dvd[i].getName())&&"已借出".equals(dvd[i].getState())){
				index=i;
				tag=true;
				break;
			}else if(dvd[i]!=null&&name.equals(dvd[i].getName())&&"可 借".equals(dvd[i].getState())){
				tag=true;
				System.out.println("《"+name+"》还没有被借出,不能归还!");
				break;
			}
		}
		if(!tag){
			System.out.println("《"+name+"》暂时没有上架!");
		}
		//借出操作
		if(index!=-1){
			System.out.print("请输入归还日期:");
			int backDate = input.nextInt();
			dvd[index].setState("可 借");
			System.out.println("\n归还《"+name+"》成功!");
			System.out.println("借出日期为:"+dvd[index].getOutDate()+"日");
			System.out.println("归还日期为:"+backDate+"日");
			int rent = backDate-dvd[index].getOutDate();
			System.out.println("应付租金(元):"+rent);
		}
		System.out.println("**************************");
	}
}

最后测试类

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

如各位大咖浏览过后有更好的改进,可以留言告知,感谢!

Logo

快速构建 Web 应用程序

更多推荐