91精品国产91久久久久久_国产精品二区一区二区aⅴ污介绍_一本久久a久久精品vr综合_亚洲视频一区二区三区

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代做ECS34、C++編程設計代寫

時間:2024-03-14  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



ECS34 WQ24 February 17, 2024
Project 4
1 of 9
Project 4
Due March 11, 2024 at 9:00 PM
You will be working with a partner for this project. This specification is subject to change at any
time for additional clarification.
Desired Outcomes
• Exposure to GoogleTest and Google Mock
• Exposure to Expat XML library
• Exposure to Open Street Map file formats
• Use of git repository
• Exposure to documenting code in Markdown
• An understanding of how to develop Makefiles that build and execute unit tests
• An understanding of delimiter-separated-value files
• An understanding of XML files
• An understanding of Dijkstra’s Algorithm
• An understanding of how to integrate a third-party C library in C++
Project Description
Navigation is a critical to modern society. Once source and destination coordinates are translated
to vertices, the shortest or fastest path can be calculated to route the user to their destination. The
goal of your project is to write a program that will be able to parse an OpenStreetMap (OSM) file
for an area and then to find shortest/fastest routes as fast as possible. Additionally, the goal is to
include multiple methods of transportation (biking vs walking and bus) in your search for fastest
routes. You will be building a program that can find paths, print and save them. You will be
building upon the classes from project 3. Some of the capabilities are extra credit, see the extra
credit section to determine what is required, and what is extra credit.
The CBusSystemIndexer class you will be developing will index the CBusSystem
information provided for ease of lookup of stops and routes. It will be helpful class in developing
some of the later components of the project.
// CBusSystemIndexer member functions
// Constructor for the Bus System Indexer
CBusSystemIndexer(std::shared_ptr<CBusSystem> bussystem);
// Destructor for the Bus System Indexer
~CBusSystemIndexer();
// Returns the number of stops in the CBusSystem being indexed
std::size_t StopCount() const noexcept;
// Returns the number of routes in the CBusSystem being indexed
std::size_t RouteCount() const noexcept;
ECS34 WQ24 February 17, 2024
Project 4
2 of 9
// Returns the SStop specified by the index where the stops are sorted by
// their ID, nullptr is returned if index is greater than equal to
// StopCount()
std::shared_ptr<SStop> SortedStopByIndex(std::size_t index) const noexcept;
// Returns the SRoute specified by the index where the routes are sorted by
// their Name, nullptr is returned if index is greater than equal to
// RouteCount()
std::shared_ptr<SRoute> SortedRouteByIndex(std::size_t index) const noexcept;
// Returns the SStop associated with the specified node ID, nullptr is
// returned if no SStop associated with the node ID exists
std::shared_ptr<SStop> StopByNodeID(TNodeID id) const noexcept;
// Returns true if at least one route exists between the stops at the src and
// dest node IDs. All routes that have a route segment between the stops at
// the src and dest nodes will be placed in routes unordered set.
bool RoutesByNodeIDs(TNodeID src, TNodeID dest,
 std::unordered_set<std::shared_ptr<SRoute> > &routes) const noexcept;
// Returns true if at least one route exists between the stops at the src and
// dest node IDs.
bool RouteBetweenNodeIDs(TNodeID src, TNodeID dest) const noexcept;
The CDijkstraPathRouter class you will be developing will implement the
CPathRouter abstract interface. The CDijkstraPathRouter class will find the shortest
path between source and destination vertices if one exists. At the core the shortest path finding
algorithm must utilize Dijkstra’s Algorithm, though you may optimize where available. The vertex
IDs do not have to match the node or stop IDs used by the other classes. You will need to write a
test program for the CDijkstraPathRouter.
// CDijkstraPathRouter member functions
// Constructor for the Dijkstra Path Router
CDijkstraPathRouter();
// Destructor for the Dijkstra Path Router
~CDijkstraPathRouter();
// Returns the number of vertices in the path router
std::size_t VertexCount() const noexcept;
// Adds a vertex with the tag provided. The tag can be of any type.
TVertexID AddVertex(std::any tag) noexcept;
// Gets the tag of the vertex specified by id if id is in the path router.
// A std::any() is returned if id is not a valid vertex ID.
std::any GetVertexTag(TVertexID id) const noexcept;
// Adds an edge between src and dest vertices with a weight of weight. If
// bidir is set to true an additional edge between dest and src is added. If
// src or dest nodes do not exist, or if the weight is negative the AddEdge
// will return false, otherwise it returns true.
bool AddEdge(TVertexID src, TVertexID dest, double weight, bool bidir =
 false) noexcept;
ECS34 WQ24 February 17, 2024
Project 4
3 of 9
// Allows the path router to do any desired precomputation up to the deadline
bool Precompute(std::chrono::steady_clock::time_point deadline) noexcept;
// Returns the path distance of the path from src to dest, and fills out path
// with vertices. If no path exists NoPathExists is returned.
double FindShortestPath(TVertexID src, TVertexID dest, std::vector<TVertexID>
 &path) noexcept;
The CDijkstraTransportationPlanner class you will be developing will implement
the CTransportationPlanner abstract interface. You will build upon the street map, bus
system, bus system indexer, and path router to implement the transportation planner. The
configuration of the transportation system will be provided as a parameter to the constructor.
// CDijkstraTransportationPlanner member functions
// Constructor for the Dijkstra Transportation Planner
CDijkstraTransportationPlanner(std::shared_ptr<SConfiguration> config);
// Destructor for the Dijkstra Transportation Planner
~CDijkstraTransportationPlanner();
// Returns the number of nodes in the street map
std::size_t NodeCount() const noexcept override;
// Returns the street map node specified by index if index is less than the
// NodeCount(). nullptr is returned if index is greater than or equal to
// NodeCount(). The nodes are sorted by Node ID.
std::shared_ptr<CStreetMap::SNode> SortedNodeByIndex(std::size_t index) const
 noexcept override;
// Returns the distance in miles between the src and dest nodes of the
// shortest path if one exists. NoPathExists is returned if no path exists.
// The nodes of the shortest path are filled in the path parameter.
double FindShortestPath(TNodeID src, TNodeID dest, std::vector< TNodeID >
 &path) override;
// Returns the time in hours for the fastest path between the src and dest
// nodes of the if one exists. NoPathExists is returned if no path exists.
// The transportation mode and nodes of the fastest path are filled in the
// path parameter.
double FindFastestPath(TNodeID src, TNodeID dest, std::vector< TTripStep >
 &path) override;
// Returns true if the path description is created. Takes the trip steps path
// and converts it into a human readable set of steps.
bool GetPathDescription(const std::vector< TTripStep > &path, std::vector<
 std::string > &desc) const override;
ECS34 WQ24 February 17, 2024
Project 4
4 of 9
The CTransportationPlannerCommandLine class you will be developing will
implement the command line interface for the transplanner program. The transplanner
program is a command line program that will take in commands and execute what is requested.
// CTransportationPlannerCommandLine member functions
// Constructor for the Transportation Planner Command Line
CTransportationPlannerCommandLine(std::shared_ptr<CDataSource> cmdsrc,
 std::shared_ptr<CDataSink> outsink,
 std::shared_ptr<CDataSink> errsink,
 std::shared_ptr<CDataFactory> results,
 std::shared_ptr<CTransportationPlanner> planner);
// Destructor for the Transportation Planner Command Line
~CTransportationPlannerCommandLine();
// Processes the commands input to the
bool ProcessCommands();
An example CSV and OSM file set will be provided, the files will be used in project 4. Your tests
should be built with them in mind, but you shouldn’t load the files as part of the tests.
The Makefile you develop needs to implement the following:
• Must create obj directory for object files (if doesn’t exist)
• Must create bin directory for binary files (if doesn’t exist)
• Must compile cpp files using C++17
• Must link string utils and string utils tests object files to make teststrutils executable
• Must link StringDataSource and StringDataSourceTest object files to make
teststrdatasource executable
• Must link FileDataSource, FileDataSink, FileDataFactory and
FileDataSSTest object files to make testfiledatass executable
• Must link StringDataSink and StringDataSinkTest object files to make
teststrdatasink executable
• Must link DSV reader/writer and DSV tests object files to make testdsv executable
• Must link XML reader/writer and XML tests object files to make testxml executable
• Must link KMLWriter and KMLTest object files to make testkml executable
• Must link CSVBusSystem and CSVBusSystem tests object files to make testcsvbs
executable
• Must link OpenStreetMap and OpenStreetMap tests object files to make testosm
executable
• Must link DijkstraPathRouter and DijkstraPathRouter tests object files to
make testdpr executable
• Must link BusSystemIndexer and CSVBusSystemIndexerTest object files to
make testcsvbsi executable
• Must link TransportationPlannerCommandLine and TPCommandLineTest
object files to make testtpcl executable
ECS34 WQ24 February 17, 2024
Project 4
5 of 9
• Must link CSVOSMTransportationPlannerTest,
DijkstraTransportationPlanner and other required object files to make
testtp executable
• Must execute the teststrutils, teststrdatasource, teststrdatasink,
testfiledatass, testdsv, testxml, testcsvbs, testosm, testdpr,
testcsvbsi, testtp, and testtpcl test executables
• Must build the transplanner and speedtest executables once all tests pass
• Must provide a clean that will remove the obj and bin directories
Provided Helper Classes/Tests
• FileDataSource, FileDataSink, and FileDataFactory provide classes for
accessing files/directories as sources/sinks
• StandardDataSource, StandardDataSink, and StandardDataErrorSink
provide classes for accessing standard I/O as sources/sinks
• STransportationPlannerConfig provides a basic implementation for the
configuration interface with the default assumptions
• GeographicUtils provides static methods for calculating distance, bearings, etc. and
will be necessary for calculating the shortest/fastest paths
• KMLWriter and kmlout files provide a class and program that can convert saved paths
into KML files that can be used on google maps
• CSVBusSystemIndexterTest, CSVOSMTransporationPlannerTest,
FileDataSSTest, and TPCommandLineTest provide google tests for much of what
you need to develop
Important Assumptions
• For shortest path assume only follow direction specified in the street map, so you can't go
backward along a "oneway"
• For fastest path, assume can walk both directions regardless of "oneway", bike/bus must
follow "oneway". Also, you cannot bike along paths that specify "bicycle" as "no"
• Assume busses route will take shortest path (don't worry about calculating fastest path)
• Walk speed must be taken from config WalkSpeed function (default is 3mph)
• Bike speed must be taken from config BikeSpeed function (default is 8mph)
• Bus follows speed limit and DefaultSpeedLimit function will provide the assumed
speed limit if the way does not specify it (default is 25 mph)
• You cannot take your bike on the bus, so if you take the bus you must walk to it
• When creating the path description:
o The direction must be based upon beginning point on a street to the end point of
travelling on the street, not the beginning point and the next point
o The direction is listed as along if the street name is known, and toward if the street
name is not known, but the next street is known
o When there are multiple options for taking a bus, the bus that will go the furthest
will be taken. If multiple options are available, the bus with the earliest sorted name
will be taken
ECS34 WQ24 February 17, 2024
Project 4
6 of 9
You must have a docs directory that contains Markdown (.md) files that document the
CPathRouter, CDijkstraPathRouter, CTransportationPlanner,
CDijkstraTransportationPlanner, and
CTransportationPlannerCommandLine classes and their use. The documentation of
each class and function should be consistent. Code examples are excellent for documenting the
use of the developed classes.
You can unzip the given tgz file with utilities on your local machine, or if you upload the file to
the CSIF, you can unzip it with the command:
tar -xzvf proj4given.tgz
You must submit the source file(s), your Makefile, README file, and .git directory in a tgz
archive. Do a make clean prior to zipping up your files so the size will be smaller. You can tar
gzip a directory with the command:
tar -zcvf archive-name.tgz directory-name
A working example can be found on the CSIF in /home/cjnitta/ecs34/transplanner.
Your program is expected to have the same interface as the working example. The full interface
can be listed by typing help after launching the program. A program that can convert saved paths
into KML files has also been provided /home/cjnitta/ecs34/kmlout. Directions of how
to view a KML file in google maps can be found at https://youtu.be/1HqQuHeGa38.
You should avoid using existing source code as a primer that is currently available on the Internet.
You must specify in your readme file any sources of code that you have viewed to help you
complete this project. All class projects will be submitted to MOSS to determine if students have
excessively collaborated. Excessive collaboration, or failure to list external code sources will result
in the matter being referred to Student Judicial Affairs.
Recommended Approach
The recommended approach is as follows:
1. Create a git repository and add your project 3 and provided files.
2. Update your project 3 Makefile to meet the specified requirements. The order of the tests
to be run should the teststrutils, teststrdatasource, teststrdatasink,
testfiledatass, testdsv, testxml, testcsvbs, testosm, testdpr,
testcsvbsi, testtp, and testcl
3. Verify that your string utils, string data source, string data sink, file data source/sink, DSV
reader, DSV writer, XML reader, XML writer, CSV Bus System, OSM, KML writer, tests
all compile, run and pass.
4. Create the files and skeleton functions for BusSystemIndexer.cpp, DijkstraPathRouter.cpp,
DijkstraPathRouterTest.cpp, DijkstraTransportationPlanner.cpp,
TransportationPlannerCommandLine.cpp and transplanner.cpp.
ECS34 WQ24 February 17, 2024
Project 4
7 of 9
5. Write tests for the CDijkstraPathRouter class. Each test you write should fail, make
sure to have sufficient coverage of the possible data input. This will complete the test files
as others will be provided for you.
6. Once tests have been written that fail with the initial skeleton functions, begin writing your
CBusSystemIndexer functions. It should be noted that since the
CBusSystemIndexer, CDijkstraPathRouter, and
CTransportationPlannerCommandLine classes do not rely on one another for
testing, they could potentially be done in any order.
7. Once the CBusSystemIndexer class is complete, begin writing your
CDijkstraPathRouter functions.
8. Once the CDijkstraPathRouter class is complete, begin writing your
CDijkstraTransportationPlanner functions.
NOTE: the GetPathDescription function is extra credit!
9. Once the CDijkstraTransportationPlanner class is complete, begin writing
your CTransportationPlannerCommandLine functions.
10. Once the CTransportationPlannerCommandLine and
CDijkstraTransportationPlanner classes are complete, begin writing the
transplanner program. There will be requirement to parse the command arguments
but setting up of the config to create the CTransportationPlannerCommandLine
is mainly what is needed.
Grading
The point breakdown can be seen in the table below. Make sure your code compiles on the CSIF
as that is where it is expected to run. You will make an interactive grading appointment to have
your assignment graded. You must have a working webcam for the interactive grading
appointment. Project submissions received 24hr prior to the due date/time will received 10% extra
credit. The extra credit bonus will drop off at a rate of 0.5% per hour after that, with no additional
credit being received for submissions within 4hr of the due date/time.
Points Description
10 Has git repository with appropriate number of commits
5 Has Makefile and submission compiles
5 Makefile meets specified requirements
5 Has DijkstraPathRouter google tests that fail with initial skeleton
functions
5 Student DijkstraPathRouter google tests have reasonable coverage
5 Google tests detect errors in instructor buggy code
5 BusSystemIndexer functions pass all tests
5 DijkstraPathRouter pass all student tests
5 DijkstraPathRouter pass all instructor tests
5 DijkstraTransportationPlanner pass all tests (except path description)
5 TransportationPlannerCommandLine pass all tests
5 transplanner fully functional (except print)
5 speedtest fully functional and performs at least at baseline speed
ECS34 WQ24 February 17, 2024
Project 4
8 of 9
10 Code is properly commented with consistent conventions
10 Documentation of classes is consistent and complete
10 Student understands all code they have provided
Extra Credit
There are two opportunities for extra credit on Project 4: Path Description and Speed Performance.
(Up to 25% extra) Path Description
Successfully implement the GetPathDescription function of the
CDijkstraTransportationPlanner class. Must pass all tests, and transplanner
must print the path as the provided version does for the same input.
(Up to 25% extra) Speed Performance
The speed test will test the speed of your CDijkstraTransportationPlanner against the
baseline code. The idea is that your program would be part of a server that would be rebooted daily
and then would handle as many queries as possible. The more queries your program can handle in
a day, the fewer servers that would need to be in operation to handle the daily load. Your program
will have a maximum of 30s to load the data and do any precomputation necessary to start handling
the requests.
A speedtest program has been provide for the baseline (speedtest_baseline) and the
optimized version (speedtest_optimized). The program will output the number of queries
that could be completed in 24hr, it will also output a brief of the path distances/times. A
speedtest.cpp source file that will calculate the number of queries has been provided. Do not
modify the speedtest.cpp when constructing your speedtest program. A verbose listing
of the paths can be created with the --verbose option. Speed comparisons will be done with
compiler optimizations disabled. If your implementation outperforms the baseline
speedtest_baseline, some extra credit will be available. The goal for full extra credit is to
outperform the speedtest_optimized.
Helpful Hints
• Read through the guides that are provided on Canvas
• See http://www.cplusplus.com/reference/, it is a good reference for C++ built in functions
and classes
• Use lenth(), substr(), etc. from the string class whenever possible.
• If the build fails, there will likely be errors, scroll back up to the first error and start from
there.
• You may find the following line helpful for debugging your code:
std::cout<<__FILE__<<" @ line: "<<__LINE__<<std::endl;
It will output the line string "FILE @ line: X" where FILE is the source filename and
X is the line number the code is on. You can copy and paste it in multiple places and it will
output that particular line number when it is on it.
ECS34 WQ24 February 17, 2024
Project 4
9 of 9
• Make sure to use a tab and not spaces with the Makefile commands for the target
• make will not warn about undefined variables by default, you may find the
--warn-undefined-variables option very helpful
• The debug option for make can clarify which targets need to be built, and which are not.
The basic debugging can be turned on with the --debug=b option. All debugging can be
turned on with the --debug=a option.
• Make sure to use a.gitignore file to ignore your object files, and output binaries.
• Do not wait to the end to merge with you partner. You should merge your work together
on a somewhat regular basis (or better yet pair program).
• Use CStringDataSource and CStringDataSink to test your reader and writer
classes for DSV and XML.
• You will probably want to use static functions in your classes for the callbacks to the library
calls that require callbacks. The call data (void *) parameter that the functions take and
the callbacks pass back as a parameter, should be this from your object.
• You may find https://www.xml.com/pub/1999/09/expat/index.html helpful for describing
the libexpat functions. You are not going to need to use every function in the Expat library.
• The OSM XML file format is described https://wiki.openstreetmap.org/wiki/OSM_XML.
Though not necessarily important for this project, the tag features are described are
https://wiki.openstreetmap.org/wiki/Map_features.
• Use the --gtest_output=xml:filename to create test results files that can be used
to prevent rerunning tests that have already succeeded.
• Use the --gtest_filter=-Test.Subtest1:Test.Subtest2 to skip google
tests that won’t pass. This can be helpful for skipping say the
CSVOSMTransporationPlanner.PathDescription test that is extra credit.
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 

掃一掃在手機打開當前頁
  • 上一篇:COMP9021代寫、Python程序設計代做
  • 下一篇:8PRO102代寫、代做C++程序語言
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    91精品国产91久久久久久_国产精品二区一区二区aⅴ污介绍_一本久久a久久精品vr综合_亚洲视频一区二区三区
    乱码第一页成人| 日韩美女主播在线视频一区二区三区 | 亚洲激情二区| 波波电影院一区二区三区| 国产自产v一区二区三区c| 麻豆国产精品一区二区三区 | 五月激情综合婷婷| 51精品国自产在线| 欧美日韩久久不卡| 国产女主播一区| 蜜臀久久99精品久久久久宅男| 91网站最新地址| 91精品1区2区| 国产精品你懂的在线| 免费成人小视频| 黄色av一区| 日韩欧美一级片| 午夜天堂影视香蕉久久| 欧美一区二区三区久久精品茉莉花| 久久久噜噜噜| 一区二区中文视频| 成人小视频在线| 日本道精品一区二区三区| 欧美国产日产图区| 国产成a人亚洲精品| 香蕉国产精品偷在线观看不卡| 久久青草国产手机看片福利盒子| 欧美1区3d| 欧美影院一区二区| 亚洲欧美日韩电影| 91农村精品一区二区在线| 欧美日韩精品三区| 视频一区在线播放| 亚洲每日在线| 中文字幕一区二区三区在线观看| 成人高清免费观看| 在线观看91精品国产麻豆| 爽好多水快深点欧美视频| 国产主播一区| 国产欧美日韩不卡| av一区二区三区黑人| 欧美一区二区三区色| 久久国产精品72免费观看| 久久国产88| 亚洲综合免费观看高清完整版| 国产一区二区无遮挡| 久久久精品一品道一区| 盗摄精品av一区二区三区| 欧美日韩在线观看一区二区 | 狠狠狠色丁香婷婷综合激情 | 丝袜脚交一区二区| 欧美/亚洲一区| 337p亚洲精品色噜噜| 亚洲国产成人va在线观看天堂| 欧美日一区二区在线观看| 日韩一区二区在线看片| 亚洲三级在线看| 亚洲欧洲一区二区在线观看 | 午夜激情久久久| 亚洲国产精品日韩| 久久一二三国产| 国产九色精品成人porny| 99日韩精品| 欧美激情一区在线| 成人免费视频app| 欧美肥妇bbw| 麻豆91在线播放| 久久先锋资源| 中文字幕乱码久久午夜不卡| 成人精品在线视频观看| 欧美日韩一区二区三区免费看| 午夜激情久久久| 国产视频在线观看一区| 国产精品美女www爽爽爽| av亚洲产国偷v产偷v自拍| 欧美一区二区在线视频| 精品一区二区三区在线视频| 色婷婷激情久久| 亚洲一区二区免费视频| 激情综合久久| 亚洲图片激情小说| 激情久久一区| 亚洲欧洲99久久| 亚洲视频中文| 亚洲欧美一区二区三区国产精品| 欧美日韩一区在线观看视频| 国产欧美视频一区二区三区| 午夜久久一区| 精品国产1区二区| 1024日韩| 石原莉奈一区二区三区在线观看| 欧美中文字幕| 日韩高清不卡在线| 在线免费视频一区二区| 捆绑紧缚一区二区三区视频| 欧美另类z0zxhd电影| 精品在线观看视频| 日韩视频免费观看高清完整版 | 一区二区福利| 污片在线观看一区二区| 日本福利一区二区| 国产曰批免费观看久久久| 51久久夜色精品国产麻豆| 国产91高潮流白浆在线麻豆| 欧美亚州韩日在线看免费版国语版 | 亚洲人成网站在线| 先锋影音久久| 黄页视频在线91| 久久一二三国产| 精品动漫av| 北条麻妃国产九九精品视频| 夜夜嗨av一区二区三区网站四季av| 日韩一区二区三区视频在线观看 | 在线中文字幕一区| 国产传媒久久文化传媒| 国产农村妇女毛片精品久久麻豆| 在线免费观看欧美| 国产精品99久久久久| 欧美国产视频在线| 欧美日韩国产综合久久| 91同城在线观看| 美女国产一区二区三区| 日韩一区二区三区视频在线 | 国产精品对白交换视频| 久久久久久自在自线| 欧美日韩国产一区精品一区| 亚洲成人av资源| 2023国产精品视频| 一本一本久久a久久精品综合妖精| 国产高清久久久久| 亚洲视频在线观看一区| 精品粉嫩超白一线天av| 国产欧美日韩伦理| 99国产欧美久久久精品| 亚洲一区二区三区四区的| 国产欧美一区二区精品忘忧草| 一本一本大道香蕉久在线精品 | 精品国产乱码久久久久久1区2区| 一本久道综合久久精品| 99久久99久久综合| 日韩国产欧美在线观看| 国产精品福利一区二区| 欧美图区在线视频| 亚洲欧美久久久久一区二区三区| 成人看片黄a免费看在线| 美腿丝袜一区二区三区| 国产精品福利在线播放| 久久人人爽爽爽人久久久| 在线亚洲+欧美+日本专区| 亚洲茄子视频| 成人伦理片在线| 国产成人夜色高潮福利影视| 香蕉久久夜色精品国产使用方法| 亚洲视频免费看| 日韩精品一区国产麻豆| 91黄色激情网站| 欧美人伦禁忌dvd放荡欲情| 亚洲欧洲在线一区| 国产一区二区三区免费看| 亚洲国产欧美日韩另类综合| 国产午夜精品久久久久久免费视| 欧美日韩五月天| 欧美无砖专区一中文字| a在线播放不卡| 成人激情文学综合网| 国产成人av影院| 精品一区二区三区影院在线午夜| 日产精品久久久久久久性色| 亚洲精品水蜜桃| 亚洲午夜久久久久中文字幕久| 国产女主播在线一区二区| 国产欧美日韩激情| 精品国产一区二区三区忘忧草 | 成人免费毛片高清视频| 国产在线不卡一区| 国内一区二区在线| 午夜视黄欧洲亚洲| 欧美aⅴ一区二区三区视频| 亚洲欧美日韩一区二区三区在线观看 | 亚洲国产日韩精品| 亚洲视频中文字幕| 亚洲电影在线免费观看| 国产拍欧美日韩视频二区| 国产精品美女久久福利网站| 精品国产成人系列| 欧美成人在线直播| 国产欧美日韩精品一区| 国产欧美日韩精品一区| 亚洲欧洲制服丝袜| 亚洲欧美激情小说另类| 天堂影院一区二区| 午夜精品久久久久久久蜜桃app | 性色av一区二区怡红| 91国在线观看| 欧美日韩三级一区| 精品国产亚洲一区二区三区在线观看| 日韩欧美在线观看一区二区三区| 国产欧美视频在线观看| 国产偷国产偷亚洲高清97cao| 亚洲免费在线|