1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiệp tính chu vi đường tròn

18 519 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 629 KB

Nội dung

Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN NIÊN LUẬN 1 (Học kỳ II, Niên khóa 2010-2011) GIÁO VIÊN HƯỚNG DẪN: STT HỌ VÀ TÊN MSCB 1 NGUYỄN THANH BÌNH 1530 SINH VIÊN THỰC HIỆN: STT HỌ VÀ TÊN MSSV THƯỞNG (Tối đa 1 diểm) ĐIỂM 1 ĐOÀN VĂN QUÝ 1091704 I. HÌNH THỨC (Tối đa 0,5 điểm) Bìa (Tối đa 0,25 điểm)  Các tiêu đề: Trường ĐHCT, Khoa CNTT  Loại niên luận: 1, tên đề tài  Giáo viên hướng dẫn: chức danh, họ tên  Thông tin về sinh viên thực hiện: họ tên, mã số, lớp  Năm thực hiện  Nhận xét của giáo viên hướng dẫn và giáo viên chấm  Mục luc: cấu trúc chương, mục, tiểu mục  Phụ lục (nếu có)  Tài liệu tham khảo II. NỘI DUNG (Tối đa 3 điểm) Tổng quan (Tối đa 0,5 điểm)  Mô tả bài toán, mục tiêu cần đạt được (0,25 điểm)  Hướng giải quyết và kế hoạch thực hiện (0,25 điểm)  Các khái niệm sử dụng trong đề tài  Kết quả vận dụng lý thuyết vào đề tài Ứng dung (Tối đa 2,0 điểm)  Phân tích yêu cầu của bài toán, xây dựng các cấu trúc dữ liệu cần thiết (tối đa 0,5 điểm)  Giải thuật (Lưu đồ - Ngôn ngữ giả) (1,0 điểm)  Giới thiệu chương trình (0,5 điểm)  Nhận xét kết quả đạt được  Hạn chế  Hướng phát triển III. CHƯƠNG TRÌNH DEMO (Tối đa 5,0 điểm) Giao diện thân thiện với người dùng (1,0 điểm) Hướng dẫn sử dụng (0,5 điểm) Kết quả thực hiên đúng với kết quả của phần ứng dụng (3,5 điểm) Ghi chú: điểm trong khung “các sinh viên thực hiện” là điểm kết quả cuối cùng của từng sinh viên trong quá trình thực hiện niên luận 1. Nếu sinh viên demo chương trình và trả lời vấn đáp không đạt yêu cầu của giáo vên hướng dẫn thì sinh viên sẽ nhận điểm F cho học phần này. SVTH:Đoàn Văn Quý Page 1 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Cần Thơ, ngày … tháng 4 năm 2011 GIÁO VIÊN HƯỚNG DẪN Nguyễn Thanh Bình SVTH:Đoàn Văn Quý Page 2 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình MỤC LỤC    CHƯƠNG 1: PHẦN TỔNG QUAN 4 1.1 GIỚI THIỆU: 4 1.2 MÔ TẢ BÀI TOÁN: 4 1.3 MỤC TIÊU CẦN ĐẠT ĐƯỢC: 4 1.4 HƯỚNG GIẢI QUYẾT: 5 1.5 KẾ HOẠCH THỰC HIỆN: 5 CHƯƠNG 2: PHẦN LÝ THUYẾT 5 2.2 KẾT QUẢ VẬN DỤNG VÀO BÀI TOÁN: 7 CHƯƠNG 3: KẾT QUẢ ỨNG DỤNG 8 3.1 PHÂN TÍCH BÀI TOÁN: 8 3.1.1 Yêu cầu và cách giải bài toán: 8 3.1.2 Tổ chức dữ liệu: 8 3.2 THIẾT KẾ GIẢI THUẬT: 9 3.2.2 Giải thuật: 9 3.3 GIỚI THIỆU CHƯƠNG TRÌNH: 10 3.3.1 Môi trường cài đặt: 10 3.3.2 Cách thức thực thi chương trình: 10 3.3.3 Một vài giao diện của chương trình: 10 CHƯƠNG 4: KẾT LUẬN – ĐÁNH GIÁ 15 4.1 CÁC KẾT QUẢ ĐẠT ĐƯỢC: 15 4.2 HƯỚNG PHÁT TRIỂN: 16 PHỤ LỤC 17 HƯỚNG DẪN SỬ DỤNG DEMO 17 TÀI LIỆU THAM KHẢO 18 SVTH:Đoàn Văn Quý Page 3 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình CHƯƠNG 1: PHẦN TỔNG QUAN 1.1 GIỚI THIỆU: Tìm chu vi đường tròn là bài toán quan trọng trong bất cứ ngành kỹ thuật nào. Do đó, tìm chu vi đường tròn là cần thiết và thuật toán tối ưu tìm ra chu vi đường tròn là thật sự quan trọng. Một trong những bài toán đặt ra trong thực tế là việc tìm chu vi đường tròn từ ba điểm không thẳng hàng cho trước và phương pháp đó tốt nhất theo một chỉ tiêu cụ thể, nghiên cứu lời giải các lớp bài toán tối ưu thuộc về lĩnh vực ứng dụng toán học. Tuy nhiên cũng cần phải nói rằng trong nhiều trường hợp chúng ta chưa thể xây dựng một thuật toán nào thực sự hữu hiệu để giải bài toán, mà cho tới nay việc tìm chi vi cua đường tròn là thực sự chưa sẽ tối ưu, và cần phải tìm ra thuật toán tốt nhất cho mọi trường hợp. Việc tính chu vi đường tròn có thể được thực hiện bằng nhiều phương pháp, trong quyển niên luận 1 này chúng ta nghiêm cứu một phương pháp đó là lập trình hướng đối tượng và kiến thức là dùng hệ thức “Hê-rong ” tìm ra các số liệu liên quan. 1.2 MÔ TẢ BÀI TOÁN: Bài toán tính chu vi đường tròn sẽ thật đơn giản khi chúng ta biết được bán kính của đường tròn, nhưng nếu không biết bán kính thì sa? Bài toán được đặt tên từ vấn đề tìm ra chu vi của đường tròn từ ba điểm cho trước. Bài toán thường được ứng dụng trong công việt tính toán đơn giản trong kiến thức toán phổ thông, các ngành xây dựng, thiết kế và tạo các bản vẽ Nội dung bài toán là tìm ra chu vi đường tròn với giá trị nhập từ người dùng (từ file) mỗi bộ sáu số tương ưng với các tọa độ trong mặt phẳng đề-các. Kết quả cần tìm là một chu vi và được lưu vào file . 1.3 MỤC TIÊU CẦN ĐẠT ĐƯỢC: Nắm vững cơ sở lý thuyết về lập tình hướng đối tượng trên môi trường C++ và các kỹ thuật thiết kế giải thuật mà quan trọng là thiết kế các hàm xây dựng, hàm thành viên… Hiểu được kỹ thuật lập trình hướng đối tượng và ứng dụng vào thực tế bài toán. Thiết kế chương trình sao cho có thể:  Nhập vào bài toán:  Thuật toán nhập vào tọa độ của điểm.  Thuật toán tìm các giá trị hay kết quả cần thiết cho công việc tính toán.  Xuất ra phương án:  Xuất ra các điểm vừa nhập từ file.  Xuất ra màn hình các gía trị cẩn thiết cho việc tính chu vi của đường tròn.  Xuất ra chu vi của đường tròn(ra màn hình hay ra filexuat). Kiểm tra tính đúng đắn của chương trình. Đánh giá giải thuật, so sánh với các giải thật khác. SVTH:Đoàn Văn Quý Page 4 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình 1.4 HƯỚNG GIẢI QUYẾT: Xây dựng giải thuật tìm ra chu vi đường tròn bằng ngôn ngữ giả, sau đó tối ưu hóa giải thuật thành chương trình. Lập trình trên máy tính và cho chạy. Tìm chu vi đường tròn bằng các thuật toán trong lập trình hướng đối tượng, như khai báo một class, các hàm xây dựng và các hàm thành viên. Tìm một thuật toán tồi ưu nhất có thể để tìm chu vi đường tròn nhanh nhất có thể. Bài toán này chúng ta đưa các chưng trình về các đối tượng sinh động và dễ dàng thực hiện các phép toán trên các đối tượng. 1.5 KẾ HOẠCH THỰC HIỆN: Tuần 1,2,3 Tìm hiểu các chiến lược thiết kế giải thuật, mà đặc biệt ở đây là dung lập trình hướng đối tượng . Tuần 4,5,6 Xây dựng hàm và chương trình theo giải thuật đã đề ra. Thử tìm xem có giải thuật nào tốt hơn không. Tuần 7,8 Viết bài báo cáo. CHƯƠNG 2: PHẦN LÝ THUYẾT 2.1 CÁC KHÁI NIỆM CƠ BẢN: 2.1.1 Lập trình hướng đối tượng(object-oriented programming OOP): - Là kĩ thuật lập trình dựa trên công nghệ đối tượng, làm tăng năng suất lập trình, đơn giản hóa độ phức tập của chương trình , giúp người lập trình hình thức hóa chương trình thành của mình thành các đối tượng. 2.1.2 Lớp (class): - Class là khuôn mẫu tạo ra đối tượng. Ví dụ: class Diem{ private: public: protected: } ; a. private (riêng): - Riêng tư là thể tính chất đóng mạnh nhất của một đặc tính hay một lớp trong lập trình hướng đối tượng. - ví dụ: class Diem{ private: int x; }; SVTH:Đoàn Văn Quý Page 5 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình b. bublic (dung chung): - Công cộng là một tính chất được dùng để gán cho các phương thức, các biến nội tại, hay các lớp mà khi khai báo thì người lập trình đã cho phép các câu lệnh bên ngoài cũng như các đối tượng khác được phép dùng đến nó. - ví dụ: Class Diem{ Public: Diem(); }; c. protected (bảo vệ): - là tính chất mà khi dùng để áp dụng cho các phương thức, các biến nội tại, hay các lớp thì chỉ có trong nội bộ của lớp đó. - ví dụ: class Diem { protected: int y; }; 2.1.3 Hàm thành viên: - Là hàm dung để gọi thực thi trong hàm main(). - ví dụ: class Diem { … bublic: Diem(); Diem(int a, int b); … }; 2.1.4 Tính chu vi đường tròn: - Là độ dài của đường tròn, tính theo công thức 2xπxR( trong đó π là hệ số có giá trị là 3.14, R là bán kính đường tròn). 2.1.5 Diện tích đường tròn: - Là phần nhìn thấy của đường tròn, tính theo công thức πxR 2 ( trong đó π là hệ số có giá trị là 3.14, R là bán kính đường tròn). 2.2 KẾT QUẢ VẬN DỤNG VÀO BÀI TOÁN SVTH:Đoàn Văn Quý Page 6 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Hình thức hóa bài toán tìm chu vi đường tròn, với những thuất toán phúc tạp để tìm chu vi đường tròn, nhưng với hướng đối tượng chúng ta có thể xem bài toán tìm chu vi đường tròn tphức tạp thành bài toán gần gũi hơn. Bài toán tìm chu vi đường tròn được vận dụng nhiều trong đời sống, đặc biệt là những ngành kĩ thuật, xây dựng…. Đặc biệt là trong xây dựng, bài toán tìm chu vi giúp rất nhiều trong kỹ thuật. Làm cho bài toán tìm chu vi của đường tròn ngày càng phong phú và đa dạng. SVTH:Đoàn Văn Quý Page 7 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình CHƯƠNG 3: KẾT QUẢ ỨNG DỤNG 3.1 PHÂN TÍCH BÀI TOÁN: 3.1.1 Yêu cầu và cách giải bài toán: Theo yêu cầu của bài toán thì ta cần tìm được chu vi của đường tròn khi biết tọa độ ba điểm được biết trước tọa độ. Chu vi đường tròn được tìm tính ra khi ta dung hệ thức hê- rông. 3.1.2 Tổ chức dữ liệu: Chương trình được xậy dựng bắt đầu từ một class, với các hàm thành viên và các hàm xây dựng cho thuật toán thì việc tìm ra chu vi đường tròn là công việc không phức tạp. a. Khai báo một class: class Diem{ }; b. Xây dựng các hàm thành viên: float GiaTriX(){ return x; } float GiaTriY(){ return y; } c. Tái định nghĩa toán tử: friend ostream& operator << (ostream& os, Diem d){ os<<d.x; os<<"\n"; os<<d.y; return os; } friend istream& operator >> (istream& is, Diem&d){ cout <<"Nhap diem x: "; is>>d.x; cout <<"Nhap diem y: "; is>>d.y; return is; } d. Hàm nhập – xuất file: friend int ReadFile(char *nameFile){ int dx; int dy; Diem X; char name; SVTH:Đoàn Văn Quý Page 8 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình float x; float y; ifstream is(nameFile); is >> x; is >> y; is.close(); if(tam == 1){ A.x = (float)x; A.y = (float)y; } else if(tam ==2){ B.x = x; B.y = y; } else{ C.x = x; C.y = y; } cout << x << " "<<y << "\n"; return 0; } void xuatFile(float d){ FILE *f1; f1=fopen("filexuat.txt","wt"); fprintf(f1,"%.2f ",d); fprintf(f1,"\n"); fclose(f1); } 3.2 THIẾT KẾ GIẢI THUẬT: 3.2.1 Giải thuật: Với bài toán này nếu ta sử phương pháp lập trình cấu trúc sẽ gặp nhiều vấn đề về việc tính các khoảng cách và tọa độ các điểm sẽ rời rạc nhau, với lập trinh hướng đối tượng những phần tử rời rạc sẽ được mô hỉnh hóa thành một đối tượng . Và việc thực hiện phép toán trên đối tượng sẽ thật dễ dàng hơn, nhưng bên cạnh đó vẫn còn các hàm độc lập. Bài toán tìm chu vi đường tròn từ ba điểm cho trước trong mặt phẳng đề-các vuông góc bằng cách dùng hệ thức hê-rông với các số liệu liên quan chúng ta tìm ra diện tích đường tròn, tiếp đến tìm ra bán kính đường tròn ngoại tiếp tam giác cho trước và cuối cùng là tìm ra chu vi đường tròn với độ chính xác là hai số thập phân. Giải thuật để tìm chu vi nhu sau: Lấy số liệu từ file bộ text gồm ba tọa độ(giả sử ba điểm là A,B,C) Tính độ dài các cạnh AB,BC,AC; SVTH:Đoàn Văn Quý Page 9 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Tìm nữa chu vi của tam giác; P = (AB+BC+AC)/2; Tìm diện tích của tam giác; S = sqrt(P(P – AB)(P-BC)(P-AC)); Tìm bán kính đường tròn; R = (AB+BC+AC)/4S; Tìm chu vi đường tròn; CV = 2πR; 3.3 GIỚI THIỆU CHƯƠNG TRÌNH: 3.3.1 Môi trường cài đặt: Chương trình được cài đặt bằng ngôn ngữ C++. Môi trường cài đặt DEV C++ 4.9.9.2, Copyright © Bloodshed Software. Giấy phép: GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright ©1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA 3.3.2 Cách thức thực thi chương trình: Trình biên dịch của Dev C++ 4.9.9.2 sẽ biên dịch mã code chương trình ra file thực thi .exe. 3.3.3 Một vài giao diện của chương trình: Giao diện chương trình sau khi trình biên dịch biên dịch xong: Sau khi nhận các số liệu từ file giao diện như sau: gồm tọa ba điểm và độ dài các đoạn thẳng. SVTH:Đoàn Văn Quý Page 10 of 18 [...].. .Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Bên cạnh đó cũng in xuất ra màn hình đồ họa vẽ tam giác và đường tròn: SVTH:Đoàn Văn Quý Page 11 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Dùng phím chức năng 1 xuất ra hướng dẫn dùng chương trình: Dùng phím chứa năng 2 hiện thông tin giảng vi n và sinh vien: Dùng phím chức năng 3 xem tọa độ tâm của đường tròn: SVTH:Đoàn Văn... của đường tròn: SVTH:Đoàn Văn Quý Page 12 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Dùng phím chức năng 4 xem thông tin về các thông số của đường tròn: Dùng phím chứa năng 0 thoát khỏi chương trình làm vi c: SVTH:Đoàn Văn Quý Page 13 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình Nếu trường hợp ba điểm không tao thành tam giác thì màn hình đồ họa xuất hiện như sau: Khi dùng phím chức... sau: SVTH:Đoàn Văn Quý Page 14 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình CHƯƠNG 4: KẾT LUẬN – ĐÁNH GIÁ 4.1 CÁC KẾT QUẢ ĐẠT ĐƯỢC: Đã giải quyết được vấn đề của bài toán theo đúng tiến độ và kế hoạch đã đề ra Những thu hoạch về mặt chuyên môn, kinh nghiệm:  Thấy được sự cần thiết của vi c phân tích giải thuật để có thể lựa chọn một giải thuật tốt hoặc đánh giá để cải tiến giải thuật đó  Biết... thuật công nghệ và phổ thông Thông thường các bài toán thực tế đòi hỏi phải có sự tổng hợp, pha trộn nhiều thuật toán, nhiều kỹ thuật mới có được một lời giải tốt Không được lạm dụng một kỹ thuật nào và cũng không xem SVTH:Đoàn Văn Quý Page 15 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình thường một phương pháp nào khi bắt tay vào giải một bài toán Các phương pháp phải được vận dụng hết sức triệt... of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình PHỤ LỤC HƯỚNG DẪN SỬ DỤNG DEMO Thật chất để sử dụng được demo thì cũng không khó, vì đây là demo hết sức đơn giản Bạn chỉ cần xem qua phần giới thiệu chương trình thì bạn cũng đã biết cách sử dụng demo Chương trình code gồm hai phần: một phần dùng chạy có tên “nl_1.cpp”, phần hai có tên “vedt.cpp” dùng chạy trong Project2 để vẽ minh họa đường tròn. .. rất nhiều cho vi c học tập sau này Qua đó ta thấy rằng, không có một phương pháp nào có thể giúp chúng ta xây dựng (thiết kế) nên các giải thuật cho tất cả các loại bài toán mà chúng ta nên dựa vào những chiến lược thiết kế các giải thuật chung nhất đó để áp dụng cho những bài toán khác nhau Ưu điểm: chương trình nhỏ gọn, dễ hiểu, đáp ứng được những yêu cầu đặt ra của bài toán Có màn hình đồ họa cho các... rang: 1 Chương trình thực hiện yêu cầu của bài toán 2 Chương trình thực hiện vẽ hệ trục tọa độ và hình tròn tương ứng  Chương trình sẽ hiện ra cho bạn những dữ liệu nguồn và dữ liệu đích, màn hình điều khiển gần gủi với dân lập trình và người sử dụng SVTH:Đoàn Văn Quý Page 17 of 18 Tính chu vi đường tròn GVHD: Nguyễn Thanh Bình TÀI LIỆU THAM KHẢO [1] Trương Văn Chí Công Lập trình hướng đối tượng & C++... thức toán hình học đơn giản, dễ hiểu, gần gũi với người dùng Dùng lập trình hướng đối tượng làm đối tượng hóa các thuộc tính Hạn chế: chưa tìm được giải thuật nào tốt hơn giải thuật hiện tại, chương trình con đơn sơ Nguyên nhân: do thời gian hạn chế và kiến thức nên chưa tìm ra một phương pháp tối ưu nhất có thể Tóm lại, qua đề tài này ta thấy được rằng trong thực tế vi c sử dụng kết quả bài toán là... chương trình đã chạy tốt Lúc này chương trình sẽ xuất hiện một màn hình đồ họa và một Menu lựa chọn  Tiếp theo bạn dùng các phím chức năng đã có chứ thích rõ ở phần Menu để chọn các tùy chọn  Nhấn phím bắt kì( hay Enter) chọn tùy chọn đó và quay về Menu chính bằng cách nhắn phím bắt kì ( hay Enter)  Chương trình với hai phần rõ rang: 1 Chương trình thực hiện yêu cầu của bài toán 2 Chương trình thực... trên Nếu có thời tôi sẽ khắc phục hạn chế đó, thiết kế thêm một số biến thể của bài toán như: Phát triển chương trình lên một mức cao hơn thành một chương trình ứng dụng thực sự có thể áp dụng vào thực tế Sẽ có đồ họa đẹp mắt hơn, sinh động hơn, phần trợ giúp cho người dùng ngay trên chương trình, dùng bàn phím di chuyển của bàn phím chứ không dùng các số để lựa chọn, bên cạnh những lỗi được phát hiện . TOÁN: Bài toán tính chu vi đường tròn sẽ thật đơn giản khi chúng ta biết được bán kính của đường tròn, nhưng nếu không biết bán kính thì sa? Bài toán được đặt tên từ vấn đề tìm ra chu vi của đường. GIỚI THIỆU: Tìm chu vi đường tròn là bài toán quan trọng trong bất cứ ngành kỹ thuật nào. Do đó, tìm chu vi đường tròn là cần thiết và thuật toán tối ưu tìm ra chu vi đường tròn là thật sự quan. b); … }; 2.1.4 Tính chu vi đường tròn: - Là độ dài của đường tròn, tính theo công thức 2xπxR( trong đó π là hệ số có giá trị là 3.14, R là bán kính đường tròn) . 2.1.5 Diện tích đường tròn: - Là

Ngày đăng: 22/08/2014, 16:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w