INTRODUCTION TO OBJECT ORIENTED PROGRAMMING CONCEPTS OOPS IN C NET

Tìm thấy 10,000 tài liệu liên quan tới từ khóa "INTRODUCTION TO OBJECT ORIENTED PROGRAMMING CONCEPTS OOPS IN C NET":

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C ++

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C ++

Giới Thiệu Tổng Quan„Danh mục tài liệu tham khảo1.2.3.4.5.6.7.Ali Bahrami, “Object-oriented Systems Development”,McGraw-Hill Companies Inc., 1999.Bruce Eckel, “Thinking in C++”, Prentice Hall Inc., 2000.Budd, Timothy, “An Introduction to Object-OrientedProgramming”, Addison-Wesley, 1997.Robert Lafore, “Object-oriented Programming in C++”, SAMS,2001.Phạm Văn Ất, “C++ và Lập Trình Hướng Đối Tượng”, KhoaHọc Kỹ Thuật, 2000.Scott Robert Ladd, “C++ Kỹ Thuật và Ứng Dụng”, Khoa HọcKỹ Thuật, 1992.Sharam Hekmat, “C++ Programming”, Pragmatix Software Pt,2004.Khoa Công Nghệ Thông Tin - Đại Học Cần Thơ4
Xem thêm

153 Đọc thêm

AN INTRODUCTION TO OBJECT ORIENTED PROGRAMMING WITH JAVA WWW BIT LY TAIHO123

AN INTRODUCTION TO OBJECT ORIENTED PROGRAMMING WITH JAVA WWW BIT LY TAIHO123

This book is an introduction to object-oriented programming using the Javaprogramming language. We use the object-first approach where objects are usedfrom the first sample program. Object-oriented thinking is emphasized and promoted from the beginning. Students learn how to use objects first and then learnhow to define their own objects.Key Changes in the 5th EditionThe key differences between this edition and the fourth edition are as follows:1. More Discussion on Java 5.0 Features and Java 6.0 Compatibility. Manyof the new Java 5.0 features are explained and used in the sample programs.They include the enumerator type, the for-each loop construct, auto boxingand unboxing, and the generics.2. Exclusive Use of Console Input and Output. All the GUI related topics,including the JOptionPane class, are moved to Chapter 14. Sample programsbefore Chapter 14 use the standard console input (Scanner) and output(System.out). Those who want to use JOptionPane for simple input and outputcan do so easily by covering Section 14.1 before Chapter 3.3. More Examples from Natural Sciences. In several key chapters, we illustrate concepts using examples from biology and chemistry. For example, inChapter 4, we use the elements in the periodic table to illustrate the concept ofprogrammer-defined classes. In Chapter 9, we demonstrate how the stringprocessing techniques are applied to implement DNA sequencing and othercommon DNA operations.4. Level-by-level Organization for Programming Exercises. Programmingexercises at the end of chapters are organized into three levels of difficulties.The one-star level exercises require the basic understanding of the materialscovered in the chapter. The two-star level exercises require some additionalthinking beyond the basic understanding. The three-star level exercises arexi
Xem thêm

1009 Đọc thêm

.01_CH01.fm Page 1 Wednesday, August 20, 2003 2:21 PM11.2C++ Basics1.1 INTRODUCTION TO C++ 2 pot

01 CH01 FM PAGE 1 WEDNESDAY AUGUST 20 2003 2 21 PM11 2C BASICS1 1 INTRODUCTION TO C 2 POT

might be confusing. Although it is not required by C++, variables are usually spelledwith their first letter in lowercase. The predefined identifiers, such as main, cin, cout,and so forth, must be spelled in all lowercase letters. The convention that is nowbecoming universal in object-oriented programming is to spell variable names with amix of upper- and lowercase letters (and digits), to always start a variable name with alowercase letter, and to indicate “word” boundaries with an uppercase letter, as illus-trated by the following variable names:topSpeed, bankRate1, bankRate2, timeOfArrivalThis convention is not as common in C++ as in some other object-oriented languages,but is becoming more widely used and is a good convention to follow. A C++ identifier can be of any length, although some compilers will ignore all char-acters after some (large) specified number of initial characters.IDENTIFIERSA C++ identifier must start with either a letter or the underscore symbol, and the remaining char-acters must all be letters, digits, or the underscore symbol. C++ identifiers are case sensitive and have no limit to their length.case sensitive01_CH01.fm Page 7 Wednesday, August 20, 2003 2:21 PM8 C++ BasicsThere is a special class of identifiers, called keywords or reserved words, that have apredefined meaning in C++ and cannot be used as names for variables or anything else.In the code displays of this book keywords are shown in a different color. A completelist of keywords is given in Appendix 1.Some predefined words, such as cin and cout, are not keywords. These predefinedwords are not part of the core C++ language, and you are allowed to redefine them.Although these predefined words are not keywords, they are defined in libraries
Xem thêm

855 Đọc thêm

A Guide to MATLAB Object-Oriented Programming pdf

A GUIDE TO MATLAB OBJECTORIENTED PROGRAMMING

Table 18.12 cStar Data Dictionary Values 270Table 18.13 Executed Member Functions Are Highlighted 273Table 19.1 cShapeArray Class Wizard Main Dialog Fields 281Table 19.2 cShapeArray Private Variable Dialog Fields 281Table 19.3 cShapeArray Public Function Field Values 282Table 19.4 cShapeArray Data Dictionary Field Values 284 C911X_C000.fm Page xxi Wednesday, April 11, 2007 10:52 AM C911X_C000.fm Page xxii Wednesday, April 11, 2007 10:52 AM xxiii About the Author Andy Register has been an admitted object-oriented fanatic since his first introduction to theconcepts of object-oriented design in the late 1980s. At that time, he was working on his doctoraldegree in electrical engineering at the Georgia Institute of Technology, Atlanta. His researchinvolved the real-time control of nonminimum phase systems, human and hardware-in-the-loopsimulations, state-of-the-art computer architectures, and low-level programming of multiple-instruc-tion multiple-data (MIMD) parallel computers. Object-oriented programming was still in its infancywith a number of object-oriented contenders: Actor, C++, CLOS, Eiffel, Flavors, and Smalltalk,among others. Dr. Register needed a language that supported a close association between softwareand hardware, and he found the right combination of performance, utility, and elegance in C++.After using C++ for several years, he published his first two papers on object-oriented programmingin 1994.Fast-forward to the twenty-first century, and we find Dr. Register working at the Georgia TechResearch Institute in Atlanta on complex radar-tracking simulations. These simulations do not
Xem thêm

382 Đọc thêm

Object oriented programming with C++ - Session 5 Inheritance pptx

OBJECT ORIENTED PROGRAMMING WITH C++ - SESSION 5 INHERITANCE PPTX

of the base class if its members are public. •Derived class members cannot access the private members of the base class. – For example, if emp1 is an instance of class Employee, and display() is a member function of Employee, then in main() the statement emp1.display(); is valid if display() is public. –The object emp1 cannot access private members of the class Employee. Object Oriented Programming with C++/ Session 5 / 12 of 41Protected Access SpecifierThe protected section is like the private section in terms of scope and access.•Protected members can be accessed only by members of that class. •Protected members cannot be accessed by objects or functions from outside the class, such as main().•The difference between private and protected appears only in derived classes. Object Oriented
Xem thêm

41 Đọc thêm

Tài liệu Chương 8: Lập trình cơ sở dữ liệu JDBC pptx

TÀI LIỆU CHƯƠNG 8: LẬP TRÌNH CƠ SỞ DỮ LIỆU JDBC PPTX

Chuyển lời gọi JDBC thành các lời gọi giao thức DBMS đặc thù. Khi đó sự chuyển đỗi này đặt trên máy client, một số mã nhị phân phải được cài đặt trên máy tính client.Nguyễn Đức Hiển – Bài giảng Lập trình Java6JDBC Database DriverKiểu 3: Net protocol all Java driver Chuyển đổi các lời gọi JDBC thành giao thức mạng độc lập với bất kỳ giao thức DBMS đặc thù. Sau đó, một phần mềm trung gian (middleware) chạy trên máy server chuyển đỗi giao thức mạng thành giao thức DBMS đặc thù. Sự chuyển này đặt ở phía server mà không đòi hỏi cài đặt trên máy tính client.Kiểu 4: Native protocol all Java driver Chuyển lời gọi JDBC thành các lời gọi giao thức DBMS đặc thù. Khi đó sự chuyển đỗi này đặt phía server, mà không đòi hỏi cài đặt trên máy tính clientNguyễn Đức Hiển – Bài giảng Lập trình Java7Cơ chế họat động với JDBC
Xem thêm

39 Đọc thêm

Lecture 2:Object Oriented Programmingin Java ppt

LECTURE 2 OBJECT ORIENTED PROGRAMMING IN JAVA PPT

idNum = nextID++; }Body(String bodyName, Body orbitsAround) {this( );name = bodyName;orbits = orbitsAround; }public long getID() {return idNum;}public String getName() {return name;};public Body getOrbits() {return orbits;}}Note: now the fields idNum, name and orbits are read-only outside the class. Methods that access internal data are called accessor methods sometime 19To emphasize on data encapsulation (4)modification on the previous sample class with methods setting fieldsclass Body {private long idNum;private String name = “<unnamed>”;private Body orbits = null;private static long nextID = 0;// constructors omitted for space problem. . .public long getID() {return idNum;}public String getName() {return name;};public Body getOrbits() {return orbits;}public void setName(String newName) {name = newName;}public void setOrbits(Body orbitsAround) {orbits = orbitsAround;}}Note: now users can set the name and orbits fields. But idNum is still read-only
Xem thêm

23 Đọc thêm

Web Programming with Java - Introduction to Java docx

WEB PROGRAMMING WITH JAVA - INTRODUCTION TO JAVA DOCX

Reserved wordsModifiersStatementsBlocksClassesMethodsThe main method2008 © Department of Information Systems - University of Information Technology13Anatomy of a Java Program(1) Comments Line comment: // Paragraph comment : /*…*/  Reserved words or keywords Have a specific meaning to the compiler: class, public… Java is case-sensitive  Modifiers Keywords that specify the properties of the data, methods, and classes and how they can be used. public, static, private, final, abstract, and protected Statements Represents an action or a sequence of actions.2008 © Department of Information Systems - University of Information Technology14Anatomy of a Java Program(2) Blocks Begins with an opening brace ({)  Ends with a closing brace (}).  Classes The essential Java construct
Xem thêm

20 Đọc thêm

Giáo án - Bài giảng: LẬP TRÌNH JAVA CƠ BẢN : OOP TRONG JAVA

GIÁO ÁN BÀI GIẢNG LẬP TRÌNH JAVA CƠ BẢN OOP TRONG JAVA

// Ham main, goi Tinh dien tich mat catSystem.out.println("Area cut of sphere: " + sphere.getAreaCutO); // 24Đa hình (Polymorphism)• Vi du:class A {public void method(){ System.out.println("method of A "); }>class B extends A {public void method(){ System.out.println("method of B"); }>class C extends A {public void method(){ System.out.println("method of C"); }// Câu lệnh trong main A a = new A(); a.method();a = new B(); a.method();c c = new C(); a = c;a.method();// Kết quả màn hì nh method of A

40 Đọc thêm

Ada for Software Engineers doc

ADA FOR SOFTWARE ENGINEERS DOC

programs and believe that the same methods and techniques will enable them to develop largesoftware systems. Only later, when they gain experience and mature into competent softwareengineers, do they realize that the real world does not correspond to the ideal setting of a lab.Modern software systems are built by tens, even hundreds, of software engineers. Inevitably,a large team will suffer from inconsistencies caused by growth and rapid turnover. Throw inhuman personality traits such as ambition and envy, and it is a wonder that a large system caneven be built!The work of a software engineer is often the most complex in the entire project. The rea-son is that the tasks that are implemented in software rather than hardware are precisely thosethat concern the entire system. Other engineers typically work on individual components andsubsystems, which are then integrated into a software-controlled project. For example, a me-chanical engineer who designs the landing gear of an airplane is less involved in systems engi-neering than a software engineer who writes the control program of the aircraft and who mustunderstand the general principles of all the subsystems. Even in fields not traditionally consid-ered engineering, the same situation holds: the software engineer working on a stock exchangemust be familiar with the basic principles of the instruments being traded, together with thecommunications system and the requirements of the traders using the system. Software engi-neering is significantly more complex than just programming, and it should not be surprisingthat different tools are needed.1.2 Reliable software engineeringThe structure of the software market for personal computers has caused reliability to be con-sciously neglected. Software packages are compared by lists of features, performance, and12 1 The Language for a Complex Worldprice. Vendors feel pressured to bring new versions to market, regardless of the reliability ofthe product. They can always promise to fix the bug in the next version.But word-processors, presentation graphics and interactive games are not the only type ofsoftware being developed. Computers are now controlling the most complex systems in theworld: airplanes and spacecraft, power plants and steel mills, communications networks, in-ternational banks and stock markets, military systems and medical equipment. The social and
Xem thêm

511 Đọc thêm

Lập trình Java cơ bản : OOP trong Java part 1 pps

LẬP TRÌNH JAVA CƠ BẢN : OOP TRONG JAVA PART 1 PPS

1Lập trình Java cơ bảnCao Đức Thông - Trần Minh Tuấncdthong@ifi.edu.vn, tmtuan@ifi.edu.vn2Bài 2. OOP trong Java• Các phương pháp lập trình• Giới thiệu về OOP• Kế thừa (Inheritance)• Đa hình (Polymorphism)• Giao tiếp (Interface)• Lớp trừu tượng (Abstract)• Gói (Packages)• Java vs C++• Bài tập3Các phương pháp lập trình• Step-by-Step Programming• Lập trình từng bước• Machine Language, Assembly Language1101011100111101101000011101110101101110110010101000100100101011 MOV BX, CSSUB BX, 10h JNE label1LOOP label2 4
Xem thêm

5 Đọc thêm

Java C3. oop basic pdf

JAVA C3 OOP BASIC PDF

Constructors have the same name as the classA constructor is just like an ordinary method, however only the following information can be placed in the header of the constructor: scope or accessibility identifier (like public ), constructor's name and parameters if it has any.Constructors does not have any return valueYou cannot call a constructor directly, it can only be called by using the new operator during class instantiation.24Default constructorThe default constructor (no-arg constructor)is the constructor without any parameters. If the class does not specify any constructors, then an implicit default constructor is createdExamplepublic StudentRecord(){//some code here
Xem thêm

50 Đọc thêm

Tài liệu VB .NET Web Developer`s Guide P2 doc

TÀI LIỆU VB NET WEB DEVELOPER S GUIDE P2 DOC

languages.The CLR allows Visual Basic to provide inheritance and freethreading, whose absence created two glaring limitations to Visual BasicApplications.Visual Basic .NET is object-oriented. Everything is now an object,and every object is inherited from a standard base class.Another benefit of theCLR is a common type system, which means that all programming languagesshare the same types.This greatly increases interoperability between languages.The Internet has entered a new phase. First, it was used to display static Webpages. Businesses soon found that this did not help them significantly. Next, theInternet evolved to dynamic content and allowing electronic commerce.Thenext step is to move towards complete applications running on the Internet.Visual Basic .NET promotes these new Web applications.Web services allowobjects to be located anywhere on the Internet and to be called from any appli-cation across the Internet (no more trying to get DCOM configured). Of course,extending applications across the Internet will increase security risks.The .NETFramework has many security features built-in to it to protect your applications.www.syngress.com153_VBnet_01 8/14/01 11:56 AM Page 2www.syngress.comType safety is now enforced.This prevents code from accessing memory loca-tions that it does not have authorization to access.This allows you to define howyour objects are accessed. Before code is run, it is verified to be type-safe. If it isnot type-safe, it will only run if your security policies allow for it.Visual Basic has many new changes.This chapter gives you a high-level lookat the overall architectural changes.This will help you dig into the details in thefollowing chapters with an eye on the big picture.Examining the New IDEWhether you are a developer or a manager, you probably care more about howdifficult the transition to this new environment will be than about every new fea-ture. Microsoft shares your concerns. As you explore what VB.NET can offer, youwill continually observe an intelligent blending of earlier versions of VB with fea-
Xem thêm

20 Đọc thêm

C++ Lab 12 Object Oriented Programming Dr. John Abraham pot

C++ LAB 12 OBJECT ORIENTED PROGRAMMING DR. JOHN ABRAHAM POT

{ g1=a; g2=b; g3=c; } void Grade:: printGrades() { cout << "\n\n "; cout << "\nHere are the Grades you entered: " <<g1<<setw(4)<<g2<<setw(4)<<g3; } void Grade::printLetterGrade() { float av; av = (g1+g2+g3)/3.0; cout << "\nYour Average and Letter Grade -> "<<av; if (av >= 90) cout <<" A\n"; else if (av >=80) cout << " B\n"; else if (av >=70) cout <<" C\n"; else if (av >= 60) cout << " D\n"; else cout << " F\n"; } int main (void) { int a,b,c; Grade n; //n is an object of class Grade cout <<"\nEnter three grades separated by spaces "; cin >> a >> b >> c;
Xem thêm

6 Đọc thêm

Object oriented programming with C++ - Session 4 Operator Overloading potx

OBJECT ORIENTED PROGRAMMING WITH C++ - SESSION 4 OPERATOR OVERLOADING POTX

the operator. –For example, when the addition obj1+obj2 has to be done the overloaded operator function for + is declared as, operator+(Sample obj2)•as friend functions they take two arguments. –For example, operator+(Sample obj1,Sample obj2)Object Oriented Programming with C++/ Session 4/ 18 of 49Binary Arithmetic Operators■Need two operands to perform the operation. Sample Sample::operator+(Sample a){ Sample temp; //temporary object temp.counter = counter + a.counter; return temp; //return temp object}■Now we are able to perform addition of objects with a statement,obj3 = obj1 + obj2; //objects of class SampleObject Oriented Programming with C++/ Session 4/ 19 of 49Binary Arithmetic Operators (Contd.)■
Xem thêm

49 Đọc thêm

Tài liệu Growing Object-Oriented Software, Guided by Tests- P1 pptx

TÀI LIỆU GROWING OBJECT-ORIENTED SOFTWARE, GUIDED BY TESTS- P1 PPTX

of writing a test first helps us see when a design is too rigid or unfocused. Then,when we want to follow through and fix a design flaw, the tests give us a safetynet of regression coverage.We use the term “guided” because the technique still requires skill andexperience. We found test-driven development to be an effective design supporttool—once we’d learned how to develop incrementally and to “listen to the tests.”Like any serious design activity, TDD requires understanding and sustained effortto work.We’ve seen teams that write tests and code at about the same time (and eventeams that write the tests first) where the code is a mess and the tests just raisethe cost of maintenance. They’d made a start but hadn’t yet learned that the trick,as the title of the book suggests, is to let the tests guide development. Use thecontents of the tests to stay focused on making progress and feedback fromthe tests to raise the quality of the system.What about Mock Objects?Our original motivation for writing the book was to finally explain the techniqueof using mock objects,2 which we often see misunderstood. As we got deeperinto writing, we realized that our community’s discovery and use of mock objectswas actually an expression of our approach to writing software; it’s part of alarger picture.In the course of the book, we will show how the mock objects technique works,using the jMock library. More specifically, we’ll show where it fits into the TDDprocess and how it makes sense in the context of object-oriented development.Who Is This Book For?We wrote this book for the “informed reader.” It’s intended for developerswith professional experience who probably have at least looked at test-driven1. Alan Kay was one of the authors of Smalltalk and coined the term “object-oriented.”2. Mock objects are substitute implementations for testing how an object interacts with
Xem thêm

50 Đọc thêm

TÀI LIỆU MICROSOFT EXCEL AND ACCESS INTEGRATION WITH OFFICE 2007 P1 DOCX

TÀI LIỆU MICROSOFT EXCEL AND ACCESS INTEGRATION WITH OFFICE 2007 P1 DOCX

Published byWiley Publishing, Inc.10475 Crosspoint BoulevardIndianapolis, IN 46256www.wiley.comCopyright © 2007 by Wiley Publishing, Inc., Indianapolis, IndianaPublished simultaneously in CanadaISBN: 978-0-470-10488-0Manufactured in the United States of America10 9 8 7 6 5 4 3 2 1No part of this publication may be reproduced, stored in a retrieval system or transmittedin any form or by any means, electronic, mechanical, photocopying, recording, scanning orotherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copy-right Act, without either the prior written permission of the Publisher, or authorizationthrough payment of the appropriate per-copy fee to the Copyright Clearance Center, 222Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to thePublisher for permission should be addressed to the Legal Department, Wiley Publishing,Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, oronline at http://www.wiley.com/go/permissions.Limit of Liability/Disclaimer of Warranty: The publisher and the author make no repre-sentations or warranties with respect to the accuracy or completeness of the contents of thiswork and specifically disclaim all warranties, including without limitation warranties of fit-ness for a particular purpose. No warranty may be created or extended by sales or promo-tional materials. The advice and strategies contained herein may not be suitable for everysituation. This work is sold with the understanding that the publisher is not engaged in ren-dering legal, accounting, or other professional services. If professional assistance isrequired, the services of a competent professional person should be sought. Neither thepublisher nor the author shall be liable for damages arising herefrom. The fact that an orga-nization or Website is referred to in this work as a citation and/or a potential source of fur-ther information does not mean that the author or the publisher endorses the information
Xem thêm

30 Đọc thêm

Bioinformatics Programming Using Python pps

BIOINFORMATICS PROGRAMMING USING PYTHON PPS

countered in life science research and development. It is designed to be accessible toreaders with a range of interests and backgrounds, both scientific and technical. Itemphasizes practical programming, using meaningful examples of useful code. In ad-dition to meeting the needs of individual readers, it can also be used as a textbook fora one-semester upper-level undergraduate or graduate-level course.The book differs from traditional introductory programming texts in a variety of ways.It does not attempt to detail every possible variation of the mechanisms it describes,emphasizing instead the most frequently used. It offers an introduction to Python pro-gramming that is more rapid and in some ways more superficial than what would befound in a text devoted solely to Python or introductory programming. At the sametime, it includes some advanced features, techniques, and topics that are often omittedfrom entry-level Python books. These are included because of their wide applicabilityin bioinformatics programming, and they are used extensively in the book’s examples.Python’s installation includes a large selection of optional components called“modules.” Python books usually cover a small selection of the most generally usefulmodules, and perhaps some others in less detail. Having bioinformaticsprogramming as this book’s target had some interesting effects on the choice of whichmodules to discuss, and at what depth. The modules (or parts of modules) that arexicovered in this book are the ones that are most likely to be particularly valuable inbioinformatics programming. In some cases the discussions are more substantial thanwould be found in a generic Python book, and many of the modules covered here appearin few other books. Chapter 6, in particular, describes a large number of narrowlyfocused “utility” modules.The remaining chapters focus on particular areas of programming technology: patternmatching, processing structured text (HTML and XML), web programming (openingweb pages, programming HTTP requests, interacting with web servers, etc.), relationaldatabases (SQL), and structured graphics (Tk and SVG). They each introduce one ortwo modules that are essential for working with these technologies, but the chaptershave a much larger scope than simply describing those modules.
Xem thêm

524 Đọc thêm

Classes and Objects in Java_Object-oriented programming pps

CLASSES AND OBJECTS IN JAVA_OBJECT-ORIENTED PROGRAMMING PPS

Java7Đại học Công nghệ. ĐHQG Hà NộiAttributes, methods, and access controlAccess modifiers:PublicAccessible anywhere by anyoneProtectedAccessible only to the class itself and to its subclasses or other classes in the same “package”PrivateOnly accessible within this classClasses and objects in Java8Đại học Công nghệ. ĐHQG Hà Nội// GradeBook.java public class GradeBook { private String courseName; // course name for this GradeBook

13 Đọc thêm

QUESTIONS TO NET AND PROGRAMMING IN C

QUESTIONS TO NET AND PROGRAMMING IN C

d)Compile once and run on any CPU & OS that supports the runtime. 6. Microsoft .NET is primarily made up of the following three components. [2.0] a) Visual Studio .NET c) 3rd party .NET services b) Microsoft .NET products and services d) .NET platform itself 7. Select the two core technologies on which the .NET platform is based. [2.5] a) XML c) Internet Protocols b) WML d) Internet computing 8. Microsoft .NET allows developers to develop applications using different languages, which run on the Unix platform [0.5] a) True b) False 9. The .NET platform is built on Internet Protocols such as _______ and _______ [1.0] a) TCP /IP c) SOAP
Xem thêm

18 Đọc thêm