Questions pratiques sur les mini-projets 1DVD

sujet

  • Développez un mini gestionnaire de DVD pour une vidéothèque pour gérer les disques DVD, y compris les fonctions suivantes: ajouter un DVD, afficher un DVD, supprimer un DVD, prêter un DVD et renvoyer un DVD.
  • conception:
  • 1) Catégorie de DVD (attributs: id, nom, lendCount, lendDate, status) (la valeur par défaut est unique pour chaque DVD) Le champ lendCount est incrémenté de 1 pour chaque prêt
  • 2) Classe DVDDB (utilisée pour enregistrer plusieurs DVD)
  • 3) Classe DVDManager (fournit des fonctions de manipulation), ajouter un DVD, afficher un DVD, supprimer un DVD, prêter un DVD, renvoyer un DVD, une liste de classement de DVD (par ordre décroissant du nombre de prêts), quitter le système
  • Image d'effetInsérez la description de l'image ici

Utilisez ArrayList pour résoudre le problème

  • Classes et méthodes utilisées:
  • (1) Classes inhérentes à Java
  • java.util.ArrayList, classe, méthode add, méthode get, méthode remove
  • Méthode de format de classe java.text.SimpleDateFormat (affiche la date actuelle au format spécifié "aaaa-MM-jj HH: mm: ss")
  • java.util.Scanner classe méthode next et méthode nextInt
  • (2) Classe personnalisée
  • Classe DVD Classe DVDDB Classe DVDManager Classe DVDManagerSystem

Catégorie DVD

public class DVD {
    
    
    private  int id;
    private  String name;
    private  int lendCount;
    private  String lendDate;
    private  boolean status;//true表示可借,false表示已借出

    public DVD() {
    
    
    }
      //包含id和name的构造方法,默认初始化其他属性的状态(没有借出日期,因为DVD尚未被借出)
    public DVD(int id, String name) {
    
    
        this.id = id;
        //默认借出次数为0
        this.name = name;
        this.lendCount = 0;
        //默认借出状态为true,表示可借
        this.status= true;
    }
    //id name lendCount lendDate status的Getter and Setter 方法
    public int getId() {
    
    
        return id;
    }

    public void setId(int id) {
    
    
        this.id = id;
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public int getLendCount() {
    
    
        return lendCount;
    }

    public void setLendCount(int lendCount) {
    
    
        this.lendCount = lendCount;
    }

    public String getLendDate() {
    
    
        return lendDate;
    }

    public void setLendDate(String lendDate) {
    
    
        this.lendDate = lendDate;
    }

    public boolean isStatus() {
    
    
        return status;
    }

    public void setStatus(boolean status) {
    
    
        this.status = status;
    }
}

Classe DVDDB

import java.util.ArrayList;
public class DVDDB {
    
    
    //创建一个ArrayList集合,用于存储DVD类的对象
        private ArrayList<DVD> dvddb;

    public DVDDB(ArrayList<DVD> dvddb) {
    
    
        this.dvddb = dvddb;
    }

    public DVDDB() {
    
    
    }

    public ArrayList<DVD> getDvddb() {
    
    
        return dvddb;
    }

    public void setDvddb(ArrayList<DVD> dvddb) {
    
    
        this.dvddb = dvddb;
    }
}

Classe DVDManager

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class DVDManager {
    
    


    //添加DVD的方法
    public void addDVD(DVDDB dvddb,DVD dvd){
    
    
         dvddb.getDvddb().add(dvd);
    }
    //查看DVD的方法
    public void lookDVD(DVDDB dvddb){
    
    
        System.out.println("序号           "+"          状态"+"         名称"+"             借出日期");
        ArrayList<DVD> dvds = dvddb.getDvddb();
        for (int i = 0; i < dvds.size(); i++) {
    
    
          DVD dvd  = dvds.get(i);
          String lendStatus;
          if(dvd.isStatus()){
    
    
              lendStatus = "可借";
          }else{
    
    
              lendStatus = "已借出";
          }
            System.out.println(dvd.getId()+"                       "+lendStatus + "         "+dvd.getName()+"            "+dvd.getLendDate());
        }
    }
    //删除DVD的方法
    public void deleteDVD(DVDDB dvddb,int id){
    
    
        for (int i = 0; i < dvddb.getDvddb().size(); i++) {
    
    
            if(dvddb.getDvddb().get(i).getId() == id){
    
    
                dvddb.getDvddb().remove(i);
            }
        }
    }
    //借出DVD的方法
    public void sendDVD(DVDDB dvddb,int id){
    
    
        for (int i = 0; i < dvddb.getDvddb().size(); i++) {
    
    
            if(dvddb.getDvddb().get(i).getId() == id){
    
    
                dvddb.getDvddb().get(i).setStatus(false);
                dvddb.getDvddb().get(i).setLendCount(dvddb.getDvddb().get(i).getLendCount()+1);
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String time = simpleDateFormat.format(new Date());
                dvddb.getDvddb().get(i).setLendDate(time);
            }
        }
    }
    //归还DVD的方法
    public void returnDVD(DVDDB dvddb,int id){
    
    
        for (int i = 0; i < dvddb.getDvddb().size(); i++) {
    
    
            if(dvddb.getDvddb().get(i).getId() == id){
    
    
                //true表示可借
                dvddb.getDvddb().get(i).setStatus(true);
                dvddb.getDvddb().get(i).setLendDate("无");
            }
        }

    }
    //DVD排行榜
    public void rankDVD(DVDDB dvddb){
    
    
        //设置一个临时的DVD数据库
        DVDDB temp = new DVDDB(new ArrayList<DVD> ());
        for (int i = 0; i < dvddb.getDvddb().size(); i++) {
    
    
            temp.getDvddb().add(dvddb.getDvddb().get(i));
        }
        int max = 0;
        for (int i = 0; i < temp.getDvddb().size(); i++) {
    
    
            max = i;
            for (int j = i+1; j < temp.getDvddb().size(); j++) {
    
    
                if(temp.getDvddb().get(max).getLendCount() < temp.getDvddb().get(j).getLendCount()){
    
    
                     max = j;
                }
            }
            if(i != max){
    
    
               DVD dvd = temp.getDvddb().get(i);
               temp.getDvddb().add(i,temp.getDvddb().get(max));
               temp.getDvddb().add(max,dvd);
            }
        }
        lookDVD(temp);
    }
}

Client (ou test) DVDManagerSystem

import java.util.ArrayList;
import java.util.Scanner;
public class DVDManagerSystem {
    
    
    public static void main(String[] args) {
    
    
        DVDDB dvddb = new DVDDB(new ArrayList<DVD>());
        DVDManager dvdManager = new DVDManager();
        Scanner sc = new Scanner(System.in);
        while(true){
    
    
                  System.out.println("欢迎使用迷你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.DVD排行榜");
                  System.out.println("7.退出");
                  System.out.println("------------------------------");
                  System.out.println("请选择功能");
                   int i = sc.nextInt();
            switch (i){
    
    
                case 1:
                    System.out.println("请输入要添加的DVD的id号和名字(用回车分割输入)");
                    int id = sc.nextInt();
                    String name = sc.next();
                    DVD dvd = new DVD(id,name);
                    dvdManager.addDVD(dvddb,dvd);break;
                case 2:
                    dvdManager.lookDVD(dvddb);break;
                case 3:
                    System.out.println("请输入要删除的DVD的id号");
                    int dvdDelete = sc.nextInt();
                    dvdManager.deleteDVD(dvddb,dvdDelete);
                    break;
                case 4:
                    System.out.println("请输入要借的DVD的id号");
                    int dvdLend = sc.nextInt();
                    dvdManager.sendDVD(dvddb,dvdLend);break;
                case 5:
                    System.out.println("请输入要归还的DVD的id号");
                    int dvdReturn = sc.nextInt();
                    dvdManager.returnDVD(dvddb,dvdReturn);break;
                case 6:dvdManager.rankDVD(dvddb);break;
                case 7:
                    System.out.println("期待您的下次使用!再见!");return;
                default:
                    System.out.println("输入的数字不正确,请重新输入");
                  }

            while (true) {
    
    
                System.out.println("------------------------------");
                System.out.println("按0返回");
                int j = sc.nextInt();
                if (j == 0) {
    
    
                    break;
                } else {
    
    
                    System.out.println("输入数据错误,请重试");
                }
            }
              }

    }
}

Résultats d'exécution du programme

Insérez la description de l'image ici

Utilisez Vector pour résoudre le problème

Utilisez un tableau pour résoudre le problème

Je suppose que tu aimes

Origine blog.csdn.net/hypertext123/article/details/115287464
conseillé
Classement