Java基础阶段项目之DVD租赁

java初级阶段项目之DVD租赁(详细)

一:功能介绍

  1. 用户登录(有三次机会,分别有对应的提示)
    输入错误时的提示:
    Java基础阶段项目之DVD租赁_第1张图片登录成功:
    Java基础阶段项目之DVD租赁_第2张图片
  2. 查看所有的DVD数据信息:
    Java基础阶段项目之DVD租赁_第3张图片
  3. 添加DVD
    Java基础阶段项目之DVD租赁_第4张图片
  4. 查看新增的DVD
    查看新增的DVD
  5. 删除DVD
    删除失败:
    删除DVD失败
    删除成功:
    Java基础阶段项目之DVD租赁_第5张图片
    删除结果查询:
    所有DVD数据集合中:
    ![查看删除结果](https://img-blog.csdnimg.cn/20190731184133953.png
    新增DVD数据集合中(因为万物可爱是新增的数据):
    查看删除结果
  6. 借出DVD
    借出失败:
    借出失败
    借出成功:
    借出成功
  7. 查看借出列表
    Java基础阶段项目之DVD租赁_第6张图片
  8. 归还DVD:

归还DVD

  1. 退出:

退出

二:代码

  1. 项目的主类(DVDMain类)
    此代码中包含整个代码运行的主要流程。
    主要包括:用户登录,登录成功后的操作处理
package com.hire;//包

// 这个是DVD项目的主类,用来执行主菜单,完成整个项目的流程

import java.util.ArrayList;
import java.util.Scanner;

public class DVDMain {

	public static void main(String[] args) {
		
		//首先创建DVD类型的容器,用于做数据的处理。
		ArrayList array=new ArrayList();
		
		//用于存储新增加的DVD
		ArrayList arr=new ArrayList();
		
		//用于存储借出列表
		ArrayList rentArray=new ArrayList();
		
		//对DVD系统进行初始化
		DVDManagement.initDvd(array,rentArray);
		
		//用户登录
		DVD.setUsername("admin");
		DVD.setPassword("123456");
		boolean adminFlag=false;
		for(int i=0;i<3;i++) {
			DVDManagement.userAdminSystem();
			if((DVD.getUsername().equals(DVDManagement.username))
			  &&(DVD.getPassword().equals(DVDManagement.password))) {
				adminFlag=true;break;
			}
			else {
				 if(i<2)System.out.println("您输入的信息有误!您还有"+(2-i)+"次机会!");
			}
		}
		
		//登录成功
		if(adminFlag) {
			System.out.println("---------\t欢迎来到闵小太阳DVD租赁屋\t---------");
			while(true) {
				System.out.println("请输入您想要进行的操作:");
				System.out.println("1:查看所有的DVD");
				System.out.println("2:查看最近新增的DVD");
				System.out.println("3:查看借出列表");
				System.out.println("4:添加DVD");
				System.out.println("5:删除DVD");
				System.out.println("6:借出DVD");
				System.out.println("7:归还DVD");
				System.out.println("8:退出");
				Scanner sc=new Scanner(System.in);
				int operationNumber=sc.nextInt();
				boolean flag=false;
				switch( operationNumber) {
					case 1:DVDManagement.checkAllDVD(array);				break;
					case 2:DVDManagement.preferenceNewDVD(arr);				break;
					case 3:DVDManagement.loanListDVD(rentArray);			break;
					case 4:DVDManagement.addDVD(array,arr);					break;
					case 5:DVDManagement.removeDVD(array, arr);				break;
					case 6:DVDManagement.rentDVD(array,arr,rentArray);		break;
					case 7:DVDManagement.returnDVD(array,arr,rentArray);	break;
					case 8:
					default:System.out.println("谢谢您的使用!QAQ");
							System.exit(0); 						break;	
							//(java虚拟机退出)JVM退出
				}
			}
		}
		//登录失败
		else System.out.println("您的账号已经被锁定,请与管理员联系!");
	}

}

  1. 项目的属性和行为类(DVD类)
    属性主要包括DVD名称,DVD借出时间,DVD借出次数,DVD当前的借出状态。
    行为主要是对上述属性的封装。
package com.hire;
/*
 * 本类是存放本项目中所需要的基本变量,从而对基本变量进行
 * */
public class DVD {
	
		//所有的成员均用private修饰,以保护数据的安全性
		private static String username;
		private static String password;
		private String dvdName;//DVD名字
		private String hireDate;//借出日期
		private int hireCounts;//借出次数
		private String dvdStatus;//借出状态
		
		//无参构造方法
		public DVD() {
			
		}
		
		//有参构造方法,用来获取每个对象的值
		public DVD(String dvdName, String hireDate, int hireCounts, String dvdStatus) {
			this.dvdName = dvdName;
			this.hireDate = hireDate;
			this.hireCounts = hireCounts;
			this.dvdStatus = dvdStatus;
		}
		
		//getXxx()方法和setXxx()方法,用来获取和设置数据
		public String getDvdName() {
			return dvdName;
		}
		public void setDvdName(String dvdName) {
			this.dvdName = dvdName;
		}
		public String getHireDate() {
			return hireDate;
		}
		public void setHireDate(String hireDate) {
			this.hireDate = hireDate;
		}
		public int getHireCounts() {
			return hireCounts;
		}
		public void setHireCounts(int hireCounts) {
			this.hireCounts = hireCounts;
		}
		public String getDvdStatus() {
			return dvdStatus;
		}
		public void setDvdStatus(String dvdStatus) {
			this.dvdStatus = dvdStatus;
		}

		public static String getUsername() {
			return username;
		}

		public static void setUsername(String username) {
			DVD.username = username;
		}

		public static String getPassword() {
			return password;
		}

		public static void setPassword(String password) {
			DVD.password = password;
		}		
}

  1. 项目实现各个功能的子代码块合集(DVDManagement数据管理类)
    包括一下类:(包含了集合的增删改查)
    查看当前所有DVD
    查看当前新增的DVD
    查看DVD借出列表
    增加DVD
    删除DVD
    借出DVD
    归还DVD
package com.hire;

import java.util.ArrayList;
import java.util.Scanner;

public class DVDManagement {
	
 		//用户登录系统
		public static String username;//用于接收用户键入的用户名
		public static String password;//用于接收用户键入的密码
		public static void userAdminSystem() {
			Scanner sc=new Scanner(System.in);
			System.out.println("请输入您的用户名:");
			username=sc.nextLine();
			System.out.println("请输入您的密码:");
			password=sc.nextLine();
		}
		
		//DVD初始化
		public static void initDvd(ArrayList array,ArrayList array2) {
			DVD data;
			data=new DVD("千与千寻","0000/00/00",168,"未借出");
			array.add(data);
			data=new DVD("大鱼海棠","2019/06/06",133,"已借出");
			array.add(data);
			array2.add(data);
			data=new DVD("扫毒","2018/12/06",10,"已借出");
			array.add(data);
			array2.add(data);
			data=new DVD("星际穿越","0000/00/00",23,"未借出");
			array.add(data);
			data=new DVD("微微一笑","2016/11/23",133,"已借出");
			array.add(data);
			array2.add(data);
		}
		
		//查看所有的DVD
		public static void checkAllDVD(ArrayList array) {
			//首先判断集合里面有没有数据
			if(array.size()==0) 
				System.out.println("对不起!目前没有相应的数据提供给您!请回去重新做您的选择!");
			else {
				System.out.println("DVD名字\t\tDVD是否借出\t借出时间\t\t\t借出次数");
				for(int i=0;i arr) {
			//首先判断集合里面有没有数据
			if(arr.size()==0) 
				System.out.println("对不起!目前没有相应的数据提供给您!请回去重新做您的选择!");
			else {
				System.out.println("DVD名字\t\tDVD是否借出\t借出时间\t\t\t借出次数");
				for(int i=0;i arr) {
			//首先判断集合里面有没有数据
			if(arr.size()==0) 
				System.out.println("对不起!目前没有相应的数据提供给您!请回去重新做您的选择!");
			else {
				System.out.println("DVD名字\t\tDVD是否借出\t借出时间\t\t\t借出次数");
				for(int i=0;i arr1,ArrayList arr2) {
			Scanner sc = new Scanner(System.in);
			String name;
			while(true) {
				System.out.println("请输入您想要添加的DVD名字:");
				name = sc.nextLine();
				boolean flag = false;//用来做标记,避免出现重复的DVD。
			
				for(int x=0; x arr1,ArrayList arr2) {
			System.out.println("请输入您想要删除DVD名字:");
			Scanner sc = new Scanner(System.in);
			String name=sc.nextLine();
			/*
			 * 删除时需要判断新增集合和存储所有DVD的集合是否含有该DVD,
			 * 如果有,则需要同时都删除,而且,只要新增DVD集合中如果有,则所有DVD集合中肯定有该DVD
			 * */
			//分别记录集合1,和集合2的位置
			int index = -1,index1=-1;
			
			for(int x=0; x arr1,ArrayList arr2,ArrayList arr3) {
			System.out.println("请输入您想要借出的DVD名字:");
			Scanner sc=new Scanner(System.in);
			String name=sc.nextLine();
			int index=-1,index1=-1,index2=-1;
			for(int i=0;i arr1,ArrayList arr2,ArrayList arr3) {
			System.out.println("请输入您想要归还的DVD:");
			Scanner sc=new Scanner(System.in);
			String name=sc.nextLine();
			
			int index=-1,index1=-1,index2=-1;
			for(int i=0;i

三:总结

一:代码总结:
1,首先是登录界面的登录功能超过三次锁定用户,要用三次循环,最后一次做特殊处理
2,然后是主菜单上的操作,为了实现不退出就一直执行的功能,选择用while(true){},在退出的时候选择用system.exit()退出虚拟机。
3,功能介绍方面的话需要注意的就是,在借出的时候,如果数据库中有,则借出,此时需要更新含有全部DVD信息的集合,
还有新增DVD信息的集合,还有储存DVD借出列表的集合。因为要改变其状态为借出,还要及时更新DVD借出列表
4,删除的时候要注意新增DVD集合中,也要及时进行更新。

你可能感兴趣的:(Java)