999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

OJ平臺在程序設(shè)計中的應(yīng)用分析與實現(xiàn)

2020-07-14 00:36:53孔欽葉長青吳淳陽姚斯源王家輝
軟件導(dǎo)刊 2020年1期

孔欽 葉長青 吳淳陽 姚斯源 王家輝

摘 要:Online Judge在線評測系統(tǒng)作為提高學(xué)生基礎(chǔ)編程能力的重要途徑之一,在當(dāng)今十分強(qiáng)調(diào)編程能力的社會背景下顯得尤為重要。由于大一新生普遍存在編程能力不足的問題,在分析目前主流OJ平臺的基礎(chǔ)上,設(shè)計并實現(xiàn)了針對學(xué)校情況定制的OJ在線評測系統(tǒng),為程序設(shè)計賽事培訓(xùn)與課程實踐提供練習(xí)平臺。在詳細(xì)描述OJ平臺主要功能、技術(shù)架構(gòu)及具體實現(xiàn)方案的同時,也重點強(qiáng)調(diào)了對于實現(xiàn)系統(tǒng)安全性和并發(fā)性方面的優(yōu)化與創(chuàng)新。

關(guān)鍵詞:在線測評;程序設(shè)計;教學(xué)跟蹤

DOI: 10. 11907/rjdk.192263

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

中圖分類號:TP319

文獻(xiàn)標(biāo)識碼:A

文章編號:1672-7800(2020)001-0172-04

0 引言

在線評測(Online Judge,簡稱OJ)平臺是一個基于WWW的服務(wù)器端軟件系統(tǒng),主要功能包括:用戶注冊與管理、題庫管理、在線提交與實時評測、網(wǎng)上考試、題目討論、郵件服務(wù)等[1]。早期的OJ平臺以競賽為目標(biāo),能夠?qū)τ脩籼峤坏某绦蜻M(jìn)行“黑盒判定”并自動生成判題結(jié)果。傳統(tǒng)Online Judge系統(tǒng)主要針對解題訓(xùn)練,并不針對課程教學(xué)輔助場景[2]。C語言是大學(xué)一年級學(xué)生學(xué)習(xí)計算機(jī)程序設(shè)計時廣泛使用的一種語言,通過學(xué)習(xí)C語言課程,學(xué)生不僅可以掌握該高級程序設(shè)計語言的語法與語義,還可以掌握結(jié)構(gòu)化程序設(shè)計“自頂向下、逐步求精”的思想及方法、常用算法及實現(xiàn)技術(shù),以及分析與解決實際問題的語言應(yīng)用能力[3]。將Online Judge加入到日常教學(xué)中輔助教師授課,將會幫助學(xué)生更加容易地掌握C語言。因此,本校自主開發(fā)一個OJ平臺,不僅用于程序設(shè)計賽事培訓(xùn),還可將其用于平時的實驗教學(xué)中,通過精心設(shè)置的多組測試用例反映出程序問題所在,方便教師及時找出漏洞(BUG)并作出解答,也便于學(xué)生課后復(fù)習(xí)與鞏固。在教學(xué)領(lǐng)域,OnlineJudge可以彌補(bǔ)人工評判的缺點,有效減輕教師負(fù)擔(dān),使評測更加公平、合理,學(xué)生在課內(nèi)未完成的實驗還可以利用系統(tǒng)在課外時間完成,從而使整個實驗過程得到延伸[4]。同時也能增強(qiáng)師生間的互動交流,提高教學(xué)質(zhì)量,形成新的程序設(shè)計實驗課教學(xué)模式。

Online Judge也為學(xué)生創(chuàng)造了一個模擬競賽環(huán)境的平臺。眾所周知,程序在線評測是ACM國際大學(xué)生程序設(shè)計競賽(ACM /ICPC)采用的訓(xùn)練與比賽評測方式[5],ACM在線評測系統(tǒng)是該項比賽的評判事務(wù)處理平臺,也是一個基于B/S結(jié)構(gòu)的多用戶在線系統(tǒng),允許用戶在線提交自己的解題代碼,系統(tǒng)自動編譯運行給出裁判結(jié)果,并根據(jù)用戶解題數(shù)及用時進(jìn)行排名[6]。但剛接觸編程的學(xué)生能力不是很強(qiáng),如果一開始就讓他們到各大學(xué)公網(wǎng)上的在線裁判系統(tǒng)上進(jìn)行練習(xí),無疑會打擊其對編程的興趣及積極性,因此必須有一個循序漸進(jìn)、由淺入深的練習(xí)系統(tǒng)[7]。

1 研究背景

1.1 主流OJ介紹

國內(nèi)著名題庫有北京大學(xué)題庫、浙江大學(xué)題庫、電子科技大學(xué)題庫、杭州電子科技大學(xué)題庫等,國外題庫包括烏拉爾大學(xué)題庫、瓦拉杜利德大學(xué)題庫等[8],以下舉例分析一些現(xiàn)有的知名Online Judge。

(1)POJ。POJ是北京大學(xué)ACM/ICPC在線評測系統(tǒng)( Peking University Judge Online for AC M/ICPC)的簡稱,也是許多ACMer最開始使用的OJ平臺。POJ以題目優(yōu)質(zhì)著稱,幾乎涵蓋了編程學(xué)習(xí)的各類經(jīng)典算法。北大為該系統(tǒng)的正常運行提供了硬件與網(wǎng)絡(luò)資源保障,所以其可以全天不間斷地為全球程序愛好者提供服務(wù)[9]。

(2)ZOJ。ZOJ是浙江大學(xué)在線評測系統(tǒng)(Zhejiang Uni-versity Online Judge)的簡稱,是國內(nèi)最早也是最知名的OJ,有很多高手在上面練習(xí)。特點是數(shù)據(jù)比較刁鉆,經(jīng)常會有意想不到的邊界數(shù)據(jù),十分考驗答題人思維的全面性[10]。ZOJ相較于POJ,在首頁上有一個News項目,可以看到ZOJ的最新動向。ZOJ非常簡潔、直觀,同時其前端界面也比POJ更加整齊、美觀。

(3)hihoCoder。相較于以上兩個OJ平臺,hihoCoder能提供更好的用戶體驗。其有著最佳界面,并支持多種登錄方式。其宣傳語是“通過高水平的程序設(shè)計比賽提升編程水平,得到名企Offer”,這句話體現(xiàn)了OJ平臺的核心思想。hihoCoder主頁正下方即展示了3個正在進(jìn)行或?qū)⒁M(jìn)行的程序設(shè)計比賽,這些比賽都是由名?;蛎笈e辦的。平臺所有題目都以中文形式呈現(xiàn),并且給出算法使用提示,還注明了難度,讓用戶能夠更加靈活地使用題庫。它還有欄目“hiho -下”,可推送“每日一題”,讓編程成為hihoCoder用戶的生活習(xí)慣。hihoCoder擁有自己的討論社區(qū),讓用戶能在社區(qū)里相互交流、探討。因此,該平臺功能十分強(qiáng)大,而且為用戶考慮得非常全面。

1.2 0J平臺功能分析

本校的Online Judge平臺設(shè)計目的主要有兩點:一是為學(xué)校提供一個獨立的擁有龐大題庫的在線測試平臺以輔助教學(xué)實踐與賽事培訓(xùn),以學(xué)生為中心,幫助學(xué)生樹立“算法”思想[11]。用戶瀏覽網(wǎng)頁選擇題目,通過網(wǎng)頁提交代碼,由服務(wù)器端調(diào)用編譯程序?qū)τ脩籼峤坏某绦蜻M(jìn)行編譯,然后由評測程序進(jìn)行評判,并返回相應(yīng)結(jié)果到網(wǎng)頁上供用戶查看[12];二是因為傳統(tǒng)采用實驗室FTP客戶端提交作業(yè)的方式,效率十分低下,且不利于學(xué)生利用課外時間練習(xí),以及學(xué)生與教師之間的交流,影響了教學(xué)效果,因此通過搭建一個在線測試平臺以實現(xiàn)教師對學(xué)生練習(xí)情況的跟蹤監(jiān)督。

通過實現(xiàn)以上兩個核心功能可達(dá)到以下目的:①計算機(jī)類競賽訓(xùn)練。為藍(lán)橋杯、ACM等程序設(shè)計競賽提供一個訓(xùn)練平臺,通過提供一個完善且龐大的題庫,讓學(xué)生可通過該平臺不斷鍛煉自己的答題水平,提升競賽能力,為將來在競賽中取得優(yōu)異成績打下良好基礎(chǔ);②教學(xué)實驗測試。為教學(xué)實驗課提供一個功能齊全的實踐平臺,由教師提供課程需要的實驗題目,系統(tǒng)即可快速制作一個實驗題庫。教師能夠根據(jù)自己所教科目創(chuàng)建每次實驗課內(nèi)容,并按照不同難度設(shè)置每章節(jié)題目。該方式解決了目前學(xué)生在實驗課上只能通過FTP下載作業(yè)要求、上傳程序,教師也無法直接查看結(jié)果等諸多問題。

從程序設(shè)計跟蹤的角度,教師可通過系統(tǒng)查看最近幾日每日總體數(shù)據(jù),包括學(xué)生總共提交次數(shù)、競賽題庫完成度、整個班或年級實驗完成情況等,避免了課程設(shè)計中代碼量較大,導(dǎo)致教師檢查代碼工作量大的問題[13]。學(xué)生用戶可通過個人中心查看自己答題信息與打卡進(jìn)展,包括每個實驗、章節(jié)及每道題完成情況、通過數(shù)、正確率等重要指標(biāo)信息。

從教學(xué)管理的角度,本系統(tǒng)可便于教師布置作業(yè)、管理實驗進(jìn)度、控制教學(xué)進(jìn)度、監(jiān)督學(xué)生完成情況等。教師布置作業(yè)時可以設(shè)置截止時間,學(xué)生需要在截止時間之前完成,即使提交了作業(yè),學(xué)生依然可以繼續(xù)復(fù)習(xí)作業(yè)中的題目并鞏固相關(guān)知識點。在講授課程時可以與本系統(tǒng)結(jié)合進(jìn)行授課,例如教授C、C++、JAVA和C#等課程的教師可利用系統(tǒng)進(jìn)行課堂在線程序的編寫,并利用系統(tǒng)的在線評分功能,及時展示出編程過程中可能存在的編譯錯誤及程序運行中的常見問題,為學(xué)生深入理解程序設(shè)計思想提供了一個更加直觀的平臺[14]。我校OJ平臺功能模塊如圖1所示。

2 0J平臺實現(xiàn)方案

2.1 網(wǎng)站設(shè)計

Online Judge是一種基于B/S結(jié)構(gòu)的多用戶在線評測系統(tǒng),允許用戶在線提交解題代碼,系統(tǒng)自動編譯運行并給出評測結(jié)果[15]。網(wǎng)站采用Vue+Spring Boot+MySQL框架進(jìn)行系統(tǒng)開發(fā)。Vue和Spring Boot是當(dāng)前主流的前后端框架,其中Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,采用自底向上增量開發(fā)的設(shè)計方式,是一種更加靈活的解決方案,構(gòu)架更加簡單,適合開發(fā)人員快速掌握其全部特性并投入使用,還便于與第三方庫或既有項目整合[16],因此將其作為一個前端項目,與后臺邏輯分開部署,只需請求相應(yīng)接口即可實現(xiàn)對應(yīng)功能;使用undertow代替tomcat作為Web服務(wù)器,undertow與tomcat相比,并發(fā)狀態(tài)下差別不是很大,然而undertow負(fù)載能力明顯高于tomcat,擁有更高的吞吐量,同時結(jié)合ngmx技術(shù)實現(xiàn)反向代理與負(fù)載均衡;采用Linux作為服務(wù)器,提升系統(tǒng)的可操作性和可維護(hù)性。

2.2 判題核心

判題主程序是判題系統(tǒng)的核心子程序,其主要功能是負(fù)責(zé)接受與分派判題請求[17],實現(xiàn)機(jī)制是使用Linux系統(tǒng)自帶的gcc和g++進(jìn)行編譯運行,通過C語言執(zhí)行g(shù)cc、g++編譯命令,并將輸入的可執(zhí)行文件放到指定目錄下。C語言的MySQL庫函數(shù)可以直接對數(shù)據(jù)庫進(jìn)行修改,實時改變數(shù)據(jù)庫狀態(tài)。

2.2.1 編譯部分

對于C程序,完整的調(diào)用類似system(”/usr/bin/geclOOO.e -0 1000 -ansi -Wall -Wextra Im 2>/tmp/oj_ gcc_err.txt”),使用的gcc選項如表1所示[18]。

2.2.2 執(zhí)行部分

為了解決學(xué)生在最初學(xué)習(xí)時會導(dǎo)致代碼進(jìn)入死循環(huán),以及有人惡意上傳危害服務(wù)器系統(tǒng)的代碼等問題,保證服務(wù)器的安全性,使判題系統(tǒng)能夠穩(wěn)定運行,本文采用當(dāng)今比較流行的Docker技術(shù)。

Docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包其應(yīng)用及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實現(xiàn)虛擬化。容器完全使用沙箱機(jī)制,相互之間不會有任何接口。

在環(huán)境搭建時,通過Dockerfile創(chuàng)建出適用于判題的Docker鏡像,可以自由地在Dockerfile中寫入安裝命令,方便以后針對其它語言進(jìn)行判題。首先,在服務(wù)器上安裝gcc、g++、Java運行環(huán)境,在程序運行前先啟動一個容器,并將實際文件路徑映射到docker容器的虛擬路徑中,運行預(yù)先執(zhí)行的命令,緊接著在“沙箱”中執(zhí)行程序,最后將代碼輸出結(jié)果與測試結(jié)果相比較,即能獲得最后結(jié)果。

docker容器用完即銷毀,因而能完美地規(guī)避掉上面所提到的風(fēng)險。倘若出現(xiàn)死循環(huán)的情況,則容器在運行一定時間后會因檢測到異常而自動關(guān)閉。對系統(tǒng)具有破壞性的代碼只會導(dǎo)致容器異常,而不會使服務(wù)器無法正常工作。

Docker命令:啟動一個名為OJ的容器將本機(jī)/root/Test文件夾下的內(nèi)容映射到容器中的/Test下,執(zhí)行一c之后的命令:

docker

run --rm --cap-add=SYS_PTRACE -u

oj -v/root/Test: /Test oj /bin/sh -e“cd /Test./a.out$1$2 $3 $4 $5 $6”

在進(jìn)行判題時,首先通過pid()創(chuàng)建一個子線程,判題前需要對線程進(jìn)行資源限制,以防止該線程出現(xiàn)。具體實現(xiàn)步驟如下:

1.while(1)的死循環(huán)

2.不停地malloc分配內(nèi)存,占用地址空間

3.不停地創(chuàng)建子線程

通過int setrlimit( int resource,const struct rlimit *rlim);函數(shù)限定時間和空間

struct rlimit{

rlim_t rlim—cur; /*軟限制,當(dāng)前限制*/

rlim_t rlim—max; /*硬限制,最大限制*/

};

通過判題,會根據(jù)判題結(jié)果返回不同信息,若通過則返回“通過”,若不通過,則會返回錯誤信息如“答案錯誤”、“編譯錯誤”、“超時”等。其中若存在編譯錯誤,返回信息中還會加入控制臺輸出的具體錯誤信息。判題流程如圖2所示。

兩個函數(shù)的resource參數(shù)取下列值之一:

RLIMIT AS

進(jìn)程可用存儲區(qū)的最大總長度(字節(jié))

RLIMIT CORE

core文件最大字節(jié)數(shù)

RLIMIT CPU

CPU時間最大量值(s)

RLIMIT DATA

數(shù)據(jù)段最大字節(jié)長度

RLIMIT FSIZE

可以創(chuàng)建的文件最大字節(jié)長度

RLIMIT LOCKS

一個進(jìn)程可持有的文件鎖最大數(shù)

RLIMIT MEMLOCK -個進(jìn)程使用mlock(2)能夠鎖定在存

儲器中的最大字節(jié)長度

RLIMIT NOFILE 每個進(jìn)程能打開的最大文件數(shù)

RLIMIT NPROC

每個實際用戶ID可擁有的最大子進(jìn)

程數(shù)

RLIMIT RSS

最大駐內(nèi)存集的字節(jié)長度(resident set

size in bytes,RSS)

RLIMITSBSIZE

用戶在任一給定時刻可占用的套接字

緩沖區(qū)最大長度(字節(jié))

RLIMIT_STACK

棧的最大字節(jié)長度

RLIMIT_VMEM

RLIMIT—AS的同義詞(Linux 2.4.22不

支持)

3 主要模塊介紹

3.1 學(xué)生實驗?zāi)K

學(xué)生在課堂練習(xí)模塊(見圖3)中選擇課程后,可看到課程每個實驗完成情況和總體完成率。每個實驗作為一組,展示每個實驗截止日期以及該組中題目名稱,點擊題目即可進(jìn)入答題界面。如果一個實驗所有題目都已完成,在頂部顯示完成標(biāo)志,沒有完成則顯示未完成。

3.2 答題模塊

點擊題目名稱進(jìn)入答題模塊,界面顯示題目難度及題目信息。提交答案之后,系統(tǒng)返回程序運行需要的時間與內(nèi)存空間,以及程序編譯、運行結(jié)果(見圖4),以便學(xué)生針對錯誤進(jìn)行修改。

4 網(wǎng)站優(yōu)化

為了能夠在低成本條件下提供更加強(qiáng)大的性能,除之前提到的更換服務(wù)器外,還可以對Java啟動參數(shù)進(jìn)行調(diào)整,更改JVM內(nèi)存空間與堆的大小,使程序能夠承受更大壓力。因為docker內(nèi)存消耗略大,可以將主要判題業(yè)務(wù)從后臺項目中剝離出來,部署在另一臺服務(wù)器上,形成分布式架構(gòu)。

Spring Cloud是基于Spring Boot推出的一系列框架、組件的有序集合,簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施開發(fā)[19]。通過Eureka注冊中心,將主要業(yè)務(wù)與其它業(yè)務(wù)一起注冊。使用Spring Cloud可以直接調(diào)用另一臺服務(wù)器的服務(wù),相比之前都部署在一臺服務(wù)器上,可以大大減小服務(wù)器壓力。

5 結(jié)語

Online Judge系統(tǒng)作為計算機(jī)專業(yè)學(xué)生在程序設(shè)計初期的訓(xùn)練平臺,有著十分重要的意義。本文在調(diào)研主流OJ平臺的基礎(chǔ)上,詳細(xì)描述了本校OJ平臺的功能模塊、技術(shù)架構(gòu)及實現(xiàn)方案。在具體實現(xiàn)上,采用Vue+Spring Boot+MySQL流行框架,并借助undertow Web服務(wù)器的優(yōu)越性與docker容器運行的安全性,有效提升了系統(tǒng)性能。未來可在其基礎(chǔ)上進(jìn)一步添加競賽比拼、積分激勵等新功能,再與課程教學(xué)緊密結(jié)合,注重提升學(xué)生的實際動手能力,激發(fā)學(xué)生學(xué)習(xí)的主動性與創(chuàng)新性,鍛煉其編程能力,提高學(xué)生學(xué)習(xí)效率[20]。同時還可在賽事培訓(xùn)、課程跟蹤、教學(xué)反饋、教學(xué)分析等若干教學(xué)管理環(huán)節(jié)中發(fā)揮更大作用,提高教學(xué)質(zhì)量,形成程序設(shè)計學(xué)習(xí)閉環(huán),以期為社會培養(yǎng)更多高質(zhì)量的計算機(jī)專業(yè)應(yīng)用型人才。

參考文獻(xiàn):

[1]張麗萍,東升.程序設(shè)計類課程考核評價方法的改革與實踐[J].計算機(jī)教育,2010,110( 2):16-20.

[2] 羅英偉,汪小林,張正熠.編程網(wǎng)格:一個基于Online Judge的程序設(shè)計類課程教學(xué)輔助系統(tǒng)[J].教育與教學(xué)研究,2009(2):87-11.

[3]季曉慧,張玉清.C程序設(shè)計教學(xué)中的在線評測系統(tǒng)應(yīng)用[J].電腦知識與技術(shù),2014,10(7):1465-1466.

[4] 魯靜軒,孫晶,李元高.程序在線評側(cè)系統(tǒng)的設(shè)計與實現(xiàn)[J].硅谷,2008( 24):38-38.

[5]尤楓,史晟輝,趙瑞蓮.編譯程序在線評測系統(tǒng)的實現(xiàn)[J].實驗室研究與探索,2010,29( 12):69-77.

[6] 劉楠,孫國道,田賢忠.ACM在線評判系統(tǒng)設(shè)計與實現(xiàn)[J].計算機(jī)時代,2010(2):34-38.

[7] 王騰,姚丹霖.Online Judge系統(tǒng)的設(shè)計開發(fā)[J].計算機(jī)應(yīng)用與軟件,2006, 23( 12): 129-137.

[8] 熊茜,雷亮,許莎,等.基于在線判題系統(tǒng)的C語言實驗教學(xué)改革[J].重慶科技學(xué)院學(xué)報(社會科學(xué)版),2015( 10):67-69.

[9] 李文新,郭煒.北京大學(xué)程序在線評測系統(tǒng)及其應(yīng)用[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2005( 23):170-177.

[10] 蔡崇超.基于Web的在線判題系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2016.15(3):107-109.

[11] 肖瀟,賀細(xì)平.C語言程序設(shè)計教學(xué)探索[J].計算機(jī)教育,2011(5):65-68.

[12]莊奇東,王鍵聞,張楠,等.Online Judge系統(tǒng)的優(yōu)化[J].計算機(jī)系統(tǒng)應(yīng)用,2011,20(8):115-121.

[13] 陳湘驥,徐東風(fēng),楊秋妹.在線評判在C語言課程設(shè)計教學(xué)中的應(yīng)用[J].計算機(jī)教育,2010(3):97-100.

[14] 喬少杰,楊燕,葛永明,等.基于B/S架構(gòu)的多用戶在線程序評判系統(tǒng)設(shè)計與實現(xiàn)[J].計算機(jī)工程與科學(xué),2011,33(Al):58-61.

[15]何迎升,羅強(qiáng).Online Judge評判內(nèi)核的設(shè)計與實現(xiàn)[J].吉首大學(xué)學(xué)報,2010,31(6):37-38.

[16] 朱二華.基于Vue.is的Web前端應(yīng)用研究[J].科技與創(chuàng)新,2017( 20):119-121.

[17]韓志科,王貴,韓俊杰.基于API自動測試的程序設(shè)計在線判題系統(tǒng)的研究與實現(xiàn)[J].計算機(jī)系統(tǒng)應(yīng)用,2008,17( 7):9-13.

[18] 楊志偉,曾艷姍.基于Linux的ACM在線評測系統(tǒng)研究[J].計算機(jī)與現(xiàn)代化,2010(6):166-169.

[19] 王方旭.基于Spring Cloud和Docker的微服務(wù)架構(gòu)設(shè)計[J].中國信息化,2018(3):53-55.

[20] 王娟.基于Online Judge的高級語言程序設(shè)計課程教學(xué)改革[J].吉林省教育學(xué)院學(xué)報,2012,28(10):85-87.

(責(zé)任編輯:黃?。?/p>

基金項目:全國高等院校計算機(jī)基礎(chǔ)教育研究會計算機(jī)基礎(chǔ)教學(xué)研究與改革項目(AFCEC-2016-18);南京大學(xué)金陵學(xué)院校級教改項目( 0010521816)

作者簡介:孔欽(1983-),女,碩士,南京大學(xué)金陵學(xué)院信息科學(xué)與工程學(xué)院講師,研究方向為計算機(jī)應(yīng)用、數(shù)據(jù)分析。

主站蜘蛛池模板: 色有码无码视频| 亚亚洲乱码一二三四区| 国产一区二区精品福利| 无码AV动漫| 精品久久综合1区2区3区激情| 久久精品最新免费国产成人| 99精品国产自在现线观看| 99re这里只有国产中文精品国产精品 | 久久香蕉国产线看观看亚洲片| 亚洲欧美日韩另类| 久久亚洲国产最新网站| 99在线观看精品视频| 91网在线| 欧美日韩国产成人高清视频| 波多野结衣第一页| 美女免费黄网站| 国产精品美人久久久久久AV| 就去色综合| 97精品国产高清久久久久蜜芽 | 欧美亚洲国产精品久久蜜芽| 天堂成人在线| 免费日韩在线视频| 九色视频线上播放| 日本在线视频免费| 亚洲欧美日本国产专区一区| 亚洲午夜片| 精品视频福利| 亚洲水蜜桃久久综合网站| 丁香综合在线| 不卡无码h在线观看| 伊人丁香五月天久久综合 | 色老头综合网| 欧美视频在线第一页| 在线亚洲小视频| 国产成人一区二区| 日本尹人综合香蕉在线观看| 怡红院美国分院一区二区| 成人在线天堂| 91久久夜色精品国产网站| 成人日韩视频| 亚洲制服丝袜第一页| 国产乱子伦视频在线播放| 日韩欧美91| 无码精品一区二区久久久| 亚洲爱婷婷色69堂| 久久96热在精品国产高清| 国产精品综合久久久| 国产真实自在自线免费精品| 色噜噜在线观看| 国产女人在线视频| 国产成人精品男人的天堂| 亚洲三级片在线看| 精品人妻AV区| 欧美午夜视频在线| 国产超薄肉色丝袜网站| 日韩精品一区二区三区免费| 女人爽到高潮免费视频大全| 亚洲伊人久久精品影院| 免费可以看的无遮挡av无码 | 国产另类视频| 国内精品视频| 亚洲色图欧美| 亚洲一级毛片免费观看| 精品人妻无码中字系列| 99热这里只有免费国产精品| 国产新AV天堂| 国产福利不卡视频| 欧美日在线观看| 国产日本欧美亚洲精品视| 国产精品密蕾丝视频| 久久久久夜色精品波多野结衣| a毛片免费在线观看| 国产91高清视频| a毛片免费在线观看| 国产女人爽到高潮的免费视频| 九九热视频在线免费观看| 日本黄色a视频| 欧美激情首页| 在线看AV天堂| 97国产在线观看| 高清无码一本到东京热| 久久毛片免费基地|