1. Trang chủ
  2. » Tất cả

Bài giảng Thực hành kỹ thuật lập trình: Phần 2 - ĐH Sư Phạm Kỹ Thuật Nam Định

180 0 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

Thông tin cơ bản

Định dạng
Số trang 180
Dung lượng 1,8 MB

Nội dung

Tập giảng Thực hành kỹ thuật lập trình BÀI LẬP TRÌNH TRÊN FORM XỬ LÝ CÁC CẤU TRÚC DỮ LIỆU NÂNG CAO Mục tiêu Sau học, sinh viên có khả năng: - Kiến thức: Biết thiết kế Form sử dụng C# lập trình form để thực thao tác cấu trúc tập tin: tạo lập, tìm kiếm, thêm, xóa,… - Kỹ năng: Vận dụng đƣợc kiến thức thiết kế lập trình form thực giải tốn thực tế - Thái độ: + Nghiêm túc, sáng tạo + Tích cực tập luyện Chuẩn bị dụng cụ, vật tƣ, thiết bị Chuẩn bị máy tính có hệ điều hành Windows XP cao hơn, phần mềm Microsoft Office, gõ Tiếng Việt, phần mềm Visual Studio 2008 cao 2.1 - Làm việc với cấu trúc 2.1.1 Tóm tắt kiến thức cần nhớ Định nghĩa Struct [Phạm_vi_truy_nhập] struct Tên_cấu_trúc { Danh_ sách _các_ biến_thành_phần; Danh_ sách_các_thuộc_tính; Danh_ sách_ các_phƣơng_thức; } Khai báo biến cấu trúc Tên_cấu_ trúc Tên_biến_cấu trúc = new Tên_cấu_trúc(); Ví dụ: Diem A= new Diem(); // Gọi hàm tạo không tham số Diem B = new Diem(30,10); // Gọi hàm tạo hai tham số Chú ý: Nếu ta không tạo khởi dựng (hàm tạo) khởi dựng mặc định ngầm định đƣợc trình biên dịch tạo giá trị mặc định biến thành viên Trong ngơn ngữ C#, từ khóa new luôn tạo đối tƣợng nhớ Heap Các lớp đƣợc tạo heap, cấu trúc đƣợc tạo stack Ngồi ra, new đƣợc bỏ qua khởi dựng không đƣợc gọi Do ngôn ngữ C# yêu cầu phải có phép gán trƣớc sử dụng, phải khởi tạo tƣờng minh tất biến thành viên trƣớc sử dụng chúng cấu trúc Truy cập đến biến thành phần biến cấu trúc Tên_biến_cấu_trúc Tên_biến_thành_phần Ví dụ: Diem A= new Diem(20, 40); A.x // truy cập vào thành phần x biến A 118 Tập giảng Thực hành kỹ thuật lập trình Sao chép biến cấu trúc C# cho phép khởi gán hay gán biến cấu trúc cho biến cấu trúc khác Ví dụ: Diem A = new Diem(10,20); Diem B; B = A; Mảng cấu trúc a Khai báo mảng cấu trúc: Tên_cấu_trúc [] Tên_ mảng= new Tên_cấu_trúc [kích_thƣớc]; Ví dụ: Diem [] A= new Diem[50]; b Truy nhập đến biến thành phần mảng cấu trúc: Tên_mảng[chỉ_số].tên_biến_thành_phần; Ví dụ: A[2].x ; 2.1.2 Bài tập mẫu Viết chƣơng trình thực cơng việc sau: Thiết kế Form nhƣ hình sau Hình Form quản lý giáo viên tiểu học Yêu cầu: - Nhãn danh sách giáo viên: Font Time New Roman, cỡ chữ 16, chữ hoa, in đậm, Form, màu xanh - Nhãn mã giáo viên, họ tên, giới tính, năm sinh, môn giảng dạy: Font Time New Roman, cỡ chữ 14, màu đen - Các ô để nhập Mã giáo viên, họ tên, năm sinh TextBox - Điều khiển để chọn giới tính Nam Nữ radioButton - Các điều khiển “Thêm”, ”Hiển thị”, “Sửa”, “Xóa”, ”Thốt” Button - Điều khiển danh sách giáo viên GroupBox - Điều khiển để hiển thị danh sách giáo viên ListView 119 Tập giảng Thực hành kỹ thuật lập trình - Điều khiển để lựa chọn mơn giảng dạy ComboBox Lập trình thực công việc: - Khai báo kiểu cấu trúc giáo viên trƣờng tiểu học ABC có thuộc tính: mã giáo viên, họ tên, giới tính, năm sinh, mơn giảng dạy Các hàm tạo khơng đối, có đối, hàm tạo chép để khởi tạo đối tƣợng - Khi Load Form: + Các điều khiển “Sửa”, “Xóa”, “Hiển thị” vơ hiệu hóa + Điều khiển “Thêm” “Thoát” sáng cho phép hoạt động - Khi ngƣời dùng kích vào nút “Thêm” + Các điều khiển “Sửa”, “Xóa”, “Hiển thị” sáng cho phép hoạt động + Thực kiểm tra hợp lệ liệu nhập vào (nhập đủ thông tin giáo viên, năm sinh nhập vào phải số phải nhập đủ số) Nếu liệu nhập vào không hợp lệ đƣa hộp thoại thơng báo u cầu nhập lại + Kiểm tra xem mã giáo viên có danh sách hay chƣa? Nếu trùng mã giáo viên đƣa hộp thoại thơng báo cho phép nhập lại Nếu khơng trùng thực thêm giáo viên vào danh sách giáo viên + Sau thêm nhân viên vào danh sách textbox để trống - Khi ngƣời dùng kích vào nút “Hiển thị”: Hiển thị thông tin giáo viên ListView danh sách giáo viên - Khi ngƣời dùng kích chọn phần tử ListView thơng tin giáo viên đƣợc chọn hiển thị lên textbox radiobutton, combobox tƣơng ứng - Khi ngƣời dùng kích vào nút “Xóa”: + Thực xóa giáo viên có mã trùng với mã giáo viên đƣợc chọn ListView khỏi danh sách giáo viên (bắt lỗi ngƣời dùng chƣa chọn phần tử ListView) + Cập nhật lại danh sách giáo viên sau xóa lên ListView danh sách giáo viên + Các textbox combobox để trống - Khi ngƣời dùng kích vào nút “Sửa”: + Nếu thuộc tính Text điều khiển “Sửa” đối tƣợng để nhập mã giáo viên vơ hiệu hóa (khơng sửa mã), thực đổi lại thuộc tính Text điều khiển “Cập nhật” đặt trỏ vào ô nhập họ tên giáo viên + Nếu thuộc tính Text điều khiển “Cập nhật”: Kiểm tra xem liệu sau sửa có hợp lệ hay khơng? Nếu chƣa hợp lệ lên hộp thoại thơng báo, cho phép sửa lại thuộc tính Text điều khiển “Cập nhật” Nếu liệu sau sửa hợp lệ thì: * Thuộc tính Text điều khiển đổi thành “Sửa” 120 Tập giảng Thực hành kỹ thuật lập trình * Thực cập nhật lại thơng tin giáo viên có mã trùng với mã giáo viên lựa chọn để sửa (bắt lỗi ngƣời dùng chƣa chọn phần tử ListView) * Cập nhập danh sách giáo viên sau sửa lên ListView danh sách giáo viên * Đối tƣợng ô để nhập mã giáo viên sáng lên cho phép hoạt động Hướng dẫn thực Thiết kế Form nhƣ yêu cầu đề Phân tích yêu cầu Theo yêu cầu tốn phải có Form chứa: - Các đối tƣợng có nội dung “Danh sách giáo viên”, “Mã giáo viên”, ”Họ tên”, “Giới tính”,”Năm sinh”, “Mơn giảng dạy” Label - Đối tƣợng ô nhập mã giáo viên, họ tên, năm sinh, giới tính, mơn giảng dạy Textbox - Điều khiển để chọn giới tính nam nữ RadioButton - Điều khiển để hiển thị danh sách giáo viên ListView đƣợc đặt GroupBox danh sách giáo viên - Điều khiển để lựa chọn môn giảng dạy ComboBox - Các nút “Thêm”, “Xóa”, ”Sửa”, “Hiển thị”, “Thốt” Button - Điều khiển thông tin chi tiết giáo viên GroupBox Hƣớng dẫn thực - Thiết kế Form theo mẫu gắn điều khiển + Kéo điều khiển Label từ cửa sổ Toolbox + Kích phải chuột vào Label chọn Properties thiết lập thuộc tính cho Label nhƣ sau: Text: DANH SÁCH GIÁO VIÊN Font: Time New Roman Size: 16 Font style: Bold ForeColor: Blue Thực tƣơng tự với nhãn họ tên, mã giáo viên, giới tính, năm sinh, mơn giảng dạy - Để tạo GroupBox thông tin chi tiết giáo viên theo yêu cầu cần thực hiện: + Kéo điều khiển GroupBox từ cửa sổ Toolbox vào Form + Kích phải chuột vào GroupBox chọn Properties thiết lập thuộc tính cho GroupBox nhƣ sau: Text: Thơng tin chi tiết giáo viên Font: Time New Roman 121 Tập giảng Thực hành kỹ thuật lập trình Size: 14 ForeColor: Black Thực tƣơng tự với GroupBox danh sách giáo viên - Để tạo điều khiển nhập mã giáo viên theo yêu cầu cần thực hiện: + Kéo điểu khiển Textbox từ cửa sổ Toolbox vào Form + Kích phải chuột vào Textbox/Properties thiết lập thuộc tính Name: txt_magv Thực tƣơng tự với điều khiển nhập họ tên, năm sinh - Để tạo điều khiển chọn giới tính Nam: + Kéo điều khiển RadioButton từ cửa sổ Toolbox vào Form + Kích phải chuột vào RadioButton/Properties thiết lập thuộc tính: Name: radio_nam checked: True Thực tƣơng tự với điều khiển chọn giới tính Nữ - Để tạo điều khiển “Thêm” theo yêu cầu cần thực hiện: + Kéo điều khiển Button từ cửa sổ Toolbox vào Form + Kích phải chuột vào Button chọn Properties thiết lập thuộc tính Name: bt_them Thực tƣơng tự với điều khiển “Xóa” , “Sửa”, “Hiển thị”, “Thốt” - Để tạo điều khiển liệt kê danh sách giáo viên theo yêu cầu cần thực hiện: + Kéo điều khiển ListView từ cửa sổ Toolbox vào Form + Kích phải chuột vào ListView chọn Properties thiết lập thuộc tính: Name: listview_giaovien Columns/ kích chuột vào Collection/ kích Add lần thiết lập thuộc tính Text cho cột tƣơng ứng lần lƣợt mã giáo viên, họ tên, giới tính, năm sinh, mơn giảng dạy View: Detail GridLine: true - Để tạo điều khiển chọn môn giảng dạy theo yêu cầu cần thực hiện: + Kéo điều khiển ComboBox từ cửa sổ Toolbox vào Form + Kích phải chuột vào ComboBox /Properties thiết lập thuộc tính: Name: combo_mongd Items/ Collection/ Gõ tên môn giảng dạy Kết thiết kế Form 122 Tập giảng Thực hành kỹ thuật lập trình Hình 2 - Kết thiết kế Form quản lý giáo viên tiểu học Viết mã lệnh cho công việc -Viết mã lệnh khai báo cấu trúc Giáo viên public struct Giaovien { string _magiaovien; string _hoten; bool _gioitinh; int _namsinh; string _mon_gday; public string maGV { get { return _magiaovien; } set { _magiaovien = value; } } public string hoten { get { return _hoten; } set { _hoten = value; } } public bool gioitinh { get { return _gioitinh; } set { _gioitinh = value; } } public int namsinh { get { return _namsinh; } set { _namsinh = value; } 123 Tập giảng Thực hành kỹ thuật lập trình } public string mon_gday { get { return _mon_gday; } set { _mon_gday = value; } } -Viết mã lệnh cho hàm tạo có tham số public Giaovien(string magv, string hoten, bool gt, int ns, string mongd) { _magiaovien = magv; _hoten = hoten; _gioitinh = gt; _namsinh = ns; _mon_gday = mongd; } -Viết mã lệnh cho hàm tạo chép public Giaovien(Giaovien a) { _magiaovien = a._magiaovien; _hoten = a._hoten; _gioitinh = a._gioitinh; _namsinh = a._namsinh; _mon_gday = a._mon_gday; } } -Viết mã lệnh khai báo mảng giáo viên, biến nguyên n Giaovien[] A = new Giaovien[100]; int n = 0; -Viết mã lệnh cho kiện Form Load private void Form1_Load(object sender, EventArgs e) { vohieuhoa(false); txt_magv.Focus(); } -Viết mã lệnh cho hàm vô hiệu hóa nút void vohieuhoa(bool gt) { bt_hienthi.Enabled = gt; bt_sua.Enabled = gt; bt_xoa.Enabled = gt; } -Viết mã lệnh cho hàm kiểm tra liệu nhập vào bool kiemtra_du_lieu() { if (kiemtra(txt_magv.Text)||kiemtra(txt_hoten.Text)|| kiemtra(txt_namsinh.Text)|| kiemtra(combo_mongd.Text)) return false; 124 Tập giảng Thực hành kỹ thuật lập trình int namsinh; if (txt_namsinh.Text.Length < || txt_namsinh.Text.Length > 4) return false; if (!int.TryParse(txt_namsinh.Text, out namsinh) || namsinh

Ngày đăng: 06/05/2021, 18:29