Khoa Mạng máy tính và Truyền thông UIT 1 Lập trình C# & Windows Forms cơ bản Introduction to C# & Winform Application Thực hành Lập trình mạng căn bản GVHD Phan Trung Phát Học kỳ II – Năm học 2022 202[.]
Khoa Mạng máy tính Truyền thơng - UIT Lab Lập trình C# & Windows Forms Introduction to C# & Winform Application Thực hành Lập trình mạng GVHD: Phan Trung Phát Học kỳ II – Năm học 2022-2023 Lưu hành nội Lab 1: Lập trình C# A TỔNG QUAN Mục tiêu - Lập trình với ngơn ngữ C# mức bản: ▪ Đọc hiểu chương trình C# mức ▪ Nắm kiểu liệu C#: o Kiểu liệu nguyên thủy: int, long, double, char o Kiểu liệu tham chiếu: Array, List, Class… ▪ Nắm cấu trúc điều khiển lập trình: o Cấu trúc điều khiển o Cấu trúc điều khiển rẽ nhánh if o Cấu trúc điều khiển rẽ nhánh if… else o Cấu trúc điều khiển vòng lặp o Nắm kỹ thuật xử lý mảng chiều - Lập trình C# với Window Forms ▪ Có thể lập trình Giao diện ứng dụng với: o Giao diện đồ họa (Kéo thả, thay đổi thuộc tính) o Code ▪ Có thể lập trình Ứng dụng Window Forms giải tốn nhỏ Mơi trường ▪ IDE Microsoft Visual Studio 2010 trở lên Liên quan ▪ Sinh viên cần nắm kiến thức tảng lập trình Các kiến thức giới thiệu môn học trước nội dung lý thuyết học khơng trình bày lại nội dung thực hành ▪ Tham khảo tài liệu (Mục E) để có kiến thức C#, Winforms Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# B VÍ DỤ XÂY DỰNG ỨNG DỤNG C# WINFORM Chương trình Hello World (Console App) Chọn File > New > Project > Visual C# > Console App để tạo Project Console App Windows Forms Application Yêu cầu: Viết chương trình có giao diện đồ họa cho phép nhập số nguyên tính tổng số với giao diện hình bên Hình Khoa Mạng máy tính Truyền thơng Chương trình tính tổng số nguyên đơn giản TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# Hướng dẫn: ➢ Tạo Project ▪ Chọn File > New > Project > Visual C# > Windows Forms Application để tạo Project Windows Forms App Đặt tên Project, Solution, chọn nơi lưu trữ nhấn OK ➢ Thiết kế giao diện (Design) ▪ Với Visual Studio, để lập trình ứng dụng Winform có cửa sổ bản: Cửa sổ chính, Solution Explorer Cửa sổ Properties Lưu ý: khuyết cửa sổ nào, hiển thị cửa sổ cách chọn menu bar dùng tổ hợp phím: View > Properties Window (F4), View > Solution Explorer (Ctrl + Alt +L) • Cửa sổ chính: cửa sổ làm việc chính, cho phép người dùng xem, thay đổi giao diện, mã nguồn Form Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# • Solution Explorer: liệt kê điều hướng đến tất thành phần có Solution • Properties: cách lựa chọn đối tượng (click chọn Cửa sổ click chọn Solution Explorer), cửa sổ Properties hiển thị thuộc tính đối tượng chọn Có thể sử dụng để thay đổi giá trị thuộc tính đối tượng cần quan tâm (Form, Control v.v…) ▪ Có đối tượng cần quan tâm ứng dụng Window Form: Form Controls • Form: giao diện để hiển thị thông tin liệu cho người dùng, thường biểu diễn dạng cửa sổ window • Controls: đối tượng nằm Form Mỗi loại control mang tập thuộc tính đặc trưng, phương thức kiện riêng phù hợp với mục đích cụ thể Ví dụ: button loại control có thiết kế dạng nút, cho phép người dùng kích hoạt cách click chọn có kiện đặc trưng riêng click • Trong Visual Studio, người dùng dễ dàng thêm control vào Form cách sau đây: kéo – thả thêm mã nguồn vào file thiết kế Form ▪ Form (Giao diện hiển thị) có file sau: • File Designer.cs chứa mã nguồn thiết kế (design) form Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# • File cs chứa mã nguồn kiện, chức form • Click chọn Form1.cs[Design] để xem giao diện thiết kế Form ➢ Thiết kế giao diện (Design) theo yêu cầu đề ▪ Thiết kế Form1 • Thay đổi tên Form: dùng chuột click chọn vào cửa sổ Form1, mở cửa sổ Properties, Trường Text gõ tên Form muốn đổi Ví dụ: Simple Sum • Tại cửa sổ Properties thử thay đổi số trường để thấy thay đổi giao diện Ví dụ: Size (Kích thước Form), BackColor (Màu nền), Opacity (Độ suốt) v.v… ▪ Thêm Control (đối tượng) hiển thị tiêu đề ứng dụng: • Kích hoạt cửa sổ Toolbox: chọn View > Toolbox dùng tổ hợp phím Ctrl + Alt + X • Thêm nhãn “TÍNH TỔNG SỐ NGUYÊN”: Từ Toolbox, kéo Label thả vào giao diện Form Trong cửa sổ Properties, thay đổi trường Text thành “TÍNH TỔNG SỐ NGUYÊN” ▪ Tương tự trên, kéo thả Control phù hợp với yêu cầu đề • “Số thứ nhất”, “Số thứ hai”, “TỔNG” sử dụng Control Label • Các để nhập số thứ thứ sử dụng Control Textbox Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# • Ơ để hiển thị Kết sử dụng Control Textbox, nhiên Trường ReadOnly (Properties) gán giá trị true • Nút “Tính” sử dụng Control Button - Bên cạnh việc sử dụng kéo thả đổi trường cửa sổ Properties, thêm chỉnh sửa đối tượng cách sử dụng mã nguồn (Code) • Mở File mã nguồn thiết kế Form (.Designer.cs) • Giả sử thêm đoạn code sau để thấy thay đổi this.label1.ForeColor = System.Drawing.Color.Red; ➢ Lập trình kiện, chức Với yêu cầu đề tính tổng số nguyên xuất kết ô Tổng Ta phân tích sau: Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 - Lab 1: Lập trình C# Để thực hàm tính tổng, người dùng phải ấn nút “Tính”, ta bắt kiện Click cho button “Tính” - Nhấp đúp chọn button “Tính”, chương trình khởi tạo sẵn hàm đặc trưng tương ứng với kiện xảy click chuột vào button “Tính” Ví dụ button_Click - Thêm mã nguồn để tính toán hiển thị kết sau: private void button1_Click(object sender, EventArgs e) { int num1, num2; long sum = 0; num1 = Int32.Parse(textBox1.Text.Trim()); num2 = Int32.Parse(textBox2.Text.Trim()); sum = num1 + num2; textBox3.Text = sum.ToString(); } ➢ Chạy ứng dụng: nhấn F5 chọn Debug để chạy chương trình Từ Ví dụ trên, Sinh viên tham khảo thêm tài liệu sử dụng Visual Studio để làm tập Mục C C BÀI TẬP Các thực hành yêu cầu viết chương trình dạng Windows Forms App Sinh viên tùy biến cách xếp giao diện khác cho hợp lý Yêu cầu: Tất thực hành đặt chung Project nhất, tập Form đặt tên theo dạng Lab01BaiXX (với XX số thứ tự tập) có Form điều hướng để mở tập Bài 01 – Tính tổng số ngun (Có điều kiện) Tương tự Ví dụ Tính tổng số nguyên trên, thêm vào tính kiểm tra liệu đầu vào hợp lệ hay không Báo lỗi liệu không số nguyên Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 Lab 1: Lập trình C# Gợi ý: Sử dụng MessageBox để hiển thị thông điệp cảnh báo Bài 02 – Số lớn nhất, nhỏ Viết chương trình nhập vào số Cho biết số lớn số nhỏ số với giao diện ví dụ sau: Gợi ý: Sử dụng cấu trúc If – else Bài 03 – Đọc số Viết chương trình nhập vào số nguyên từ đến 9, hiển thị số chữ Ví dụ: Nhập 1: “Một”; 2: “Hai”; …; 0: “Khơng” Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 10 Lab 1: Lập trình C# Gợi ý: Sử dụng cấu trúc Switch – case Bài 3.1 – Đọc số nâng cao Trên sở 03, viết chương trình nhập vào số có 12 chữ số, hiển thị cách đọc số chữ Ví dụ: Nhập 123456: “Một trăm hai mươi ba ngàn, bốn trăm năm mươi sáu” Bài 04 – Tính tiền xăng Dựa vào thông tin cung cấp, viết chương trình cho phép người dùng chọn loại xe, loại xăng dầu, tính số km số tiền cần trả xe đổ đầy bình xăng/dầu Thơng tin mức độ tiêu tốn nhiên liệu loại xe: ▪ Wave Alpha: 1,6 lít/100km, sức chứa 3,7 lít, sử dụng xăng RON 95-III 92-II ▪ Sirius: 1,99 lít/100km, sức chứa 3,8 lít, sử dụng xăng RON 95-III 92-II ▪ Vision: 1,87 lít/100km, sức chứa 5,2 lít, sử dụng xăng RON 95-III 92-II ▪ Lead: 2.02 lít/100km, sức chứa lít, sử dụng xăng RON 95-III ▪ Winner: 1,7 lít/100km, sức chứa 4,5 lít, sử dụng xăng RON 95-III ▪ AirBlade 150: 2,17 lít/100km, sức chứa 4,4 lít, sử dụng xăng RON 95-III ▪ Xe tải tấn: 13 lít/100km, sức chứa 70 lít, sử dụng dầu DO Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 11 Lab 1: Lập trình C# Thơng tin tỉ giá xăng dầu: ▪ Xăng RON 95-III: 26,830 đồng/lít ▪ Xăng E5 RON 92-II: 26.070 đồng/lít ▪ Dầu DO 0,05S-II: 21,310 đồng/lít Gợi ý: Sử dụng Control ComboBox Bài 05 Viết chương trình cho phép nhập vào số nguyên A B, tính xuất kết quả: ▪ A! B! ▪ Tổng S1 = 1+2+3+4+…+A S2 = 1+2+3+4+…+B ▪ Tổng S3 = A1 + A2 + A3 + A4 + … + AB Gợi ý: Sử dụng vịng lặp for Bài 06 Viết chương trình nhập vào ngày tháng năm sinh, xuất thứ tuần cung hoàng đạo bạn gì? Cho biết: ▪ 21/03 – 20/04: cung Bạch Dương ▪ 21/04 – 21/05: cung Kim Ngưu ▪ 22/05 – 21/06: cung Song Tử Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 12 Lab 1: Lập trình C# ▪ 22/06 – 22/07: cung Cự Giải ▪ 23/07 – 22/08: cung Sư Tử ▪ 23/08 – 23/09: cung Xử Nữ ▪ 24/09 – 23/10: cung Thiên Bình ▪ 24/10 – 22/11: cung Thần Nông ▪ 23/11 – 21/12: cung Nhân Mã ▪ 22/12 – 20/01: cung Ma Kết ▪ 21/01 – 19/02: cung Bảo Bình ▪ 20/02 – 20/03: cung Song Ngư Bài 07 – Bài tập tổng hợp Viết chương trình cho phép nhập vào địa mạng, kèm theo subnet mask (ví dụ: 192.168.1.0/24), số mạng cần chia Thực việc chia địa mạng thành mạng với mô tả tương tự bảng bên STT Địa mạng Địa đầu Địa cuối Địa Broadcast Lưu ý: ▪ Có thể sử dụng animation hợp lý để thể cách chia mạng ▪ Có kiểm tra điều kiện ràng buộc trước tính tốn để chia mạng Bài 08 – Xử lý mảng & Tổng hợp Viết chương trình cho phép nhập vào danh sách điểm sinh viên dạng mảng chiều, phần tử điểm cách dấu cách phẩy “,”, đầu mảng họ tên sinh viên Ví dụ: Nguyễn Thị A, 7.5, 5, 8, 10, 9,10, 8.5, 9, 10, 3.5 ,5.5, Yêu cầu: ▪ Kiểm tra tính hợp lệ thông báo (Đã nhập đúng/sai format) ▪ Xuất tên sinh viên với định dạng: Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 13 Lab 1: Lập trình C# Họ tên: Nguyễn Thị A ▪ Xuất danh sách điểm kèm tiêu đề Môn với định dạng: Môn 1: 7.5 Môn 2: Môn 3: Môn 4: 10 … ▪ Thực phép tính tính Điểm Trung bình, kết ▪ Tìm mơn điểm cao nhất, thấp sinh viên ▪ Tìm số mơn đậu, khơng đậu ▪ Xếp loại sinh viên dựa theo Điểm TB ràng buộc: o Giỏi: ĐTB >= 8, mơn < 6.5 o Yếu: ĐTB >= 3.5, khơng có mơn < o Khá: ĐTB >= 6.5, khơng có mơn < o Kém: Cịn lại o TB: ĐTB >=5, khơng có mơn < 3.5 D YÊU CẦU, NỘP BÀI Yêu cầu ▪ Các giao diện mạng tính chất minh họa, sinh viên tiến hành thiết kế giao riêng đảm bảo tiêu chí: dễ nhìn, thể hết yêu cầu cần thực hiện, đẹp ▪ Có kiểm tra điều kiện ràng buộc nhập liệu ▪ Có kiểm tra điều kiện ràng buộc nhập liệu, code “sạch” [2], đặt tên biến rõ ràng ▪ Nộp không đầy đủ; lỗi, không chạy được; nộp trễ; chép code bạn khác, nguồn có sẵn: xử lý tùy theo mức độ Nộp ▪ Sinh viên thực hành nộp cá nhân website môn học theo thời gian quy định ▪ Source-code tập liên quan thực GitHub, báo cáo theo yêu cầu thống Bài thực hành Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 14 Lab 1: Lập trình C# Nếu có nhiều files, đặt vào file nén (.zip) với tên theo quy tắc sau: NhomY-LabX_MSSV1_MSSV2 Ví dụ: Nhom1-Lab1_20520001_20520002 E THAM KHẢO [1] Microsoft (2018) C# Guide [Online] Available at: https://docs.microsoft.com/enus/dotnet/csharp/ [2] Martin, R C (2009) Clean code: a handbook of agile software craftsmanship Pearson Education HẾT Khoa Mạng máy tính Truyền thơng TÀI LIỆU THỰC HÀNH LẬP TRÌNH MẠNG CĂN BẢN HỌC KỲ II – NĂM HỌC 2022-2023 ... TH? ?C HÀNH LẬP TRÌNH MẠNG C? ?N BẢN H? ?C KỲ II – NĂM H? ?C 2022-2023 10 Lab 1: Lập trình C# Gợi ý: Sử dụng c? ??u tr? ?c Switch – case Bài 3.1 – Đ? ?c số nâng cao Trên sở 03, viết chương trình nhập vào số c? ?... tính Truyền thơng TÀI LIỆU TH? ?C HÀNH LẬP TRÌNH MẠNG C? ?N BẢN H? ?C KỲ II – NĂM H? ?C 2022-2023 Lab 1: Lập trình C# • File cs chứa mã nguồn kiện, ch? ?c form • Click chọn Form1.cs[Design] để xem giao diện... (M? ?c E) để c? ? kiến th? ?c C#, Winforms Khoa Mạng máy tính Truyền thơng TÀI LIỆU TH? ?C HÀNH LẬP TRÌNH MẠNG C? ?N BẢN H? ?C KỲ II – NĂM H? ?C 2022-2023 Lab 1: Lập trình C# B VÍ DỤ XÂY DỰNG ỨNG DỤNG C# WINFORM