Bài giảng Lập trình C#: Phần 1 - ĐH Phạm Văn Đồng

61 38 0
Bài giảng Lập trình C#: Phần 1 - ĐH Phạm Văn Đồng

Đ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

(NB) Với 3 chương đầu tiên Bài giảng Lập trình C#: Phần 1 trình bày nội dung Giới thiệu Microsoft .NET, cơ sở của ngôn ngữ C#, Hướng đối tượng trong C#, Ứng dụng Windows trong C#. Mời các bạn cùng tham khảo để nắm chi tiết nội dung của bài giảng.

TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN VĂN TỐN BÀI GIẢNG LẬP TRÌNH C# Quảng Ngãi, 2018 TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THƠNG TIN NGUYỄN VĂN TỐN BÀI GIẢNG LẬP TRÌNH C# (DÙNG CHO SINH VIÊN BẬC ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN VÀ SƯ PHẠM TIN HỌC) LƯU HÀNH NỘI BỘ LỜI NĨI ĐẦU Lập trình C# mơn học tìm hiểu kiến thức lập trình xây dựng ứng dụng ngơn ngữ lập trình C# Nội dung môn học giới thiệu kiến thức C#, hướng đối tượng C#, điều khiển hỗ trợ thiết kế giao diện điều khiển hỗ trợ truy cập CSDL, in kết Bài giảng biên soạn giảng dạy cho sinh viên ngành Công nghệ thông tin với sinh viên có kiến thức lập trình, lập trình hướng đối tượng, hệ quản trị sở liệu Microsoft SQL Server Vì thế, nội dung liên quan đến phần kiến thức giảng chủ yếu tóm tắt, nhắc lại Ngôn ngữ C# cập nhật thường xuyên Qua phiên bản, mẫu lập trình thay đổi theo hướng tiện lợi công nghệ mới, đại bổ sung vào Hiện nay, phạm vi kiến thức ngôn ngữ C# rộng Nội dung kiến thức trình bày giảng đề cập ngang phiên NET Framework 2.0 Mong rằng, qua giảng này, sinh viên nắm bắt vấn đề cốt lõi ngôn ngữ lập trình C# để làm sở cho việc nghiên cứu sâu ngơn ngữ lập trình Bài giảng khơng tránh khỏi thiếu sót Mong thầy bạn sinh viên đóng góp ý kiến để hoàn thiện lần chỉnh sửa sau Xin chân thành cảm ơn Quảng Ngãi, tháng 11 năm 2018 Nguyễn Văn Toán i MỤC LỤC Chương 1: Giới thiệu Microsoft NET, sở ngôn ngữ C# 1.1 Tổng quan Microsoft NET 1.1.1 Kiến trúc NET framework 1.1.2 Biên dịch ngôn ngữ trung gian 1.2 Giới thiệu ngôn ngữ C# 1.2.1 Chương trình 1.2.2 Kiểu liệu, biểu thức, câu lệnh 1.2.3 Chú thích 12 1.2.4 Các cấu trúc liệu 13 1.3 Câu hỏi tập 16 1.4 Bài mẫu 17 Chương 2: Hướng đối tượng C# 20 2.1 Lớp, đối tượng 20 2.1.1 Các thành phần lớp 21 2.1.2 Phạm vi truy cập lớp 21 2.1.3 Ví dụ lớp 22 2.2 Không gian tên, lệnh using 24 2.2.1 Không gian tên 24 2.2.2 Lệnh using 25 2.2.3 Bí danh khơng gian tên 25 2.3 Quản lý ngoại lệ 26 2.3.1 Cấu trúc ngoại lệ 26 2.3.2 Ném ngoại lệ 27 2.3.3 Bắt ngoại lệ 27 2.4 Một số lớp thông dụng 29 2.4.1 List 29 2.4.2 String 30 2.4.3 StreamReader, StreamWriter 31 2.5 Câu hỏi tập 33 2.6 Bài mẫu 34 ii Chương 3: Ứng dụng Windows C# 39 3.1 Giao diện ứng dụng điều khiển thông dụng 39 3.1.1 Giao diện ứng dụng 39 3.1.2 Các điều khiển thông dụng Form 43 3.2 Một số hộp thoại thông dụng 46 3.2.1 MessageBox 46 3.2.2 OpenDialog 47 3.3 Menu, ToolStrip 47 3.3.1 Menu 47 3.3.2 ToolStrip 47 3.4 Câu hỏi tập 48 3.5 Bài mẫu 49 Chương 4: Quản lý liệu với Microsoft SQL Server 56 4.1 Các khái niệm sở liệu MS SQL Server 56 4.1.1 Các khái niệm sở liệu 56 4.1.2 Khái niệm sở liệu MS SQL Server 57 4.2 Ngôn ngữ SQL 57 4.2.1 Các câu lệnh SQL 58 4.2.2 Kiểu liệu 58 4.2.3 Toán tử 60 4.2.4 Một số hàm thường dùng 61 4.2.5 Các câu lệnh SQL thường dùng 62 4.3 Câu hỏi tập 65 4.4 Bài mẫu 65 Chương 5: Truy cập sở liệu với ADO.NET 67 5.1 Mơ hình kết nối truy cập liệu với ADO.NET 67 5.1.1 Mơ hình kết nối truy cập liệu tổng quát 67 5.1.2 Connection 68 5.1.3 Kết nối đến sở liệu 69 5.1.4 Transaction 70 5.2 Mơ hình truy cập liệu với Command 71 5.2.1 Command 71 iii 5.2.2 DataReader 72 5.3 Mơ hình truy cập liệu nâng cao với sở liệu ảo 73 5.3.1 DataSet 73 5.3.2 DataAdapter 74 5.4 Buộc liệu 75 5.4.1 Mơ hình truy cập hiển thị liệu 75 5.4.2 Buộc liệu 76 5.5 Câu hỏi tập 77 5.6 Bài mẫu 78 Chương 6: Report đóng gói ứng dụng 90 6.1 Report 90 6.1.1 Tổng quan Report 90 6.1.2 Tiến trình xây dựng Report 91 6.1.3 Các công cụ hỗ trợ tạo Report 91 6.2 Đóng gói ứng dụng 96 6.2.1 Lợi ích 96 6.2.2 Các thành phần đưa vào gói ứng dụng 96 6.2.3 Setup Project 97 6.3 Câu hỏi tập 97 6.4 Bài mẫu 98 TÀI LIỆU THAM KHẢO 103 iv Chương 1: Giới thiệu Microsoft NET, sở ngôn ngữ C# Thời lượng: tiết Mục tiêu: - Biết tổng quan Microsoft NET, kiến trúc NET Framework, - Hiểu thành phần C#, - Viết chương trình đơn giản C# 1.1 Tổng quan Microsoft NET Nền tảng Microsoft NET (.NET) cung cấp tất công cụ kỹ thuật cần thiết để người dùng xây dựng ứng dụng mơi trường internet Trong chương trình học, tảng NET mơ tả đơn giản Hình 1-1 Trung tâm NET NET framework môi trường phát triển (IDE Integrated Development Environment) Framework cung cấp cần thiết, (hạ tầng sở) theo quy ước định để giúp cho việc phát triển ứng dụng IDE môi trường giúp việc phát triển ứng dụng trở nên dễ dàng nhanh chóng Nếu khơng có IDE, phát triển ứng dụng NET Tuy nhiên, việc thời gian Chúng ta nên sử dụng IDE để phát triển ứng dụng C++ C# J# … NET Framework (IDE) Common Language Specification Visual Studio NET Visual Basic Hình 1-1 Mơ tả đơn giản tảng NET 1.1.1 Kiến trúc NET framework NET framework gồm thành phần chính: khối thực thi ngơn ngữ Trang tảng (CLR - Common Language Runtime) thư viện lớp (FCL - Framework Class Library) CLR tảng NET framework CLR quản lý thực thi mã lệnh quản lý liên quan: biên dịch, quản lý nhớ, quản lý thực tiểu trình, bảo mật,… Mã lệnh thực thi CLR mã lệnh quản lý (managed code), khác với mã lệnh không quản lý COM, thành phần dựa Windows API FCL thư viện kiểu liệu (gồm class, struct, enum,…) dành cho ứng dụng thực thi NET Tất ngôn ngữ hỗ trợ NET framework sử dụng thư viện lớp dùng chung Các thành phần CLR: Thành phần Mô tả Class Loader Quản lý siêu liệu, khởi tạo trình bày lớp MSIL to Native Compilers Chuyển từ MSIL sang mã nhị phân Code Manager Quản lý việc thực thi Garbage Collector Dọn rác tự động Security Engine Bảo mật Debug Engine Phát lỗi Type Checker Kiểm tra kiểu Exception Manager Quản lý ngoại lệ Thread Support Hỗ trợ lớp, giao diện cho lập trình đa luồng COM Marshaler Chuyển đổi thành phần COM Base Class Library Support Hỗ trợ thư viện lớp sở Thư viện lớp sở CFL: Mô tả System Không gian tên Collections Danh sách (mảng) động Configuration Cấu hình IO Vào/ra liệu Net Kết nối mạng Trang Reflection Phản chiếu (dịch ngược) Resources Tài nguyên (file, chuỗi, hình ảnh) Security Bảo mật Text Chuỗi Threading Đa luồng Runtime Thực thi thời gian thực 1.1.2 Biên dịch ngôn ngữ trung gian a) Các bước thực chương trình truyền thống: Các ngơn ngữ trước (Pascal, C, C++, Visual Basic) có chương trình dịch và mơi trường thực thi riêng chương trình cần dịch lần để thực thi Các bước thực chương trình truyền thống Hình 1-2: - Bước 1: biên dịch mã nguồn thành mã thực thi - Bước 2: Thực thi thời gian thực mã thực thi Mã nguồn Biên dịch Mã thực thi Thực thi Mã nhị phân Hình 1-2 Các bước thực thi chương trình truyền thống b) Các bước thực chương trình NET: NET có chương trình dịch mơi trường thực thi cho máy tính cài đặt NET Framework Một chương trình NET phải dịch hai lần trước thực thi Quá trình biên dịch NET thực qua giai giai đoạn Hình 1-3: Giai đoạn 1: biên dịch mã nguồn Bước 1: biên dịch mã nguồn thành mã MSIL (Microsoft Intermediate Language) siêu liệu Giai đoạn 2: biên dịch mã MSIL Trang Bước 2: từ siêu liệu, CLR biên dịch mã MSIL thành mã thực thi thực thi thời gian thực Mã nguồn MSIL Biên dịch + Siêu liệu Sử dụng CLR Thực thi Mã nhị phân Biên dịch lần Biên dịch lần Hình 1-3 Quá trình biên dịch chương trình NET Các chương trình NET biên dịch lần Kết biên dịch lần thứ dạng mã MSIL Kết biên dịch lần thứ hai mã máy Khi thực thi chương trình NET thường lần đầu chậm lần thứ tương đối nhanh Khi thực thi lần đầu, chương trình phải dịch sang mã nhị phân thực phải lưu vào nhớ cache Điều làm cho trình thực bị chậm Khi thực lần thứ hai, chương trình khơng cần phải dịch lại liệu có nhớ cache nên việc thực tương đối nhanh 1.2 Giới thiệu ngơn ngữ C# Có nhiều ngơn ngữ sử dụng để xây dựng ứng dụng môi trường NET Tuy nhiên, C# ngơn ngữ lập trình đặc biệt, thiết kế để xây dựng ứng dụng môi trường C# ngơn ngữ lập trình đơn giản, đại, an tồn hướng đối tượng Nó ngơn ngữ mạnh NET, thay cho C++ việc sử dụng trỏ dễ dàng C++ Trong C#, toán vấn đề cần giải (Problem) tập hợp ta làm C# để giải vấn đề giải pháp (Solution) Để có giải pháp cần nhiều dự án (Project) giải pháp C# thường có nhiều dự án Dự án C# chương trình đơn giản thư viện cài đặt… 1.2.1 Chương trình a) Khơng sử dụng IDE: - Sử dụng Notepad tạo lưu lại với tên file ChaoMung.CS ổ đĩa D:\ với nội dung sau: Trang menu Ở loại giao diện này, mục menu nhánh thay biểu tượng c) Những hạn chế người dùng hữu ích: Một giao diện tốt ngồi việc thiết kế đẹp, phù hợp cịn phải biết hạn chế thao tác khơng nên có từ người dùng có gợi ý lúc Sau số hạn chế hữu ích cho việc thiết kế giao diện - Hạn chế khả sai phạm: giao diện giúp người sử dụng tránh sai phạm thao tác Một số hạn chế cụ thể như: giới hạn số ký tự, dùng điều khiển nhập số, dùng danh sách lựa chọn thay để người dùng tự gõ, vơ hiệu hóa mục không hợp lệ thời điểm thao tác,… - Hạn chế trí tưởng tượng người sử dụng: để tránh người sử dụng tưởng tượng sai kết mà ứng dụng thực giao diện cần có thêm điều khiển như: trạng thái, tiến trình xử lý Hạn chế người sử dụng tưởng tượng kết cụ thể giao diện dùng điều khiển để xem trước hình, kết in,… d) Điều khiển Form: Form điều khiển thuộc không gian tên System.Windows.Forms xem khung giao diện Trên Form, ta đặt thêm điều khác để trang trí thực chức Người ta dùng Form để thiết kế giao diện chương trình Sau số thuộc tính, kiện thường dùng Form: Tên Ý nghĩa Tên Ý nghĩa Thuộc tính AutoScroll tự động scroll MaximizeBox nút Max BackColor màu MaximimSize kích thước max BackgroundImage ảnh MinimizeBox nút Cursor hình chuột MinimumSize kích thước Enable kích hoạt Opacity độ đục Font font chữ ShowIcon icon ForeCore màu chữ ShowInTaskBar TaskBar FormBorderStyle kiểu khung Size kích thước Trang 41 Icon hình icon Text chuỗi tiêu đề IsMdiContainer Form cha TopMost cửa sổ active Location vị trí WindowState trạng thái cửa sổ Sự kiện Click() kích chuột Paint() Vẽ lại Form FormClosing() đóng Form Resize() thay đổi kích thước Load() tải Form Show() Form Màn hình làm việc với Form Hình 3-2: Hình 3-2 Giao diện làm việc với Form Microsoft Visual Studio 2008 Trong đó: - Vùng 1: điều khiển Form - Vùng 2: điều khiển đặt lên Form - Vùng 3: cửa sổ quản lý đối tượng Solution - Vùng 4: thuộc tính, kiện Form Trang 42 - Vùng 5: tùy chỉnh kích thước, hàng lối đối tượng Form Thông thường, C# quản lý Form file: - *.cs: chứa mã người dùng viết thêm - *.Designer.cs: chứa mã tự sinh người dùng thiết kế Form chuột - *.resx: chứa tài nguyên dùng cho Form e) MDI Form: MDIForm hay gọi Form cha Form chứa Form khác Giả sử ta có hai Form có tên frmParent frm Child Để frmParent MDIForm frmChild Form frmParent ta làm sau: - Thiết lập thuộc tính IsMdiContainer frmParent true - Thiết lập thuộc tính MdiParent frmChild frmParent Khi frmParent hoạt động ta cho frmChild frmChild hiển thị frmParent 3.1.2 Các điều khiển thơng dụng Form Có nhiều điều khiển dùng cho Form điều khiển có nhiều thuộc tính, phương thức, kiện Các điều khiển thuộc không gian tên System.Windows.Forms Sau trình bày số thành phần hay dùng điều khiển a) Một số thuộc tính chung điều khiển: Các điều khiển điều kế thừa từ lớp Control (điều khiển) nên có nhiều thuộc tính chung kế thừa từ lớp Control Sau số thuộc tính chung thường thấy điều khiển Ý nghĩa Tên Tên Ý nghĩa Anchor neo đậu Enable cho phép kích hoạt AutoSize tự động thay đổi kích thước ForeColor màu chữ Size kích thước BackColor màu Cursor hình dạng trỏ Text chuỗi hiển thị Dock cập bến Visible cho phép hiển thị b) Label: Là điều khiển dùng đề hiển thị nội dung văn ngắn gọn, đơn giản Trang 43 ứng dụng giao diện Nội dung thay đổi chương trình người sử dụng không sửa c) Textbox: Là điều khiển dùng để hiển thị nội dung văn đơn giản Điều khiển thường dùng để giao tiếp với người sử dụng, cho phép họ nhập liệu Ngoài ra, TextBox hỗ trợ buộc liệu đơn giản Một số thuộc tính, phương thức thường dùng cho TextBox: Ý nghĩa Tên Ý nghĩa Tên Thuộc tính Phương thức MaxLength độ dài tối đa KeyPress() nhấn phím MultiLine chứa nhiều dịng Focus() có trỏ PasswordChar ký tự mật LostFocus() khơng có trỏ ReadOnly đọc TextChange() Text bị thay đổi WordWrap ngắt đoạn d) Button: Là điều khiển dùng phép người sử dụng kích hoạt chức chương trình Điều khiển thường dùng ngữ cảnh đơn giản, chức Click kiện người dùng kích chuột vào điều khiển e) CheckBox: Là điều khiển đưa cho người dùng nhiều lựa chọn Người dùng khơng chọn lựa chọn nào, chọn nhiều lựa chọn Tên Ý nghĩa Thuộc tính Checked chọn CheckState trạng thái chọn Ý nghĩa Tên Sự kiện CheckedChange() thay đổi chọn CheckStateChange() thay đổi trạng thái chọn f) RadioButton GroupBox: GroupBox điều khiển làm vật chứa điều khiển khác Trang 44 RadioButton điều khiển đưa cho người dùng nhiều lựa chọn CheckBox Nhưng khác CheckBox, RadioButton, người dùng phải chọn lựa chọn một vật chứa RadioButton thường đặt GroupBox Như CheckBox, RadioButton có thuộc tính Checked phương thức CheckedChang, RadioButton khơng thuộc tính CheckState phương thức CheckStateChange g) ListBox: Là loại điều khiển cho phép hiển thị danh sách đối tượng chủ yếu thể Text đối tượng ListBox dùng trường hợp muốn hạn chế khả sai người sử dụng trường hợp danh sách đối tượng chưa biết lúc thiết kế ListBox cho phép người dùng chọn lúc nhiều đối tượng hiển thị nhiều đối tượng lúc khơng ghé thăm Ngồi ra, ListBox hỗ trợ buộc liệu phức tạp Sau số thuộc tính, phương thức thường dùng ListBox: Ý nghĩa Tên DataSource nguồn liệu DisplayMenber thuộc tính liệu hiển thị Items Danh sách phần tử ValueMember thuộc tính khóa liệu SelectionMode Kiểu chọn MultiExtended SelectedIndex số phần tử chọn SelectedItem phần tử chọn SelectedItems danh sách phần tử chọn SelectedValue giá trị khóa chọn phần tử: One; MultiSimple; SelectedIndexChange() có thay đổi chọn phần tử h) ComboBox: Là loại điều khiển tương tự ListBox khác chỗ ComboBox không cho chọn nhiều đối tượng đối tượng lúc không ghé thăm Trang 45 i) dateTimePicker: Là điều khiển cho phép hiển thị nhập ngày chuyên nghiệp Các thuộc tính thường dùng điều khiển là: - Format: định dạng ngày cho điều khiển - CustomFormat: chuỗi định dạng trường hợp Format có giá trị Custom (theo custom hệ thống máy) - Value: giá trị ngày hiển thị điều khiển j) ToolTip: Là loại điều khiển cho phép hiển thị tip người sử dụng biết điều khiển Form Để cho phép điều khiển có tip ta làm sau: - Thêm cho Form điều khiển ToolTip đặt tên Tip1 Điều khiển thuộc loại không hiển thị trực tiếp Form Form thực thi Thêm thành cơng, điều khiển Form có thêm thuộc tính ToolTip on Tip1 - Thiết lập giá trị cho thuộc tính ToolTip on Tip1 điều khiển muốn có tip 3.2 Một số hộp thoại thơng dụng C# hỗ trợ nhiều hộp thoại Sau số hộp thoại thường gặp: Ý nghĩa Tên Tên Ý nghĩa MessageBox thông báo, hỏi FontDialog chứa font chữ OpenDialog hỏi file cần mở ColorDialog chứa màu SaveDialog hỏi file cần lưu FolderBrowseDialog hỗ trợ tìm đường dẫn 3.2.1 MessageBox Là điều khiển tĩnh dùng nhiều lập trình, thông báo hay hỏi ý kiến người dùng Show phương thức dùng nhiều điều khiển Phương thức có tới 21 cách truyền tham số Sau tham số thường dùng phương thức Show Tên Ý nghĩa Tên Ý nghĩa Text chuỗi thông báo MessageBoxButton loại Button xuất Caption loại thông báo MessageBoxIcon icon loại thông báo Phương thức Show có kết trả kiểu DialogResult Kết trả Trang 46 trả lời người dùng hộp thoại 3.2.2 OpenDialog Là điều khiển hỗ trợ người dùng xác định file mà người dùng cung cấp cho chương trình qua phương thức ShowDialog() Kết trả kiểu DialogResult Nếu kết trả DialogResult.OK chọn file Một số thuộc tính thường dùng điều khiển: Tên Ý nghĩa DefaultExt định dạng file mặc định MultiSelect chọn nhiều file Filter chuỗi định dạng lọc file InitialDirectory thư mục khởi tạo FileName tên file đầy đủ SafeFileName tên file ngắn FileNames tên file tương đối SafeFileNames tên file ngắn Tên Ý nghĩa 3.3 Menu, ToolStrip 3.3.1 Menu Là điều khiển chứa tập chức ứng dụng Menu thường sử dụng MDIForm Menu gồm số menu hiển thị Text Mỗi menu gồm tập menu gọi MenuItem Mỗi MenuItem hiển thị ảnh Text Mỗi MenuItem chứa MenuItem khác Một số ý soạn MenuItem: - Kẻ sọc ngang: ký tự (-) thuộc tính Text - Phím nóng: đặt ký tự & trước ký tự đặt phím nóng thuộc tính Text - ShortcutKeys: chọn phím tắt - Checked: có dấu check trước tên hay khơng - Image: hình ảnh trước tên Ngồi ra, C# cịn có thêm điều khiển MenuStrip, menu ngữ cảnh cho điều khiển 3.3.2 ToolStrip Là điều khiển chứa tập ToolStripButton Mỗi ToolStripButton tương tự MenuItem có biểu tượng cịn Text hiển thị ToolTip Trang 47 Một số ý soạn ToolStripButton: - AutoSize: tự động thay đổi kích thước - Image: ảnh - Text: chuỗi hiển thị - TextImageRelation: vị trí tương đối Text Image - DisplayStyle: Text; Image; hiển Text Image 3.4 Câu hỏi tập 1) Hãy nêu ưu điểm nhược điểm loại giao diện Hãy cho biết đặc điểm chương trình mà anh (chị) sử dụng tương ứng cho loại giao diện 2) Xây dựng ứng dụng có giao diện chức tương tự chương trình Notepad Windows 3) Sử dụng lớp thể họ tên người Việt Nam thiết kế chương trước, xây dựng ứng dụng với giao diện phù hợp để quản lý (thêm, xóa) nhân viên Mỗi nhân viên quản lý họ tên Lưu ý: - Họ tên nhập vào chuỗi Khi chuỗi hợp lệ thêm nhân viên - Mỗi nhân viên thể danh sách phần tên Chương trình cho phép xếp thứ tự nhân viên theo tên - Thông tin nhân viên hiển thị gồm: họ đệm, tên, số từ, độ dài 4) Thiết kế giao diện cho ứng dụng quản lý sinh viên đảm bảo yêu cầu sau: - Mỗi sinh viên cần quản lý thông tin: mã sinh viên, họ tên sinh viên, ngày sinh, giới tính, quê quán - Cho phép thêm sinh viên, xóa sinh viên, sửa thơng tin sinh viên - Cho phép lưu danh sách sinh viên giao diện xuống file, tải danh sách sinh viên có file lên giao diện 5) Xây dựng ứng dụng Windows Form đáp ứng yêu cầu sau: - Thiết kế cấu trúc liệu để lưu trữ danh sách sinh viên Lưu ý: thông tin sinh viên quy định câu - Lập trình thực thao tác quản lý yêu cầu câu Lưu ý: không cho phép sửa mã sinh viên - Lập trình lưu danh sách sinh viên giao diện chương trình Trang 48 thực thi xuống file text - Lập trình tải danh sách sinh viên từ file text lên giao diện - Sử dụng chế hóa đối tượng (Serializable), thực việc lưu tải danh sách sinh viên tương tự 6) Hãy so sánh file hóa file text Theo anh (chị), nên sử dụng file text, nên sử dụng file 3.5 Bài mẫu Sử dụng thư viện xây dựng Mục 2.6, xây dựng chương trình quản lý sinh viên Bài làm mẫu: - Thiết kế giao diện: - Menu: Trang 49 - Đặt tên điều khiển: Đối tượng STT Kiểu Tên Mã sinh viên TextBox txtMa Họ tên TextBox txtTen Ngày sinh DateTimePicker dtpNS Giới tính nam RadioButton rdNam Giới tính nữ RadioButton rdNu Mã lớp TextBox txtMaLop Thêm Button btThem Sửa Button btSua Xóa Button btXoa 10 Đồng ý Button btDY 11 Hủy bỏ Button btHB 12 Danh sách ListBox lstSV 13 Mở file OpenFileDialog dlOpen 14 Lưu file SaveFileDialog dlSave 15 Tạo ToolStripMenuItem mnNew 16 Mở ToolStripMenuItem mnOpen 17 Lưu ToolStripMenuItem mnSave 18 Thoát ToolStripMenuItem mnExit - Tạo enum: using System; namespace Sample { Trang 50 public enum Status { Xem = 0, TaoMoi = 1, Sua = } } - Khai báo biến cho Form: Status _trangThai; string _fileName = null; DanhSachSinhVien dssv = new DanhSachSinhVien(); SinhVien sv; bool isClose = false; - Tạo thuộc tính trạng thái: public Status TrangThai { get { return _trangThai; } set { _trangThai = value; ThayDoiTrangThai(_trangThai); } } - Viết hàm thay đổi trạng thái, xóa thơng tin hiển thị: void ThayDoiTrangThai(Status trangthai) { switch (trangthai) { case Status.Xem: btDY.Visible = false; btHB.Visible = false; btThem.Visible = true; btSua.Visible = true; btXoa.Visible = true; txtMa.ReadOnly = true; txtTen.ReadOnly = true; txtMaLop.ReadOnly = true; dtpNS.Enabled = false; rdNam.Enabled = false; rdNu.Enabled = false; lstSV.Enabled = true; lstSV.SelectedIndex = -1; mnNew.Enabled = true; mnOpen.Enabled = true; Trang 51 mnSave.Enabled = true; mnExit.Enabled = true; break; case Status.TaoMoi: btDY.Visible = true; btHB.Visible = true; btThem.Visible = false; btSua.Visible = false; btXoa.Visible = false; txtMa.ReadOnly = false; txtTen.ReadOnly = false; txtMaLop.ReadOnly = false; dtpNS.Enabled = true; rdNam.Enabled = true; rdNu.Enabled = true; lstSV.Enabled = true; mnNew.Enabled = false; mnOpen.Enabled = false; mnSave.Enabled = false; mnExit.Enabled = false; break; case Status.Sua: btDY.Visible = true; btHB.Visible = true; btThem.Visible = false; btSua.Visible = false; btXoa.Visible = false; txtMa.ReadOnly = true; txtTen.ReadOnly = false; txtMaLop.ReadOnly = false; dtpNS.Enabled = true; rdNam.Enabled = true; rdNu.Enabled = true; lstSV.Enabled = false; mnNew.Enabled = false; mnOpen.Enabled = false; mnSave.Enabled = false; mnExit.Enabled = false; break; } } void XoaThongTin() { txtMa.Clear(); txtTen.Clear(); txtMaLop.Clear(); Trang 52 dtpNS.Value = DateTime.Now; rdNam.Enabled = true; rdNu.Enabled = true; } - Sự kiện Load Form: TrangThai = Status.Xem; - Sự kiện SelectedIndexChanged danh sách: int index = lstSV.SelectedIndex; if (TrangThai == Status.Xem && index >= 0) { sv = dssv[index]; txtMa.Text = sv.MaSV; txtTen.Text = sv.HoTenSV.ToString(); txtMaLop.Text = sv.MaLop; dtpNS.Value = sv.NgaySinh; if (sv.GioiTinh) rdNam.Checked = true; else rdNu.Checked = true; } - Sự kiện Click nút thêm: XoaThongTin(); TrangThai = Status.TaoMoi; - Sự kiện Click nút sửa: int index = lstSV.SelectedIndex; if (index == -1) MessageBox.Show("Bạn chọn sinh viên cần sửa thông tin"); else { sv = dssv[index]; TrangThai = Status.Sua; } - Sự kiện Click nút xóa: if (lstSV.SelectedIndex == -1) MessageBox.Show("Hãy chọn sinh viên trước xóa"); else { if (MessageBox.Show("Bạn có chắn xóa sinh viên khơng?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) Trang 53 { int index = lstSV.SelectedIndex; dssv.RemoveAt(index); lstSV.Items.RemoveAt(index); lstSV.SelectedIndex = -1; XoaThongTin(); } } - Sự kiện Click nút đồng ý: bool ok = true; string masv = txtMa.Text.Trim(); HoVaTen hovaten = null; string gioitinh= rdNam.Checked?"nam":"nu"; if (masv.IndexOf(' ') != -1) ok = false; try { hovaten = HoVaTen.GetHoVaTen(txtTen.Text); } catch { ok = false; } if (ok) { if (TrangThai == Status.TaoMoi) { sv = new SinhVien(masv, hovaten.ToString(), dtpNS.Value.ToShortDateString(), gioitinh, txtMaLop.Text.Trim()); dssv.Add(sv); XoaThongTin(); TrangThai = Status.Xem; lstSV.Items.Add(sv); } else { sv.HoTenSV = hovaten; sv.MaLop = txtMaLop.Text.Trim(); sv.NgaySinh = dtpNS.Value; sv.GioiTinh = rdNam.Checked; lstSV.Items[lstSV.SelectedIndex] = sv; XoaThongTin(); TrangThai = Status.Xem; } Trang 54 } else { MessageBox.Show("Mã sinh viên tên sinh viên không hợp lệ"); } - Sự kiện Click nút hủy bỏ: TrangThai = Status.Xem; - Sự kiện Click menu New: _fileName = null; dssv.Clear(); sv = null; lstSV.Items.Clear(); - Sự kiện Click menu Save: if (_fileName == null) { if (dlSave.ShowDialog() == DialogResult.OK) { _fileName = dlSave.FileName; dssv.WriteSVToFile(_fileName); } } else dssv.WriteSVToFile(_fileName); - Sự kiện Click menu Open: if (dlOpen.ShowDialog() == DialogResult.OK) { _fileName = dlOpen.FileName; dssv.ReadSVFromFile(_fileName); foreach (SinhVien sv in dssv) lstSV.Items.Add(sv); } - Sự kiện Click menu Exit: isClose = true; this.Close(); - Sự kiện Click đóng Form: if(!isClose) e.Cancel = true; Trang 55 ... 4,294,967,295 64 ulong 18 ,446,744,073,709,5 51, 615 32 float 1. 5 × 10 −45 to 3.4 × 10 38, 7-chữ số lẻ 64 double 5.0 × 10 −324 to 1. 7 × 10 308, 15 -chữ số lẻ 12 8 decimal 1. 0 × 10 −28 to 7.9 × 10 28, 28-chữ số lẻ Trang... ngữ C# 1. 1 Tổng quan Microsoft NET 1. 1 .1 Kiến trúc NET framework 1. 1.2 Biên dịch ngôn ngữ trung gian 1. 2 Giới thiệu ngôn ngữ C# 1. 2 .1 Chương trình 1. 2.2 Kiểu... khơng ? 11 ) Viết chương trình nhập vào số nguyên dương n In hình số nguyên tố bé n Trang 16 12 ) Viết chương trình có mục chọn Mục chọn cho phép dừng chương trình mục chọn thực tập 5 -1 1 1. 4 Bài mẫu

Ngày đăng: 28/10/2020, 10:41

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan