综合练习一 迷你DVD管理器

import java.util.Scanner;
public class JieYuedvd {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//是否退出程序 false:不退出  true:想退出
boolean flag=false;
//初始化数据
//DVD名称
String[] names=new String[6];
//DVD借阅状态  0:可借阅 1:已借出
int[] states=new int[6];
//DVD借出日期
int[] dates=new int[6];
//DVD 借出次数
int[] count=new int[6];
//初始化数据
names[0]="浪漫满屋";
states[0]=1;
dates[0]=8;
count[0]=10;

names[1]="罗马假日";
states[1]=0;
dates[1]=0;
count[1]=5;

names[2]="来自星星的你";
states[2]=0;
dates[2]=0;
count[2]=100;

//记录用户选择的数字:用户是否继续进行DVD操作的数字:0或者其他
int num=-1;
//程序主题编写 

do{

System.out.println("***************欢迎使用迷你DVD管理器*****************");
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("请选择对应操作:");
int choose=input.nextInt();
switch(choose){
case 1:
//新增
System.out.println("*******新增DVD**********");
System.out.println("请输入要增加的DVD名称:");
String name=input.next();
//标识能否插入 默认不能插入;
boolean flag1=false;
for(int i=0;i<names.length;i++){
//插入DVD
if(names[i]==null){
names[i]=name;
flag1=true;
break; 
}
}
if(flag1==true){
System.out.println("新增DVD《"+name+"》成功!");
}else{
System.out.println("货架已满,不能新增!");

}
break;
case 2:
//查看
System.out.println("******查看*********");
System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
for (int i=0;i<names.length;i++){
if(names[i]!=null){
String state=(states[i]==0)?"可借阅":"已借出";
String dateStr=(dates[i]==0)?"":(dates[i]+"日");
String countStr=count[i]+"次";
 
System.out.println((i+1)+"\t"+state+"\t"+names[i]+"\t"+dateStr+"\t"+count[i]+"次");
}
}
break;
case 3:
//删除
System.out.println("请输入要删除的DVD名称:");
String delete=input.next();
//能否找到用户要删除的DVD;false:没有找到匹配的DVD,不能删除 
//true:能根据用户输入的DVD名称找到相应的DVD
boolean flag2=false;
//记录要删除的DVD位置 
int index=-1;
//找到要删除的DVD下标位置
for(int i=0;i<names.length;i++){
if(delete.equals(names[i]) &&states[i]==1 ){
//有,但是借出去了 
flag2=true;
System.out.println("对不起,要删除的DVD已经被借出,无法删除!");
break;
}else if(delete.equals(names[i]) && states[i]==0){
//有,没有借出去
flag2=true;
index=i;
System.out.println("删除《"+delete+"》成功!");
break;
}
}
//根据上一步找到的下标位置index,开始删除的工作
for(int j=index;j<names.length;j++){
//删除:后面的值一次往前覆盖,最后一个值变为null
if(j!=names.length-1){
names[j]=names[j+1];
states[j]=states[j+1];
dates[j]=dates[j+1];
count[j]=count[j+1];
}
names[names.length-1]=null;
states[names.length-1]=0;
dates[names.length-1]=0;
count[names.length-1]=0;

}
if(!flag2){
System.out.println("对不起,没有匹配的DVD信息,无法删除!");

}
break;
case 4:
//借出
System.out.println("请输入要借阅的DVD名称:");
String want=input.next();
for(int i=0;i<names.length;i++){
if(names[i]==null){
System.out.println("没有匹配的DVD信息!");
break;
}else if(want.equals(names[i]) && states[i]==1){
System.out.println(want+"已经借出,无法借阅!");
break;
}else if(want.equals(names[i]) && states[i]==0){
System.out.println("请输入借阅日期:");
int date=input.nextInt();
while(date<1 || date>31){
System.out.println("日期必须在1—31之间!请重新输入!");
date=input.nextInt();
}
System.out.println(want+"借阅成功!");
break;
}
}
break;
case 5:
//归还
System.out.println("请输入要归还的DVD名称:");
String back=input.next();
for(int i=0;i<names.length;i++){
if(names[i]==null){
System.out.println("没有匹配的DVD信息!");
break;
}else if(back.equals(names[i]) && states[i]==0){
System.out.println(back+"没有被借出,不用归还!");
break;
}else if(back.equals(names[i]) && states[i]==1){
System.out.println("请输入归还日期:");
//记录归还日期
int backDate=input.nextInt();
while(backDate<dates[i] || backDate>31){
if(backDate<dates[i]){
System.out.println("归还日期不能小于借出日期!请重新输入:");
}else if(backDate>31){
System.out.println("归还日期必须在1—31之间!请重新输入:");
}
backDate=input.nextInt();
}
//计算租金:一天一元
int money=(backDate-dates[i])*1;
System.out.println("《"+back+"》归还成功!");
System.out.println("《"+back+"》借阅日期:"+dates[i]+"日");
System.out.println("《"+back+"》归还日期:"+backDate+"日");
System.out.println("《"+back+"》应付租金:"+money+"元");
//数据更新
states[i]=0;
dates[i]=0;
break;
}
}
case 6:
//退出
flag=true;
break;
default:
//输入了要求之外的数字,同样默认退出
flag=true;
break;

}
if(flag){
//想要退出菜单选择
num=-1;
break;
}else{
//不退出,继续进入主菜单选择
System.out.println("***********************");
System.out.println("请输入0返回:");
num=input.nextInt();

}
}while(num==0);//用户输入位0
//程序退出,结束
System.out.println("谢谢使用本系统!");
}
}















  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值