zoukankan      html  css  js  c++  java
  • 如何用Java实现DVD的一些功能

    /*

    这个代码中涉及到的知识点很多,大家要慢慢悟!!

    */

    import java.util.*;

    import java.text.*;

    class DvdSet {

    //定义三个属性
    String[] name = new String[50]; // 为保证数组足够大
    String[] date = new String[50];// 借书的时间
    int[] state = new int[50]; // 借书的状态 , 0表示借出 ,1.表示可以借。
    int[] count = new int[50]; // 借书的次数
    }

    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("******欢迎进入查看页面*****");
    // Tap
    System.out.println("序号 名称 状态 借出时间 ");
    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+" "+"<<"+dvd.name[i]+">> 已借出 "+dvd.date[i]);
    }else if(dvd.state[i] == 1){

    //代没有借出
    System.out.println(i+1+" "+"<<"+dvd.name[i]+">> 可借 ");
    }
    }

    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("********欢迎进入借DVD页面********");
    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){ //有DVD并且没有被借出去

    //借DVD
    //1.修改状态
    dvd.state[i] = 0;
    System.out.println("请输入借DVD的时间(年-月-日):");
    Scanner inputDate = new Scanner(System.in);
    dvd.date[i] = inputDate.next();
    System.out.println("借DVD成功");
    dvd.count[i]++;
    break;

    }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
    System.out.println("不好意思此借DVD已经被借出");
    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("请输入归还DVD的时间(年-月-日):");
    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("序号 名称 状态 借出时间 ");
    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+" "+"<<"+dvd.name[i]+">> 已借出 "+dvd.date[i]);
    }else if(dvd.state[i] == 1){

    //代没有借出
    System.out.println(i+1+" "+"<<"+dvd.name[i]+">> 可借 ");
    }
    }

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

    }

    class DvdMain{

    public static void main (String[] args){

    DvdMgr dvd = new DvdMgr();
    //初始化dvd
    dvd.initial();

    //开始进入切换菜单
    dvd.startMenu();
    }
    }

    }

  • 相关阅读:
    kafka 配置属性
    mybatis 启动流程源码分析(二)之 Configuration-Properties解析
    mybatis 配置文件
    mybatis 启动流程源码分析(一)
    mybatis configuration
    使用函数式编程替换if-else
    mybatis 基本使用
    第十二周学习笔记
    T-SQL的进阶:超越基本级别3:构建相关子查询——701小组
    第十周学习笔记
  • 原文地址:https://www.cnblogs.com/shen-xiao-jie/p/6078514.html
Copyright © 2011-2022 走看看