项目Java版本迷你DVD文档格式.docx
《项目Java版本迷你DVD文档格式.docx》由会员分享,可在线阅读,更多相关《项目Java版本迷你DVD文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
intchoice=input.nextInt();
switch(choice){//switch()语句,用来选择要执行的方法调用。
case0:
/*list();
list1();
*/
list2();
tag=false;
break;
case1:
add();
case2:
search();
case3:
delete();
case4:
lend();
case5:
relend();
case6:
System.out.println("
谢谢使用迷你DVD!
default:
输入有误,请重新输入...."
//输入错误,则直接给标志符号tag=true。
tag=true;
}
}while(tag);
//,则while(tag)为真,重新开始菜单选择!
}
publicvoidreMenu(){//定义一个返回到菜单的方法,每次执行完方法后就调用reMenu(),回到startMenu()方法,重新选择需要的选项!
booleanflag=false;
//定义一个标志符号flag,用来判断do----while()的循环!
输入0返回:
if(input.nextInt()==0){
startMenu();
}else{
您的输入有误,请重新输入..."
flag=true;
}while(flag);
/*定义一个初始化方法,用来给部分的数组赋值!
具体赋值什么,只要满足项目要求和数据类型,随便赋值!
publicvoidinitial(){
ds.name[0]="
罗马假日"
;
ds.date[0]="
2013-7-31"
ds.state[0]=0;
ds.count[0]=30;
ds.name[1]="
风声鹤唳"
ds.state[1]=1;
ds.count[1]=13;
ds.name[2]="
满屋浪漫"
ds.state[2]=1;
ds.count[2]=69;
ds.name[3]="
一个人的武林"
ds.state[3]=1;
ds.count[3]=22;
ds.name[4]="
江上美人"
ds.date[4]="
2014-7-31"
ds.state[4]=0;
ds.count[4]=82;
/*定义一个归还DVD方法*/
publicvoidrelend(){
---->
归还DVD"
请输入需要归还的DVD名称:
StringName=input.next();
for(inti=0;
i<
ds.name.length;
i++){//定义的for循环,用来先查找“需要归还的DVD名称”,看看是否存在于name数组,这里的循环数组变量,可以用count或者state等均可!
if(ds.name[i].equals(Name)&
&
ds.state[i]==0){//根据“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!
ds.state[i]=1;
//归还之后,借书状态必须要设置为:
未借出状态,用于可以借出!
请输入归还日期:
yyyy-mm-dd"
//输入的日期格式必须统一为:
yyyy-mm-dd
Stringdate=input.next();
归还<
<
+ds.name[i]+"
>
成功!
//调用DVDSet类里面的属性,找到并调用name[i]这个属性值!
借出日期为:
+ds.date[i]);
//调用DVDSet类里面的属性,找到并调用date[i]这个属性值!
归还日期为:
+date);
doubleMoney=charge(ds.date[i],date);
//接收并且调用chargr这个方法,此方法主要用来计算租金!
应付租金为:
+Money);
}elseif(ds.name[i].equals(Name)&
ds.state[i]==0){//根据“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和而借出的状态为已经借出状态则执行!
您的动作慢了半拍,此<
+ds.name+"
已经被借出了!
}elseif(ds.name[i]==null){//判断根据“需要归还的DVD名称”是否在数组name中存在,如果不存在,直接跳出这个for循环,执行下面的语句!
System.out.println("
没有您可以借的DVD!
break;
}
reMenu();
//调用到返回菜单的方法中,继续调用主菜单!
********************************************"
publicdoublecharge(Stringdate1,Stringdate2){//定义一个计算租金的方法
doubleTotalMoney=0;
//定义总租金的接收变量!
SimpleDateFormatsd=newSimpleDateFormat("
//一个以与语言环境有关的方式来格式化和解析日期的具体类,使得可以选择任何用户定义的日期-时间格式的模式!
Dated1=null;
//定义一个Date的应用变量!
并且付初始值!
try{
d1=sd.parse(date1);
//调用SimpleDateFormat中的parse()方法,用来格式化日期数据
}catch(ParseExceptione){
e.printStackTrace();
//如果系统检测到异常,则系统匹配会ParseException,并且打印出异常信息!
Dated2=null;
d2=sd.parse(date2);
TotalMoney=(d2.getTime()-d1.getTime())/(24*60*60*1000);
//计算
returnTotalMoney;
//把计算到的总租金返回到调用它的位置!
/*定义一个借出方法*/
publicvoidlend(){
借出DVD"
请输入需要借出的DVD名称:
if(ds.name[i]==null){
ds.state[i]==1){//根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是未有借出的状态!
执行相应的代码语句
ds.state[i]=0;
请输入借出日期:
ds.date[i]=input.next();
借<
ds.count[i]++;
//主要用于后面排序方法的比较,看哪本DVD借出的次数最多!
ds.state[i]==0){//根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!
/*定义删除方法*/
publicvoiddelete(){
//一个标识符,用于方法内部条件判断的依据
删除DVD"
请输入需要删除的DVD名称:
if(ds.name[i]!
=null&
ds.state[i]==1&
ds.name[i].equals(Name)){//如果匹配到ds.name[i]!
=null,根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是未有借出的状态!
intj=i;
//定义一个int的变量,用于下面数组下标的操作!
while(ds.name[j+1]!
=null){//如果name[j+1]不为空null,说明name[j]后面还有数组元素,则执行while语句,这个语句作用就是把下标大于name[j]的数组元素前移,因为name[j]已经删除掉了!
ds.name[j]=ds.name[j+1];
//数组元素前移的操作
ds.state[j]=ds.state[j+1];
ds.date[j]=ds.date[j+1];
j++;
//下标值增加,用于后移判断
}
ds.name[j]=null;
//不管是否执行while语句,j最终都是最后的一个数组的下标!
ds.date[j]=null;
删除<
flag=true;
}elseif(ds.name[i]!
ds.state[i]==0&
=null,根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!
System.out.println("
+"
为借出状态,无法删除!
flag=true;
break;
if(!
flag){//判断,如果为真说明没有查询到要删除的DVD,这里可以不需要flag进行判断,直接在前面的ifelse语句中,添加一条if(ds.name[i]==null)就t、跳出for循环,我没有验证,只是根绝理论推敲。
Sorry,没有匹配到您要删除的DVD名称!
/*查询方法*/
publicvoidsearch(){
查看DVD"
序号\t\t状态\t\t名称\t\t借出日期"
i++){//定义的for循环,这里的循环数组变量,可以用count或者state等均可!
if(ds.name[i]==null){
}elseif(ds.state[i]==0){//如果匹配到ds.state[i]=0,说明需要归还的DVD归还的状态为借出状态,执行相应的代码语句。
System.out.println((i+1)+"
\t\t"
已经借出"
\t\t<
\t"
}elseif(ds.state[i]==1){//如果匹配到ds.state[i]=1,说明需要归还的DVD归还的状态为未借出状态,执行相应的代码语句。
可以借出"
/*添加方法*/
publicvoidadd(){
System.out.println("
新增DVD"
System.out.print("
请输入需要增加的DVD名称:
StringName=input.next();
for(inti=0;
if(ds.name[i]==null){//判断name[i]是否为空?
如果为NULL,则执行if语句的代码,对name[i]进行赋值操作
ds.name[i]=Name;
新增《"
+Name+"
》成功!
reMenu();
publicvoidlist(){
String[]Name=newString[100];
//定义一个新的Name数组,作用:
把之前name数组里面的元素全部复制一份到Name数组中,用于后面的排榜操作!
int[]Count=newint[100];
//定义一个新的Count数组,作用:
把之前count数组里面的元素全部复制一份到Count数组中,用于后面的排榜操作!
i++){//定义的for循环,这里的循环数组变量,可以用count均可!
Name[i]=ds.name[i];
//赋值操作,把name[i]里面的元素赋值给Name[i];
Count[i]=ds.count[i];
//赋值操作,把count[i]里面的元素赋值给Count[i];
Count.length-1;
i++){//这里根据借出次数来进行排序,排序的方法为:
冒泡排序算法。
for(intj=0;
j<
Count.length-i-1;
j++){
if(Count[j]>
Count[j+1]){
intSwap(Count,j,j+1);
//调用定义好的交换方法
stringSwap(Name,j,j+1);
//调用定义好的交换方法
借出DVD次数排行版"
排名\t\t名称\t借出次数"
intz=1;
//用来显示排名数
for(inti=ds.name.length-1;
i>
0;
i--){
if(Name[i]!
=null){//如果Name[i]!
=null,则执行相应的操作
第"
+z+"
名"
+Name[i]+"
+Count[i]);
z++;
/*DVD借出排行榜*/
publicvoidlist1(){
i++){//定义的for循环,这里的循环数组变量,可以用Count均可!
选择排序算法。
for(intj=i+1;
Count.length;
if(Count[i]>
Count[j]){
intSwap(Count,i,j);
stringSwap(Name,i,j);