问题描述
为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理。
管理器具备的功能主要有:
1、查看DVD信息。
菜单选择查看功能,展示DVD的信息。
2、新增DVD信息
选择新增功能,根据提示输入新增的DVD名称,添加到库存,如果DVD货架已满,即达到6张,则提示增加失败。
3、删除DVD信息
执行删除命令,输入要删除的DVD的名称,如果DVD为借出状态,不允许删除。如果没有该DVD信息,则提示“没有找到匹配信息”;
4、借出DVD
如果该DVD已经被借出,则系统提示“XX已经被借出”。如果没有找到该DVD信息,则系统提示“没有找到匹配信息!”。而且一个月默认为31天,如果输入的借出日期为大于31的数字,则系统给出提示“必须输入大于等于 1且小于等于31的数字,请重新输入”。
5、归还DVD
计算租金,1天1元。如果归还的DVD未被借出,则系统提示“该DVD没有被借出,无法进行归还操作。如果归还的DVD与列表中的DVD不匹配,则系统提示“没有找到匹配信息”。,如果归还时间小于借出时间,或者是大于31的数字,则系统分别提示“归还日期不能小于借出日期,请重新输入,和一个月只有31天,请重新输入。”
6、当用户执行退出命令时,结束本程序。
代码分享
public class ManagerDVD { private static String [][] dvdstr = new String[6][5]; private static int n = 0;//用户输入的操作命令 private static Scanner in;//数字输入 private static Scanner input;//汉字输入 private static String name = null;//DVD名字 public static void main(String[] args) { System.out.println("--------------------欢迎使用DVD管理系统--------------------"); System.out.println("系统的操作命令:\n1、添加DVD\n2、删除DVD\n3、查看DVD\n4、借出DVD\n5、归还DVD\n0、注销退出"); in = new Scanner(System.in); for(int i=0; i<6; i++){ dvdstr[i][0] = ""+(i+1); dvdstr[i][4] = "0"; } do { System.out.print("请输入操作命令:"); n = in.nextInt(); if(n!=0){ setManager(n); } } while (n!=0); } private static void setManager(int n) { switch (n) { case 1: System.out.println("添加DVD"); if(dvdstr[5][2]!=null){ System.out.println("DVD库存已满,无法添加"); break; } System.out.print("请输入DVD名字:"); input = new Scanner(System.in); name = input.nextLine(); boolean boo = true; for(int i=0; i<6; i++){ if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){ boo = false; break; } } if(boo){ for(int i=0; i<6; i++){ if(dvdstr[i][2]==null){ dvdstr[i][1] = "未借出"; dvdstr[i][2] = name; System.out.println("添加操作完成"); break; } } }else{ System.out.println("该DVD已存在"); } break; case 2: System.out.println("删除DVD"); if(dvdstr[0][2]==null){ System.out.println("库存还没有DVD,无法进行删除操作"); break; } System.out.print("请输入DVD名字:"); input = new Scanner(System.in); name = input.nextLine(); boolean bo = false; for(int i=0; i<6; i++){ if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){ for(int j=i; j<5; j++){ dvdstr[j][1] = dvdstr[j+1][1]; dvdstr[j][2] = dvdstr[j+1][2]; dvdstr[j][3] = dvdstr[j+1][3]; dvdstr[j][4] = dvdstr[j+1][4]; } dvdstr[5][1] = null; dvdstr[5][2] = null; dvdstr[5][3] = null; dvdstr[5][4] = null; bo = true; break; } } if(bo){ System.out.println("删除操作成功"); }else{ System.out.println("未找到该商品"); } break; case 3: System.out.println("查看DVD"); System.out.println("序号\t状态\t名称\t\t借出日期\t借出次数"); for(int i=0; i<6; i++){ if(dvdstr[i][2]==null){ break; } System.out.println(dvdstr[i][0]+"\t"+dvdstr[i][1]+"\t"+dvdstr[i][2]+"\t\t"+dvdstr[i][3]+"\t"+dvdstr[i][4]); } break; case 4: System.out.println("借出DVD"); if(dvdstr[0][2]==null){ System.out.println("库存还没有DVD,无法进行借出操作"); break; } System.out.print("请输入DVD的名字:"); name = input.nextLine(); boolean b = false; for(int i=0; i<6; i++){ if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){ if("未借出".equals(dvdstr[i][1])) { System.out.print("请输入借出日期:"); int date = 0; do { date = in.nextInt(); } while (date>31&&date<=0); dvdstr[i][1] = "已借出"; dvdstr[i][3] = ""+date; dvdstr[i][4] = ""+(Integer.parseInt(dvdstr[i][4])+1); System.out.println("借出操作完成"); }else{ System.out.println("该DVD已被借出"); } b = true; break; } } if(!b){ System.out.println("该DVD不存在"); } break; case 5: System.out.println("归还DVD"); if(dvdstr[0][2]==null){ System.out.println("库存还没有DVD,无法进行归还操作"); break; } System.out.print("请输入DVD的名字:"); name = input.nextLine(); boolean flag = false; for(int i=0; i<6; i++){ if(dvdstr[i][2]!=null&&name.equals(dvdstr[i][2])){ if("已借出".equals(dvdstr[i][1])) { System.out.print("请输入归还日期:"); int date = 0; int lend = Integer.parseInt(dvdstr[i][3]); do { date = in.nextInt(); } while (date>31&&date<=0&&date>=lend); dvdstr[i][1] = "未借出"; dvdstr[i][3] = null; System.out.println("归还操作完成"); System.out.println("借出日期:"+lend); System.out.println("归还日期:"+date); System.out.println("您一共需要支付租金:"+((date-lend)*5)+"元"); }else{ System.out.println("该DVD已被借出"); } flag = true; break; } } if(!flag){ System.out.println("该DVD不存在"); } break; default: System.out.println("您输入的命令不合法!"); break; } }}