package sy.com.cn;
import java.util.*;
public class DvdWorker {
public static void main(String[]args){
//标识是否退出DVD
boolean biao=false;
//初始化数据 DVD名称
String[] name=new String[6];
//DVD 的状态
int[] state=new int[6];
//DVD的借出时间
int[] date=new int[6];
//DVD借出次数
int[] conut=new int[6];
//变量的初始化
name[0]="罗马假日";
state[0]=1;// 1表示已借出 0表示可阅借;
date[0]=7;//借出日期是7日
conut[0]=13;//已借出13次 name[1]="风声鹤唳";
state[1]=0;// 1表示已借出 0表示可阅借;
date[1]=0;//借出日期是0日
conut[1]=15;//已借出15次 name[2]="浪漫满屋";
state[2]=0;// 1表示已借出 0表示可阅借;
date[2]=0;//借出日期是0日
conut[2]=19;//已借出19次 name[3]="笑傲江湖";
state[3]=0;// 1表示已借出 0表示可阅借;
date[3]=0;//借出日期是0日
conut[3]=100;//已借出100次
//用户输入数字的变量 no
int no=-1; do{
//输出DVD菜单
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.println("---------------------------------------------");
Scanner input=new Scanner(System.in);
System.out.println("请选择:");
//获取用户输入的数字
no=input.nextInt();
switch(no){
case 1:
//新增DVD的操作
System.out.println("--->新增DVD\n");
System.out.println("请输入DVD名称:");
String names=input.next();
//false表示没有插入进去 true表示插入进去了。
boolean flag=false;
for( int i=0;i<name.length;i++){
//插入的DVD 位置是空的时候方能插入
if(name[i]==null){
name[i]=names;
flag=true;
break;
} }
if(flag){ System.out.println("新增《"+names+"》成功!");
}else{
System.out.println("光盘已满,不能新增了");
} break;
case 2:
//查看DVD的操作 循环输出 名称 状态 等属性
System.out.println("--->查看DVD\n"); System.out.println("序号\t状态\t名称\t\t\t借出日期\t借出次数");
//输出 查看DVD菜单
for(int i=0;i<name.length;i++){
if(name[i]!=null){
String yue=(state[i]==0)?"可阅借":"已借出";
String ri=(date[i]==0)?"":date[i]+"日";
String ci=conut[i]+"次";
System.out.println((i+1)+"\t"+yue+"\t"+name[i]+"\t\t\t"+ri+"\t"+ci); }
}
break;
case 3:
//删除DVD的操作 首先要输入要删除的名称 是否能被删除 以及从后往前赋值。
System.out.println("--->删除DVD\n");
System.out.print("请输入DVD名称:");
String shanChu=input.next();
int index=name.length;
//标识输入的名称是否能被删除 false是不能被删除 true能被删除
boolean biao2=false;
for(int i=0;i<name.length;i++){
if(shanChu.equals(name[i])&&state[i]==1){
biao2=true;
System.out.println("对不起,DVD已经解除无法删除");
break;
}else if(shanChu.equals(name[i])&&state[i]==0){
biao2=true;
index=i;
System.out.println("删除《"+shanChu+"》成功!");
break;
}
}
//进行删除出操作
for(int j=index;j<name.length-1;j++){
name[j]=name[j+1];
state[j]=state[j+1];
date[j]=date[j+1];
conut[j]=conut[j+1];
//依次往前赋值之后 最后一个值是0
name[name.length-1]=null;
state[state.length-1]=0;
date[date.length-1]=0;
conut[conut.length-1]=0;
}
if(!biao2){
//标识 如果是false 就找不到相匹配的 无法删除
System.out.println("对不起,没有找到相应的DVD,不能删除");
}
break;
//借出DVD的操作
case 4:
System.out.println("--->借出DVD\n");
System.out.print("请输入DVD名称:");
String jieChu=input.next();
for(int i=0;i<name.length;i++){
//如果里面是空的话 则找不到DVD 不能借出
if(name[i]==null){
System.out.println("抱歉,没有找到DVD");
break;
}else if(jieChu.equals(name[i])&&state[i]==1){
System.out.println("抱歉,您找的DVD已借出");
break;
}else if(jieChu.equals(name[i])&&state[i]==0){
System.out.println("请输入借出日期:");
date[i]=input.nextInt();
//日期必须在1到31之间 否则就从新输入日期
while(date[i]<1||date[i]>31){
System.out.println("日期输入错误必须在1-31日之间,\n请重新输入:");
date[i]=input.nextInt();
}
//借出之后 次数加1 然后状态变为已借出
state[i]=1;
conut[i]++;
System.out.println("借出《"+jieChu+"》成功!");
break;
}
}
break;
//归还DVD的操作
case 5:
System.out.println("--->归还DVD\n");
//获取用户的输入 想要归还的DVD
System.out.print("请输入DVD名称:");
String guiHuan=input.next();
for(int i=0;i<name.length;i++){
if(name[i]==null){
System.out.println("没有匹配的DVD信息");
break;
}else if(guiHuan.equals(name[i])&&state[i]==0){
System.out.println("已存在 无法归还");
break;
}else if(guiHuan.equals(name[i])&&state[i]==1){
System.out.print("请输入归还日期:");
int dates=input.nextInt();
//归还日期必须大于借出日期
while(dates<date[i]||dates>31){
if(dates<date[i]){
System.out.println("输入日期有误,归还日期不能小于借出日期\n请重新输入:");
}else if(dates>31){
System.out.println("输入日期有误,归还日期必须在1-31日之间\n请重新输入:");
}
dates=input.nextInt();
}
//计算租金 一天一元钱 money=(dates-date[i])*1
double money=(dates-date[i])*1.0;
System.out.println("*************************************");
System.out.println("归还《"+guiHuan+"》成功!");
System.out.println("借出日期是:"+date[i]+"日");
System.out.println("归还日期是:"+dates+"日");
System.out.println("应付租金(元):"+money+"元");
//数据更新
state[i]=0;
date[i]=0;
break;
}
} break;
// 退出DVD程序
case 6: biao=true;
break;
default:
biao=true;
break;
}
if(biao){
no=-1;
break;
}else{
System.out.println("**********************************");
//获取用户的输入
System.out.println("请输入0返回");
no=input.nextInt(); }
//当no的值是0的时候再次进入循环体
}while( no==0); System.out.println("退出DVD");
}
}

DVD项目的更多相关文章

  1. 初始Java DVD项目

    DVDSet 类: DVD DVD    删除功能 实现DVD借出功能 DVD还回功能

  2. 初始Java 第一课程DVD项目

    DVDSet 类: DVD DVD    删除功能 实现DVD借出功能 DVD还回功能

  3. 联想预装win8系统改成win7操作步骤及注意事项

    联想消费台式机与一体机预装Windows8改装Windows7的操作步骤及常见问题 前提说明: 目前联想出厂预装Windows 8的台式和一体机使用都是UEFI+GPT硬盘的组合,并且开启了安全启动, ...

  4. 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》

    <实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明    辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...

  5. 迷你DVD管理器项目

    package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...

  6. Maven学习总结(七)——eclipse中使用Maven创建Web项目

    一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示:

  7. C#开源资源项目

    一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...

  8. Maven——eclipse中使用Maven创建Web项目

    原文:http://www.cnblogs.com/xdp-gacl/p/4054814.html 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New - ...

  9. C#开源项目

    原文:  http://alance.iteye.com/blog/693987 一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了 ...

随机推荐

  1. JSch 实现 SSH 端口转发

    package com.yinger.webservice.test; import java.sql.Connection; import java.sql.DriverManager; impor ...

  2. css tips —— 在css中完成国际化

    前提 在日常处理国际化的时候,通常是将key通过类似intl.xx(key)转换为对应环境的文案,可是如果需要在css中加入对应逻辑应该怎么做呢(比如在after的伪元素中显示不同的文案),毕竟在cs ...

  3. Dapper 条件语句(Where) 中参数使用

    public static List<ECInput> GetECInputList(DateTime beginDate,DateTime endDate,string[] barcod ...

  4. mvc 获取 HtmlHelper 表达式值

    public static MvcHtmlString Try<TModel, TProperty>( this HtmlHelper<TModel> htmlHelper, ...

  5. Java BigInteger 与C# BigInteger之间的问题

    最近接到一个Java代码转C#代码的项目.本来就两个函数看起来很简单的,后来折腾了一天,终于完美收官. 碰到的第一个问题是:java的BigInteger构造函数里面BigInteger(string ...

  6. kotlin for android----------MVP模式实现登录

    学习了Kotlin,随便来个小案例,以MVP+Kotlin 来实现登录的一个小案例,希望对大家有所帮助,效果图: MVP: Model Model 是用户界面需要显示数据的抽象,也可以理解为从业务数据 ...

  7. 解决Mac外接显示器分辨率不正确问题

    解决Mac外接显示器分辨率不正确问题 TAT: 今天被坑惨了,重新安装了Mavericks后,使用thunderbolt转VGA外接显示器时遇到了分辨率的问题:外接显示器支持1080P的分辨率,但在O ...

  8. less开发指南(一)- 小牛试刀

    [一]less简介 LESS(是.less后缀名的文件) 包含一套自定义的语法及一个解析器,我们根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件.LESS 并没有 ...

  9. iptables详解(12):iptables动作总结之一

    前文一直在介绍iptables的匹配条件,并没有对动作进行过总结,那么此处,我们就来总结一下iptables中的动作. 之前的举例中已经用到了一些常用动作,比如ACCEPT.DROP.REJECT等. ...

  10. angularJS---初识指令

    angularJS 什么是angularJS AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款 ...