gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

實例詳解Java實現簡易版的圖書管理系統

本篇文章給大家帶來了關于java的相關知識,其中主要整理了實現簡易版的圖書管理系統的相關問題,包括了分析圖書管理系統的功能、在IDEA中進行功能類的創建、進行用戶相關的處理等等內容,下面一起來看一下,希望對大家有幫助。

實例詳解Java實現簡易版的圖書管理系統

推薦學習:《java視頻教程》

1.分析圖書管理系統的功能

我們先分析一下,一個圖書管理系統應該具備的功能,進行一個簡單的框架搭建。

(1)登錄

正常情況下圖書管理系統只有兩種人會使用,一種是學生,一種是圖書管理員

這個就是我學校的網上圖書館的登錄界面,學生查找書籍通過網絡就可以查閱

實例詳解Java實現簡易版的圖書管理系統

而管理員的登錄界面,我這里看不到,但肯定會有后臺的管理人員登錄的窗口,進行系統維護

所以根據使用人員不同,就要在登錄時進行選擇,是普通用戶還是管理員。

(2)分析功能

簡單的圖書管理系統應該具備的功能,

實例詳解Java實現簡易版的圖書管理系統

2.在IDEA中進行功能類的創建

實例詳解Java實現簡易版的圖書管理系統

2.1 創建一個名為book的包,里面存放書相關的

(1)創建一個Book的類,來顯示書的屬性

對一個圖書進行查找,應該一本書應該具有這些屬性

實例詳解Java實現簡易版的圖書管理系統

    private String name;//書名     private String author;//作者     private int price;//價格     private String type;//類型     private boolean isBorrowed;//借閱情況

注意這里給書提供的控制符都是私有的,在類外是不能訪問的

所以要再提供get()和set()對屬性進行設置和獲取

    public String getName() {          return name;     }         public void setName(String name) {         this.name = name;     }      public String getAuthor() {         return author;     }      public void setAuthor(String author) {         this.author = author;     }      public int getPrice() {         return price;     }      public void setPrice(int price) {         this.price = price;     }      public String getType() {         return type;     }      public void setType(String type) {         this.type = type;     }      public boolean isBorrowed() {         return isBorrowed;     }      public void setBorrowed(boolean borrowed) {         isBorrowed = borrowed;     }

再給書的屬性提供一個構造方法,

這里注意,在構造方法中不給書加isBorrowed,isBorrowed是boolean類型的,默認 false,也就是未被借出去。如果條件一本書,它默認就是沒有被借出去

    public Book(String name, String author, int price, String type) {         this.name = name;         this.author = author;         this.price = price;         this.type = type;     }

最后,再提供一個toString方法來顯示書的信息

    @Override     public String toString() {         return "BookList{" +                 "name='" + name + ''' +                 ", author='" + author + ''' +                 ", price=" + price +                 ", type='" + type + ''' +                 ", isBorrowed=" + isBorrowed +                 '}';     }

(2) 創建一個BookList的類,這個就是書庫

因為是書庫,要存放書,所以設置一個數組來存放書籍

   //最多存放20本書     private Book[] books = new Book[20];

再提供一個成員變量,來實時記錄當前books數組中書的個數

 private int usedSize;//實時記錄 當前Books這個數組中有多少本書

下面就可以提供一個構造方法,給里面先存上幾本書

    public BookList() {         books[0] = new Book("西游記","吳承恩",25,"小說");         books[1] = new Book("紅樓夢","曹雪芹",26,"小說");         books[2] = new Book("三國演義","羅貫中",27,"小說");         books[3] = new Book("水滸傳","施耐庵",28,"小說");         usedSize = 4;//當前有4本書     }

提供一個方法,如果給一個合法的數組下標,就能找到這本書

    public Book getBook(int pos) {         return books[pos];     }

提供一個方法,給一個合法的數組下標,和一本書,就能存放這本書到書庫中

    public void setBooks(int pos,Book book) {         books[pos] = book;     }

提供一個方法,給一個參數,來實時修改當前書架上的書的個數

    public void setUsedSize(int size) {         usedSize = size;     }

2.2 創建一個名為Operation的包,里面存放對書的所有操作

(1)創建一個IOperation的接口,實現對數組的操作引用

因為不論是管理員或是普通用戶,對書的操作都是在BookList類的數組books中進行操作,

實例詳解Java實現簡易版的圖書管理系統

所以可以提供一個IOperation的接口,實現對數組的操作,

public interface IOperation {     /*     * 對書的所有操作都是通過BookList類里面的books數組進行操作     * 可以將這個寫成一個接口     **/     void work(BookList bookList); }

(2)創建各種類,來實現對書的所有操作

比如說,普通用戶和管理員都要對書進行顯示操作,這個顯示是一個效果,

所以只需寫一個類,普通用戶和管理員就都可以調用。

合起來,創建這些類就可以了,

實例詳解Java實現簡易版的圖書管理系統

然后就可以對這些類引用接口了,再重寫一下

比如新增圖書

public class AddOperation implements IOperation {      @Override     public void work(BookList bookList) {         System.out.println("新增圖書!");     } }

3.進行用戶相關的處理

也就是對普通用戶和管理員進行處理

(1)創建一個user的包,在包中創建一個類

實例詳解Java實現簡易版的圖書管理系統

這里只創建一個類,是因為對于普通用戶和管理員來說,他們兩個都是用戶

所以創建一個成員變量,來表示用戶

    //寫protected是后面要繼承     protected String name;//用戶名

下面提供一個構造方法對其初始化

    //提供一個構造方法,用來初始化當前對象name屬性     public User(String name) {         this.name = name;     }

(2)在user包中再創建兩個類

實例詳解Java實現簡易版的圖書管理系統

子類NormalUser繼承父類User,提供一個構造方法來顯示幫助父類進行構造

public class NormalUser extends User{     public NormalUser(String name) {         super(name);     } }

子類AdminUser繼承父類User和前面一樣

下來就是打印菜單了,根據兩個用戶所需功能進行打印菜單

先看AdminUser管理員的

    public int menu() {         System.out.println("hello " + this.name + "歡迎進入圖書管理系統!");         System.out.println("1.查找圖書!");         System.out.println("2.新增圖書!");         System.out.println("3.刪除圖書!");         System.out.println("4.顯示圖書!");         System.out.println("0.退出系統!");         System.out.println("請輸入你的操作:");         Scanner scanner = new Scanner(System.in);         int choice = scanner.nextInt();         return choice;         //因為這個是個菜單,所以要把這個輸入的值傳出去,才能使用     }

再看NormalUser普通用戶的

        System.out.println("hello " + this.name + "歡迎進入圖書管理系統!");         System.out.println("1.查找圖書!");         System.out.println("2.借閱圖書!");         System.out.println("3.歸還圖書!");         System.out.println("0.退出系統!");         System.out.println("請輸入你的操作:");         Scanner scanner = new Scanner(System.in);         int choice = scanner.nextInt();         return choice;         //因為這個是個菜單,所以要把這個輸入的值傳出去,才能使用

(3)單獨創建一個Main的類,將前面所有整合起來

菜單用戶都有了,下面就是要把這些都整合起來,

先準備圖書

  BookList bookList = new BookList();//準備圖書

結下來就是登錄了,

先寫一個判斷你是普通用戶還是管理員的方法

    public static User login() {         System.out.println("請輸入你的姓名:");         Scanner scanner = new Scanner(System.in);         String name = scanner.nextLine();         System.out.println("請輸入你的身份:1:-》管理員.0:-》普通用戶");         int choice = scanner.nextInt();          if (choice == 1) {              return new AdminUser(name);         }else {             return new NormalUser(name);         }     }

注意觀察這段代碼,返回類型是User,這是因為不論if中返回是AdminUser還是NormalUser,User作為父類都可以接收,這個過程就發生了向上轉型

然后再在main方法中引用這個login()方法,就可以實現選擇登錄了

        //登錄-》user這個引用 引用哪個對象看前面if         User user = login();

選擇完你是哪種用戶后,就打印對應功能菜單

但是注意,剛剛把菜單寫在了對應子類中去了

如果現在要在父類中訪問,是訪問不了的,所以就要在父類中也引用出菜單

public abstract class User {     //寫protected是后面要繼承     protected String name;//用戶名     //提供一個構造方法,用來初始化當前對象name屬性     public User(String name) {         this.name = name;     }      public abstract int menu(); }

看代碼中,只需將父類寫成抽象類,然后在抽象類中,引出抽象方法的菜單,

就可以在Main類中通過父類訪問到菜單,這就實現了動態綁定

    public static void main(String[] args) {         //開始整合         BookList bookList = new BookList();//準備圖書         //登錄-》user這個引用 引用哪個對象看前面if         User user = login();          user.menu();//動態綁定         //要想訪問子類中的菜單,那就要將父類寫成抽象類,         //然后子類重寫父類的方法,才可以訪問菜單     } }

然后此時代碼就可以運行了

實例詳解Java實現簡易版的圖書管理系統

4.開始實現對書所有具體的操作功能

4.1先實現可以調用具體操作的功能方法

先在User中寫一個方法,這個方法的作用是

通過某個用戶,訪問這個用戶對應方法功能的數組下標,然后通過調用work方法,來實現功能

    public void doOperation(int choice, BookList bookList) {         this.iOperations[choice].work(bookList);     }

然后在mian中,通過選擇用戶引用這個方法

    public static void main(String[] args) {         //開始整合         BookList bookList = new BookList();//準備圖書         //登錄-》user這個引用 引用哪個對象看前面if         User user = login();         int choice = user.menu();//動態綁定          user.doOperation(choice,bookList);     }

細節可以看這個圖片

實例詳解Java實現簡易版的圖書管理系統

下面來看一下具體細節分析

(1)mian函數先調用

實例詳解Java實現簡易版的圖書管理系統

(2)現在user引用,有可能是兩個對象 實例詳解Java實現簡易版的圖書管理系統

(3)

實例詳解Java實現簡易版的圖書管理系統

當引用doOperation時,根據菜單選擇來訪問數組元素

實例詳解Java實現簡易版的圖書管理系統

(4)具體選擇哪個用戶根據,前面login()中輸入的選擇對象

實例詳解Java實現簡易版的圖書管理系統

(5)根據前面選擇需要的功能,調用work方法

比如這個實例詳解Java實現簡易版的圖書管理系統

4.2 測試一下

現在已經整合完成了,就差具體操作功能實現了,先運行代碼試試

實例詳解Java實現簡易版的圖書管理系統

代碼成功運行起來了,但是就用了一個功能就結束了,

所以我們可以加一個循環,來使用多個功能

    public static void main(String[] args) {         //開始整合         BookList bookList = new BookList();//準備圖書         //登錄-》user這個引用 引用哪個對象看前面if         User user = login();         while(true){             int choice = user.menu();//動態綁定             user.doOperation(choice,bookList);         }     }

4.3 實現單獨具體的操作的功能

(1)新增圖書 AppOperation類

新增一本圖書我們需要考慮輸入這些

實例詳解Java實現簡易版的圖書管理系統

不用考慮isBorrowed 因為默認狀態是未被借出的

將這些屬性進行輸入

   Scanner scanner = new Scanner(System.in);         System.out.println("請輸入圖書的名字:");         String name = scanner.nextLine();         System.out.println("請輸入圖書的作者:");         String author = scanner.nextLine();         System.out.println("請輸入圖書的價格:");         int price = scanner.nextInt();         System.out.println("請輸入圖書的類型:");         String type = scanner.nextLine();

然后將這些屬性存放到new Book中

        Book book = new Book(name,author,price,type);

獲取當前下標,然后賦給currentSize,將前面輸入的那本書放到數組下標為currentSize中,

然后給 currentSize加1

        int currentSize = bookList.getUsedSize();         bookList.setBooks(currentSize,book);          bookList.getUsedSize(currentSize+1);

運行一下,試試看

實例詳解Java實現簡易版的圖書管理系統

新增圖書 AppOperation類的所有代碼

public class AddOperation implements IOperation {     @Override     public void work(BookList bookList) {         System.out.println("新增圖書!");         Scanner scanner = new Scanner(System.in);         System.out.println("請輸入圖書的名字:");         String name = scanner.nextLine();         System.out.println("請輸入圖書的作者:");         String author = scanner.nextLine();         System.out.println("請輸入圖書的類型:");         String type = scanner.nextLine();         System.out.println("請輸入圖書的價格:");         int price = scanner.nextInt();          Book book = new Book(name,author,price,type);         int currentSize = bookList.getUsedSize();         bookList.setBooks(currentSize,book);         bookList.getUsedSize(currentSize+1);         System.out.println("新增書籍成功!");     } }

(2)借閱圖書 orrowOperation類

先輸入要借閱圖書的名字

        Scanner scanner = new Scanner(System.in);         System.out.println("請輸入借閱圖書的名字:");         String name = scanner.nextLine();

通過for循環遍歷一遍,然后將遍歷的每一本書賦給變量 book ,

再通過equals,來判斷book和輸入的書的名字是否相同,

如果相同就通過setBorrowed修改此時借閱狀態,顯示借閱成功

如果不同就顯示沒有這本書

        int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(true);                 System.out.println("借閱成功!");                 return;             }         }         System.out.println("沒有這本書!");

運行一下,試試看

實例詳解Java實現簡易版的圖書管理系統

借閱圖書 orrowOperation類的所有代碼

public class BorrowOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("借閱圖書!");          Scanner scanner = new Scanner(System.in);         System.out.println("請輸入借閱圖書的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(true);                 System.out.println("借閱成功!");                 return;             }         }         System.out.println("沒有這本書!");     } }

(3)刪除圖書 DelOperation類

輸入刪除圖書的名字

  Scanner scanner = new Scanner(System.in);         System.out.println("請輸入刪除圖書的名字:");         String name = scanner.nextLine();

找到圖書,然后刪除

        int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 for (int j = i; j < currentSize; j++) {                     bookList.getBook(j);                 }                 bookList.getUsedSize(currentSize-1);//不要忘記更新圖書種類                  bookList.getUsedSize(currentSize-1);                 System.out.println("刪除成功!");                 return;             }         }         System.out.println("沒有找到要刪除的圖書!");

運行程序,試試看

實例詳解Java實現簡易版的圖書管理系統

刪除圖書 DelOperation類的全部代碼

public class DelOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("刪除圖書!");          Scanner scanner = new Scanner(System.in);         System.out.println("請輸入刪除圖書的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 for (int j = i; j < currentSize; j++) {                     bookList.getBook(j);                 }                 bookList.getUsedSize(currentSize-1);//不要忘記更新圖書種類                  bookList.getUsedSize(currentSize-1);                 System.out.println("刪除成功!");                 return;             }         }         System.out.println("沒有找到要刪除的圖書!");     } }

(4)顯示圖書 DisplayOperation類

將當前有幾本書記錄下來

        int currentSize = bookList.getUsedSize();

然后for循環全部遍歷一遍就可以了 ,直接看代碼吧

public class DisplayOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("顯示圖書!");          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             System.out.println(bookList.getBook(i));             }         } }

運行結果就是這樣

實例詳解Java實現簡易版的圖書管理系統

(5)退出系統 ExitOperation類

直接調用狀態碼exit來退出系統

public class ExitOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("退出系統!");         System.exit(0);     } }

實例詳解Java實現簡易版的圖書管理系統

(6)查找圖書 FindOperation類

要查找圖書,肯定是先要輸入你需要查找書的名字

        Scanner scanner = new Scanner(System.in);         System.out.println("請輸入圖書的名字:");         String name = scanner.nextLine();

通過for循環遍歷一遍,然后將遍歷的每一本書賦給變量 book ,

再通過equals,來判斷book和輸入的書的名字是否相同,

如果相同就打印,并顯示找到了,如果不相同,就直接顯示沒有找到,

但這里有一個問題在前面給每一本書默認都是false,現在打印還是這樣,所以要修改一下

在Book類中,修改toString,給借閱狀態一個三目運算符,來判斷是否借出了

    @Override     public String toString() {         return "Book{" +                 "name='" + name + ''' +                 ", author='" + author + ''' +                 ", price=" + price +                 ", type='" + type + ''' +                 ((isBorrowed == true)?" 已經借出":" 未借出")+                 '}';     }

運行一下,試試

實例詳解Java實現簡易版的圖書管理系統 查找圖書 FindOperation類的全部代碼就是

public class FindOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("查找圖書!");          Scanner scanner = new Scanner(System.in);         System.out.println("請輸入圖書的名字:");         String name = scanner.nextLine();          int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 System.out.println("這本書找到了!");                 System.out.println(book);                 return;             }         }         System.out.println("這本書沒有找到!");     } }

(7)歸還圖書 ReturnOperation類

先輸入要歸還圖書的名字

        Scanner scanner = new Scanner(System.in);         System.out.println("請輸入歸還圖書的名字:");         String name = scanner.nextLine();

和前面借閱基本一樣,修改一下setBorrowed的狀態就可以了

        int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(false);                 System.out.println("歸還成功!");                 return;             }         }

運行代碼,試試看


歸還圖書 ReturnOperation類的全部代碼

public class ReturnOperation implements IOperation{     @Override     public void work(BookList bookList) {         System.out.println("歸還圖書!");         Scanner scanner = new Scanner(System.in);         System.out.println("請輸入歸還圖書的名字:");         String name = scanner.nextLine();         int currentSize = bookList.getUsedSize();         for (int i = 0; i < currentSize; i++) {             Book book = bookList.getBook(i);             if(book.getName().equals(name)){                 book.setBorrowed(false);                 System.out.println("歸還成功!");                 return;             }         }     } }

推薦學習:《java視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
老太脱裤让老头玩ⅹxxxx| 国产中文字幕乱人伦在线观看| 妞干网在线观看视频| 激情五月婷婷六月| 99精品视频播放| 亚洲污视频在线观看| 欧洲金发美女大战黑人| 男人c女人视频| 亚洲熟妇av一区二区三区| 欧美黄网站在线观看| 亚州精品一二三区| 国产精品va在线观看无码| 亚洲精品无码国产| 日韩欧美国产片| 成人网站免费观看入口| 日韩视频在线观看一区二区三区| 五月天综合婷婷| 成年人小视频网站| 浮妇高潮喷白浆视频| 中文字幕第一页在线视频| 亚洲欧洲日产国码无码久久99| 天天综合天天添夜夜添狠狠添| 菠萝蜜视频在线观看入口| 蜜臀av免费观看| 成人午夜视频免费在线观看| 日韩精品一区二区免费| 欧美性受xxxx黑人猛交88| 亚洲成人福利在线观看| 欧美日韩在线不卡视频| 无码专区aaaaaa免费视频| 成年人黄色在线观看| 手机在线成人免费视频| 免费成人在线视频网站| 久草免费福利在线| 成人在线视频一区二区三区| 欧美视频国产视频| 高清av免费看| 一区二区三区 日韩| 中文字幕有码av| 亚洲高清av一区二区三区| 天堂在线一区二区三区| 免费在线观看污污视频| 国产激情在线看| 真人抽搐一进一出视频| 国产黄色片免费在线观看| 欧洲金发美女大战黑人| 国产成人无码a区在线观看视频| 九一国产精品视频| 亚洲欧美激情网| 艳母动漫在线免费观看| aa视频在线播放| 精品久久久久久久无码 | 国产av麻豆mag剧集| 欧美色图色综合| 91香蕉视频免费看| 国产真实乱子伦| 五十路熟女丰满大屁股| 91精品999| 国产超级av在线| 国产日本欧美在线| 中文字幕久久av| 激情婷婷综合网| 阿v天堂2018| 亚洲精品天堂成人片av在线播放| 成人在线免费观看av| 青青草视频国产| 制服丝袜中文字幕第一页| 精品一区二区中文字幕| 日本一本中文字幕| 97干在线视频| 毛片在线视频观看| 91免费版看片| 午夜剧场在线免费观看| 激情婷婷综合网| 三级av免费观看| 91在线第一页| 潘金莲一级淫片aaaaaa播放1| 国内av一区二区| 亚洲五月天综合| 色撸撸在线观看| 欧美一级视频在线播放| 无码aⅴ精品一区二区三区浪潮 | 亚洲免费av一区二区三区| 久久久一本二本三本| 欧美成人精品欧美一级乱| 啊啊啊国产视频| 日本一本中文字幕| 性欧美极品xxxx欧美一区二区| 国产精品999视频| 中日韩av在线播放| 18禁网站免费无遮挡无码中文| 中文字幕无码不卡免费视频| 91av视频免费观看| 欧美日韩一区二区在线免费观看| 九九热在线免费| 人人干视频在线| 成年网站免费在线观看| 成人黄色av片| 亚洲制服中文字幕| 欧美亚洲国产成人| 一级黄色大片儿| 国内自拍第二页| 中文字幕亚洲乱码| 一区二区久久精品| 丁香婷婷综合激情| 18视频在线观看娇喘| 艹b视频在线观看| 国产精品亚洲a| 成人毛片视频网站| 久久网站免费视频| 青青草国产免费| 内射国产内射夫妻免费频道| 日本免费在线视频观看| 青青在线视频观看| 成年人网站大全| 中文字幕av专区| 在线观看免费av网址| 欧美特黄aaa| 在线播放av中文字幕| 日韩中文字幕亚洲精品欧美| 在线观看三级网站| 波多野结衣家庭教师在线播放| 亚洲 欧美 日韩 国产综合 在线| 熟女少妇在线视频播放| 亚洲精品高清无码视频| 亚洲 国产 图片| 免费看黄在线看| 欧美精品成人网| 欧美视频在线观看网站| 日韩 欧美 高清| 久久这里只有精品8| 免费毛片网站在线观看| 91插插插插插插插插| 极品美女扒开粉嫩小泬| 国产一级片黄色| 黄色一级片在线看| 天堂在线一区二区三区| 免费在线观看日韩视频| 国产一区二区网| 蜜桃免费在线视频| av免费观看国产| 国产精品无码免费专区午夜| 中文av一区二区三区| 男人操女人逼免费视频| 91看片淫黄大片91| www.桃色.com| 91免费视频黄| 99热都是精品| 亚洲天堂网2018| 玖玖爱视频在线| 两性午夜免费视频| 亚洲av综合色区| 黄色三级中文字幕| 国产精品亚洲天堂| 国产精品视频一二三四区| 麻豆传媒网站在线观看| 久久久久久av无码免费网站下载| 国产一区一区三区| www.在线观看av| 国产视频一视频二| 免费精品99久久国产综合精品应用| 日韩欧美精品在线观看视频| 欧美性久久久久| 国产又粗又猛大又黄又爽| 人妻无码一区二区三区四区| 国产美女网站在线观看| 日本久久久久久久久久久久| 91小视频在线播放| 免费看国产曰批40分钟| 向日葵污视频在线观看| 国产精品久久久久9999爆乳| mm1313亚洲国产精品无码试看| 在线播放 亚洲| 午夜视频在线瓜伦| 丰满的少妇愉情hd高清果冻传媒| 欧美变态另类刺激| 天堂8在线天堂资源bt| 亚洲欧美天堂在线| 天堂在线资源视频| 日韩免费一级视频| 午夜免费视频网站| 手机在线免费观看毛片| 奇米影视亚洲色图| 国产免费xxx| 亚洲成人动漫在线| 激情五月五月婷婷| 青青草原播放器| 一二三在线视频| 国产经典久久久| 天堂网成人在线| 久久这里只有精品23| 久激情内射婷内射蜜桃| 久久9精品区-无套内射无码| 欧美日韩不卡在线视频| 男的插女的下面视频| 手机看片福利日韩| 日本久久高清视频| www一区二区www免费| 国产精品专区在线| 99热一区二区|