import java.util.Scanner;
public class TestDvd {
public static void main(String[] args) {
DvdUtil util = new DvdUtil();
//Dvd类型的数组
Dvd[] dvds=new Dvd[7];
//创建了三个dvd对象
Dvd d1=new Dvd("姜子牙",13,0,0);
Dvd d2=new Dvd("花木兰",14,0,0);
Dvd d3=new Dvd("夺冠",15,1,13);
//把对象放到数组里
dvds[0]=d1;
dvds[1]=d2;
dvds[2]=d3;
/*//放dvd的名字
String[] names=new String[7];
//放借出次数
int[] counts=new int[7];
//0 1 状态 1已借出0可借
int[] status=new int[7];
//借出日期
int[] dates=new int[7];
names[0]="姜子牙";
names[1]="花木兰";
names[2]="夺冠";
//借出次数
counts[0]=13;
counts[1]=14;
counts[2]=15;
//状态
status[0]=0;
status[1]=0;
status[2]=1;
//借出日期
dates[2]=13;*/
Scanner input = new Scanner(System.in);
int con=-1;
do {
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.print("--------------------------------------\n");
System.out.print("请选择: ");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("实现新增dvd的功能");
//util.add(names);
util.add2(dvds);
break;
case 2:
System.out.println("实现查看dvd的功能");
//util.getAll(names,status,dates,counts);
util.getAll2(dvds);
break;
case 3:
System.out.println("实现删除dvd的功能");
//util.delete(names);
util.delete2(dvds);
break;
case 4:
System.out.println("实现借出dvd的功能");
//util.lent(names, counts,status);
util.lent2(dvds);
break;
case 5:
System.out.println("实现归还dvd的功能");
//util.back(names, counts, status, dates);
util.back2(dvds);
break;
case 6:
System.exit(0);
break;
default:
break;
}
System.out.println("输入0继续");
con=input.nextInt();
}while(con==0);
}
}
import java.util.Scanner;
public class DvdUtil {
//查看dvd的所有数据
/*
* main中定义的变量是局部变量 查看main方法中的数组,getAll()不可以直接访问mian中的局部变量 访问main中的变量需要传参
*/
public void getAll2(Dvd[] dvds) {
System.out.println("序号\t名字\t状态\t归还日期\t借出次数\t");
for (int i = 0; i < dvds.length; i++) {
if(dvds[i]==null)
break;
if(dvds[i].getStatus()==0) //可借
System.out.println((i+1)+"\t"+dvds[i].getName()+"\t"+"可借"+"\t"+dvds[i].getDate()+"\t"+dvds[i].getCount());
else
System.out.println((i+1)+"\t"+dvds[i].getName()+"\t"+"已借出"+"\t"+dvds[i].getDate()+"\t"+dvds[i].getCount());
}
}
//新增dvd
//把新增的dvd放在那哪里?放在数组,数组在main中,不能直接访问,所以还需要传参
public void add2(Dvd[] dvds) {
Scanner input=new Scanner(System.in);
System.out.println("请输入新的DVD名字:");
String name=input.next();
//要看数据是否有空位置,如果有空位置,可以新增,如果没有,则提示空间已满
//找空位置
//放空位置下标
int index=-1;
for (int i = 0; i < dvds.length; i++) {
if(dvds[i]==null)
{
index=i;
break;
}
}
if(index==-1)
System.out.println("空间已满,新增失败!");
else {
if(exists(dvds,name))
System.out.println("要添加的DVD已经存在,新增失败!");
else {
//可以新增
Dvd dvd = new Dvd(name,0,0,0);
dvds[index]=dvd;
System.out.println("新增成功!");
}
}
}
//判断是否已经存在要添加的DVD
//存在返回true,不存在返回false
public boolean exists(Dvd[] dvds,String name) {
for (int i = 0; i < dvds.length; i++) {
if(dvds[i]==null) {
return false;
}
if(name.equals(dvds[i].getName()))
return true;
}
return false;
}
//删除DVD
public void delete2(Dvd[] dvds) {
Scanner input=new Scanner(System.in);
System.out.println("请输入要删除的DVD名字:");
String name=input.next();
//查找要删除的DVD是否存在,若存在,则删除,若不存在则提示删除失败
int index=-1;
for (int i = 0; i < dvds.length; i++) {
if(name.equals(dvds[i].getName())) {
index=i;
break;
}
}
if(index==-1)
System.out.println("要删除的DVD不存在,删除失败!");
else {
int i;
for (i = 0; i < dvds.length-1; i++) {
dvds[i]=dvds[i+1];
}
dvds[i]=null;
}
System.out.println("删除成功!");
}
//借出DVD
public void lent2(Dvd[] dvds) {
Scanner input=new Scanner(System.in);
System.out.println("请输入要借出的DVD名字:");
String name=input.next();
//查找要借出的DVD是否存在,若不存在,则借出失败,若存在,则借出
int index=-1;
for (int i = 0; i < dvds.length; i++) {
if(name.equals(dvds[i].getName())) {
index=i;
break;
}
}
if(index==-1)
System.out.println("要借出的DVD不存在,借出失败!");
else {
dvds[index].setCount(dvds[index].getCount()+1);
dvds[index].setStatus(1);
}
System.out.println("借出成功!");
}
//归还DVD
public void back2(Dvd[] dvds) {
Scanner input=new Scanner(System.in);
System.out.println("请输入要归还的DVD名字:");
String name=input.next();
System.out.println("请输入归还的日期:");
int date=input.nextInt();
//找到要归还的DVD
int i;
for ( i = 0; i < dvds.length; i++) {
if(name.equals(dvds[i].getName()))
break;
}
dvds[i].setCount(dvds[i].getCount()-1);
dvds[i].setDate(date);
if(dvds[i].getCount()==0)
dvds[i].setStatus(0);
System.out.println("归还成功!");
}
}
public class Dvd {
private String name;
private int count;
private int status;
private int date;
//alt+Shift+s
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getDate() {
return date;
}
public void setDate(int date) {
this.date = date;
}
//有参的构造函数
public Dvd(String name,int count,int status,int date) {
this.name=name;
this.count=count;
this.status=status;
this.date=date;
}
//无参数构造函数
public Dvd() {
}
}
注释:
public class Test {
public static void main(String[] args) {
//构造函数的作用是实例化对象
//有参构造函数的作用是实例化对象的同时,给属性赋值
//实例化一个对象
Dvd dvd1=new Dvd();
//给实例的属性赋值
dvd1.setName("返老还童");
//输出dvd实例的name属性
System.out.println("dvd1.getName(): "+dvd1.getName());
//在实例化对象的同时,给对象的属性赋值
Dvd dvd2=new Dvd("狂怒",21,0,0);
System.out.println("dvd2.getName(): "+dvd2.getName()+" "+dvd2.getCount());
}
}