Java面向对象之简单项目制作(DVD管理系统)

Java面向对象之简单项目制作(DVD管理系统)
任务:完成DVD的管理
主要功能:
1.新增DVD
2.查看DVD
3.删除DVD
4.借出DVD
5.归还DVD

DVD类

String name;//DVD名字
	int state;//DVD状态
	String date;//DVD借出时间
	
	/**
	 * 空的构造函数
	 */
	public DVD() {
		
	}
	
	/**
	 * 带参的构造函数
	 * @param name
	 * @param state
	 * @param date
	 */
	public DVD(String name,int state,String date) {
		this.name=name;
		this.state=state;
		this.date=date;
	}
	

DVDMgr类

public class DVDMgr {
	DVD[] dvdSet;//定义一个DVD类型的数组
	int count;
	Scanner scan=new Scanner(System.in);
	public void init() {	//0表示借出,1表示在库
		dvdSet=new DVD[3];
		dvdSet[0]=new DVD("罗马假日",0, "2017-5-12");
		dvdSet[1]=new DVD("人名的名义",1,"");
		dvdSet[2]=new DVD("三生三世",1,"");
		
	}
	//显示所有DVD信息
	public void showAllDVD(){
		System.out.println("序号"+"\t名称"+"\t\t状态"+"\t日期");
		int j=1;
		for(int i=0;i<dvdSet.length;i++) {
			if(dvdSet[i]!=null) {
			System.out.println((j++)+"\t"+dvdSet[i].name+"\t\t"+dvdSet[i].state+"\t"+dvdSet[i].date);
			}
		}
	}
	/**
	 * 菜单切换功能及输入非法数字时程序报错功能
	 */
	public void showMenu() {
		
		System.out.println("欢迎使用迷你DVD管理器");
		System.out.println("------------------------------------");
		System.out.println("1.新增DVD");
		System.out.println("2.查看DVD");
		System.out.println("3.删除DVD");
		System.out.println("4.借出DVD");
		System.out.println("5.归还DVD");
		System.out.println("6.退出DVD");
		System.out.println("------------------------------------");
		boolean flag=false;
		
		do {
			System.out.println("请选择:");
			String num=scan.next();
			num.charAt(0);//转换获取输入的第一个字符
		if(num.length()>1) {//输入的字符串长度大于1,重新输入
			System.out.println("非法字符!请重新输入");
			flag=true;
		}else {
				if(num.charAt(0)>'0'&&num.charAt(0)<='9') {
					if(num.charAt(0)>='7'&&num.charAt(0)<'9') {
						System.out.println("非法操作!请重新输入");
						flag=true;
					}else {
						switch (num.charAt(0)) {
						case '1':
							addDVD();
							flag=false;
							break;
						case '2':
							searchDVD();
							flag=false;					
							break;
						case '3':
							deleteDVD();
							flag=false;
							break;
						case '4':
							borrowDVD();
							flag=false;
							break;
						case '5':
							returnDVD();
							flag=false;
							break;
						case '6':
							System.out.println("退出DVD");
							System.exit(0);

						default:
							flag=false;
							break;
						}
					}
			}else {
					System.out.println("必须输入整数,请重新输入!");
					flag=true;
			}
		}	
		}while(flag);
				
	}
	/**
	 * 新增DVD
	 */
	public void addDVD() {
		System.out.println("请输入要添加的DVD名称:");
		String name=scan.next();
		
		dvdSet=Arrays.copyOf(dvdSet, dvdSet.length+1);//数组扩容
		dvdSet[dvdSet.length-1]=new DVD(name, 1, "");
		
		System.out.println("新增DVD成功!");
		System.out.println("***********************");
		showMenu();
	}
	/**
	 * 查看DVD
	 */
	public void searchDVD() {
		System.out.println("---> 查看DVD");
		
		showAllDVD();
		System.out.println("***********************************");
		showMenu();
	}
	/**
	 * 删除DVD
	 */
	public void deleteDVD() {
		
		System.out.println("---> 删除DVD");
			
			System.out.println("请选择要删除的DVD名称:");
			String name=scan.next();
			//遍历数组,判断输入的DVD在库中是否存在,不存在直接返回主菜单
			for(int i=0;i<dvdSet.length;i++) {
				if(dvdSet[i].name.equals(name)!=true) {
					count++;
				}
			}
			if(count==dvdSet.length) {
				System.out.println("未找到你要删除的DVD名称,返回主菜单!");
			}
			for(int i=0;i<dvdSet.length;i++) {
				if(dvdSet[i].name.equals(name)) {
					dvdSet[i]=null;
					System.out.println("删除成功");
					System.out.println("***********************");	
				}
				
			}
			
		showMenu();
		
		
		
	}
	/**
	 * 借阅DVD
	 */
	public void borrowDVD() {
		System.out.println("---> 借出DVD");
		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
		Date date=new Date();
		int j=0;
		System.out.println("请输入要借的DVD名称");
		String name=scan.next();
		for(int i=0;i<dvdSet.length;i++) {
			if(dvdSet[i].name.equals(name)!=true) {
				count++;
			}
		}
		if(count==dvdSet.length) {
			System.out.println("您要借阅的DVD不在仓库中,回到主菜单");
		}
			for(int i=0;i<dvdSet.length;i++) {
				if(dvdSet[i]!=null && dvdSet[i].state==1 && dvdSet[i].name.equals(name)) {
						System.out.println("借出"+dvdSet[i].name+"成功!");
						dvdSet[i].state=0;
						dvdSet[i].date=sd.format(date.getTime());
						break;
				}
				j++;
				if(j==dvdSet.length) {
						System.out.println("该dvd已借出"+dvdSet[i].name+"失败");
						break;
				}
			}
		showMenu();
	}
	/**
	 * 归还DVD
	 */
	public void returnDVD() {
		Boolean flag=false;
		System.out.println("---> 归还DVD");
		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
		long charge=0;
		do {
		for(int i=0;i<dvdSet.length;i++) {
			System.out.println("请输入要归还的DVD名称");
			String name=scan.next();
			if(dvdSet[i].name.equals(name)) {
				System.out.println("请输入归还日期:");
				String date=scan.next();
				try {
					Date d1 = sd.parse(dvdSet[i].date);
					Date d2 = sd.parse(date);
					charge = (d2.getTime() - d1.getTime()) / (24 * 3600 * 1000);
				} catch (Exception e) {
					e.printStackTrace();
			}
			System.out.println("归还成功!");
			System.out.println("借出日期为:" + dvdSet[i].date+"归还日期为:" + date+"应付钱:" + charge+"元"
					+"归还"+dvdSet[i].name+"成功");
			dvdSet[i].date = "";// 归还日期归零
			dvdSet[i].state = 1;// 状态转为可借
			showMenu();
			
		}else {
			System.out.println("您输入的DVD名称有误;请重新输入");
			flag=true;
			break;
		}
			
	}
}while(flag);
				
	
 }

}

主函数

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

}
上一篇:下载 CentOS 7 镜像文件


下一篇:leetcode 29. 两数相除(Divide Two Integers)