迷你DVD管理系统

package com.xiangmu;


import java.util.Scanner;


public class DVD {


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String[] name=new String[6];//定义数组DVD名称
String[] state=new String[6];//定义数组DVD状态
int[] date=new int[6];//定义数组DVD借出时间
int[] count=new int[6];//定义数组DVD借出次数
//初始化数组
name[0]="三国演义";
state[0]="已借出";
date[0]=1;
count[0]=16;
name[1]="红楼梦";
state[1]="可借";
count[1]=12;
name[2]="水浒传";
state[2]="可借";
count[2]=30;
int choice=0;
int day=0;
int gDay=0;
boolean isRun=true;
do{
System.out.println("欢迎使用迷你DVD管理器");
System.out.println("-----------------------");
System.out.println("1、新增DVD\n2、查看DVD\n3、删除DVD\n4、借出DVD\n5、归还DVD\n6、退出DVD");
System.out.println("-----------------------");
System.out.print("请选择:");
//只能输出1到6的数字
do{
while(!sc.hasNextInt()){//判断是否有整数输入
System.out.print("请输入数字:");
sc.next();//取出数据
}
choice=sc.nextInt();//读取用户输入的整数
if(choice<1||choice>6){
System.out.print("请输入有效数字:");
}
}while(choice<1||choice>6);
switch(choice){
case 1://新增DVD
/**
* 先判断货架满没有,满了就不能添加,没满则可以添加,找到第一个为null的位置,并标记其下标,
* 提示用户添加DVD,判断在不在里面,若在则不能添加,不在则能添加

*/
System.out.println("----->新增DVD");
int inputIndex=-1;
for (int i = 0; i < name.length; i++) {
if(name[i]==null){
inputIndex=i;
break;
}
}
if(inputIndex==-1){
System.out.println("货架已满,不能添加");
}else{
System.out.println("请输入要添加的DVD名称:");
String inputName=sc.next();
boolean isExist=false;//默认不存在
for (int i = 0; i < name.length; i++) {
if(inputName.equals(name[i])){
isExist=true;
break;
}
}
if(isExist){
System.out.println("要添加的DVD已存在不能新增!");
}else{
name[inputIndex]=inputName;
state[inputIndex]="可借";
System.out.println("新增成功!");
}
}
break;
case 2://查看DVD
System.out.println("----->查看DVD");
System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
for(int i=0;i<name.length;i++){//遍历数组,显示信息
if(name[i]!=null){//不为空则显示数据
//借出日期为0则显示--
String dateStr=date[i]+"日";
if (date[i]==0) {
dateStr="--";
}
System.out.println((i+1)+"\t"+state[i]+"\t"+name[i]+"\t"+dateStr+"\t"+count[i]+"次");
}
}
//输入0返回

break;
case 3://删除DVD
/**
* 提示用户输入要删除的DVD名称,判断是否存在,如果不存在,则不能删除
* 如果存在,找出其下标,判断是否借出,如果已借出,则不能删除
* 如果可借,则可删除
* 找到下标,将后面的往前移一位,最后一个置空
* 如果在最后一位,直接将其置空
*/
System.out.print("请输入要删除的DVD名称:");
String delName=sc.next();
int delIndex=-1;
for (int i = 0; i < name.length; i++) {
if(delName.equals(name[i])){
delIndex=i;
break;
}
}
if (delIndex==-1) {
System.out.println("不存在无法删除");
}else{
if ("已借出".equals(state[delIndex])) {
System.out.println("已借出无法删除");
}else{
for (int i = delIndex; i < name.length-1; i++) {
name[i]=name[i+1];
state[i]=state[i+1];
date[i]=date[i+1];
count[i]=count[i+1];
}
name[name.length-1]=null;
state[state.length-1]=null;
date[date.length-1]=0;
count[count.length-1]=0;
System.out.println("删除成功");
}
}
break;
case 4://借出DVD
/**
* 提示用户输入要借的DVD名称,如果不存在则无法借出
* 如果存在,记录其下标,判断是否已借出,如果已借出则无法再借
* 如果可借,输入要借的日期,修改状态
*/
System.out.print("请输入要借的DVD名称:");
String bName=sc.next();
int bIndex=-1;
for (int i = 0; i < name.length; i++) {
if (bName.equals(name[i])) {
bIndex=i;
break;
}
}
if (bIndex==-1) {
System.out.println("要借的DVD不存在无法借出");
}else{
if ("已借出".equals(state[bIndex])) {
System.out.println("已借出无法再借");
}else{
System.out.println("请输入借出日期");

do{
day=sc.nextInt();
if(day<1||day>31){
System.out.println("一个月只有31天,请重新输入");
}
}while(day<1||day>31);
state[bIndex]="已借出";
date[bIndex]=day;
count[bIndex]++;
System.out.println("借出成功");
}
}
break;
case 5://归还DVD
/**
* 提示用户输入归还DVD的名称,如果不存在,提示输入错误
* 如果存在,找到其下标,判断状态,如果可借,则说明错误
* 如果已借出,则可以归还,输入归还日期,计算租金,修改状态
*/
System.out.println("请输入归还DVD名称:");
String gName=sc.next();
int gIndex=-1;
for (int i = 0; i < name.length; i++) {
if(gName.equals(name[i])){
gIndex=i;
break;
}
}
if (gIndex==-1) {
System.out.println("归还的DVD不存在无法归还");
}else{
if ("可借".equals(state[gIndex])) {
System.out.println("该DVD未借出无法归还");
}else{
System.out.println("请输入归还日期:");

do{
gDay=sc.nextInt();
if(gDay<1||gDay>31){
System.out.println("归还日期不能小于借出日期,且一个月只有31天,请重新输入!");
}
}while(gDay<1||gDay>31);
int pay=gDay-date[gIndex];
state[gIndex]="可借";
date[gIndex]=0;
System.out.println("归还成功!");
System.out.println("借出日期为:"+day);
System.out.println("归还日期为:"+gDay);
System.out.println("应付金额(元):"+(gDay-day));
}
}
break;
case 6://退出DVD
isRun=false;
break;
}
if(isRun){
System.out.println("***************");
System.out.print("请输入0返回:");
int returnNum=0;
do{
while(!sc.hasNextInt()){ //判断是否输入整数
System.out.println("输入错误,请重新输入!");
sc.next();
}
returnNum=sc.nextInt();//得到用户输入
if(returnNum!=0){
System.out.println("请重新输入!");
}
}while(returnNum!=0);
}
}while(isRun);
System.out.println("退出系统!");
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值