项目Java版本迷你DVD.docx

上传人:b****5 文档编号:3402665 上传时间:2022-11-22 格式:DOCX 页数:15 大小:19.11KB
下载 相关 举报
项目Java版本迷你DVD.docx_第1页
第1页 / 共15页
项目Java版本迷你DVD.docx_第2页
第2页 / 共15页
项目Java版本迷你DVD.docx_第3页
第3页 / 共15页
项目Java版本迷你DVD.docx_第4页
第4页 / 共15页
项目Java版本迷你DVD.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

项目Java版本迷你DVD.docx

《项目Java版本迷你DVD.docx》由会员分享,可在线阅读,更多相关《项目Java版本迷你DVD.docx(15页珍藏版)》请在冰豆网上搜索。

项目Java版本迷你DVD.docx

项目Java版本迷你DVD

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.Scanner;

publicclassDVDMgr{

Scannerinput=newScanner(System.in);//扫描器,作用:

主要是从键盘输入数据

DVDSetds=newDVDSet();//创建一个对象,实例化DVDSet的一个变量ds.用于在本类调用!

publicvoidstartMenu(){//定义一个菜单方法,用于程序运行的时候显示、选择作用

booleantag=false;//定义一个标志符号,用于do-----while的循环判断

do{

System.out.println("\t\t欢迎使用迷您DVD管理器");

System.out.println("--------------------------------------------");

System.out.println("\t\t0.排序DVD");

System.out.println("\t\t1.新增DVD");

System.out.println("\t\t2.查看DVD");

System.out.println("\t\t3.删除DVD");

System.out.println("\t\t4.借出DVD");

System.out.println("\t\t5.归还DVD");

System.out.println("\t\t6.退出DVD");

System.out.println("--------------------------------------------");

System.out.print("请选择:

");

intchoice=input.nextInt();

switch(choice){//switch()语句,用来选择要执行的方法调用。

case0:

/*list();

list1();*/

list2();

tag=false;

break;

case1:

add();

tag=false;

break;

case2:

search();

tag=false;

break;

case3:

delete();

tag=false;

break;

case4:

lend();

tag=false;

break;

case5:

relend();

tag=false;

break;

case6:

System.out.println("谢谢使用迷你DVD!

");

tag=false;

break;

default:

System.out.println("输入有误,请重新输入....");//输入错误,则直接给标志符号tag=true。

tag=true;

}

}while(tag);//,则while(tag)为真,重新开始菜单选择!

}

publicvoidreMenu(){//定义一个返回到菜单的方法,每次执行完方法后就调用reMenu(),回到startMenu()方法,重新选择需要的选项!

booleanflag=false;//定义一个标志符号flag,用来判断do----while()的循环!

System.out.print("输入0返回:

");

do{

if(input.nextInt()==0){

startMenu();

}else{

System.out.println("您的输入有误,请重新输入...");

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(){

System.out.println("---->归还DVD");

System.out.print("请输入需要归还的DVD名称:

");

StringName=input.next();

for(inti=0;i

if(ds.name[i].equals(Name)&&ds.state[i]==0){//根据“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!

ds.state[i]=1;//归还之后,借书状态必须要设置为:

未借出状态,用于可以借出!

System.out.println("请输入归还日期:

yyyy-mm-dd");//输入的日期格式必须统一为:

yyyy-mm-dd

Stringdate=input.next();

System.out.println("归还<<"+ds.name[i]+">>成功!

");//调用DVDSet类里面的属性,找到并调用name[i]这个属性值!

System.out.println("借出日期为:

"+ds.date[i]);//调用DVDSet类里面的属性,找到并调用date[i]这个属性值!

System.out.println("归还日期为:

"+date);

doubleMoney=charge(ds.date[i],date);//接收并且调用chargr这个方法,此方法主要用来计算租金!

System.out.println("应付租金为:

"+Money);

break;

}elseif(ds.name[i].equals(Name)&&ds.state[i]==0){//根据“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和而借出的状态为已经借出状态则执行!

System.out.println("您的动作慢了半拍,此<<"+ds.name+">>已经被借出了!

");

}elseif(ds.name[i]==null){//判断根据“需要归还的DVD名称”是否在数组name中存在,如果不存在,直接跳出这个for循环,执行下面的语句!

System.out.println("没有您可以借的DVD!

");

break;

}

}

reMenu();//调用到返回菜单的方法中,继续调用主菜单!

System.out.println("********************************************");

}

publicdoublecharge(Stringdate1,Stringdate2){//定义一个计算租金的方法

doubleTotalMoney=0;//定义总租金的接收变量!

SimpleDateFormatsd=newSimpleDateFormat("yyyy-mm-dd");//一个以与语言环境有关的方式来格式化和解析日期的具体类,使得可以选择任何用户定义的日期-时间格式的模式!

Dated1=null;//定义一个Date的应用变量!

并且付初始值!

try{

d1=sd.parse(date1);//调用SimpleDateFormat中的parse()方法,用来格式化日期数据

}catch(ParseExceptione){

e.printStackTrace();//如果系统检测到异常,则系统匹配会ParseException,并且打印出异常信息!

}

Dated2=null;//定义一个Date的应用变量!

并且付初始值!

try{

d2=sd.parse(date2);//调用SimpleDateFormat中的parse()方法,用来格式化日期数据

}catch(ParseExceptione){

e.printStackTrace();//如果系统检测到异常,则系统匹配会ParseException,并且打印出异常信息!

}

TotalMoney=(d2.getTime()-d1.getTime())/(24*60*60*1000);//计算

returnTotalMoney;//把计算到的总租金返回到调用它的位置!

}

/*定义一个借出方法*/

publicvoidlend(){

System.out.println("---->借出DVD");

System.out.print("请输入需要借出的DVD名称:

");

StringName=input.next();

for(inti=0;i

if(ds.name[i]==null){

System.out.println("没有您可以借的DVD!

");

break;

}elseif(ds.name[i].equals(Name)&&ds.state[i]==1){//根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是未有借出的状态!

执行相应的代码语句

ds.state[i]=0;

System.out.println("请输入借出日期:

yyyy-mm-dd");

ds.date[i]=input.next();

System.out.println("借<<"+ds.name[i]+">>成功!

");

ds.count[i]++;//主要用于后面排序方法的比较,看哪本DVD借出的次数最多!

break;

}elseif(ds.name[i].equals(Name)&&ds.state[i]==0){//根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!

执行相应的代码语句

System.out.println("您的动作慢了半拍,此<<"+ds.name[i]+">>已经被借出了!

");

break;

}

}

reMenu();//调用到返回菜单的方法中,继续调用主菜单!

System.out.println("********************************************");

}

/*定义删除方法*/

publicvoiddelete(){

booleanflag=false;//一个标识符,用于方法内部条件判断的依据

System.out.println("---->删除DVD");

System.out.print("请输入需要删除的DVD名称:

");

StringName=input.next();

for(inti=0;i

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;//不管是否执行while语句,j最终都是最后的一个数组的下标!

System.out.println("删除<<"+ds.name[i]+">>成功!

");

flag=true;

break;

}elseif(ds.name[i]!

=null&&ds.state[i]==0&&ds.name[i].equals(Name)){//如果匹配到ds.name[i]!

=null,根据匹配到的“需要归还的DVD名称”和“需要归还的DVD归还的状态”,如果匹配到“需要归还的DVD名称”和是借出的状态!

执行相应的代码语句

System.out.println("<<"+ds.name[i]+">>"+"为借出状态,无法删除!

");

flag=true;

break;

}

}

if(!

flag){//判断,如果为真说明没有查询到要删除的DVD,这里可以不需要flag进行判断,直接在前面的ifelse语句中,添加一条if(ds.name[i]==null)就t、跳出for循环,我没有验证,只是根绝理论推敲。

System.out.println("Sorry,没有匹配到您要删除的DVD名称!

");

}

reMenu();//调用到返回菜单的方法中,继续调用主菜单!

System.out.println("********************************************");

}

/*查询方法*/

publicvoidsearch(){

System.out.println("---->查看DVD");

System.out.println("序号\t\t状态\t\t名称\t\t借出日期");

for(inti=0;i

if(ds.name[i]==null){

break;

}elseif(ds.state[i]==0){//如果匹配到ds.state[i]=0,说明需要归还的DVD归还的状态为借出状态,执行相应的代码语句。

System.out.println((i+1)+"\t\t"+"已经借出"+"\t\t<<"+ds.name[i]+">>"+"\t"+ds.date[i]);

}elseif(ds.state[i]==1){//如果匹配到ds.state[i]=1,说明需要归还的DVD归还的状态为未借出状态,执行相应的代码语句。

System.out.println((i+1)+"\t\t"+"可以借出"+"\t\t<<"+ds.name[i]+">>");

}

}

reMenu();

System.out.println("********************************************");

}

/*添加方法*/

publicvoidadd(){

System.out.println("---->新增DVD");

System.out.print("请输入需要增加的DVD名称:

");

StringName=input.next();

for(inti=0;i

if(ds.name[i]==null){//判断name[i]是否为空?

如果为NULL,则执行if语句的代码,对name[i]进行赋值操作

ds.name[i]=Name;

ds.state[i]=1;

System.out.println("新增《"+Name+"》成功!

");

break;

}

}

reMenu();

System.out.println("********************************************");

}

publicvoidlist(){

String[]Name=newString[100];//定义一个新的Name数组,作用:

把之前name数组里面的元素全部复制一份到Name数组中,用于后面的排榜操作!

int[]Count=newint[100];//定义一个新的Count数组,作用:

把之前count数组里面的元素全部复制一份到Count数组中,用于后面的排榜操作!

for(inti=0;i

Name[i]=ds.name[i];//赋值操作,把name[i]里面的元素赋值给Name[i];

Count[i]=ds.count[i];//赋值操作,把count[i]里面的元素赋值给Count[i];

}

for(inti=0;i

冒泡排序算法。

for(intj=0;j

if(Count[j]>Count[j+1]){

intSwap(Count,j,j+1);//调用定义好的交换方法

stringSwap(Name,j,j+1);//调用定义好的交换方法

}

}

}

System.out.println("---->借出DVD次数排行版");

System.out.println("排名\t\t名称\t借出次数");

intz=1;//用来显示排名数

for(inti=ds.name.length-1;i>0;i--){

if(Name[i]!

=null){//如果Name[i]!

=null,则执行相应的操作

System.out.println("第"+z+"名"+"\t\t<<"+Name[i]+">>"+"\t"+Count[i]);

z++;

}

}

reMenu();

System.out.println("********************************************");

}

/*DVD借出排行榜*/

publicvoidlist1(){

String[]Name=newString[100];//定义一个新的Name数组,作用:

把之前name数组里面的元素全部复制一份到Name数组中,用于后面的排榜操作!

int[]Count=newint[100];//定义一个新的Count数组,作用:

把之前count数组里面的元素全部复制一份到Count数组中,用于后面的排榜操作!

for(inti=0;i

Name[i]=ds.name[i];//赋值操作,把name[i]里面的元素赋值给Name[i];

Count[i]=ds.count[i];//赋值操作,把count[i]里面的元素赋值给Count[i];

}

for(inti=0;i

选择排序算法。

for(intj=i+1;j

if(Count[i]>Count[j]){

intSwap(Count,i,j);//调用定义好的交换方法

stringSwap(Name,i,j);//调用定义好的交换方法

}

}

}

System.out.println("---->借出DVD次数排行版");

System.out.println("排名\t\t名称\t借出次数");

intz=1;//用来显示排名数

for(inti=ds.name.length-1;i>0;i--){

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1