class DvdSet { //定义三个属性 String[] name = new String[50]; // 为保证数组足够大 String[] date = new String[50];// 借书的时间 int[] state = new int[50]; // 借书的状态 , 0表示借出 ,1.表示可以借。 int[] count = new int[50]; // 借书的次数 }
import java.util.*; import java.text.*; class DvdMgr { //创建一个DvdSet对象 DvdSet dvd = new DvdSet(); //1.第一个方法初始化三个DVD数据 public void initial(){ //初始化三个Dvd dvd.name[0]= "罗马假日"; dvd.state[0]=0; dvd.count[0] = 30; dvd.date[0]= "2016-11-18"; dvd.name[1]="风声鹤唳"; dvd.state[1]=1; dvd.name[2]= "浪漫满屋"; dvd.state[2]=1; dvd.count[2] = 10; } //2.实现一个菜单切换 public void startMenu() { System.out.println("*********************************"); 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("****** 7.退出 ******"); System.out.println("*********************************"); Scanner input = new Scanner(System.in); System.out.println("请输入您的操纵:"); int option = input.nextInt(); switch(option){ case 1 : addDvd(); returnMenu(); break; case 2 : searchDvd(); returnMenu(); break; case 3 : deleteDvd(); returnMenu(); break; case 4 : lendDvd(); returnMenu(); break; case 5 : returnDvd(); returnMenu(); break; case 6: list(); returnMenu(); break; case 7: System.out.println("谢谢使用,欢迎下次在来"); break; default: System.out.println("输入异常,程序已经吓崩溃,正在重启中..."); break; } } //3.返回菜单 public void returnMenu() { System.out.println("输入0返回:"); Scanner input = new Scanner(System.in); if(input.nextInt() == 0){ //在此进入菜单切换 startMenu(); }else { System.out.println("输入异常,请从输入:"); returnMenu(); // 递归调用。 } } //4.查看的功能 public void searchDvd(){ System.out.println("******欢迎进入查看页面*****"); //\t Tap System.out.println("序号\t名称\t\t状态\t借出时间\t"); for(int i=0;i<dvd.name.length ; i++){ if(dvd.name[i] == null){ break; }else if (dvd.state[i] == 0){ //代表已经借出 System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]); }else if(dvd.state[i] == 1){ //代没有借出 System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t"); } } System.out.println("**************************************"); } //5.新增Dvd public void addDvd(){ System.out.println("******欢迎进入添加页面*****"); System.out.println("请输入您要添加的Dvd:"); Scanner input = new Scanner(System.in); String name = input.next(); //将新增的内容放到最后 for(int i = 0;i<dvd.name.length;i++){ if(dvd.name[i] == null){ //到最后去了。 dvd.name[i] = name; dvd.state[i] = 1; System.out.println("<<"+name+">>dvd添加成功"); break; } } } //6.删除dvd public void deleteDvd(){ System.out.println("******欢迎进入删除页面*****"); System.out.println("请输入您要删除的Dvd名称:"); Scanner input = new Scanner(System.in); String name = input.next(); //1.没有找到 : 提示没有找到 请重新输入 //2.找到 : //1.已经借出去 : 不能够删除 //2.没有借出去 : 删除 for(int i = 0;i<dvd.name.length;i++){ //查找是否存在 if(dvd.name[i] != null){ if(dvd.name[i].equalsIgnoreCase(name)){ //已经找到 //是否已经被借出 if(dvd.state[i] == 0){ // 借出 System.out.println("《"+name+"》已经被借出"); break; }else if(dvd.state[i] == 1) { //没有借出需要删除 //思路 : 1.用后面一个替换前面的。 //2.把最后面多余的地方赋值为null. for(int j = i ;j<dvd.name.length;j++){ //做交换 if(dvd.name[j +1] != null){ dvd.name[j] = dvd.name[j+1]; dvd.state[j] = dvd.state[j+1]; }else{ //清空最后一个值 dvd.name[j] = null; dvd.date[j] = null; break; } } System.out.println("删除《"+name+"》成功"); break; } } }else { System.out.println("没有您要删除的dvd"); System.out.println("***********************************************"); break; } } } //7.借dvd的功能 public void lendDvd(){ System.out.println("********欢迎进入借书页面********"); System.out.println("请输入您要借的dvd名称:"); Scanner input = new Scanner(System.in); String name = input.next(); //1.判断有没有dvd //1.又没有被借出去。 for(int i = 0;i<dvd.name.length;i++){ if(dvd.name[i] != null){ // 有dvd if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有书并且没有被借出去 //借书 //1.修改状态 dvd.state[i] = 0; System.out.println("请输入借书的时间(年-月-日):"); Scanner inputDate = new Scanner(System.in); dvd.date[i] = inputDate.next(); System.out.println("借书成功"); dvd.count[i]++; break; }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ System.out.println("不好意思此借书已经被借出"); break; } }else { // dvd System.out.println("没有您要找的DVD"); break; } } } //8.还Dvd 计算价格 public void returnDvd(){ System.out.println("********欢迎进入还DVD页面******************"); System.out.println("请输入还dvd的名称:"); Scanner input = new Scanner(System.in); double price = 0.0; String name = input.next(); for(int i = 0;i<dvd.name.length;i++){ if(dvd.name[i]!=null){ //有 if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就可以归还 dvd.state[i] = 1; System.out.println("请输入归还书籍的时间(年-月-日):"); Scanner inputDate = new Scanner(System.in); //获取时间差 long charge = charge(dvd.date[i],inputDate.next()); price = charge * 1; System.out.println("《"+dvd.name[i]+"》归还成功"); System.out.println("您应付"+price+"元"); //清空时间 dvd.date[i] = null; break; } }else{ System.out.println("没有找到匹配的信息"); break; } } System.out.println("************************************************"); } public long charge(String date1,String date2){ //做时间差 //将String转为Date做计算 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); long charge = 0; try{ Date d1 = sd.parse(date1); Date d2 = sd.parse(date2); //时间也是以毫秒为单位。 charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60); }catch(ParseException e){ System.out.println(e); } return charge; } //排行榜 public void list(){ System.out.println("欢迎进入Dvd排行榜"); //排序 for(int i = 0 ; i <dvd.name.length-1;i++){ if(dvd.name[i] != null){ for(int j = 0; j<dvd.name.length-1-i;j++){ if(dvd.name[j] != null){ if(dvd.count[j] < dvd.count[j+1]){ int temp = dvd.count[j]; dvd.count[j] = dvd.count[j+1]; dvd.count[j+1]= temp; String name1 = dvd.name[j]; dvd.name[j] = dvd.name[j+1]; dvd.name[j+1] = name1; String date1= dvd.date[j]; dvd.date[j] = dvd.date[j+1]; dvd.date[j+1] = date1; int state1= dvd.state[j]; dvd.state[j] = dvd.state[j+1]; dvd.state[j+1] = state1; } }else { break; } } }else{ break; } } System.out.println("序号\t名称\t\t状态\t借出时间\t"); for(int i=0;i<dvd.name.length ; i++){ if(dvd.name[i] == null){ break; }else if (dvd.state[i] == 0){ //代表已经借出 System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]); }else if(dvd.state[i] == 1){ //代没有借出 System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t"); } } System.out.println("**************************************"); } }
class DvdMain{ public static void main (String[] args){ DvdMgr dvd = new DvdMgr(); //初始化dvd dvd.initial(); //开始进入切换菜单 dvd.startMenu(); } }
时间: 2024-11-06 09:34:25