import java.util.*;
public class MiniDVD{
static int i=50;
static int z=3;
public static void main(String[] args){
DVDmgr.initial();
int j=3;
qw: for (; ; )
{
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("-------------------------------");
System.out.println("1.新增DVD\n2.查看DVD\n3.删除DVD\n4.借出DVD\n5.归还DVD\n6.退出");
System.out.println("-------------------------------\n请选择:");
Scanner input=new Scanner(System.in);
int choose=input.nextInt(); //选择进入的选项
switch (choose)
{
case 1:{
z+=1; //参数 z 会被用到DVD数组的下标 z+=1 是在原本的数组中再开一个元素
j=z; //如 本来是 String[] names=new String[3]; 的 改变成 [4]
DVDmgr.add(z); //调用自定义的增加DVD的方法
break;
}case 2:{
DVDmgr.acc(z); //调用自定义遍历DVD数组的方法
z=j; //没 z=j时 你查了一次正常 第二次就只会显示 [0] 的数了
break;
}case 3:{
boolean is=DVDmgr.delete(z); //调用自定义的删除DVD的方法
if (is) //判断返回值是true 还是false
{
System.out.println("已删除DVD"); //true 就输出这个内容 否则就输出下面的
z--; //因为你删除了一个元素 所以names[] 数组的个数减 1
j=z;
}else{
System.out.println("没此DVD");
}
break;
}case 4:{
DVDmgr.lend(z); //调用自定义的借出DVD的方法
break;
}case 5:{
DVDmgr.returnDVD(z); //调用自定义的归还DVD的方法
}default :{
System.out.println("退出系统"); //退出
break qw;
}
}
}
}
}
class DVDmgr
{
MiniDVD cd=new MiniDVD();
static String[] names=new String[MiniDVD.i]; //DVD名
static String[] state=new String[MiniDVD.i]; //DVD是否借出
static String[] date=new String[MiniDVD.i]; //DVD日期
//初始化
public static void initial(){
names[0]="罗马假日";
state[0]="借出";
date[0]="2012-2-1";
names[1]="风声鹤唳";
state[1]="存在";
names[2]="浪漫满屋";
state[2]="存在";
}
//增加DVD的方法
public static void add(int z){
Scanner input=new Scanner(System.in);
System.out.println("请输入你增加的DVD:");
String name="";
name=input.next();
int c=z-1;
names[c]=name; //names[c] 就是新创的一个元素
state[c]="存在";
return;
}
//显示
public static void acc(int z){
System.out.println("序号\t状态\t名称\t\t借出日期");
int num=1;
for (;z-1>=0 ;z-- )
{
System.out.println(num+"\t"+state[z-1]+"\t"+names[z-1]+"\t"+date[z-1]);
num++;
}
return;
}
//删除
public static boolean delete(int z){
System.out.println("请输入你要删除的DVD:");
Scanner input=new Scanner(System.in);
String name="";
name=input.next();
for (;z-1>=0 ;z-- )
{
if (names[z-1].equals(name)&&"存在".equals(state[z-1]))
{
names[z-1]=names[z]; //把你要删除的元素被后面的元素覆盖掉
state[z-1]=state[z];
date[z-1]=date[z];
return true;
}
}
return false;
}
//借出
public static void lend(int z){
System.out.println("请输入你要借的DVD和日期:");
Scanner input=new Scanner(System.in);
String name="";
String da="";
name=input.next();
da=input.next();
for (;z-1>=0 ;z-- )
{
if (names[z-1].equals(name)) //判断你输入的字符串再数组中有没有
{ //有就把state[]数组对应的“存在”改成“借出”
state[z-1]="借出";
date[z-1]=da;
System.out.println("借出成功\n租金:20元");
break;
}else{
System.out.println("没有此DVD");
}
}
}
public static void returnDVD(int z){
System.out.println("请输入你要归还的DVD:");
Scanner input=new Scanner(System.in);
String name="";
name=input.next();
for (;z-1>=0 ;z-- ) //判断你输入的字符串再数组中有没有
{ //有就把state[]数组对应的“借出”改成“存在”
if (names[z-1].equals(name))
{
state[z-1]="存在";
System.out.println("归还成功");
break;
}else{
System.out.println("没有此DVD");
}
}
}
}
今天的项目测试让我知道了我的一些不足点
1.语文理解能力太差
这项目的题目内容我看了好久 而且看完后我还不知道是不是这样写
2.钻牛角尖
在写完一些代码后,编译错误时一直在想着不改那代码块改其他的代码,而浪费了3~4个小时搞到最后没写完全,虽然可以运行但不完全