实验课项目,代码有不好的地方欢迎指正
程序入口:
package DVDController; public class Main { public static void main(String[] args) { DVDController dvdController = new DVDController(); dvdController.Initial(); dvdController.StartMenu(); } }
DVD类:
package DVDController; public class DVD { private String name; private int state; private String date; public DVD(String name){ this.name = name; this.state = 1; this.date = ""; } public String getName() { return name; } public int getState() { return state; } public void setState(int state) { this.state = state; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } }
控制器类:
package DVDController; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; public class DVDController { private static boolean bool = true; private static int num = 0; private static ArrayList<DVD> dvdArray = new ArrayList<DVD>(); public void Initial() { dvdArray.add(new DVD("权力的游戏")); dvdArray.add(new DVD("某爱情动作记录片")); dvdArray.add(new DVD("哲♂学")); } private void Add() { System.out.print("请输入DVD名称:"); Scanner input = new Scanner(System.in); String str = input.next(); DVD dvd = new DVD(str); dvdArray.add(dvd); ReturnMenu(); } private void Delete(int i) { i--; if (dvdArray.get(i).getState() == 1) { dvdArray.remove(i); } else { System.out.println(dvdArray.get(i).getName() + "正在借出中,不可删除。"); } ReturnMenu(); } private void Search() { System.out.println("--------------------------------------------"); System.out.println("序号\t\t\t状态\t\t名称\t\t\t\t\t\t借出日期"); for (int i = 0; i < dvdArray.size(); i++) { DVD d = dvdArray.get(i); System.out.print(i + 1 + "\t\t\t"); if (d.getState() == 1) { System.out.print("可借\t\t" + d.getName() + "\t\t\t\t\t\t" + d.getDate() + "\n"); } else { System.out.print("已借出\t" + d.getName() + "\t\t\t\t\t\t" + d.getDate() + "\n"); } } System.out.println("--------------------------------------------"); ReturnMenu(); } private void Lend(int i) { i--; if (dvdArray.get(i).getState() != 1) { System.out.println("该DVD没有库存,不可借"); } else { SimpleDateFormat dareFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dvdArray.get(i).setState(0); dvdArray.get(i).setDate(dareFormat.format(new Date())); System.out.println(dvdArray.get(i).getName() + " 在 " + dareFormat.format(new Date()) + "借出"); } ReturnMenu(); } private void SendBack() { System.out.println("--------------------------------------------"); System.out.println("序号\t\t\t状态\t\t名称\t\t\t\t\t\t借出日期"); for (int i = 0; i < dvdArray.size(); i++) { if (dvdArray.get(i).getState() == 0) { System.out.print(i + 1 + "\t\t\t"); System.out.println("已借出\t" + dvdArray.get(i).getName() + "\t\t\t\t\t\t" + dvdArray.get(i).getDate()); } } System.out.print("请输入要归还图书的编号:"); Scanner input = new Scanner(System.in); num = input.nextInt()-1; long diff; String nowDate; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { nowDate = sd.format(new Date()); Date d1 = sd.parse(dvdArray.get(num).getDate()); Date d2 = sd.parse(nowDate); diff = ((d2.getTime())-(d1.getTime()))/(24*60*60*1000)*100; System.out.println("您需支付的租金为:"+diff+"元"); } catch (ParseException e) { e.printStackTrace(); } dvdArray.get(num).setState(1); dvdArray.get(num).setDate(""); ReturnMenu(); } public void StartMenu() { System.out.println("\t\t\t\t\t欢迎使用IKUN 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.退出"); System.out.println("0.重选"); System.out.println("--------------------------------------------"); bool =true; Scanner input = new Scanner(System.in); System.out.print("请选择输入数字:"); while (bool) { try { num = input.nextInt(); } catch (Exception ex) { System.out.println("输入错误,请正确输入!"); input = new Scanner(System.in); //重置输入流清空缓存区! } finally { switch (num) { case 1: bool = false; System.out.println("-->新增DVD"); Add(); break; case 2: bool = false; System.out.println("-->查看DVD"); Search(); break; case 3: bool = false; System.out.println("删除DVD"); System.out.print("请输入DVD编号:"); num = input.nextInt(); Delete(num); break; case 4: bool = false; System.out.println("-->借出DVD"); System.out.print("请输入要借的DVD编号:"); num = input.nextInt(); Lend(num); break; case 5: bool = false; System.out.println("-->归还DVD"); SendBack(); break; case 6: bool = false; System.out.println("程序结束!"); break; case 0: bool = false; ReturnMenu(); break; default: System.out.println("输入错误,重新输入。"); } } } } private void ReturnMenu(){ bool = true; Scanner input = new Scanner(System.in); System.out.print("输入0返回主菜单,"); System.out.print("输入1返回主菜单退出程序"); System.out.print("请输入选项:"); while (bool) { try { num = input.nextInt(); } catch (Exception ex) { System.out.println("输入错误,请正确输入!"); input = new Scanner(System.in); //重置输入流清空缓存区! } finally { switch (num) { case 0: bool = false; StartMenu(); break; case 1: bool = false; System.out.println("程序结束"); break; default: System.out.println("输入错误,重新输入。"); } } } } }