Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 8.1: Xây dựng ứng dụng hiển thị nội dung file ở dạng Binary (Hexadecimal)
Trang 1
MÔN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Bài thực hành số 8.1 : Xây dựng ứng dụng hiển thị nội dung file ở dạng Binary
(Hexadecimal)
I. Mục tiêu :
Giúp SV làm quen với qui trình thiết kế trực quan 1 ứng dụng Dialog Based.
Giúp SV làm quen với việc dùng lại linh kiện phần mềm.
Giúp SV thấy cụ thể cấu trúc ứng dụng cấu thành từ các ₫ối tượng.
Giúp SV thấy sự tương tác giữa các ₫ối tượng.
Giúp SV làm quen với cách thức viết code ₫ể ₫ọc dữ liệu ở dạng nhị phân từ file ₫ể xử
lý/tính toán ngay bên trong máy mà không cần tốn chi phí mã hóa chúng.
II. Nội dung :
Xây dựng ứng dụng Dialog Based hiển thị nội dung file ở dạng Binary (Hexadecimal).
Dịch và chạy chương trình.
Debug chương trình ₫ể tìm lỗi nếu có.
III. Chuẩn ₫ầu ra :
Thành thạo việc xây dựng 1 ứng dụng theo qui trình thiết kế trực quan.
Thành thạo việc dùng lại linh kiện phần mềm có sẵn, thấy rõ cấu trúc phầm mềm và sự
tương tác giữa các ₫ối tượng trong phần mềm.
Thành thạo việc viết code thay ₫ổi kích thước và vị trí các ₫ối tượng giao diện khi cửa sổ
chứa chúng bị thay ₫ổi.
Sinh viên nắm vững và lập trình thành thạo các ₫oạn code ₫ể ₫ọc dữ liệu nhị phân từ file
nhị phân vào các biến bên trong chương trình.
IV. Phân tích :
Sau khi phân tích chức năng của chương trình, ta thấy chương trình là 1 form giao diện
trực quan, nó chứa 1 button "Open File..." ₫ể người dùng kích hoạt chức năng hiển thị file,
nó cũng cần 1 ₫ối tượng cho phép người dùng duyệt trực quan cây thư mục ₫ể chọn file
(giả sử ta biết ₫ó là ₫ối tượng FileOpenDialog). Cuối cùng chương trình cần 1 ₫ối tượng
có khả năng hiển thị nội dung file dạng Binary (₫ối tượng ListBox).
Theo kết quả phân tích trên, cấu trúc chương trình cần viết khá ₫ơn giản, nó chỉ chứa các
₫ối tượng ₫ã có sẵn, ta không cần phải bận tâm ₫ặc tả chi tiết các ₫ối tượng cần dùng mà
chỉ cần dùng lại chúng, lắp ghép chúng lại ₫ể tạo thành chương trình. Đây là trường hợp
may mắn nhất, nhưng trong thực tế lập trình hướng ₫ối tượng, ta sẽ có ₫ược may mắn này
thường xuyên.
V. Qui trình :
1. Chạy VS .Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project.
2. Mở rộng mục Visual C# trong TreeView "Project Types", chọn mục Window, chọn icon
"Windows Application" trong listbox "Templates" bên phải, thiết lập thư mục chứa Project
trong listbox "Location", nhập tên Project vào textbox "Name:" (thí dụ BinaryView), click
button OK ₫ể tạo Project theo các thông số ₫ã khai báo.
3. Form ₫ầu tiên của ứng dụng ₫ã hiển thị trong cửa sổ thiết kế, việc thiết kế form là quá trình
lặp 4 thao tác tạo mới/xóa/hiệu chỉnh thuộc tính/tạo hàm xử lý sự kiện cho từng ₫ối tượng
cần dùng trong form.
4. Nếu cửa sổ ToolBox chưa hiển thị chi tiết, chọn menu View.Toolbox ₫ể hiển thị nó (thường
nằm ở bên trái màn hình). Click chuột vào button
ToolBox ₫ể chuyển nó về chế ₫ộ hiển thị thường trực.
(Auto Hide) nằm ở góc trên phải cửa sổ
Trang 2
5. Duyệt tìm phần tử Button (trong nhóm Common Controls), chọn nó, dời chuột về góc trên
trái của form và vẽ nó với kích thước mong muốn. Xem cửa sổ thuộc tính của Button vừa vẽ
(thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính Text = "Open File…",
duyệt tìm và thay ₫ổi thuộc tính (Name) = btnOpen.
6. Duyệt tìm phần tử ListBox (trong nhóm Common Controls), chọn nó, dời chuột về ngay dưới
Button và vẽ nó với kích thước mong muốn. Xem cửa sổ thuộc tính của ListBox vừa vẽ
(thường ở góc dưới phải màn hình), duyệt tìm và hiệu chỉnh thuộc tính (Name) = lbOutput.
Sau khi thiết kế xong, Form có dạng sau :
7. Dời chuột về button btnOpen, ấn kép chuột vào nó ₫ể tạo hàm xử lý sự kiện Click chuột cho
button, cửa sổ mã nguồn sẽ hiển thị ₫ể ta bắt ₫ầu viết code cho hàm. Cách tổng quát ₫ể tạo
hàm xử lý sự kiện là chọn ₫ối tượng btnOpen, cửa sổ thuộc tính của nó sẽ hiển thị, click icon
₫ể hiển thị danh sách các sự kiện của ₫ối tượng, duyệt tìm sự kiện quan tâm (Click), ấn
kép chuột vào comboBox bên phải sự kiện Click ₫ể máy tạo tự ₫ộng hàm xử lý cho sự kiện
này. Cửa sổ mã nguồn sẽ hiển thị khung sườn của hàm vừa ₫ược tạo với thân rỗng, viết thân
cho hàm này như sau :
private void btnOpen_Click(object sender, EventArgs e) {
//₫ịnh nghĩa các biến cần dùng
int i, j;
int byt;
String slLine, srLine;
String sline;
OpenFileDialog dlg = new OpenFileDialog();
//hiển thị form duyệt chọn file cần chơi
DialogResult ret = dlg.ShowDialog();
//kiểm tra quyết ₫ịnh của người dùng, nếu người dùng chọn OK thì chơi
if (ret != DialogResult.OK) return;
//1. tạo ₫ối tượng quản lý file
FileStream stream = new FileStream(dlg.FileName, FileMode.Open);
//2. xác ₫ịnh kích thước file
long flen = stream.Length;
//3. xuất từng nhóm 16 byte của file ra thành 1 dòng
j = 0;
slLine = srLine = "";
lbOutput.Items.Clear();
for (i = 0; i < flen; i++) {
Trang 3
byt = stream.ReadByte();
sline = String.Format("{0:X2} ", byt);
slLine = slLine + sline;
if (byt < 32) sline = ".";
else sline = Char.ToString((char)byt);
srLine = srLine + sline;
if (++j == 16)
{ //du dong
lbOutput.Items.Add(slLine + " " + srLine);
j = 0;
slLine = srLine = "";
}
}
if (j == 0) return;
//4. xử lý dòng cuối cùng
while (j++ < 16) slLine = slLine + " ";
lbOutput.Items.Add(slLine + " " + srLine);
//5. ₫óng file lại
stream.Close();
}
8. Dời chuột về cửa sổ "Solution Explorer", duyệt tìm mục Form1.cs, ấn kép chuột vào mục này
₫ể hiển thị lại cửa sổ thiết kế form. Chọn Form ₫ể hiển thị cửa sổ thuộc tính của Form, click
icon
₫ể hiển thị danh sách các sự kiện của Form, duyệt tìm sự kiện SizeChanged, ấn kép
chuột vào comboBox bên phải sự kiện SizeChanged ₫ể máy tạo tự ₫ộng hàm xử lý cho sự kiện
này. Cửa sổ mã nguồn sẽ hiển thị khung sườn của hàm vừa ₫ược tạo với thân rỗng, viết thân
cho hàm này như sau :
//thay ₫ổi kích thước ListBox theo kích thước mới của Form
private void Form1_SizeChanged(object sender, EventArgs e) {
//xác ₫ịnh kích thước hiện hành của Form
int cx = this.Size.Width;
int cy = this.Size.Height;
//tính lại kích thước của ListBox
cx = cx - 8 - lbOutput.Location.X * 2;
cy = cy - 8 - 25 - lbOutput.Location.Y;
//thay ₫ổi kích thước của ListBox theo kích thước Form
lbOutput.Size = new Size(cx, cy);
}
9. Chọn menu Debug.Start Debugging ₫ể dịch và chạy thử ứng dụng. Khi Form chương trình
hiển thị, hãy click chuột vào button "Open File...", cửa sổ duyệt chọn file sẽ hiển thị, hãy duyệt
và chọn 1 file nào ₫ó cần xem, click button Open ₫ể hiển thị nội dung file này.
10. Ta thấy nội dung trên từng hàng bị che mất bên phải vì ₫ộ rộng Form nhỏ quá. Quan sát góc
trên phải của Form chương trình, ta thấy 3 button chức năng thông thường là 1. thu nhỏ form
về dạng icon, 2. phóng to/thu nhỏ kích thước form, 3. ₫óng form :
Trang 4
11. Hãy click chuột vào button phóng to/thu nhỏ, form sẽ ₫ược phóng to ₫ể chiếm hết màn hình
và ListBox cũng ₫ược phóng to theo, lúc này ta thấy ₫ầy ₫ủ thông tin trên từng hàng.
12. Dừng chương trình lại, hiển thị cửa sổ mã nguồn, cố gắng ₫ọc hiểu ₫oạn code trong thân của
2 hàm xử lý sự kiện btnOpen_Click() và Form1_SizeChanged().
Bạn đang xem tài liệu "Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 8.1: Xây dựng ứng dụng hiển thị nội dung file ở dạng Binary (Hexadecimal)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_thuc_hanh_lap_trinh_huong_doi_tuong_bai_thuc_hanh.pdf

