狠狠综合久久久久综合网址-a毛片网站-欧美啊v在线观看-中文字幕久久熟女人妻av免费-无码av一区二区三区不卡-亚洲综合av色婷婷五月蜜臀-夜夜操天天摸-a级在线免费观看-三上悠亚91-国产丰满乱子伦无码专区-视频一区中文字幕-黑人大战欲求不满人妻-精品亚洲国产成人蜜臀av-男人你懂得-97超碰人人爽-五月丁香六月综合缴情在线

代寫CanvasList CS 251 Project 3

時間:2024-03-02  來源:  作者: 我要糾錯


Project 3 - CanvasList

CS 251, Spring 2024

In this project (and the next!) we will build our own versions of data structures. By the end of this project, you will...

● Gain an understanding of the usage of a linked list in data structures

● Have practiced manipulating a linked list in various ways

● Understand the power of polymorphism in an object-oriented language

Remember, if you get stuck for more than 30 minutes on a bug, you should come to office hours. You should also come to office hours if you have questions about the guide or starter code, even if you haven’t written any code yet.

Restrictions

● You may not include additional C++ libraries to implement CanvasList or shapes. The only included library for CanvasList is <iostream>; and the only included library for shapes is <string>.

○ It’s fine to include libraries to write tests.

● You will need to use classes, pointers, and new. Do not use malloc, we’re not writing C.

● You may modify shape.cpp, canvaslist.cpp, and canvaslist_tests.cpp freely.

● You may modify canvaslist.h only to add additional private member functions. You

may not add additional member variables (public or private), or additional public member

functions.

● See Memory Safety & valgrind.

Logistics

There are 2 main things that are different about this project:

1. zyBooks does not easily support using valgrind in its autograder. It also does not support reusing a single compilation target to run multiple tests. Therefore, although you will have a zyBooks workspace and starter code, you will submit to Gradescope to receive autograder feedback. We expect you to make multiple submissions.

2. The way many of our tests are written gives away significant parts of what you will be working on. As such, we do not have a public test suite. Instead, we’ll give detailed failure messages to the extent possible.

Due:

● Gradescope: Monday 3/4, 11:59 PM

○ canvaslist.h

 

 ○ shape.cpp

○ canvaslist.cpp

○ canvaslist_tests.cpp

● Use grace tokens:

https://docs.google.com/forms/d/e/1FAIpQLSctqCl9ZYt52IKJZGnyrrJhuW5DMN1ZCJI7d 9C_Cutm3OliqA/viewform

○ Grace tokens should be requested by 5 PM the day before. For example, if you intend to submit the project by 11:59 PM on Tuesday 3/5, you must submit the form by 5 PM on Monday 3/4. If you submit later, you will need to wait until we process it to be able to receive autograder feedback from Gradescope.

○ This requires setting up a UIC Google account. If you have not yet done so, visit https://learning.uic.edu/resources/virtual-collaboration/google-workspace/.

Testing

We will continue studying and practicing testing, this time on a data structure. This raises an interesting question: in order to test the functions that tell us what’s inside the data structure, we have to add data. But then we’re assuming that the methods to add data work correctly! We’ll have to be ok with the fact that we’re testing two functions at once. Later, we can assume that these work correctly.

This time, we’re going to take a slightly different approach to evaluating your tests. We have many buggy implementations. Your task is to write tests that expose these buggy implementations! The bugs may be in CanvasList, Shape, or in one of the derived classes. You’ll receive credit for each buggy implementation that fails your tests. This will happen when you submit to Gradescope.

Keep in mind that the correct implementation must pass your tests to receive any credit – no writing EXPECT_TRUE(false), for example. To aid you in checking your own test cases, we’ve provided solution “object files”: canvaslist_solution.o and shape_solution.o.

In zyBooks, use make run_solution_tests to run your tests on the course staff’s correct solution.

Memory “Ownership”

When we pass pointers around as arguments or return values, it’s important to track what part of the program is responsible for freeing the memory associated with that pointer. We call this concept “ownership” – whomever “owns” a pointer is responsible for freeing it.

This isn’t actually enforced by the compiler or anything – it’s an informal model that helps us keep track of when to free things. Here’s an example:

 

 class MyClass {

 public:

  int* ptr;

  MyClass() {

ptr = new int;

*ptr = 10; }

  ~MyClass() {

    if (ptr != nullptr) {

delete ptr; }

  }

  int* getPtr() {

    // Who owns this now?

return ptr; }

};

int main() {

  MyClass mc;

  int* p = mc.getPtr();

  delete p;

}

Here, we have code that eventually ends up with 2 pointers in different places that point to the same memory. This is a problem! The delete p; in main and the destructor ~MyClass() both try to delete the same underlying memory, causing a double free error.

We need to make sure only one of them runs – but which one? This is where the concept of documenting ownership comes in handy. Here’s two examples, either of which will prevent the double free error.

     // MyClass keeps ownership, caller

// must not free returned ptr

int* getPtr() {

return ptr; }

int main() {

 // Ownership transferred to caller,

// caller must free returned ptr

int* getPtr() {

  int *ret = ptr;

  ptr = nullptr;

  return ret;

}

int main() {

 

    MyClass mc;

  int* p = mc.getPtr();

}

   MyClass mc;

  int* p = mc.getPtr();

  delete p;

}

 In the example on the left, MyClass keeps ownership and will free ptr in its destructor – according to the method comment, the caller must not free the returned pointer. There’s nothing stopping the caller from doing so, though, so it’s just documentation.

In the example on the right, MyClass gives up or transfers ownership. According to the documentation, the caller must free the returned pointer. Therefore, the implementation sets ptr = nullptr; inside the class, preventing the destructor from deleting it. Outside the class, in main, the pointer is deleted. Again, there’s nothing guaranteeing the caller deletes the pointer.

If this all seems difficult to keep track of, you’re right! It’s super important though, and that’s why C++11 added a feature called “smart pointers”. These help keep track of ownership for us, and lets the language take care of when dynamically allocated memory gets free’d. Unfortunately, they’re a bit too much to cover in 251 and we won’t see them this term.

Memory Safety & valgrind

In this class, we care a lot about writing correct C++ code. One aspect of correctness that is much more relevant when working with pointers is memory safety – does our program only access memory that it is allowed to? Programs that have out-of-bounds accesses or use-after-frees or other memory issues are broken programs.

On the other hand, memory leaks aren’t as bad, but they still indicate poor “hygiene” and loose memory management. You’ll definitely have memory leaks until you complete the destructor. Even then, you may have memory leaks due to mismanagement. As such, we’ll have a flat score item for writing a program that has no memory leaks and passes at least one test.

  Some of the functions you will implement will specify how to handle pointer ownership, and our tests expect these to be implemented properly. Make sure you pay attention to this, so you don’t get double frees or memory leaks!

   We care so strongly about this, in fact, that a program with memory errors, such as out-of-bounds accesses or use-after-frees, will receive no credit for the corresponding test. It does not matter whether your code might be correct if we ignore the undefined behavior.

 We treat these as fatal, program-ending errors, because they are.

 

 We will run all tests using valgrind to detect and report this behavior. MacOS doesn’t have valgrind – see Memory Safety and MacOS for more information.

Memory Safety Tips and Tricks

1. Apply the above section – whose job is it to free the memory?

2. Before you follow a pointer, check whether it’s nullptr.

3. If you delete something, make sure you update any pointers to it to either be a different

valid pointer or nullptr. There might be multiple pointers to the same thing!

Memory Safety and MacOS

MacOS doesn’t have valgrind. While we can use leaks, this doesn’t catch undefined behavior and makes the program incompatible with AddressSanitizer (another way of catching undefined behavior). We have a few options, none of them do everything that valgrind can, and they get progressively sketchier. (I have an M2 Mac for personal use I’m experimenting with – I really have no idea how M1 or Intel Macs behave.)

● Run your tests in zyBooks, which has valgrind. (Strongly recommended – sorry . You can still develop and do a lot of testing locally, but ensuring memory safety is easiest to do in a true Linux environment.)

These later bullets require more knowledge with the terminal and your computer, and we don’t know whether they work. We didn’t build these into the Makefile, and you’re on your own if you want to try them.

● If you have a non-M1/M2 Mac, https://github.com/LouisBrunner/valgrind-macos seems promising, but apparently has some false positives. I haven’t tested it; I don’t have an x86 Mac.

● Run all tests twice: once when compiling with AddressSanitizer (-fsanitize=address), and once under leaks. Even then, this misses when we try to read uninitialized memory!

● Use brew install llvm, and switch to using the newly installed /opt/homebrew/opt/llvm/bin/clang++ (or maybe /usr/local/opt/llvm/bin/clang++). Then, we can compile our program with -fsanitize=address and run with the environment variable ASAN_OPTIONS=detect_leaks=1 to both detect leaks and see undefined behavior. Of course, this still doesn’t see uninitialized memory errors.

● Docker just for valgrind??? (This just sounds cursed.)

 ���

 

 Tasks

Task: Shape

First, we’ll need to implement the Shape base class. See the documentation in shape.h, and write your implementation in shape.cpp.

The default constructor for Shape should set x and y to 0. Task: Testing

As described above, we’re evaluating your testing differently this project.

See canvaslist.h for documentation and a description of what each method does. We strongly recommend writing your test suite first. Place your tests in canvaslist_tests.cpp. Remember to use EXPECT_EQ (keeps going when it fails) or ASSERT_EQ (stops the test when it fails).

You can check that your tests pass on the solution in zyBooks by using the make run_solution_tests command. If your tests don’t pass on the solution, they’re probably wrong!

When you submit to Gradescope, we will run your tests on a correct solution. If the correct solution passes your tests, we will then run your tests on many broken solutions, to see how many your tests “expose”. If you are struggling with writing tests for a particular broken solution, see Project3BrokenSolutionsOverview foravaguedescriptionofwhereeachisbroken.

Task: CanvasList

CanvasList is a singly linked list, where the nodes are of type ShapeNode. You’ll see that the ShapeNode is a class that contains 2 member variables: a Shape* (data pointer), and a ShapeNode* (pointer to the next node).

A reminder of the restrictions from above:

● You may modify canvaslist.h only to add additional private member functions.

● You may not add additional member variables (public or private), or additional public

member functions.

See canvaslist.h for documentation and a description of what each method does. All your function definitions should be in canvaslist.cpp. We recommend completing the methods in the following order:

1. Default constructor

 

 2. empty, size, front

a. Your size function should be one line long. If it is not one line long, you are

probably doing something that is setting you up for tricky bugs in the future.

3. push_front, push_back

4. draw, print_addresses

5. Copy constructor 6. find, shape_at 7. insert_after

8. pop_front, pop_back 9. clear

10. Assignment operator 11. Destructor

12. remove_at

13. remove_every_other

Task: Other Shapes

Finally, we take advantage of the fact that our CanvasList stores pointers to various shapes to use polymorphism. Implement the remaining derived classes:

● Rect

● Circle

● RightTriangle

If a member variable is not given as an argument to a derived class’s constructor, set it to 0. Then, try writing tests that insert these into your CanvasList – we don’t have to write any

additional code to make the CanvasList work with them!

The RightTriangle documentation has a typo. The as_string function should have the line, “It’s a Right Triangle at x: 1, y: 2 with base: 3 and height: 4”.

 

 Example Execution

See the (commented) code in main.cpp. You can use this file to experiment with your own linked list methods outside of a test. When enough of the methods and the extra derived classes are properly implemented, you’d see this output. Note that the addresses will be different, but the format should be the same.

List size: 0

Front: 0

Adding Shape to the front

List size: 1

It's a Shape at x: 1, y: 3

Adding Shape to the front

List size: 2

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

Adding Shape to the back

List size: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

Adding Circle to the front

List size: 4

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

Adding Rectangle to the back

List size: 5

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

It's a Rectangle at x: 0, y: 0 with width: 0 and height: 10

Adding Right Triangle to the front

List size: 6

It's a Right Triangle at x: 1, y: 2 with base: 3 and height: 4

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

It's a Rectangle at x: 0, y: 0 with width: 0 and height: 10

 

 Deleting last element

List size: 5

It's a Right Triangle at x: 1, y: 2 with base: 3 and height: 4

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

Inserting Shape after index 1

Original:

It's a Right Triangle at x: 1, y: 2 with base: 3 and height: 4

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

Updated Original:

It's a Right Triangle at x: 1, y: 2 with base: 3 and height: 4

It's a Circle at x: 2, y: 4, radius: 3

It's a Shape at x: 3, y: 4

It's a Shape at x: 4, y: 6

It's a Shape at x: 1, y: 3

It's a Shape at x: 4, y: 6

Addresses:

Node Address: 0x562ac60e82a0

Node Address: 0x562ac60e81d0

Node Address: 0x562ac60e8260

Node Address: 0x562ac60e8150

Node Address: 0x562ac60e80e0

Node Address: 0x562ac60e8190

Shape Address: 0x562ac60e8280

Shape Address: 0x562ac60e81b0

Shape Address: 0x562ac60e8240

Shape Address: 0x562ac60e8130

Shape Address: 0x562ac60e80c0

Shape Address: 0x562ac60e8170

 

 Grading Breakdown

Later methods depend on previous ones working correctly. For any scoring item, your program may not have valgrind errors.

    Points

Shape class

3

CanvasList testing (catching bugs in broken implementations; tests must pass for a correct solution to receive credit)

20

Default CanvasList constructor, empty, size, front

4

push_front, push_back

5

draw, print_addresses (manually graded)

2

CanvasList copy constructor

5

find, shape_at

5

insert_after

5

pop_front, pop_back

5

clear

5

CanvasList assignment operator

5

remove_at

5

remove_every_other

5

No valgrind errors or memory leaks (destructor + general hygiene); passes at least one CanvasList test.

15

Circle class

2

Rect class

2

RightTriangle class

2

                  Style

● 2 points: Code is styled consistently; for example, using the VSCode formatter. ○ (F1, type in “Format Document”)

 

 ● 1 point: Code is reasonably styled, but there are consistent significant stylistic issues (e.g. inconsistent indentation, line length > 120, spacing, etc.)

● 0 points: No credit (e.g. entire program is on one line)

Documentation + Commenting

● 3 points: Code is well-documented with descriptive variable names and comments, but not overly documented.

● 1.5 points: Code is partially documented, due to a lack of comments and/or poor naming; or code is overly documented with unnecessary comments.

● 0 points: Code has no documentation or appropriate names.

 ww.daixie7.com/2024030220703792761.html
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp

標簽:

掃一掃在手機打開當前頁
  • 上一篇:CSCI 2033代做、代寫Python, C++/Java編程
  • 下一篇:代寫代做Project 3 - CanvasList CS 251
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區
    昆明西山國家級風景名勝區
    昆明旅游索道攻略
    昆明旅游索道攻略
  • NBA直播 短信驗證碼平臺 幣安官網下載 歐冠直播 WPS下載

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

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    主站蜘蛛池模板: 懂色av蜜臀av粉嫩av分享吧最新章节 | 久草网在线视频 | 久久艹免费视频 | 999精品免费视频 | 玖草在线 | 国产一区二区精品丝袜 | 国产婷婷一区二区三区久久 | 亚洲第三区 | 99国内精品久久久久久久 | 亚欧美视频 | 久久久91 | 在线免费激情视频 | 高h校园不许穿内裤h调教 | 亚洲成在人线av | 色玖玖 | 找av导航入口 | 伊人焦 | 国产乱视频 | 日韩精品中文字幕一区二区 | 在线观看高清av | 情侣av| 一级特黄特色的免费大片视频 | 66m—66摸成人免费视频 | www.一区| 欧美成人一区二区三区高清 | 农村末发育av片一区二区 | 一区二区三区三区在线 | 美女天天操 | 自拍偷自拍亚洲精品播放 | 91免费视频大全 | 一级成人免费 | 国产高清精品在线 | 久久九九热 | 国产午夜三级 | 精彩久久| 久操视频在线观看 | av五十路 | 亚洲一本一道 | 午夜毛片 | 日韩福利视频在线观看 | 天堂网视频在线观看 | 九色麻豆 | 亚洲免费播放 | 亚洲 日本 欧美 中文幕 | 亚洲春色一区二区三区 | 国产精品啪视频 | 最近中文字幕在线免费观看 | 国产区精品在线 | 日韩免费视频一区 | 久久久久国产精品一区二区 | 日韩影音 | 麻豆精品视频在线 | 图片区视频区小说区 | 亚洲第一天堂在线观看 | 奇米狠狠 | 天天色天天色天天色 | 国产黄色精品 | 69成人做爰免费视频 | 国产ts变态重口人妖hd | 久草视频免费在线观看 | 伊人射 | 这里只有精品在线播放 | 加勒比久久综合 | 在哪里可以看毛片 | 99热在线免费 | 国产一区二区三区视频在线观看 | 国产精品久久久久久妇女6080 | 欧美日韩亚洲天堂 | 欧美 日韩 中文 | 欧美一区二区三区久久 | www.youjizz.com日本| 日韩欧美高清dvd碟片 | 尤物网站在线观看 | 亚洲美女视频在线 | 好邻居韩国剧在线观看 | 天天躁日日躁狠狠躁喷水 | 日韩精品免费一区二区在线观看 | 狠狠操网站 | 99热官网 | 亚洲欧美一区在线观看 | 欧美国产精品一二三 | 久久久国产亚洲精品 | 人人澡人人爽 | 日日干天天操 | 国产精品久久久久av | 黄色片免费看 | 国产黄在线观看 | 欧美在线观看一区 | 日韩高清精品免费观看 | 成人av专区 | 天堂色网| 色呦呦一区| 久久男人精品 | 超碰公开免费 | 伊人免费在线观看高清版 | 亚洲a成人 | 日韩成人在线一区 | 9i看片成人免费看片 | 精品国产乱码久久久久久蜜柚 | 日日夜夜影院 | 激情欧美一区二区三区 | 激情偷拍 | 精品视频免费 | 91在线一区二区三区 | 国产精品久久777777毛茸茸 | 97国产精品视频 | 久久久久久久久久综合 | 亚洲国产精品天堂 | 亚洲综合色丁香婷婷六月图片 | 国产超碰人人爽人人做人人爱 | 成人91免费 | 天天综合网在线观看 | 国产精品欧美综合亚洲 | 91在线观看喷潮 | 粗喘呻吟撞击猛烈疯狂 | 成人网入口| 色肉色伦交av色肉色伦 | 成人网免费视频m3u8 | 久久久亚洲国产 | 欧美精产国品一二三 | 中国黄色a级片 | 一区在线观看视频 | 夏晴子在线 | 久久99精品久久久久 | 99精品欧美一区二区蜜桃免费 | 韩日黄色| 国产网站精品 | 欧美xxxxbbbb | 国产成人精品999 | 亚洲国产成人精品片在线观看 | xxxx野外性xxxx黑人 | 午夜激情视频在线观看 | 黄色一级视频免费看 | 在线天堂中文字幕 | 亚洲视频天天射 | 午夜高潮 | 亚洲欧美在线视频免费 | 另类老妇性bbwbbw图片 | 97精品一区二区视频在线观看 | 国产奶水涨喷在线播放 | 玖玖在线免费视频 | 久久99这里只有精品 | 人人干在线视频 | jizz成人 | 亚洲一区二区高清 | 一区不卡在线 | 操操综合网| 超碰99在线 | 在线日韩亚洲 | 精品一二区 | 成人做爰69片免费看网站野花 | 成人国产精品久久久网站 | 欧美中文| 国产精品成人在线观看 | 丁香花免费高清完整在线播放 | 欧美成人精品网站 | 成人女同在线观看 | 天天操好逼 | a中文字幕 | 8090yy亚洲精品久久 | 91亚洲精选 | 亚洲天堂影院在线观看 | 国产三级国产精品国产普通话 | 夜夜爽日日澡人人添 | 亚洲欧洲国产视频 | 射一射| 毛片全黄 | 欧美91视频 | 欧美精品偷拍 | 欧美精产国品一二三 | 91超薄丝袜肉丝一区二区 | 看av的网址 | h网址在线观看 | 日日精 | 黑人中文字幕一区二区三区 | 国产三极片 | 天天操操操操 | 国产精品国产三级国产aⅴ无密码 | 日韩精品免费一区二区夜夜嗨 | 在线观看一二区 | 夜夜嗷| 国外亚洲成av人片在线观看 | 天天射夜夜| 日韩视频在线免费 | 激情婷婷网 | 日本在线播放一区 | 91视频一区二区三区 | 高潮久久久久久久久 | 午夜在线不卡 | 先锋影音一区二区 | 欧美xxxx视频 | 久久久久五月天 | 久久久久久国产精品 | 国产自在线拍 | 久久免费精品国产 | 毛片在线免费观看视频 | 在线观看一区视频 | 黄色片在线视频 | 精品一区二区在线视频 | 亚洲一区中文字幕永久在线 | 韩日午夜在线资源一区二区 | 亚洲经典一区 | 在线看黄网址 | 黄视频在线播放 | 亚洲干 | 久久综合久色欧美综合狠狠 | 91桃色网站 | 香蕉污视频 | 99视频国产精品免费观看a | 国产依人在线 | 刘亦菲久久免费一区二区 | 丁香婷婷深情五月亚洲 | 日日操日日操 | 国产精品久久影视 | 男人天堂亚洲天堂 | 操网 | 日本成人在线视频网站 | 高级家教课程在线观看 | 日韩综合在线观看 | 午夜寂寞视频 | 91嫩草欧美久久久九九九 | 日韩资源网 | 欧美视频一区在线观看 | 午夜免费在线观看 | 黄色片在线免费观看视频 | 成人国产精品免费观看动漫 | 国产色图视频 | 一级免费黄色 | 偷偷操不一样的99 | 超碰.com| 日日摸日日碰 | 91成人影库 | 国产成人宗合 | 欧美成人91| 超碰com| 97久久精品人人澡人人爽 | 日韩精品免费看 | 久久精品视频6 | 国产精品乱码妇女bbbb | 欧美性猛交xxxx免费看久久久 | 狠狠干奇米 | 超碰综合 | 高清av免费 | 黄色裸体视频 | 国产一级特黄毛片 | 中文字幕视频免费观看 | 国产69视频在线观看 | 亚洲第一免费播放区 | 黄色一级大片在线免费看产 | 777久久久| 激情免费网站 | 亚洲欧洲国产精品 | 国产在线观看免费av | 国产精久久久 | 精品人人人人 | 国产免费av观看 | 伊人365| 久久久国产成人 | av中文字幕网 | 久久久www | 亚洲自拍偷拍色 | 日韩精品亚洲一区 | 韩国av免费观看 | 黄视频在线免费看 | 精品国产一二三 | 亚洲精品亚洲人成人网 | 亚洲最新中文字幕 | 亚洲精品久久久乳夜夜欧美 | 亚洲国产日韩a在线播放性色 | 伊人伊人伊人 | 古装做爰无遮挡三级 | 人人精品视频 | 中文字幕第三页 | 锦绣未央在线观看 | 亚洲天堂99| 他趴在我两腿中间添得好爽在线看 | 国产成人在线观看免费网站 | 午夜精品久久久久久久99热浪潮 | 国产精品久久久久毛片软件 | 久99综合婷婷 | 成人7777| 久久久精品综合 | av在线免费在线观看 | 中文在线www | 婷婷国产在线 | 久久久国产精品入口麻豆 | 国产一区二区在线不卡 | 亚洲伊人精品 | 久久精品成人热国产成 | 少妇搡bbbb搡bbb搡小说 | 日韩成人片 | 伊人久久精品视频 | 91在线免费看片 | 天天碰天天操 | 91视频麻豆 | 男女h网站 | 97在线免费观看视频 | 爱情岛亚洲首页论坛小巨 | 婷婷综合视频 | 日韩欧美国产中文字幕 | 中国免费毛片 | 国产乱欲视频 | 少妇一级淫片aaaaaaa | 69色综合 | 毛片av在线观看 | 亚洲午夜久久久久久久国产 | 精品久久久久久中文字幕 | 国内自拍真实伦在线观看 | 久久男人天堂 | 日韩成人综合网 | www五月天com| 在线观看免费大片 | 泽村玲子av | 亚洲区二区| 日韩精品小视频 | 天天射天天射天天射 | 黄色片国产在线观看 | 日韩欧美一区二区三区在线 | 日韩欧美亚| 欧美日韩成人一区二区 | 色婷婷一区二区三区四区 | japanesexxx日本乱 | 亚洲成人自拍偷拍 | 国产刺激视频 | 天天操天天做 | 性欢交69国产精品 | 亚洲狠狠爱| 国产在线观看a | 国产欧美日韩综合精品一区二区 | 一级片在线视频 | 日日夜夜免费精品视频 | 国产一区二区不卡在线 | aa黄色片| 一级片在线观看视频 | 亚洲国产欧美精品 | 日韩免费成人 | 亚洲成人www| 欧美无砖砖区免费 | 亚洲综合激情五月久久 | 日日干天天射 | 久久艹久久 | 中文字幕一区在线观看 | 超碰男人| 色综合久久久久久 | melody在线高清免费观看动漫 | 欧美日韩精品一二三区 | 黄色在线免费播放 | www.狠狠爱| 亚洲自拍偷拍色 | 国产成年人小视频 | 欧美日韩视频免费观看 | 国产午夜在线 | 久久动态图 | 精品久久久精品 | 日本系列第一页 | 欧美日韩一级二级三级 | 成人免费视频一区二区 | 欧美日韩激情视频 | 成人免费视频网 | 午夜激情视频 | 五月天久久久久久 | 亚洲最大视频网 | 亚洲视频h| 国产视频久久久久久久 | 成人精品福利视频 | 欧美成人精品激情在线视频 | 夜夜操夜夜爽 | 丁香在线 | 亚洲最新在线 | 中国久久久 | 国产精品国产三级欧美 | 中文久久精品 | 污污视频在线观看免费 | 一级黄av | 综合网在线观看 | 性巴克成人免费网站 | 日本免费网站 | 黄色大片网址 | 日本精品成人 | 久久永久免费视频 | 欧美一区二区三区免费视频 | 日本a级c片免费看三区 | 日韩欧美中文 | 夜夜撸av| 极品少妇露脸一区二区 | www.国产免费 | 91偷拍网站 | 国产理论视频在线观看 | 男人天堂中文字幕 | 成人久久精品 | 国内自拍真实伦在线观看 | 日本性久久 | 狠狠操社区 | 黄色片网站免费 | www.久久综合 | av片在线观看 | 一二三不卡视频 | 一级黄色av片 | 国产女同百合91刺激 | 亚洲乱人伦 | 欧美在线观看一区二区三区 | 久久伊人成人网 | 波多野结衣福利视频 | 亚洲欧美日韩国产综合 | 国产一区麻豆 | 国产伦子伦对白在线播放观看 | 丝袜一区二区三区 | a√在线视频 | 日本做受| 中文字幕无人区二 | 成年人av网站| 麻豆精品一区 | 中文字幕一二三四区 | 落日余晖图片 | 又黄又爽又色的网站 | 在线播放波多野结衣 | 在线免费观看日韩av | 高清av网站 | www.日本色 | 国产精品久久久亚洲 | 日本va欧美va欧美va精品 | 中国性猛交 | 亚洲精品第五页 | 成人午夜视频免费看 | 91精品网 | 三级网站免费 | 国产在线伊人 | www.一级片 | 爆操老女人 | 中文字幕丰满人伦在线 | 91极品身材尤物theporn | 色妹子综合 | 天天看天天爽 | 国内精品久久久久久久久久 | 自拍偷拍另类 | 在线观看av资源 | 韩国一级淫一片免费放 | 国产日韩精品一区二区 | 日本黄色三级视频 | 亚洲超丰满肉感bbw 日韩欧美日韩 | 男女视频免费观看 | 色婷婷激情五月 | 欧美激情一区二区三区p站 自拍av在线 | 综合色婷婷| 超碰成人av | 永久免费看mv网站入口亚洲 | 黑人操日本 | 在线艹 | 伊人久久爱 | 日本一级黄色录像 | 免费中文字幕 | 成人综合在线视频 | 亚洲婷婷免费 | 懂色av中文在线 | 97在线免费视频 | 亚洲毛片在线 | 亚洲免费观看av | 人人干干 | 国产成人久久精品麻豆二区 | 黄色一级生活片 | 日韩美一区二区 | 久久午夜场 | 精品久久久久久久久久久久久久久 | 欧美一级淫片免费视频黄 | www婷婷| 精精国产xxxx在线观看主放器 | 超污视频在线观看 | 国产精品久久久久久久妇女 | 一级女人片 | 久久99久久99精品免视看婷婷 | 久久国产影院 | 一区二区欧美日韩 | 久久久久人 | 色综合视频在线观看 | 亚洲爽爽爽 | 91综合网 | 黄色靠逼视频 | chien国产乱露脸对白 | 国产精品免费在线播放 | 在线观看中文字幕第一页 | 欧美亚洲综合网 | 在线h网| 婷婷精品 | 国产精品久久久久网站 | 亚洲一区二区三区网站 | 国产精品99久久久久久久久久久久 | 欧美大片在线免费观看 | 18p在线观看| 激情六月婷婷 | 国产午夜一区二区 | 超碰三级| 色鬼久久| 国产一区欧美二区 | 国产精品日韩在线 | 国产v亚洲v天堂无码 | 亚洲a国产| 午夜精品久久久久久久久久久久久蜜桃 | 性色av一区二区三区红粉影视 | 国产99久久久国产精品成人免费 | 亚洲国产中文字幕 | 欧美成人精品激情在线视频 | 韩日黄色片 | 51精品国自产在线 | 色涩av| 国内精品第一页 | 午夜精品久久久久久久久久 | 男女又爽又黄 | 欧美视频免费在线观看 | 亚洲欧美视频在线播放 | 日日日日操 | 日本黄色不卡视频 | 超碰国产人人 | 免费看的一级片 | 在线观看av中文字幕 | 激情五月婷婷小说 | 精品国产一区在线观看 | 亚洲免费成人 | av免费一区 | 日本免费不卡视频 | 亚洲国产精品一区二区久久 | 在线视频观看国产 | 欧美影院一区二区三区 | 久操视频在线免费观看 | 成年人免费视频网站 | 亚洲综合色站 | melody在线高清免费观看 | 91中文字幕在线视频 | 性欧美一区 | 综合狠狠开心 | 国语对白做受按摩的注意事项 | 天天干天天操天天插 | 中文字幕色哟哟 | 日韩一级在线视频 | 久久大| 日本a级大片 | 国产婷婷久久 | 亚洲精品久久久久久国产精华液 | 日韩欧美在线一区二区三区 | 黄色免费片 | 欧美日韩国产区 | 国产精品视频久久久久 | 法国意大利性经典xxxxx | 国产精品人人做人人爽人人添 | 中文字字幕在线中文乱码 | 天天视频国产 | 亚洲欧美久久久 | 久久午夜神器 | 久久99久久99精品免视看婷婷 | 欧美特黄一级大片 | 亚洲区在线播放 | 亚洲一区二区欧美 | 羞羞影院体验区 | 国产特级毛片aaaaaaa高清 | 亚洲图片 激情小说 | 伊人久久青青 | 97视频免费在线 | 国产午夜激情视频 | 伦理自拍 | 国产精品国产三级国产普通话对白 | 男女午夜爽爽 | 亚洲人成小说 | 免费播放毛片 | 欧美专区第一页 | 久久私人影院 | 日韩在线毛片 | 亚洲一级影片 | 91av在线播放 | 欧美三级小视频 | 国产在线成人 | 色哟哟在线视频 | 免费视频一区 | 亚洲欧美日韩在线一区二区三区 | www.毛片| 久久精品10 | 欧美性大战xxxxx久久久 | 男人的天堂视频 | 久久免费播放 | 亚洲一区图片 | 国产精品视频播放 | theav精尽人亡av | 在线亚洲观看 | 成人午夜激情 | 亚洲二区一区 | 91天天干 | 以女性视角写的高h爽文 | 日日噜噜噜 | 午夜合集 | 国产又黄又粗又猛又爽 | 一级做a爰片久久毛片 | 91精品91久久久中77777 | 不卡日韩| 奇米精品一区二区三区四区 | 国产乱淫av片免费观看 | 欧美日韩成人 | 极品大长腿啪啪高潮露脸 | 国产偷啪 | 99热18| 超碰在线网址 | 中文字幕在线亚洲精品 | 欧美国产综合 | 欧美美女一区二区 | 亚洲精品一二三四 | 欧洲av一区二区三区 | 亚洲国产一区二区在线 | 久久久久久久久久亚洲 | 亚洲观看黄色网 | av网站www| 天天色av | 久久网一区二区 | 男人的天堂毛片 | 新婚夫妇白天啪啪自拍 | 亚洲精选一区二区三区 | ktv做爰视频一区二区 | 亚洲一区中文字幕在线观看 | 91喷水| 欧美色图狠狠干 | 国产精品免费一区二区三区 | 亚洲第一成人av | 免费视频毛片 | 国产在线网址 | 337p粉嫩大胆噜噜噜的背景 | japanese在线| 黄色av一级 | 黄色三级三级三级三级 | 欧美成人日韩 | 日韩在线影院 | 毛色毛片| 吻胸摸激情床激烈视频大胸 | 国产精品乱码一区二区三区 | 欧美一级特黄aaaaaa | 91片看 | 午夜精品久久久久久久99 | 亚洲视频小说图片 | 澳门黄色网 | 日韩美女av在线 | 美国做爰xxxⅹ性视频 | 中文字幕色图 | 亚洲精品成a人ⅴ香蕉片 | 婷婷国产视频 | 久久久久久久久久影视 | 奇米在线播放 | 91av日本| 日韩视频一区二区三区 | 国产91在线免费观看 | 狠狠操夜夜爽 | 亚洲自拍偷拍网站 | 色播久久 | 亚洲欧美日韩一区 | 亚洲精品久久久久久中文传媒 | 亚洲国产免费 | 黄色在线视频网站 | 7777kkkk成人观看 | 99精品一区 | 欧美日韩少妇精品 | 亚洲综合情 | 久久国产精品系列 | 日韩免费高清 | 亚洲美女精品视频 | 91综合国产| 亚洲经典一区二区三区 | 男女免费视频网站 | 国产亚洲性欧美日韩在线观看软件 | 国产不卡精品 | 九九热国产视频 | 国产又大又黑又粗免费视频 | 国产91在线免费观看 | 日韩一区二区中文字幕 | 国产美女91| 日本理伦片午夜理伦片 | 综合久久国产 | 久久久久久久久久久久久久av | 蜜桃久久久aaaa成人网一区 | 这里只有精品6 | 狠狠操在线视频 | 国产又大又黄又爽 | 国产又黄又粗又猛又爽 | 桃色综合网 | 国产乱码精品一区二区三区五月婷 | 啪啪免费av| 天天色播 | 五月激情天 | 高清乱码毛片入口 | 午夜精品偷拍 | 国产精品美女久久久久久免费 | 又黄又爽的视频在线观看 | av东方在线 | 一色屋精品久久久久久久久久 | 亚洲国产免费 | 7788色淫网站小说 | 69性视频 | 国产精品影音先锋 | 亚洲天堂2012 | 97超碰在线资源 | 日本一区二区在线播放 | 俄罗斯av在线 | 夜夜躁天天躁很 | 午夜少妇福利 | 亚洲区自拍 | 金瓶狂野欧美性猛交xxxx | 色呦呦国产 | 国产自在线拍 | 99在线精品视频 | 好吊妞精品 | 伊人网免费视频 | 一区二区三区免费看 | 久久一区二区三区精品 | 成人18在线| a中文字幕 | 黑人中文字幕一区二区三区 | 69视频在线免费观看 | av老司机在线播放 | 性视频在线播放 | 天天干天天操天天射 | 国产国产国产 | 婷婷狠狠操 | 日韩wwww| 网站av在线 | 91人人看 | 成人福利院 | 夜夜狠狠 | 国产午夜视频在线播放 | 狠狠操在线视频 | 艳母免费在线观看 | 亚洲图片88 | 成人日韩欧美 | 国产igao为爱做激情在线观看 | 日韩黄色免费网站 | 久久免费影院 | 日韩欧美国产成人 | 欧洲高潮三级做爰 | 亚洲精品久久久久久国产精华液 | 9久久精品 | 91毛片网站 | 香蕉啪啪网 | 日韩精品久久久久久久酒店 | 国产午夜精品在人线播放 | 亚洲三级国产 | 热久久久久久 | 婷婷色激情 | 一区二区三区观看 | 亚洲精品美女久久久 | 麻豆av免费看 | 亚洲美女一区二区三区 | 久久视奸 | 欧美 日韩 国产在线 | 国产激情网站 | 2017日日夜夜 | 天堂中文在线视频 | 亚洲精品福利在线 | 手机看片日韩 | 久久国产精品亚州精品毛片 | 99视频在线免费观看 | 国产性猛交╳xxx乱大交 | 四虎国产精品永久在线国在线 | 伊人福利视频 | 免费人成网站 | 噜噜噜天天躁狠狠躁夜夜精品 | 日韩精品1区 | 羞羞答答xxdd.tv | 国产精品美女一区 | 国产又黄又粗 | 欧洲成人av| 伊人国产女 | 日韩淫片 | 特级淫片裸体免费看冫 | 黄91在线观看| 久久久久久91 | 69国产 | 一区二视频 | 色综合综合色 | 伊人久网| www日本免费 | 亚洲高清视频在线观看 | 综合色av| 欧美综合一区 | 一区二区不卡 | 国产盗摄精品一区二区酒店 | 日日夜夜精| 极品尤物在线观看 | av网站中文字幕 | 成人动漫视频在线观看 | 国 产 黄 色 大 片 | 天天干天天做天天操 | 91久久综合| www.黄色国产 | 中国毛片a | 久久国产露脸精品国产 | 精品少妇一区二区三区免费观 | www.日韩av.com | 国产精品亚洲一区二区三区 | 亚洲精选av | 亚洲国产精品天堂 | 日韩一级成人 | 波多野结衣mp4 | 欧美激情999 | 亚洲午夜网站 | 欧美老肥婆性猛交视频 | 日本成人一区二区 | 户外少妇对白啪啪野战 | 在线视频a | 日韩成人一级 | 久久艳片www.17c.com | av不卡在线| 国产一级做a爱片久久毛片a | 亚洲成人一区二区三区 | 操操操综合网 | 老妇女玩小男生毛片 | 国产精品免费久久 | 五月婷婷导航 | 日日噜噜噜噜人人爽亚洲精品 | 九九亚洲精品 | 91蜜桃视频 | 这里都是精品 | 丁香婷婷色| 亚洲欧美成人 | 一区二区三区不卡在线观看 | 日本免费久久 | 国产乱码精品一区二区三区精东 | 国产第二页 | 爱乃なみ加勒比在线播放 | 日日躁狠狠躁 | 亚洲成人免费在线视频 | 开心激情深爱 | 久久久久久在线观看 | 精品一区二区三区在线视频 | 灌满闺乖女h高h调教尿h | 16—17女人毛片 | 鸥美毛片 | ,亚洲人成毛片在线播放 | 国产福利第一页 | 欧美黄色录像 | 欧美日韩免费网站 | 国产传媒毛片精品视频第一次 | 国产免费看av | 日韩免费中文字幕 | 国语对白在线观看 | 欧美成人专区 | 亚洲图片视频小说 | 在线视频黄 | xxxxxhd亚洲人hd| 成年人精品 | 亚洲综合久久久久 | 国产一区欧美二区 | 天天艹日日干 | 日本99热| 性欧美a | 欧美一级在线视频 | 国产免费一区二区三区四区五区 | 亚洲网站免费 | 国产精品久久久久久久久久免费 | 亚洲视频中文字幕 | 人人干天天操 | 久久天 | 色8久久 | 中文字幕麻豆 | 黄色欧美视频 | 国产精品免费av | 久久大伊人 | 欧美一区网站 | www.久久久久 | 国产福利91 | 999插插插 | 欧美视频亚洲视频 | 狠狠操免费视频 | 国产激情久久久久 | а√天堂资源在线 | 国产91视频在线 | av九九九| 成人看片在线观看 | 久久久久国产亚洲日本 | 看久久 | 欧美xx视频 | 放荡闺蜜高h季红豆h | 亚州人成在线播放 | 夜夜操天天射 | 日日射夜夜 | 欧美性猛交xxxx免费看久久久 | 精品亚洲一区二区三区 | 日韩三级一区 | 99热热热 | 黄网站在线观 | 日韩在线三级 | 国产精品1区2区3区 日韩操 | 亚洲啪啪网址 | 国产二三区 | 国产精品久久网站 | 黄色成人小视频 | 成年人免费高清视频 | 黄色av一级片 | 亚洲综合五区 | 69精品| 亚洲美女视频在线观看 | www.日韩.com | 中文字字幕在线中文 | 伊人久久大 | 免费一级全黄少妇性色生活片 | 国产视频色 | 全部毛片永久免费看 | 在线视频综合网 | 中文字幕日韩一区 | 特级黄色录像 | 亚洲人在线视频 | 欧美一a一片一级一片 | 日韩成人免费在线视频 | 亚洲国产精品成人女人久久 | 欧美三级一区二区 | 久久黄色一级片 | 中文在线免费看视频 | 91久久亚洲 | 免费成人福利视频 | 久久网中文字幕 | 亚洲午夜精品久久久久久浪潮 | 国产视频播放 | 久久国产免费视频 | 欧美成人午夜 | 顶级毛片| 高清一区二区三区视频 | 亚洲欧美久久久 | 天天躁日日躁狠狠躁伊人 | 精品国偷自产在线视频 | 中日一级片 | 国产女同疯狂互摸系列3 | 露脸丨91丨九色露脸 | 欧美视频在线观看 | 激情久久久久 | 99精品国产一区二区三区蜜臀 | 久草手机在线 | 午夜特片网 | 欧美嘿咻视频 | 伊人一级| 亚洲一区综合 | 黄网站色视频 | 91婷婷色 | 新天堂在线 | 天堂视频在线免费观看 | 亚洲国产精品精华液网站 | 精品蜜桃av| 夜夜导航| 成年人在线视频观看 | 成人黄色一级视频 | 最新中文字幕免费 | 日韩成人黄色 | 亚洲最新网址 | 色综合久久久 | 天海翼视频在线观看 | 人人插人人草 | 老女人丨91丨九色 | 黑人巨大人精品欧美三区 | 免费a级片在线观看 | 亚洲久草网 | 日日夜夜网站 | 国产毛片aaa| 国产黄色在线看 | 91成人在线观看喷潮动漫 | 亚洲成人基地 | 男人天堂你懂的 | www.色涩 | 亚洲综合网av | 六月久久 | 国产一二三在线观看 | 极品少妇一区 | 午夜精品久久久久久 | 亚洲成人久久久久久久 | 亚洲欧美系列 | 在线观看国产区 | 日韩成人免费视频 | 97视频免费 | 国产精品人成在线观看免费 | 一级黄色片免费在线观看 | 日本黄页网站免费大全 | 亚洲妇女体内精汇编 | 四虎av网站 | 亚洲精品成人免费 | 嫩草视频在线看 | 久久毛片视频 | 久久免费少妇做爰 | 综合久久综合 | 91视频直接看 | 韩漫动漫免费大全在线观看 | 激情av在线播放 | 性生交大片免费中文 | 成人性生活视频 | 日韩激情第一页 | 国产wwww | 二区三区在线视频 | 在线看尤物 | 制服师生中文字幕 | 一区二区三区四区av | 婷婷色综合网 | 91福利小视频 | 午夜香蕉网 | 中文字幕在线观看不卡视频 | 国产一区二区午夜 | 成人香蕉网 | 欧美日韩免费在线视频 | 九九亚洲精品 | 免费av成人 | chinese真实伦对白露脸 | 精品国产乱码一区二区三区a |