Code máy tính bỏ túi bằng Visual Basic

LỜI CẢM ƠNNhóm nghiên cứu đề tài: “LẬP TRÌNH MÁY TÍNH BỎ TÚI SCAL ProBÁO CÁO NGHIÊN CỨUBẰNG VBA”Xin bày tỏ lòng biết ơn sâu sắc tới BGH trường THCS Văn Lang, đã tạo điềukiện thuận lợi giúp đỡ chúng em trong thời gian thực hiện dự án. Cùng toàn thểcác thầy cô giáo trường THCS Văn Lang đã hướng dẫn tận tình, tạo điều kiện đểnhóm tác giả hoàn thành tốt đề tài.Nhóm nghiên cứu đề tài xin cảm ơn :- Thầy giáo Nguyễn Duy Hoàng đã hướng dẫn tận tình giúp chúng em hoànthành đề tài này.- Thầy giáo Nguyễn Tiến Thành đã tạo điều kiện về cơ sở phòng thực hành,cũng như là cố vấn cho chúng em hoàn thiện đề tài này.ĐỀbiếtTÀICuối cùng nhóm tác giả xinTÊNgửi lòngơn đến cha, mẹ, anh, chị cùng giađình và bạn bè đã giúp đỡ, động viên nhóm trong suốt thời gian thực hiện dự ánLẬPTRÌNH MÁY TÍNH BỎ TÚI SCAL-Pro BẰNG.VBA NHÓM TÁC GIẢLĩnh vực: 21 – Phần mềmhệ thốngNguyễnNhân DânHoàng Công VinhNHÓM THỰC HIỆN:1. Nguyễn Nhân Dân2. Hoàng Công Vinh- Lớp 9E- Lớp 9HNhóm trưởngThành viênNGƯỜI HƯỚNG DẪN: Nguyễn Duy HoàngViệt Trì , tháng 10 năm 20181MỤC LỤCLỜI CẢM ƠN...........................................................................................2CHƯƠNG 1. MỞ ĐẦU...........................................................................51.1. Tính cấp thiết của đề tài.................................................................51.2. Ý nghĩa khoa học và thực tiễn của đề tài..........................................51.2.1. Ý nghĩa khoa học..................................................................................51.2.2. Ý nghĩa thực tiễn...................................................................................51.3. Mục tiêu của đề tài...........................................................................5CHƯƠNG 2. TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU.........................72.1. Khái quát chung về VBA.................................................................72.2. Cách sử dụng VBA...........................................................................8CHƯƠNG 3: SCAL Pro.........................................................................153.2. Quá trình lập trình SCAL Pro.........................................................163.2.1. Giao diện.............................................................................................163.2. 2. Quá trình lập trình SCAL Pro...........................................................163.3. Kết quả thiết kế...............................................................................253.3.1. Về giao diện........................................................................................253.3.2. Lưu đồ thuật toán................................................................................263.3.3. Đánh giá độ ổn định............................................................................263.3.5. Đánh giá về độ chính xác....................................................................2623.3.6. Hoàn thiện sản phẩm...........................................................................29KẾT LUẬN VÀ KIẾN NGHỊ................................................................301. Kết luận.............................................................................................302. Kiến nghị...........................................................................................30TÀI LIỆU THAM KHẢO......................................................................313CHƯƠNG 1. MỞ ĐẦU1.1.Tính cấp thiết của đề tàiNgày này, khi khoa học kỹ thuật phát triển, khả năng tính toán của máy tínhcàng được tận dụng tối đa, bộ phần mềm văn phòng của Microsoft đã quá quenthuộc với chúng ta, trong đó phần mềm Excel giúp chúng ta thực hiện các côngviệc liên quan đến tính toán. Nhưng để có thể nhớ hết các hàm là 1 việc khônghề đơn giản, vì thế có những phép toán đối với những đối tượng như vậy vẫnphải dùng máy tính bỏ túi rồi nhập liệu vào phần mềm Excel, đó là lý do chínhđể nhóm làm ra SCAL Pro .SCAL Pro là phần mềm mô phỏng máy tính cầm tay, được tạo ra dành chonhững người làm việc văn phòng có nhu cầu tính toán từ cơ bản (cộng, trừ,nhân, chia ) cho đến nâng cao ( tỉ số lượng giác,…). Đặc biệt là những người cókỹ năng sử dụng các hàm tính toán trong Excel kém vì chúng khó nhớ và khó sửdụng ( SUM( cộng ), VLOOKUP(tìm dữ liệu)...).SCAL Pro thực chất chỉ là một file Word hoặc Excel, nên không đòi hỏi ngườidùng phải có kiến thức về máy vi tính để có thể cài đặt được phần mềm vào máytính và sử dụng.Vì những lý do trên, nhóm nghiên cứu lựa chọn và thực hiện dự án: Lập trìnhmáy tính bỏ túi SCAL Pro bằng VBA1.2. Ý nghĩa khoa học và thực tiễn của đề tài1.2.1. Ý nghĩa khoa học- Giúp cho mọi người biết được thêm những tính năng mở rộng của bộ phầnmềm văn phòng, để có thể làm việc hiệu quả hơn.- Giúp người dùng có thể có kiến thức nền tảng, hiểu được cách thức hoạt độngcủa ngôn ngữ VBA.1.2.2. Ý nghĩa thực tiễn- Nâng cao hiệu quả làm việc với công việc tính toán- Mang tính ứng dụng cao, vì chúng ta có thể lập trình thêm các tính năng tùychọn theo nhóm người dùng.1.3. Mục tiêu của đề tàiThiết kế, tạo ra được máy tính bỏ túi với các tính năng cơ bản, và thêm 1vài tính năng hướng theo nhu cầu người dùng.1.4. Những điểm mới của đề tài4- Sản phẩm SCAL Pro là sản phẩm “mở” theo đúng như tiêu chí của công nghệbây giờ.- SCAL Pro có thể thực hiện tốt các phép tính đến 20 số, con số khá lớn so vớimáy tính cầm tay thông thường.- Ngoài ra với tính năng “mở” nên phần mềm có thể nâng cấp thêm nhiều chứcnăng mà các máy tính bỏ túi khác không có.5CHƯƠNG 2. TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU2.1. Khái quát chung về VBAVisual Basic for Applications (VBA) là một sự bổ sung của Microsoft's VisualBasic, được xây dựng trong tất cả các ứng dụng Microsoft Office (bao gồm cảphiên bản cho hệ điều hành Mac OS), một số ứng dụng của Microsoft khácnhư Microsoft MapPoint và Microsoft Visio - một ứng dụng trước đây củaMicrosoft,đượcbổsungchonhiềuứngdụngnhư AutoCAD, WordPerfect và ESRI ArcGIS. Nó đã được thay thế và mở rộngtrên khả năng của ngôn ngữ Macro đặc trưng như WordBasic của Word, và cóthể được sử dụng để điều khiển hầu hếttất cả khía cạnh của ứng dụng chủ, kể cảvận dụng nét riêng biệt về giao diệnngười dùng như các Menu và Toolbarvà làm việc với các hình thái hoặc hộpthoại tùy ý. VBA có thể được sử dụng đểtạo ra các bộ lọc xuất nhập cho các địnhdạng tập tin khác nhau như ODF.Các phần mềm của Microsoft Office:Như tên gọi của mình, VBA khá gần gũi với Visual Basic, nhưng nó chỉ có thểchạy trong ứng dụng chủ chứ không phải 1 chương trình độc lập. Nó có thểđược dùng để điều khiển 1 ứng dụng từ 1 OLE tự động (ví dụ, tự động tạo mộtbản báo cáo bằng Word từ dữ liệu trong Excel).Visual Basic (VB)VBA có nhiều khả năng và cực kì mềm dẻo nhưng nó có một số hạn chế quantrọng, bao gồm hỗ trợ hạn chế cho các hàm gọi lại. Nó có khả năng sử dụngnhưng không tạo ra các thư viện động, và các phân bản sau hỗ trợ cho các môđun lớp (class modules).6Ta có thể làm được gì với VBA?VBA cho phép người ta viết các mã lệnh có tác động tới nhiều đối tượng để làmtăng tính tự động hoá trong ứng dụng của mình, làm những việc mà các công cụsẵn có trong ứng dụng chưa có, chẳng hạn như có thể viết hàm tính thuế, hay cácbài toán tính toán phức tạp mà công thức có sẵn của Excel không thể đáp ứngđượcVBA có thể được sử dụng để tạo nên những chương trình hỗ trợ chúng ta trongquá trình làm việc. Nó rất có ích trong việc xử lý dữ liệu lớn hay các công việclặp đi lặp lại thống kê số liệu.Ví dụ: ta có 10000 dòng trong một bảng thống kê và cần xoá những dòng giốngnhau. Nếu sắp xếp lại rồi xoá thủ công rất tốn thời gian, nhưng nếu sử dụngVBA thì sẽ chỉ tốn vài giây mà thôi.2.2. Cách sử dụng VBAĐầu tiên, ta phải bật Visual Basic Application được tích hợp trong Word vàExcel. Nhấp chuột phải vào thanh công cụ trong phần mềm Microsoft OfficeWord và chọn Customize the Ribbon (Tuỳ chọn Ruy-băng)Sau đó một cửa sổ tên là Word Option sẽ hiện ra. Chọn Developer (Nhà pháttriển).7Nhấn vào Trust Center và chọn Trust Center SettingSau đó, cửa sổ tên là Trust Center hiện ra. Nhấn vào Macro Setting. Tích vàocác ô như trong hình và chọn OK.8Cửa sổ sẽ tự động đóng. Trên thanh công cụ, sẽ xuất hiện thêm tab Developer(Nhà phát triển).Nhấp chuột phải vào Developer, sẽ xuất hiện biểu tượng của Visual Basic vàMacro.9Chọn Visual Basic và cửa sổ làm việc sẽ hiện ra.Ta có thể chọn Insert User Form để bắt đầu thiết kế giao diện.Trong cửa sổ Tool Box, có những các hộp thoại, nút bấm để ta lựa chọn. Chỉ cầnkéo, thả và căn chỉnh tùy ý.Giao diệnchương trìnhCác nút lệnh,hộp thoại10CommandButtonNhấn và giữ đểthay dổi kích thướcVí dụ, ta chọn biểu tượngCommandButton, kéo vàogiao diện sử dụng. Có thể tùy ý thay đổi độ lớn nhỏ và đặt tên nút lệnh.Cấu trúc của 1 chươngtrình trong VBA11Chương trình nàysẽ được kích hoạtkhi nhấn (click) vàonút lệnhNháy đúpvàonútlệnh vừatạo thì cửasổ để thêmvà chỉnhsửamãnguồn củanút lệnhđó sẽ hiệnra. Ta cóthểlậptrình được cho nút lệnh đó làm việc theo ý mìnhĐể lấy ví dụ, ta sẽ tạo 1 nút lệnh mà khi ấn vào sẽ có kí tự hiện lên màn hình.12Đầu tiên, mở 1 trang Word hoặc Excel mới, chọn Developer trên thanh công cụvà chọn Visual Basic.Cửa sổ Visual Basic hiện ra, ta chọn Insert User Form13CHƯƠNG 3: SCAL Pro3.1.Giới thiệu về SCAL ProCái tên SCAL Pro:- Chữ ‘S’ là viết tắt của từ ‘Student’ (học sinh) có ý nói rằng đây là một sảnphẩm do học sinh tạo ra.- Từ ‘Cal’ là viết tắt của từ ‘Calculator’ (máy tính) vì đây là một phần mềm đểtính toán.Về phần mềm SCAL Pro:+ SCAL Pro là phần mềm mô phỏng một chiếc máy tính cầm tay, được viết bằngngôn ngữ Visual Basic Application (VBA) tích hợp trong phần mềm Word vàExcel.+ SCAL Pro dành cho những người làm việc văn phòng có nhu cầu tính toán cơbản như cộng trừ nhân chia và phức tạp hơn là căn bậc hai, tỉ số lượng giác,…mà không có kỹ năng sử dụng các hàm tính toán trong phần mềm MicrosoftOffice Excel (SUM(cộng), AVERAGE(trung bình cộng),…) các hàm này khónhớ và sử dụng thành thạo chúng là điều không dễ.+ SCAL Pro dễ sử dụng, cũng có thể thêm các chức năng bằng cách lập trìnhngay trên file bằng VBA+ Ngoài ra những người làm việc ở các ngành chuyên biệt, như tài chính, kếtoán, ngân hang, … đều có những công thức riêng, chúng ta có thể tạo ra cácphím với công thức đó bằng lập trình VBA143.2. Quá trình lập trình SCAL Pro3.2.1. Giao diệnSCAL Pro có giao diện như 1 chiếc máy tính cầm tay, gồm vùng hiển thị cácphép tính, kết quả và các nút lệnh.3.2. 2. Quá trình lập trình SCAL ProDưới đây là vài đoạn code tiêu biểu- Khai báo biến:Public tmpVar As StringPublic calVal As String- Giới hạn số chữ sốPrivate Sub UserForm_Initialize()txtRes.MaxLength = 20txtDisplay.MaxLength = 20End Sub- Nút xóa trắng dữ liệu15Private Sub cmdBtnclr_Click()txtRes = 0: txtDisplay = EmptyEnd Sub- Nút xóa từng chữ sốPrivate Sub cmdBtnBak_Click()If txtRes <> 0 And txtRes <> "" Then txtRes = Left(txtRes, Len(txtRes) - 1)End Sub- Các phím số:Private Sub cmdBtn1_Click()If txtRes = 0 ThentxtRes = cmdBtn1.CaptionElsetxtRes = txtRes + cmdBtn1.CaptionEnd IfEnd SubPrivate Sub cmdBtn2_Click()If txtRes = 0 ThentxtRes = cmdBtn2.CaptionElsetxtRes = txtRes + cmdBtn2.CaptionEnd IfEnd SubPrivate Sub cmdBtn3_Click()16If txtRes = 0 ThentxtRes = cmdBtn3.CaptionElsetxtRes = txtRes + cmdBtn3.CaptionEnd IfEnd SubPrivate Sub cmdBtn4_Click()If txtRes = 0 ThentxtRes = cmdBtn4.CaptionElsetxtRes = txtRes + cmdBtn4.CaptionEnd IfEnd SubPrivate Sub cmdBtn5_Click()If txtRes = 0 ThentxtRes = cmdBtn5.CaptionElsetxtRes = txtRes + cmdBtn5.CaptionEnd IfEnd SubPrivate Sub cmdBtn6_Click()If txtRes = 0 ThentxtRes = cmdBtn6.Caption17ElsetxtRes = txtRes + cmdBtn6.CaptionEnd IfEnd SubPrivate Sub cmdBtn7_Click()If txtRes = 0 ThentxtRes = cmdBtn7.CaptionElsetxtRes = txtRes + cmdBtn7.CaptionEnd IfEnd SubPrivate Sub cmdBtn8_Click()If txtRes = 0 ThentxtRes = cmdBtn8.CaptionElsetxtRes = txtRes + cmdBtn8.CaptionEnd IfEnd SubPrivate Sub cmdBtn9_Click()If txtRes = 0 ThentxtRes = cmdBtn9.CaptionElsetxtRes = txtRes + cmdBtn9.Caption18End IfEnd SubPrivate Sub cmdBtn0_Click()txtRes = txtRes + cmdBtn0.CaptionEnd Sub- Các phép toán:Public Function mu(a As Double, b As Integer)Dim i As Integermu = 1For i = 1 To bmu = mu * aNextEnd FunctionPrivate Sub CommandButton46_Click()Dim pi As Doublepi = 4 * Atn(1)txtRes = piEnd SubPrivate Sub CommandButton13_Click()If txtRes = 0 ThentxtDisplay = "Cannot divide by 0"Else: txtRes = 1 / txtResEnd If19End SubPrivate Sub CommandButton36_Click()txtDisplay = "10^"calVal = "muoi"End SubPrivate Sub CommandButton43_Click()txtDisplay = "sqrt("calVal = "sqrt"End SubPrivate Sub CommandButton45_Click()txtDisplay = "abs"calVal = "abs"End SubPrivate Sub CommandButton3_Click()txtDisplay = txtRestxtRes = "0"calVal = "^"End SubPrivate Sub CommandButton8_Click()txtRes = mu(txtRes, 2)End SubPrivate Sub CommandButton2_Click()Dim i As Integer20Dim kq As Doublekq = 1For i = 1 To txtReskq = kq * iNexttxtRes = kqEnd SubPrivate Sub CommandButton1_Click()txtRes = txtRes / 100End SubPrivate Sub CommandButton47_Click()txtDisplay = "sin"calVal = "sin"End SubPrivate Sub CommandButton48_Click()txtDisplay = "cos"calVal = "cos"End SubPrivate Sub CommandButton51_Click()txtDisplay = "tan"calVal = "tan"End Sub- Luồng làm việc của các phép toán21Private Sub cmdBtnEql_Click()On Error GoTo ErrOccceredDim a, b As Doublea = Val(txtDisplay)b = Val(txtRes)If txtDisplay = "Cannot divide by Zero" Then txtDisplay = EmptySelect Case calValCase "sin"txtRes = Sin(b * 4 * Atn(1) / 180)Case "cos"txtRes = Sqr(1 - mu(Sin(b * 4 * Atn(1) / 180), 2))Case "tan"txtRes = Tan(b * 4 * Atn(1) / 180)Case "Add"txtRes = a + bCase "Minus"txtRes = a - bCase "Multiplication"txtRes = a * bCase "muoi"txtRes = mu(10, txtRes)Case "sqrt"txtRes = Sqr(txtRes)22Case "abs"txtRes = Abs(txtRes)Case "log"txtRes = Log(b)Case "^"txtRes = mu(txtDisplay, txtRes)Case "Divide"If txtRes = 0 ThentxtRes = "Cannot divide by 0"ElsetxtRes = a / bEnd IfCase ElseEnd SelecttxtDisplay = EmptyErrOcccered:End Sub- Nút bấm khởi động SCAL ProSub Clickforfun()Scal_PRo.ShowEnd Sub233.3. Kết quả thiết kế3.3.1. Về giao diệnVề mặt cấu tạo thì SCAL Pro khá giống với máy tính bỏ túi bình thường, cácphím bấm khá đẹp và rõ ràng (có thể trau chuốt thêm về kiểu chữ, phím bấm,màu, hình nền bằng 1 số thao tác đơn giản)243.3.2. Lưu đồ thuật toán3.3.3. Đánh giá độ ổn địnhSCAL Pro hoạt động cực kì ổn định, không hề xảy ra hiện tượng giật, lagtrong quá trình sử dụng, tạo sự thoải mái cho người dùng. Phần mềm có thể hoạtđộng trơn tru trên mọi cấu hình máy tính nên có thể vô tư cài đặt phần mềm vàomáy tính mà không cần lo nghĩ về cấu hình.3.3.4. Đánh giá độ trễTốc độ tính toán của SCAL Pro là gần như ngày tức thì sau khi ta clickvào dấu “=”. Phần mềm chỉ có độ trễ là khoảng 0.5 giây khi ta nhấp chuột 2 lầnliên tiếp vào cùng một nút lệnh.3.3.5. Đánh giá về độ chính xácSCAL Pro có độ chính xác tuyệt đối trong công việc tính toán. Ta có thểso sánh nó với phần mềm máy tính được tích hợp sẵn trong hệ điều hànhWindow.25