Luận Văn Ngôn ngữ lập trình C++

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    ĐỀ TÀI : Ngôn ngữ lập trình C++

    MỤC LỤC


    Giới thiệu đề tài 6
    Phần I: Giới thiệu sơ bộ về nền .NET và ngôn ngữ C# 8
    I. Giới thiệu sơ bộ về .NET 8
    I.1. Giới thiệu chung về nền .NET (.NET platform) 8
    I.2. Kiến trúc phân lớp nền .NET 9
    I.3. Những đặc trưng của nền .NET 9
    I.3.1. Phát triển đa ngôn ngữ 9
    I.3.2. Chương trình ứng dụng độc lập với hệ điều hành và bộ vi xử lí 10
    I.3.3. Quản lí bộ nhớ tự động 10
    I.3.4. Hỗ trợ phiên bản 10
    I.4. Những thành phần của nền .NET 11
    I.4.1. CLR 11
    I.4.2. Mã quản lí và mã không quản lí ( Managed/Unmanaged Code ) 11
    I.4.3. Ngôn ngữ trung gian , hệ thống kiểu thông thường và CLS 12
    I.4.4. Thư viện lớp cơ sở của .NET 12
    I.4.5. Assembly và metadata 13
    I.4.6. Chương trình dịch Just in time 13
    I.4.7. Quản lí bộ nhớ ( Garbage Collection ) 13
    I.4.8. Vòng đời của mã 14
    II. Giới thiệu sơ bộ ngôn ngữ lập trình C# 14
    II.1. Lập trình hướng đối tượng trong C# 14
    II.2. Những đặc điểm của ngôn ngữ C# 15
    II.2.1. Các toán tử 15
    II.2.2. Các kiểu dữ liệu: 15
    II.2.3. Các câu lệnh 16
    II.2.4. Cấu tạo của một chương trình C# 16
    II.3. C# và những vấn đề nâng cao 18
    II.3.1. C# với cơ sở dữ liệu 18
    II.3.2. C# với Internet 18
    Phần II: Đồ họa trong C# 19
    I. Giới thiệu về GDI+ 19
    II. Kiến trúc của GDI+ 19
    II.1. Đồ họa Vector 2D 20
    II.2. Hình ảnh 20
    II.3. In ấn và hiển thị font chữ 20
    III. Kiến trúc lớp của GDI+ 20
    IV. Một số điểm mới trong GDI+ 21
    IV.1. Bút vẽ Gradient 21
    IV.2. Đường cong Spline 22
    IV.3. Đối tượng đồ họa độc lập 22
    IV.4. Chức năng chuyển đổi và đối tượng ma trận 22
    IV.5. Vùng ảnh co giãn được 23
    IV.6. Đổ bóng Alpha 23
    V. Thay đổi trong mô hình lập trình 23
    V.1. Ngữ cảnh thiết bị, Handles và các đối tượng đồ họa 23
    V.2. Bút vẽ, bút phủ, đồ họa, hình ảnh và Font chữ 24
    VI. Giới thiệu các đối tượng đồ họa cơ bản trong GDI+ 24
    VI.1. Đồ họa Vector 24
    VI.2. Hình ảnh và Metafile 25
    VI.3. Các loại hệ tọa độ 26
    VI.4. Các phép chuyển đổi 27
    Phần III: Đa luồng trong C# 28
    I. Khái niệm đa luồng 28
    I.1. Đa nhiệm ( multitasking ) 28
    I.2. Đa luồng ( multitasking) 28
    II. Đa luồng trong C# 29
    II.1. Cấu trúc các lớp điều khiển luồng của C# 30
    II.2. Tổng quát các phương thức của lớp Thread 32
    II.2.1. Tạo luồng ( create thread ) 32
    II.2.2. Nhập luồng ( join thread ) 33
    II.2.3. Dừng một luồng 34
    II.2.4. Hủy một luồng 34
    II.3. Vòng đời của một luồng 35
    II.4. Sự ưu tiên của luồng và định thời gian biểu cho luồng 35
    II.5. Đồng bộ hóa các luồng: 37
    II.5.1. Lớp Interlocked: 37
    II.5.2. Sử dụng lệnh C# lock: 37
    II.5.3. Monitor: 38
    Phần IV: XML và C# 42
    I. Lịch sử các ngôn ngữ đánh dấu 42
    I.1. Khái niệm “đánh dấu” (markup) 42
    I.2. Ngôn ngữ đánh dấu 45
    II. Tổng quan về ngôn ngữ XML 45
    II.1. Ngôn ngữ XML là gì? 45
    II.2. Các ưu điểm của XML 46
    II.3. Các ứng dụng XML 46
    II.3.1. Mathematical Markup Language (MathML) 46
    II.3.2. Resource Description Framework(RDF) 47
    II.3.3. XML Linking Language(XLink) 47
    II.3.4. Synchronized Multimedia Intergration Language(SMIL) 47
    II.3.5. Extensible Stylesheet Language(XSL) 47
    II.4. Tương lai XML 47
    III. Cấu trúc và cú pháp XML 48
    III.1. Cấu trúc XML 48
    III.1.1. Cấu trúc logic 48
    III.1.2. Cấu trúc vật lí 49
    III.2. Cú pháp XML 50
    III.2.1. Các thẻ gán và phần tử 51
    III.2.2. Các thuộc tính và chú giải 52
    IV. XML trong C# 52
    IV.1. Tạo một tài liệu XML 52
    IV.2. Duyệt tài liệu XML 55
    IV.3. Quá trình Serializing 56
    IV.4. Quá trình Deserializing 59
    Phần V: Lập trình mạng trong C# 60
    I. Giới thiệu về lập trình mạng 60
    I.1. Nhận dạng máy 60
    I.2. Socket 61
    I.3. Server phục vụ nhiều clients 64
    II. Giao tiếp với Web 66
    II.1. Gửi và nhận các yêu cầu HTTP 66
    II.2. Các yêu cầu Web không đồng bộ 68
    II.3. Dịch vụ Web 68
    Phần VI: Một vài so sánh C# với các ngôn ngữ khác 70
    I. Sự khác nhau giữa C# và C/C++ 70
    I.1. Về môi trường 70
    I.2. Về các lệnh 70
    I.3. Về tổ chức chương trình 71
    II. Sự khác biệt giữa C# và Java 71
    II.1. Về kiểu dữ liệu 71
    II.2. Về truy cập thành phần 72
    II.3. Các tham số ref và out 73
    II.4. Giao diện (Interfaces) 73
    II.5. Về 2 từ khoá khai báo import và using 73
    III. Sự khác biệt giữa C# và VB 6.0 73
    Kết luận 75
    Tài liệu tham khảo 76
    Phụ lục 77
    I. Mô tả chương trình minh họa 77
    II. Hướng dẫn sử dụng chương trình 78
    III. Hướng dẫn cài đặt chương trình 79










    DANH SÁCH CÁC HÌNH VẼ


    Hình 1 Kiến trúc nền .NET 9
    Hình 2 Cấu trúc CLR 11
    Hình 3 Tô màu bằng bút vẽ Gradient tuyến tính 21
    Hình 4 Đường Bézier được tô bởi bút phủ Gradient 22
    Hình 5 Chuyển đổi đồ thị 22
    Hình 6 Co giãn vùng ảnh 23
    Hình 7 Các mức độ trong suốt của màu nền 23
    Hình 8 Hệ trục toạ độ của GDI+ 25
    Hình 9 Dịch chuyển hệ toạ độ 26
    Hình 10 Vòng đời của một luồng 36
    Hình 11 Vòng luân phiên thực hiện luồng 36
    Hình 12 Minh hoạ soạn thảo trong WordPad 42
    Hình 13 Mã của văn bản đọc bằng NotePad 43
    Hình 14 Mã của văn bản Word đọc bằng NotePad 43
    Hình 15 Tạo văn bản HTML trong NotePad 44
    Hình 16 Cấu trúc của XML 48
    Hình 17 Khai báo thành phần trong XML 49
    Hình 18 Minh họa cấu trúc cây của ví dụ 51
    Hình 19 Kết quả chương trình tạo tài liệu trên IE 6.0 54
    Hình 20 Kết quả ví dụ Serializing trên IE 6.0 58

    DANH SÁCH CÁC THUẬT NGỮ VIẾT TẮT


    Đ IE 6.0 = Internet Explorer 6.0
    Đ CLS = Common Language Spcification
    Đ CLR = Common Language Runtime
    Đ IDE = Integrated Development Environment
    Đ API = Application Programming Interface
    Đ VB = Visual Basic
    Đ VC = Visual C
    Đ VS = Visual Studio
    Đ XML = Extensible Markup Language
    Đ MSIL = IL = Microsoft Intermediate Language
    Đ COM = Component Object Model
    Đ IDL = Interface Definition Language
    Đ DLL = Dynamic Link Library
    Đ GC = Garbage Collection
    Đ JIT = Just In Time compiler
    Đ ADO = ActiveX Data Object
    Đ MS = Microsoft
    Đ SQL = Structured Query Language
    Đ GDI = Graphic Device Independence
    Đ WMF = Window MetaFile
    Đ EMF = Enhanced MetaFile
    Đ CPU = Central Processing Unit
    Đ RTF = Rich Text Format
    Đ HTML = Hyper Text Markup Language
    Đ SGML = Standard Generalized Markup Language
    GIỚI THIỆU ĐỀ TÀI



    Trong nhiều năm, các lập trình viên C và C++ luôn phải đối mặt với những vấn đề đau đầu như: sử dụng con trỏ, quản lí bộ nhớ, truyền tham trị, tham biến, xử lý danh sách, xây dựng thư viện, đa kế thừa, xây dựng giao diện thân thiện với người dùng Vì vậy họ luôn mong muốn, tìm kiếm một ngôn ngữ thay thế có khả năng cũng như tính uyển chuyển mạnh như C và C++ hơn nữa lại đơn giản hơn. Vào giữa những năm 90, thế giới lập trình có sự thay đổi lớn với sự bùng nổ Internet ( Internet Boom ) và sự ra đời của ngôn ngữ lập trình Java. Ngay từ khi ra đời, Java đã cho thấy khả năng to lớn của nó trong việc phát triển các ứng dụng trên internet. Hơn nữa Java còn thnàh công với tuyên bố “write once, run anywhere” cố thể tạm dich là : viết một lần, chạy trên mọi nền. Thành công đó xuất phát từ ý tưởng tách rời mã khi biên dịch chương trình và mã khi chạy chương trình, đây là điểm khác biệt lớn so với những ngôn ngữ lập trình C hay C++. Java đưa ra một khái niệm mới : máy ảo. Máy ảo thực hiện các công việc như biên dịch ra mã máy, quản lí bộ nhớ hay nói cách khác, máy ảo đóng vai trò giao tiếp giữa ứng dụng Java và môi trường ( hệ điều hành, hay phần cứng) làm cho ứng dụng Java độc lập với môi trường. Tuy nhiên tốc độ phát triển Java lại chậm dần, và không thể đấp ứng được những đòi hỏi ngày càng cao của người dùng. Các hãng phát triển Java chậm đưa ra một môi trường tích hợp IDE phục vụ cho phát triển các dự án phần mềm. Việc lập trình các ứng dụng trên Windows bằng Java không thuận tiện, Java có nhiều hạn chế trong việc giao tiếp với các ngôn ngữ khác như C++, Visụal Basic Java không có sự phát triển đồng nhất theo xu hướng thuận tiện cho người sử dụng, phải mất nhiều năm Java mới hỗ trợ được điều khiển Mouse – wheel, khó sử dụng thư viện API của hệ điều hành, phiên bản Visual J++ của Microsoft phát triển thì lại mang nhiều nét không giống với nguyên bản. Windows XP ra đời với tuyên bố không hỗ trợ máy ảo Java, không tích hợp máy ảo Java vào trình duyệt IE 6.0 đã làm uy tín của Java suy giảm nặng nề. Cuối cùng thì ngôn ngữ mà các lập trình viên mong đợi cũng xuất hiện, đánh dấu chấm hết cho cuộc tìm kiếm ngôn ngữ lập trình kéo dài nhiều năm của các lập trình viên. Được bắt đầu nghiên cứu từ năm 1997, vào năm 2001, Microsoft giới thiệu một platform mới --.Net, đi cùng với nó là một ngôn ngữ mới - C#.
    C# được coi như ngôn ngữ mang tính cách mạng của Microsoft. Dựa trên kinh nghiệm của các ngôn ngữ trước đó như C, C++ và VB, C# được thiết kế nhằm sử dụng đơn giản, hoàn toàn hướng đối tượng. Với sự tích hợp C# với VS. Net, việc phát triển các ứng dụng Windows và Web nhanh và đơn giản. Có thể truy cập vào các thư viện lớp của .Net, C# hỗ trợ phát triển các ứng dụng ASP.Net và dịch vụ Web. Bên cạnh đó, C# tăng cường năng suất lập trình bằng việc xoá bỏ đi những lỗi thông thường có trong C và C++.
    Java thành công nhất trên 2 lĩnh vực: lập trình các ứng dụng trên server và trong giảng dạy khoa học tính trong các trường học. C# cũng có khả năng vượt trội Java trên hai lĩnh vực đó. Trong đề tài này, chúng em không thể trình bày hết mọi vấn đề liên quan đến ngôn ngữ C#, chúng em chỉ xin giới thiệu sơ bộ về .NET và C# cùng với một số vấn đề nâng cao trong ngôn ngữ C# như sau:
    1. Giới thiệu sơ bộ về nền .NET và ngôn ngữ C#
    2. Đồ hoạ trong C#
    3. Đa luồng trong C#
    4. XML và C#
    5. Lập trình mạng trong C#
    6. Một vài so sánh C# với các ngôn ngữ khác
    Trong đề tài này, chúng em không dám chắc mọi trình bày, đánh giá là chính xác, xác đáng. Trong khi làm đề tài có một số thuật ngữ Anh khó chuyển tải đúng nghĩa sang tiếng Việt nên được giữ nguyên. Chúng em kính mong thầy thông cảm và góp ý sửa chữa những điểm chưa tốt trong báo cáo.


     
Đang tải...