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

(Tiểu luận) báo cáo thực hành môn lập trình trực quan đề tài phần mềm mô phỏng các thuật toán sắp xếp

29 74 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

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC HÀNH Mơn: Lập trình trực quan Đề tài: Phần mềm mơ thuật tốn xếp GVHD: Huỳnh Tuấn Anh Nhóm: Quảng Huỳnh Tấn Duy - 16520287 Huỳnh Phương Duy - 16520285 Nguyễn Văn Vinh - 16521444 TP.HCM, ngày 15 tháng năm 2018 LỜI MỞ ĐẦU Lời đầu tiên, em xin chân thành gửi lời cảm ơn đến thầy Huỳnh Tuấn Anh, người nhiệt tình giúp đỡ, hướng dẫn định hướng cho em suốt trình thực đồ án Trong xã hội ngày nay, ứng dụng tin học ngày phát triển ứng dụng nhiều lĩnh vực đời sống từ kinh tế đến khoa học xã hội Và giáo dục không ngoại lệ, việc sử dụng ứng dụng Công nghệ Thông tin hợp lý cần thiết, nhằm nâng cao chất lượng học tập học sinh sinh viên Trên sở đó, nhóm em tạo phần mềm với hi vọng giúp ích cho q trình học tập bạn, đồng thời bọn em có hội ứng dụng kiến thức học mơn Lập trình trực quan Cuối cùng, cịn hạn chế lực kinh nghiệm làm phần mềm, sản phẩm tụi em khó tránh khỏi thiếu sót Kính mong nhận góp ý thầy Mục lục Chương Tổng quan 1.1 Hiện trạng yêu cầu thực tế 1.2 Giới thiệu toán cần giải 1.3 Quy trình thực cơng việc 1.4 Tổng quan chức Chương Phân tích u cầu phần mềm mơ hình hố 2.1 Yêu cầu phần mềm 2.1.1 Yêu cầu chức 2.1.2 Yêu cầu phi chức 2.1.3 Bảng FURPS 2.2 Mơ hình hóa Chương Kỹ thuật xử lí 10 3.1 Phân tích 11 3.1.1 Phân tích hiệu ứng 11 3.1.2 Phân tích chức 11 3.2 Kĩ thuật sử dụng 11 3.2.1 Xây dựng lớp ButtonNode kế thừa từ lớp Button 11 3.2.2 Xử lý bất đồng với Thread BackgroundWorker 12 3.2.3 Xử lý việc di chuyển phần tử dãy 12 Chương : Thiết kế giao diện 13 4.1 Giao diện tổng thể 14 4.2 Giao diện thực thuật toán Sort 15 4.3 Giao diện Instrucion 16 4.4 Giao diện About 17 Chương : Cài đặt Kiểm thử 18 5.1 Các công nghệ sử dụng 19 5.1.1 Ngơn ngữ lập trình c# 19 5.1.2 Bunifu framework 19 5.2 Các hàm xử lý 19 5.2.1 Button Node 19 5.2.2 Hàm tạo mảng 22 5.2.3 Tạo quản lý thread .23 5.2.4 Hàm huỷ tiến trình 25 5.3 Kiểm thử 25 5.3.1 Unit Test 25 5.3.2 Intergration Test 25 5.3.3 System Test 25 Chương Tổng kết 26 6.1 Kết đạt 27 6.2 Hạn chế 27 6.3 Hướng phát triển 27 6.4 Bảng phân rã công việc…………………………………………………………………………….27 TÀI LIỆU THAM KHẢO…………………………………………………………………………………29 Chương TỔNG QUAN 1.1 Hiện trạng yêu cầu thực tế Các thuật toán xếp Quick Sort, Shell Sort, Interchange Sort,… có ứng dụng ý nghĩa lớn quản lý lưu trữ liệu Các thuật toán sếp giới thiệu đầy đủ môn học Cấu trúc liệu giải thuật Tuy nhiên, thuật tốn lại có chế, cách vận hành riêng Một số thuật toán thâm chí cịn có chế cịn phức tạp, trừu tượng, dẫn đến tượng sinh viên khó nắm bắt, hiểu rõ tất thuật tốn Do đó, phần mềm có khả minh họa thuật toán xếp cách rõ ràng, cụ thể, trực quan , sinh động cần thiết cho sinh viên Ứng dụng công nghệ thông tin vào việc hỗ trợ học tập cho học sinh, sinh viên không việc xa lạ thời đại ngày Việc giúp người dùng học sinh, sinh viên có nhìn trực quan mơn học mình, giảm bớt tính đơn điệu, nhàm chán khơ khan mơn học Vì vậy, từ yêu cầu khảo sát từ thực tế, nhóm chúng em định xây dựng phần mềm Mô thuật toán – Simulation Sort nhằm giúp bạn có nhu cầu tìm hiểu thuật tốn xếp dễ dàng nắm bắt hơn, nâng cao chất lượng học tập 1.2 Giới thiệu toán cần giải Simulation Sort phần mềm giúp người dùng mô thuật toán xếp Với việc di chuyển số cách trực quan, sinh động, người sử dụng dễ dàng nắm bắt bước thuật tốn Đồng thời, phần mềm cịn cung cấp lí thuyết thuật tốn code minh họa để người dùng tham khảo Về bản, phần mềm mô chi tiết bước 10 thuật toán (các thuật tốn mơn Cấu trúc liệu giải thuật) với tùy chọn cần thiết thuật tốn 1.3 Quy trình thực cơng việc Thiết kế giao diện phần mềm Thiết kế hệ thống phần mềm Cài đặt Bảo trì, nâng cấp, sửa chữa 1.4 Tổng quan chức Cho phép người dùng nhập dãy phần tử cần xếp, tạo dãy ngẫu nhiên theo số lượng phần tử mà người dùng yêu cầu Cho phép người dùng lựa chọn thuật toán xếp hướng xếp Cung cấp lý thuyết thuật toán code minh họa thuật tốn xếp Mơ q trình xếp cách trực quan Ghi lại nhật ký xếp cho người dùng xem lại Chương PHÂN TÍCH U CẦU PHẦN MỀM VÀ MƠ HÌNH HO 2.1 Yêu cầu phần mềm 2.1.1 Yêu cầu chức STT Định danh Instruction Choose Sort No.Element Generate Độ ưu tiên 1 1 Sort By Start Simulation Algorithm 10 11 12 13 14 Save Process Step Idea Code C/C++ Pause Stop Process Show Dialog 4 5 Mô tả yêu cầu Người dùng đọc hướng dẫn sử dụng phần mềm Người dùng lựa chọn thuật toán cần xếp Người dùng nhập số lượng phần tử cần xếp Người dùng chọn phương thức input tay tự động ngẫu nhiên Người dùng chọn cách xếp( tăng, giảm) Lấy thông tin từ input để xử lí xuất kết Hiển thị q trình xếp thuật tốn theo u cầu người dùng Lưu lại trình xếp Hiển thị trình xếp theo bước Hiển thị ý tưởng thuật toán Hiển thị đoạn lệnh code C/C++ thực thi Tạm dừng trình xếp Hủy trình xếp Thơng báo kết thúc thuật tốn 2.1.2 Yêu cầu phi chức STT Định danh Anti- reverse Engineering Độ ưu Mô tả yêu cầu tiên Sử dụng biện pháp bảo vệ mã nguồn 2.1.3 Bảng FURPS Tiêu chí chất lượng Functionality Usability Reliablity Performance Mô tả Hướng tới phục vụ người dùng với mục đích học tập Giao diện thiết kế đơn giản, dễ hiểu, dễ sử dụng Hệ thống thiết kế với khả giảm thiểu bug trình xếp thuật tốn Tối ưu hóa thuật tốn, giảm thiểu thời gian xếp Supportability Việc xếp nhanh tập trung vào giao diện đơn giản Truy vết người dùng để kịp thời sửa chữa có crash(đang hồn thiện) 2.2 Mơ hình hóa STT Tên Nhập thơng tin input Xử lí liệu đầu vào Xem trình thực thuật tốn Kết thúc xếp Mơ tả Người dùng nhập thông tin input theo bước yêu cầu Hệ thống xử lí liệu để xếp thuật tốn theo yêu cầu người dùng Hệ thống hiển thị tứng bước xếp thuật tốn chọn Thơng báo kết thúc thuật toán người dùng tự kết thúc Yêu cầu liên quan Choose Sort, No.Element, Generate, Sort By, Start, Pause Stop Process Save Process Simulation Algorithm, Step,Idea,,Code C/C++ Pause, Stop Process, Show Dialog Chương KỸ THUẬT XỬ LÍ 10 4.2 Giao diện thực thuật toán Sort 15 4.3 Giao diện Instrucion 16 4.4 Giao diện About 17 Chương CÀI ĐẶT VÀ KIỂM THỬ 5.1 Các công nghệ sử dụng 5.1.1 Ngôn ngữ lập trình c# 18 C# ngơn ngữ cấp cao hướng đối tượng, hỗ trợ mạnh việc xây dựng ứng dụng môi trường Windows Đối với lập trình viên sử dụng qua C, C++, Java, việc nắm bắt sử dụng C# cách hiệu dễ dàng tốn thời gian 5.1.2 Bunifu framework Bunifu framework giúp người lập trình dễ dàng thiết kế giao diện bắt mắt Bunifu framework thư viện hỗ trợ việc thiết kế cho windows form đơn giản Với bunifu framework NET, thiết kế winform chưa dễ Với bunifu bạn làm nhiều thứ dễ dàng : Slide menu hoạt hình (đóng mở) Nền winform đẹp với Gradient background - Tô màu cầu vồng cho form (trộn màu) Hỗ trợ Flat UI - Thiết kế giao diện phẳng Metro Design Nhiều chức khác progressbar quay tròn,biểu đồ ,rất tiện lợi 5.2 Các hàm xử lý 5.2.1 Button Node - Để tạo phần tử ta dùng Button thêm vào thuộc tính mà phần tử cần: vị trí tại, giá trị,… Ta đặt nên cho phần tử Node Ngồi Node cịn chứa TextBox bên có nhiệm vụ người dùng nhập giá trị cho Node nhấn vào (nhập tay) class ButtonNode : Button { public int giaTri; 19 public int vitriHienTai; public TextBox nhapTayTexbox; public Node(int vitrihientai, int giatri) { Node : property + event this.FlatStyle = FlatStyle.Flat; this.BackColor = ThamSo.MauNenNode; this.TextAlign = ContentAlignment.MiddleCenter; this.Size = new Size(ThamSo.KichCoNode, ThamSo.KichCoNode); this.Padding = new Padding(0); this.Font = new Font("Consolas", ThamSo.KichCoNode / 3.2f, FontStyle.Bold); this.UseCompatibleTextRendering = true; / this.Text = giatri.ToString(); giaTri = giatri; vitriHienTai = vitrihientai; this.GotFocus += new EventHandler(Node_GotFocus); / NhapTay TextBox : property + event nhapTayTexbox = new TextBox(); nhapTayTexbox.MaxLength = 2; nhapTayTexbox.TextAlign = HorizontalAlignment.Center; nhapTayTexbox.BorderStyle = BorderStyle.Fixed3D; nhapTayTexbox.Visible = false; nhapTayTexbox.Size = new Size(ThamSo.KichCoNode, ThamSo.KichCoNode); nhapTayTexbox.Font = new Font("Consolas", ThamSo.KichCoNode/2, FontStyle.Bold); this.Controls.Add(nhapTayTexbox); nhapTayTexbox.KeyPress += new KeyPressEventHandler(nhapTayTexbox_KeyPress); nhapTayTexbox.KeyDown += new KeyEventHandler(nhapTayTexbox_KeyDown); nhapTayTexbox.TextChanged += new EventHandler(nhapTayTexbox_TextChanged); nhapTayTexbox.LostFocus += new EventHandler(nhapTayTexbox_LostFocus); } } - Để xử lý việc nhập giá trị tay cho Node ta cần số hàm sau: Hàm Node_GotFocus : Node focus vào textbox nhập tay lên cho người dùng nhập private void Node_GotFocus(object sender, EventArgs e) { if (nhapTayTexbox.Enabled == true) // Nếu textbox bị tắt (khi node xếp) texbox khơng đc bật lên để sửa { nhapTayTexbox.BackColor = this.BackColor; nhapTayTexbox.Visible = true; nhapTayTexbox.Text = this.Text; nhapTayTexbox.SelectAll(); nhapTayTexbox.Focus(); } } 20

Ngày đăng: 20/09/2023, 14:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w