• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>實用范文>辦公文秘>文秘寫作>

    java畢業論文范文5篇(3)

    時間: 玉鳳635 分享

      java畢業論文范文篇四:

      摘要

      本文圍繞Java編程語言在網絡編程方面的具體應用,論述了使用面向對象方法,對計算器程序進行需求分析、概要設計、詳細設計,最后使用Java編程實現的全過程。

      java語言,是目前比較流行的編程語言。經過10多年的發展,java已經滲透到全球每個角落。在當今這個網絡的時代,java語言在網絡編程方面的優勢使得網絡編程有了更好的選擇。Java語言最令人矚目的特點是具有跨平臺性,使其不受平臺不同的影響,并得到了廣泛的應用。

      設計內容:設計GUI界面的計算器。用戶可以通過鼠標依次輸入參加計算的數值,進行加、減、乘、除等混合運算。

      設計要求:

      1.系統界面的上面是數字輸入對話框,用來顯示所輸入的數字和運行的結果。

      2.系統界面下面的左側是記憶 + - * /。

      3. 系統界面下面的中部是數字輸入按鈕,用來輸入數字。

      4.系統界面下面的右側是運算符號按鈕,用來實現具體的運算。

      關鍵字:java面向對象 計算器 網絡編程

      第一章 概述

      1.1 設計目的

      計算器是日常生活中十分便捷有效的工具,能實現加、減、乘、除、開方、求倒數等簡單運算的功能。本論文采用java編程語言實現計算器功能。該計算器大大的降低了數字計算的難度并且提高了計算的準確度和精確度。使用簡單,適合廣大工作人員和中小學生使用。

      1.2 計算器系統概述

      標準計算器的界面采用“圖形界面程序設計(GUI)”。GUI為用戶和應用程序之間的交互提供了直觀、方便的交流方式。用戶使用鼠標、鍵盤操作圖形界面上的按鈕、菜單等元素湘計算機系統發送命令,系統運行的結果以圖形的方式顯示給用戶。

      編寫java計算器主要使用了Swing組件和AWT布局類。Swing組件主要包括按鈕、標簽、文本輸入類、等組件,AWT主要運用了其中的布局管理器。

      1.2.1 Swing組件

      Swing組件的按鈕用JButton類表示,計算器的界面主要由JButton按鈕組成,以響應用戶的操作;

      Swing中的標簽用JLabel類表示,標簽上可以顯示圖標和文本;

      Swing的文本輸入類包括文本框JTextField、文本區JTextArea和密碼框JPasswordField。

      本計算器中僅僅使用了文本框JTextField,用于文本數字的顯示。

      1.2.2 AWT組件

      布局管理器管理組件如何放置在容器中,AWT中最常用的四種布局類:FlowLayout、BorderLayout、GridLayout、CardLayout。本項目主要采用了GridLayout布局。

      1.3功能模塊設計

      ★標準計算器。

      以下是標準計算器的各項功能:

      (1)加法:

      兩個及兩個以上數據進行加法操作,可以為小數形式。

      (2)減法:

      兩個及兩個以上數據進行減法操作,可以為負數形式。

      (3)乘法:

      兩個及兩個以上數據進行乘法操作。

      (4)除法:

      兩個及兩個以上數據進行除法操作。

      (5)開平方:

      對任意數開平方,可以為小數(不能為負數)。

      (6)求倒數:

      對任意數求倒數,0除外。

      (7)求百分數:

      對任意一個數進行百分號操作。

      1.4 系統功能圖。

      標準計算器

      求倒數

      開平方

      求百分號

      加法

      減法

      乘法

      除法

      圖1.1 計算器系統功能圖

      第二章 項目設計說明

      2.1標準計算器設計界面

      圖2.1 計算器設計界面

      2.2標準計算器設計主要代碼

      標準計算器主要由一個菜單欄、一個文本框、27個按鈕組成。

      2.2.1整體框架代碼

      JFrame f = new JFrame("標準計算器");

      f.setLocation(400, 300);

      Container contentPane = f.getContentPane();

      2.2.2 菜單欄代碼

      圖2.2 菜單欄

      JMenuBar mBar = new JMenuBar();

      mBar.setOpaque(true);

      mEdit = new JMenu("編輯(E)");

      mEdit.setMnemonic(KeyEvent.VK_E);

      mCopy = new JMenuItem("復制(C)");

      mEdit.add(mCopy);

      mPaste = new JMenuItem("粘貼(P)");

      mEdit.add(mPaste);

      mView = new JMenu("查看(V)");

      mView.setMnemonic(KeyEvent.VK_V);

      mView.add(new JMenuItem("標準型"));

      mView.add(new JMenuItem("科學型"));

      mView.addSeparator();

      mView.add(new JMenuItem("查看分組"));

      mHelp = new JMenu("幫助(H)");

      mHelp.setMnemonic(KeyEvent.VK_H);

      mHelp.add(new JMenuItem("幫助主題"));

      mHelp.addSeparator();

      mHelp.add(new JMenuItem("關于計算器"));

      mBar.add(mEdit);

      mBar.add(mView);

      mBar.add(mHelp);

      f.setJMenuBar(mBar);

      contentPane.setLayout(new BorderLayout());

      2.2.3 文本框代碼

      圖2.3 文本框

      JPanel pTop = new JPanel();

      tResult = new JTextField("0.",26);

      tResult.setHorizontalAlignment(JTextField.RIGHT);

      tResult.setEditable(false);

      pTop.add(tResult);

      contentPane.add(pTop,BorderLayout.NORTH);

      2.2.4 計算器各功能鍵代碼

      圖2.4 各功能鍵圖

      bOther = new JButton("MC");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red); //字體顏色

      bOther.setMargin(new Insets(3,2,3,2));//按鈕邊框和標簽之間的空白

      pLeft.add(bOther);

      bOther = new JButton("MR");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      bOther.setMargin(new Insets(3,2,3,2));

      pLeft.add(bOther);

      bOther = new JButton("MS");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      bOther.setMargin(new Insets(3,2,3,2));

      pLeft.add(bOther);

      bOther = new JButton("M+");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      bOther.setMargin(new Insets(3,2,3,2));

      pLeft.add(bOther);

      pBottom.add(pLeft,BorderLayout.WEST);

      JPanel pRight = new JPanel();

      pRight.setLayout(new BorderLayout());

      JPanel pUp = new JPanel();

      pUp.setLayout(new GridLayout(1,3,3,0));

      bOther = new JButton("BackSpace");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      bOther.setMargin(new Insets(3,0,3,5));

      pUp.add(bOther);

      bOther = new JButton("CE");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      pUp.add(bOther);

      bOther = new JButton("C");

      bOther.addActionListener(this);

      bOther.setForeground(Color.red);

      pUp.add(bOther);

      2.2.5 數字鍵及運算符號代碼

      圖2.5 數字鍵圖

      JPanel pDown = new JPanel();

      pDown.setLayout(new GridLayout(4,5,3,2));

      bNumber = new JButton("7");

      bNumber.setForeground(Color.blue);

      bNumber.addActionListener(this);

      bNumber.setMargin(new Insets(3,3,3,3));

      pDown.add(bNumber);

      (注:其他數字鍵、運算符號鍵與“7”定義相同。)

      第三章 程序運行效果

      3.1加法運算

      本計算器可以實現多個運算數相加,例如:1+2+3+4

      計算結果為10,所有數據均為double類型。

      3.2減法運算

      本計算器可以實現多個運算數相減(正負數),例如:6-5-3-1

      計算結果為-3,數據類型為double類型。

      3.3乘法運算

      本計算器可以實現多個運算數相乘,例如2*3*4*5

      運算結果為120,數據類型為double類型。

      3.4除法運算

      本計算器可以實現多個運算數相除(除數不為0)例如:15/3/5/2

      運算結果為0.5,數據類型為double類型

      當除數為0時,計算器自動報錯,例如:15/0

      3.5開方運算

      當被開方數為非負數時,計算器自動開方,例如:25開方

      運算結果為5.

      3.6求倒數運算

      當按下求倒數鍵時,計算器自動為運算數求其倒數。例如:5的倒數

      運算結果為0.2.

      第四章 項目重難點分析

      4.1重難點分析

      Java計算器中整體框架的建立,按鈕的設置,整體布局在操作過程中都是很順暢的。計算器的關鍵步驟也是重點是實現計算器的計算方法。

      實現兩個數的加減乘除等運算是比較簡單的,但是一個計算器需要做到的是實現多個運算數的運算。此時就用到了我在項目一開始定義的兩個數據

      每執行一次運算操作就把運算結果賦值給操作數1 “op1”,并判斷下一步操作是“=”或者“其他運算符”,決定下一步計算器的操作。

      4.2程序中存在的問題

      (1)菜單欄中雖然設置了編輯、查看、幫助等選項,但是項目中并沒有實際的功能。

      (2)程序中設置了內存的有關操作但是并沒有達到其預期的功能。

      (3)百分號的實際功能并沒有實現。

      (4)當被開方數是負數時,計算器并不能給出錯誤提示。

      [參考文獻]

      《Java編程實用技術與案例 》 譯作者:楊紹方

      《軟件工程Java語言實現SoftwareEngineeringwithJava》StephenR.Schach譯者:袁兆山等

      程序員天堂( 英文網站 大量的程序, 庫, 包) http://www.programmersheavean.com

      java畢業論文范文篇五:

      一、引言

      加深對《Java2面向對象程序設計》課程所學知識的理解,進一步鞏固 Java語言的語法規則。分析系統的可行性,讓系統有一個明確的方向,使開發更具合理性,并能分析出系統的具體流程,為后面的開發做好鋪墊。明確本次課程設計所要用到的技術點并到網上搜索以及查閱相關的書籍來搜集資料。通過編寫一個基于JAVA的應用系統綜合實例,來掌握Java語言編程技巧。并學會編制結構清晰、風格良好的、數據結構適當的Java語言程序,從而具備解決綜合性實際問題的能力

      二、課題內容

      用Java設計一個職工信息管理系統,并實現相關功能。

      三、系統程序要求

      1、設計一個職工信息管理系統

      2、要求包括職工信息包括職工號、姓名、性別、年齡、學歷、工資、

      住 址、電話(職工號不重復)

      3、本系統功能描述:

      職工信息錄入功能(職工信息用文本保存);

      職工信息瀏覽功能;

      查詢功能(至少一種查詢方式):

      按工資查詢, 按學歷查詢

      4、職工信息刪除、修改功能(這兩個功能任選)。

      四、程序設計思想

      該課題要求是輸入職工信息,對職工信息進行一系列的處理。既要輸入工號又要能查找到與之對應的職工,還要對實現建立,顯示,查找,刪除,信息的保存。

      因為考慮到信息管理信息的實用性,我額外添加了一個“讀文件”功能,使利用void read()方法來實現的。這個“讀文件模塊"!是我用來擴充信息管理系統功能的!可以使系統在用戶不用輸入信息就能讀取先前已存在的職工信息文件。

      根據課題要求,我是這樣設計的:首先對要實現的功能類型分為三大類——Public類、方法類、信息類;然后細分為六個方法——void caidan()、void creat()、void output()、void search()、void delete()、void read ()。這些類和方法構成了能夠實現不同功能的模塊,很好地體現了面向對象的Java語言的編程模塊塊的思想。

      我通過調用各功能模塊的幾個方法,隨后在各個method中具體實現相關的功能。當然要利用throws IOException進行一些異常處理,包括輸入異常和數據的異常。在數據的錄入與輸出的過程中涉及到文件的相關操作(包括打開與關閉等)最后是系統的安全退出。大部分功能都是在具體的模塊中加以實現的。

      如search方法實現查詢職工信息功能;caidan方法實現系統選擇菜單界面的輸出等相關功能;delete方法用于職工信息刪除;output方法用于職工信息的輸出及瀏覽等系列功能。

      五、程序源代碼及其解析

      package staff;//包

      import java.io.*;

      public class StaffInfomation {

      public static void main(final String[] args) throws IOException

      //throws IOException用來拋出io的錯誤,文件讀寫錯誤, 主要涉及到java的安全機制

      {

      staffInfo staffOne[]=new staffInfo[100]; //定義100個類數組

      for(int j=0;j<100;j++) staffOne[j] = new staffInfo();

      //建立這100個類的對象

      final ways staffTwo=new ways(); //建立這個方法類的對象

      staffTwo.caidan(staffOne);

      staffTwo.creat(staffOne);

      staffTwo.output(staffOne);

      staffTwo.search(staffOne);

      staffTwo.delete(staffOne);

      //以上幾個方法分別對應著:caidan菜單選擇、增加(建立)職工信息、輸出(預覽)、查詢、刪除這些功能,以數組類為參數

      }

      }

      class staffInfo

      //職工信息類換句話說就相當與c語言里面的結構體,存放職工的信息

      {

      public String name;

      public String num;

      public String sex;

      public String age;

      public String record;

      public String position;

      public String wanges;

      public String tel;

      public String addr;

      //把name、num、sex、age、record等聲明為全局變量,因為它們貫穿于整個程序中,方便其它方法、類調用它們

      }

      class ways //方法類,主要實現職工信息的建立,顯示,查找,刪除,信息的保存與讀取;這個類是整個程序的操作類。

      {

      public String recordkey;

      public int i=0;//i用來存放職工的人數

      public String filename="Infomation.txt";

      BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

      //此處是JAVA語言中輸入數據的基本格式,功能有如C中的scanf函數

      void caidan(staffInfo staffOne[]) throws IOException

      {

      final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

      // 參看書34頁,產生Buf對象;buf是BufferedReader類的變量,此處將讀入字符串至buf

      int choice;

      do{

      System.out.println("☆★☆★☆★☆★電子信息系40706班★賀 雪 設計★☆★☆★☆\n\n");

      System.out.println("┏━━━━━━━━━━━━━━━━━━┓");

      System.out.println("┃★ 職工管理系統主菜單界面 ★┃");

      System.out.println("┣━━━━━━━━━━━━━━━━━━┫");

      System.out.println("┃ ★ ①.輸入職工信息 ★ ┃");

      System.out.println("┃ ★ ②.預覽職工信息 ★ ┃");

      System.out.println("┃ ★ ③.查找職工信息 ★   ┃");

      System.out.println("┃ ★ ④.刪除職工信息 ★    ┃");

      System.out.println("┃ ★ ⑤.安全退出系統 ★ ┃");

      System.out.println("┃ ★ ⑥.讀取數據 ★ ┃");

      System.out.println("┗━━━━━━━━━━━━━━━━━━┛");

      System.out.print(" 請輸入您的選擇(0--6):");

      choice=Integer.parseInt(buf.readLine());

      switch(choice)

      {

      case 1:creat(staffOne);break;

      case 2:output(staffOne);break;

      case 3:search(staffOne);break;

      case 4:delete(staffOne);break;

      case 5:save(staffOne);break;

      case 6:read(staffOne);break;

      }

      }while(choice!=0);

      }

      void creat(staffInfo staffOne[]) throws IOException

      //這個方法是實現“增加(建立)職工信息”;是建立信息模塊

      {

      final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

      System.out.print("\n請輸入職工信息(以0結束)\n");

      System.out.print("姓名:\n\n");

      staffOne[i].name=buf.readLine();

      while(staffOne[i].name.compareTo("0")!=0)

      //用數組staffOne[i]來暫存職工的序 號,并用compareTo方 法確定判定是否應該寫入新信息

      {

      System.out.print("工號:\n\n");

      staffOne[i].num=buf.readLine();

      System.out.print("性別:\n\n");

      staffOne[i].sex=buf.readLine();

      System.out.print("年齡:\n\n");

      staffOne[i].age=buf.readLine();

      System.out.print("學歷:\n\n");

      staffOne[i].record=buf.readLine();

      System.out.print("職位:\n\n");

      staffOne[i].position=buf.readLine();

      System.out.print("工資:\n\n");

      staffOne[i].wanges=buf.readLine();

      System.out.print("電話:\n\n");

      staffOne[i].tel=buf.readLine();

      System.out.print("住址:\n\n");

      staffOne[i].addr=buf.readLine();

      i++;

      System.out.println("請輸入下一個職工信息:\n\n");

      staffOne[i].name=buf.readLine();

      }

      }

      void output(staffInfo staffOne[]) throws IOException

      //這里是實現“輸出(預覽)職工信息”output的模塊

      {

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

      System.out.println(" *員工信息表* );

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

      System.out.println("姓名 工號 性別 年齡 學歷 職位 工資 電話號碼 住址");

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

      if(i!=0)

      {

      for(int j=0;j<i;j++)

      {

      System.out.print(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].sex+" ");

      System.out.print(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");

      System.out.print(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");

      }

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

      }

      else System.out.println("沒有員工信息!");

      }

      void search(staffInfo staffOne[]) throws IOException

      //這里是實現職工信息的查詢功能的模塊

      {

      final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

      System.out.println("\n請輸入您要查找的職工學歷:");

      recordkey=buf.readLine();

      boolean flg=true;

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

      System.out.println(" *員工信息表* );

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

      System.out.println("姓名 工號 性別 年齡 學歷 職位 工資 電話號碼 住址");

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

      for(int j=0;j<i;j++)

      {

      if(recordkey.equals(staffOne[j].record))

      //equals是字符串比較函數相等返回true

      {

      System.out.print(staffOne[j].name+" "+staffOne[j].num+" "+staffOne[j].sex+" ");

      System.out.print(staffOne[j].age+" "+staffOne[j].record+" "+staffOne[j].position+" ");

      System.out.print(staffOne[j].wanges+" "+staffOne[j].tel+" "+staffOne[j].addr+"\n");

      flg=false;

      }

      }

      if(flg)

      System.out.println("對不起,查無此人!");

      }

      void delete(staffInfo staffOne[]) throws IOException

      {

      final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));

      System.out.println("\n請輸入您要刪除的職工姓名:");

      recordkey=buf.readLine();

      boolean flg=true;

      for(int j=0;j<i;j++)

      {

      //System.out.println("staffOne[j].name="+staffOne[j].name);

      //System.out.println("recordkey="+recordkey);

      //System.out.println("recordkey.equals(staffOne[j].name)="+recordkey.equals(staffOne[j].name));

      if(recordkey.equals(staffOne[j].name))

      {

      for(int k=j;k<=i-1;k++)

      //利用順序表的刪除算法,刪除值之后,再把后面的值往前移位,從而實現刪除

      {

      staffOne[k].name=staffOne[k+1].name ;

      staffOne[k].num=staffOne[k+1].num ;

      staffOne[k].sex=staffOne[k+1].sex ;

      staffOne[k].age=staffOne[k+1].age ;

      staffOne[k].record=staffOne[k+1].record ;

      staffOne[k].position=staffOne[k+1].position ;

      staffOne[k].wanges=staffOne[k+1].wanges ;

      staffOne[k].tel=staffOne[k+1].tel ;

      staffOne[k].addr=staffOne[k+1].addr ;

      }

      i--;//職工人數要減一

      flg=false;

      }

      }

      if(flg)

      System.out.println("對不起,查無此人!。");

      else System.out.println("已經刪除!。");

      }

      void save(staffInfo staffOne[]) throws IOException

      //數據的保存模塊, 把輸入的職工信息保存到相應的文件里。

      {

      int k;

      final FileWriter fw=new FileWriter(filename);

      //調用構造函數FileWriter()創建FileWriter類的對象。

      //文件的讀取(書216頁13-2-2)

      fw.write( i+"\n");//把職工的人數保存到文件中以便下次讀取是使用

      for( k=0;k<i;k++)//每個職工有9個信息字段,下面就是這9個信息段。

      {

      fw.write( staffOne[k].name+"\n");

      fw.write( staffOne[k].num+"\n");

      fw.write( staffOne[k].sex+"\n" );

      fw.write( staffOne[k].age+"\n");

      fw.write( staffOne[k].record+"\n");

      fw.write( staffOne[k].position+"\n") ;

      fw.write( staffOne[k].wanges+"\n");

      fw.write( staffOne[k].tel+"\n");

      fw.write( staffOne[k].addr+"\n");

      }

      fw.close();

      System.out.println("\n 系統已經安全退出!感謝您的使用!");

      System.exit(0);

      }

      void read(staffInfo staffOne[]) throws IOException

      //這是程序的“讀文件模塊"!是我自己添加進去擴充系統功能的!可以使系統不用輸入信息就能讀取先前已存在的職工信息文件。

      {

      final FileReader fr=new FileReader(filename);

      final BufferedReader bfr=new BufferedReader(fr);

      //關于文件的讀取不會的看看書216頁13-2-2

      if((recordkey=bfr.readLine())!=null)

      i=Integer.parseInt(recordkey);

      for(int j=0;j<i;j++)

      {

      staffOne[j].name=bfr.readLine(); 這是程序的“讀文件模塊",

      是我自己添加進去擴充系統功

      staffOne[j].num=bfr.readLine(); 能的!可以使系統不用輸入信息

      就能讀取先前已存在的職工信息

      staffOne[j].sex=bfr.readLine(); 文件,從中讀取數據。利用了書

      本P216頁13-2-2的文件相關知識

      staffOne[j].age=bfr.readLine();

      staffOne[j].record=bfr.readLine();

      staffOne[j].position=bfr.readLine() ;

      staffOne[j].wanges=bfr.readLine();

      staffOne[j].tel=bfr.readLine();

      staffOne[j].addr=bfr.readLine();

      }

      fr.close();

      System.out.println("\n 數據已經成功讀取!");

      }

      }

      六、心得體會

      我自己感覺此次課程設計做得挺成功的,通過這一次,我學到了不少實際編程的知識。

      在這次設計開始的第一天開始,我就開始著手修改一個用“職工信息管理系統”的JAVA程序。這一過程太不順利,調試的時候都沒有成功。后來我請教一個學長,在他的指導下我不斷的發現錯誤,并改正它們,功夫不負有心人人,我的程序最后運行成功了。

      這其中了不少的東西,磨礪了我的意志;同時還鞏固了以前所學的知識,學到了不少書本上沒有的知識;學到了很多java編程知識,并學會了簡單的使用eclipse來開發java程序的一些使用技巧這次課程設計是對我本學期所學的知識的檢驗,由此我發現了不少的問題。可以說它給了我一次自我評估的機會。通過設計讓我知道了那些方面我還是有欠缺的,促使我花時間彌補。

      臨近考試,時間太緊迫,致使程序實現的功能在方法上也許不是很完美,但我以后會多向老師請教,自己也要加強對Java 的學習。努力進一步提高自己的編程水平。

      參考資料

      1、《程序天下》

      2、洪維恩、何嘉《java2面向對象程序設計》

      3、Java天下-java、jsp編程論壇[黑咖啡屋]

      4、黃旭等《java課程設計指導》

      5、C編程設計(第三版) 譚浩強(著)

    看了java畢業論文范文的人還看了:

    1.大學計算機論文精選范文

    2.計算機系畢業論文范文

    3.大學計算機專業畢業論文范文

    4.java畢業實習報告范文

    5.與計算機有關的畢業論文

    524340 主站蜘蛛池模板: 日韩高清中文字幕| 色一情一乱一伦一区二区三区 | 人人做人人爽人人爱| 久久久精品电影| 美女一级毛片免费观看| 欧美成人手机视频| 国产粗话肉麻对白在线播放| 亚洲AV无码乱码国产精品| 被公侵犯电影bd在线播放| 成人自拍视频网| 人人爽人人爽人人片av| 69视频免费观看l| 波多野结衣护士| 国产精品久久久尹人香蕉| 久久精品亚洲日本波多野结衣| 老师上课跳d突然被开到最大视频| 女人爽小雪又嫩又紧| 午夜在线亚洲男人午在线| a级片免费在线| 欧美一级欧美一级高清| 国产亚洲一路线二路线高质量| а√天堂中文在线资源bt在线| 欧美日韩高清在线| 国产大尺度吃奶无遮无挡网| 一区二区三区在线免费看| 欧美日韩在线视频一区| 国产农村妇女毛片精品久久| 久久国产小视频| 精品a在线观看| 国产精品三级av及在线观看 | 亚洲欧美日韩自偷自拍| 98精品国产综合久久| 性猛交xxxxx按摩中国| 亚洲成人免费在线观看| 色综合天天综合网看在线影院| 在车里被撞了八次高c| 九九热中文字幕| 萝li交小说合集| 国语自产精品视频在线看| 久久午夜国产片| 精品久久久久久无码人妻|