Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
3,43 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC HOA SEN KHOA HỌC VÀ CÔNG NGHỆ Tên đề tài: Xây Dựng Phần Mềm Ứng Dụng Máy Tính Khoa Học cho Điện Thoại Cầm Tay Thông Minh chạy hệ điều hành Android Giảng viên hƣớng dẫn : Nguyễn Anh Tuấn Lớp : QL091A Thời gian thực : Tuần đến tuần 15 học kỳ 10.2A Nhóm sinh viên thực : Nguyễn Hải Triều - 093602 : Trần Thị Kim Hiền - 091544 : Dƣơng Xuân Phúc - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com THÁNG 07 / NĂM 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TRÍCH YẾU Tên đề tài: Xây Dựng Phần Mềm Ứng Dụng Máy Tính Khoa Học (Scientific Calculator) cho Điện Thoại Cầm Tay Thông Minh (Smart Phone) chạy hệ điều hành Android Mục tiêu chính: Phân tích xây dựng thành cơng phần mềm ứng dụng máy tính khoa học cho điện thoại cầm tay thông minh chạy giả lập Android SDK Yêu cầu sinh viên: - Học mơn lập trình hƣớng đối tƣợng, cấu trúc liệu, giải tích - Chịu khó học hỏi - Khả làm việc nhóm Phƣơng pháp nguyên cứu: Nghiên cứu công việc dƣới hƣớng dẫn giám sát giảng viên trƣờng đại học Hoa Sen, đƣợc phép nghiên cứu tài liệu liên quan trình thực đồ án Kết đạt đƣợc: Tập thể nhóm: + Phân tích rõ module chức máy tính khoa học + Xây dựng thành cơng phần mềm ứng dụng máy tính khoa học chạy điện thoại cầm tay thông minh + Update lên điện thoại thơng minh thật có giả lập Android SDK chạy thành công Cá nhân: + Nâng cao khả viết code LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com + Nâng cao khả phân tích giải pháp giải vấn đề + Nâng cao khả làm việc nhóm thành viên LỜI CẢM ƠN Trong trình thực đồ án giúp nhóm chúng tơi có đƣợc kiến thức thực tế cần thiết Chúng xin chân thành cảm ơn thầy cô khoa Khoa Học Công Nghệ đặc biệt thầy cô ngành Công Nghệ Thông Tin trƣờng Đại Học Hoa Sen tạo hội cho thực đồ án Qua đây, xin cảm ơn thầy, cô khoa Khoa Học Cơng Nghệ tận tình giảng dạy cho biết kiến thức chủ yếu, để có tảng tốt cho cơng việc sau Cuối cùng, cảm ơn thầy Nguyễn Anh Tuấn suốt trình thực đồ án giúp đỡ tận tình giảng dạy cho chúng tơi kiến thức Khi hoàn thành đƣợc báo cáo trải qua khoảng thời gian làm việc với thành viên nhóm.Thật sự, khoảng thời gian ngắn để thể tinh thần làm việc nhóm, LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vận dụng kiến thức học để hồn thành cơng việc cách tốt Xin chân thành cảm ơn Khoa Khoa Học Công Nghệ NHẬP ĐỀ Sau thời gian học tập trau dồi kiến thức giai đoạn tốt để ngƣời nhóm chúng tơi áp dụng kiến thức học để vận dụng vào đề tài mà trƣờng giao cho làm Đây giai đoạn để thấy rõ khả tiếp thu, nắm vững kiến thức mức độ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục tiêu giảng viên đặt cho là: Làm quen với cách thức làm việc theo nhóm Nắm vững lập trình thành thạo với Java Android Dùng Java Android thiết kế “Scientific Calculator” Bên cạnh mục tiêu nhóm chúng tơi đặt là: Từ đề tài mở rộng ứng dụng cho đề tài khác có liên quan LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC TRÍCH YẾU LỜI CẢM ƠN NHẬP ĐỀ MỤC LỤC .7 MÔ TẢ YÊU CẦU ĐỀ TÀI YÊU CẦU ĐỒ ÁN NỘI DUNG BÁO CÁO 12 I THUẬT TOÁN CHUYÊN DỤNG 12 Calculator: 12 Smartphone: 12 Sơ lƣợc hệ điều hành Android: 13 II PHÂN TÍCH CHƢƠNG TRÌNH 14 Mô tả chức .14 LƢU ĐỒ KÍ PHÁP BALAN 18 LƢU ĐỒ THUẬT TOÁN ĐỘ ƢU TIÊN 25 LƢU ĐỒ GIẢI THUẬT CỘNG, TRỪ .31 I Lƣu đồ giải thuật đƣa trƣờng hợp đặc biệt cộng trừ thành dạng đơn giản 31 II Lƣu đồ giải thuật thực việc cân số chữ số đàng trƣớc vào sau dấu chấm động .32 III Lƣu đồ giải thuật phép cộng 34 IV Lƣu đồ giải thuật phép trừ 36 V Đánh giá kết .66 - Hàm bậc hai phục vụ cho giải phƣơng trinh bậc 67 III NHỮNG KỶ THUẬT VÀ HƢỚNG MỞ RỘNG CỦA CHƢƠNG TRÌNH 68 Những kĩ thuật công nghệ áp dụng chƣơng trình 68 Hƣớng mở rộng chƣơng trình 68 KẾT LUẬN 69 TÀI LIÊU THAM KHẢO 71 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MÔ TẢ YÊU CẦU ĐỀ TÀI Gần điện thoại cầm tay thông minh trở thành vật hầu nhƣ “cần phải có” sống ngày giới làm việc “trí thức” Viết phần mềm tiện ích nâng cao giá trị sử dụng cho chúng trở nên trào lƣu cho công ty phát triển phần mềm, giới lập trình viên chuyên nghiệp nhƣ không chuyên.Đặc biệt ứng dụng cho máy chạy hệ điều hành Android Điểm cần lƣu ý phần cứng (hardware) đa số điện thoại cầm tay khơng có xử lý tính dấu phẩy động (floating-point processor) Điều làm việc phát triển phần mềm cho chúng trở nên phức tạp lý thú Cũng nên biết nhiều ứng dụng phần mềm địi hỏi phép tính dấu phẩy động (bề ngồi tƣởng khơng cần thiết), ví dụ nhƣ tính tốn phần cong (curves) cho phong chữ DGOPSWY… Để xử lý số thực SV tìm hiểu áp dụng fixedpoint vào tất phép tính tốn Phần mềm máy tính đƣợc cài đặt sẵn điện thoại cầm tay nhƣng dừng lại mức độ nhƣ cộng trừ nhân chia, mức nhu cầu sử dụng giới làm việc “trí thức” cao hơn, mức độ máy tính khoa học Đề tài “Xây Dựng Phần Mềm Ứng Dụng Máy Tính Khoa Học cho Điện Thoại Cầm Tay Thông Minh chạy hệ điều hành LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Android” nhằm nâng cao kỹ lập trình, nhƣ phân tích, thiết kế xây dựng ứng dụng thực tiển cho sinh viên từ yêu cầu đƣợc phân tích nhƣ Xây dựng đƣợc phần mềm ứng dụng nhƣ máy tính khoa học thực thụ không đơn giản Cho nên mức độ yêu cầu đề tài bao gồm phép toán hàm đơn giản Đồng thời ứng dụng đƣợc giới hạn cho máy điện thoại cầm tay thông minh hình (lớn, cảm ứng, …) chúng cho phép thiết kế xây dựng giao diện phức tạp đa năng, xử lý chúng đủ mạnh để tính tốn tốn phức tạp (phát sinh từ việc khơng có xử lý tính dấu phẩy động) nhằm đáp ứng đƣợc yêu cầu đề tài YÊU CẦU ĐỒ ÁN Xây dựng đƣợc giao diện (graphics interface) cho ứng dụng tảng Android tƣơng tự nhƣ hình sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Nhập xử lý biểu thức: a Cho phép nhập biểu thức dùng dạng mẩu (inputting expression using standard format) nhƣ máy tính khoa học thực Ví dụ nhập biểu thức: 2*(3.6 + log(5 + 3÷4.1) – sin(29.7)) – e2.7 b Nhập hàm: tự động thêm dấu ngoặc mở nhập hàm Ví sin dụ nhấn hàm thể sin( biểu thức c Cho phép bỏ dấu nhân (*) trƣờng hợp sau: i Trƣớc dấu ngoặc mở „(„ Ví dụ: 2*(3.6 + 5.6) → 2(3.6 + 5.6) ii Trƣớc hàm có dấu ngoặc mở: 2.0*sin(30) → 2.0sin(30) iii Trƣớc biến số, số: 2A, 2y, 2π, … d Sửa chửa biểu thức: di chuyển trỏ (cursor) để xóa/thêm biểu thức Các phép tính cộng +, trừ -, nhân *, chia ÷ Các phép tính với hàm: x2, x3, 1/x, n!, ln (log số e), log (log số 10), 10x, ex, sin, cos, tan, Abs, xy, sinh, cosh, Các phép tính với hàm: sin-1, cos-1, tan-1, sinh-1, cosh-1, tanh-1 Có thể dùng degree hay radians cho hàm lƣợng giác (trigonometry) 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com private double ln(String a) { double x = Double.parseDouble(a); double ps = chia(new Double(tru(a, "1")).toString(), new Double(cong(a, "1")).toString()); double kq = ps, t1, t2, t; if (x > 0) { for (int i = 1; i < 20; i++) { t1 = 1/i; t2 = lt(new Double(ps).toString(), new Double(t1).toString()); t = nhan(new Double(t1).toString(), new Double(t2).toString()); kq = cong(new Double(kq).toString(), new Double(t).toString()); i++; } } kq = nhan(new Double(kq).toString(), "2"); return kq; } Với phép tốn logx: áp dụng cơng thức Code: private double log(String a) 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com { double kq = 0; double x = Double.parseDouble(a); String ln10; if (x phƣơng trình có hai nghiệm phân biệt Code: private String PTB2(String a, String b, String c) { double result, soa, sob, soc, x1 = 0, x2 = 0; soa = Double.parseDouble(a); sob = Double.parseDouble(b); soc = Double.parseDouble(c); if (soa == 0) { if (sob == 0) { if (soc == 0) return "Phương trình có vơ số nghiệm"; else return "Phương trình vô nghiệm"; } else { result = chia("-" + c, b); return new Double(result).toString(); } } 63 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com else { double t = nhan("4", new Double(nhan(a, c)).toString()); double delta = tru(new Double(sqr(b)).toString(), new Double(t).toString()); if (delta < 0.0) ; else if (delta == 0) { result = chia("-" + b, new Double(nhan("2", a)).toString()); } else { double ds = lt(new Double(delta).toString(), "0.5"); double mau = nhan("2", a); x1 = chia(new Double(cong(new Double(sqr(b)).toString(), new Double(ds).toString())).toSt ring(), new Double(mau).toString()); x2 = chia(new Double(tru(new Double(sqr(b)).toString(), new Double(ds).toString())).toSt ring(), new Double(mau).toString()); } } 64 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com return "Phương trình có nghiệm phân biệt:\n" + "x1 = " + new Double(x1).toString() + "\n" + "x2 =" + new Double(x2).toString(); } d Các form chƣơng trình hƣớng dẫn sử dụng Các nút sin, cos, tan, sinh, cosh, click vào hiển thị thêm dấu “(“, ket thúc nên them dấu “)” để chƣơng trình hiểu thực thi Đối với hàm khác gần giống nhƣ Calculator Windows x2: sqr( xy: ^ x3: cube( n!: ! y√x: yroot 3√x: cuberoot( 10x: 10^ Π: PI 65 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ln: ln Log: log 9: +, - , *, /: +, -, *, / √x: sqrt( ±: %: % 1/x: 1/ Sin, cos, tan: sin(, cos(, tan( Sinh, cosh, tanh: sinh(, cosh(, tanh( Ví dụ: Ta muốn nhập biểu thức 2*(3.6 + log(5 + 3†4.1) – sin(29.7)) – e2.7 * 82 Lần lƣợt click nút * ( + log ( + / 1) – sin( ) ) – e^ * sqr(8) Click vào nút “=” chƣơng trình trả kết xố biểu thức ta vừa nhập để nhập biểu thức khác V Đánh giá kết Nhóm thực u cầu Tính tốn phép tính dƣới dạng biểu thức đƣa vào Tính tốn bốn phép tính có dấu chấm động cộng, trừ, nhân, chia Một số hàm yêu cầu thực - Hàm sin - Hàm cos - Hàm tan - Hàm sinh - Hàm cosh - Hàm - Hàm ln - Hàm log - Hàm ex - Hàm bình phƣơng 66 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Hàm lập phƣơng Hàm xy với số mũ nguyên dƣơng Giải phƣơng trình bậc Giai phƣơng trình bậc Hàm bậc hai phục vụ cho giải phƣơng trinh bậc Chất lƣợng: Các phép tính cộng, trừ, nhân, chia hoàn thiện ko gây lỗi nhỏ làm sai số lớn Tuy nhiên chƣa thể thực việc thay đổi nút sin, cos,… nên chƣa thể thực thi hàm sin-1, cos-1, … Và hàm xy áp dụng đƣợc cho số mũ nguyên dƣơng Chƣa thể tạo activity thực thi hàm giải phƣơng trình bậc 1, bậc 67 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com III NHỮNG KỶ THUẬT VÀ HƢỚNG MỞ RỘNG CỦA CHƢƠNG TRÌNH Những kĩ thuật cơng nghệ áp dụng chƣơng trình Đối với chƣơng trình chúng tơi chúng tơi xây dựng ngơn ngữ lập trình Java, Eclipse kĩ thuật sử dụng phổ biến hƣớng đối tƣợng, đƣợc gọi thơng qua đối tƣợng Ngồi ra, để giúp cho chƣơng trình hồn thiện chúng tơi sử dụng thêm phần xử lý luồng chƣơng trình.Đây thật cơng việc q sức chúng tôi, nhƣng từ tinh thần tâm chịu khó nhóm cuối cơng việc hoàn tất Hƣớng mở rộng chƣơng trình Do độ khó u cầu đƣợc đặt nên cịn vài u cầu chúng tơi chƣa thực đƣợc, nhƣng nhóm tâm giải vấn đề lại tƣơng lai: Các phép tính dựa sáu mƣơi (sexagesminal) độ, phút, giây; Các phép tính cho 68 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Base-N (hex, dec, oct, bin); Giải hệ hai phƣơng trình với hai ẩn số;Các phép tính với hàm: xy với số mũ thực, sin-1, cos-1, tan-1, sinh, cosh, tanh, sinh-1, cosh-1, tanh-1 KẾT LUẬN Sau xây dựng xong chƣơng trình nhìn chung chúng tơi tự nhận thấy hồn thành tốt phần yêu cầu đề tài đặt ra, mục tiêu mà nhóm chúng tơi tự đặt cho Nhƣng bên cạnh q trình làm cịn mục tiêu mà chúng tơi tự nhận thấy chƣa thực tốt thiếu sót trình thực 69 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bài học mà rút đƣợc đợt làm đề tài theo nhóm điều địan kết - trí nhóm thực hành địi hỏi phải có linh hoạt cao nhiều so với học lý thuyết Qua khả tự tìm hiểu sáng tạo đƣợc nâng cao khả làm việc theo nhóm Khơng dừng lại mà chúng tơi cịn hiểu rõ hơn, sâu cơng nghệ Java nói riêng, tảng Eclipse nói chung quan trọng việc xử lý luồng cho chƣơng trình, giúp cho chƣơng trình đƣợc linh hoạt nhiều, nhƣ việc sử dụng tiện ích, phần mềm hỗ trợ khác để giúp cho chƣơng trình hồn thiện hơn, chun nghiệp 70 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIÊU THAM KHẢO Lập trình hƣớng đối tƣợng Java, Nguyễn Tiến – Nguyễn Văn Hoài – Đặng Xuân Hƣờng, Nhà xuất Thống Kê Wikipedia.org tƣ liệu tham khảo tƣ liệu mạng 71 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... hỏi - Khả làm việc nhóm Phƣơng pháp nguyên cứu: Nghiên cứu công việc dƣới hƣớng dẫn giám sát giảng viên trƣờng đại học Hoa Sen, đƣợc phép nghiên cứu tài liệu liên quan trình thực đồ án Kết đạt... thiết kế “Scientific Calculator” Bên cạnh mục tiêu nhóm chúng tơi đặt là: Từ đề tài mở rộng ứng dụng cho đề tài khác có liên quan LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC... chƣơng trình 68 KẾT LUẬN 69 TÀI LIÊU THAM KHẢO 71 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MÔ TẢ YÊU CẦU ĐỀ TÀI Gần điện thoại cầm tay thông minh trở thành