BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC CÔNG NGHỆ TP.HCM THỰC HÀNH LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS Biên soạn: ThS. Nguyễn Đình Ánh ThS. Dương Thành Phết ThS. Trịnh Đồng Thạch Trúc ThS.
Nguyễn Huy Cường THỰC HÀNH LẬP TRÌNH TRÊN MÔI TRƯỜNG WINDOWS Ấn bản 2023 MỤC LỤC I MỤC LỤC MỤC LỤC. II BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C#. 2 BÀI 2: LẬP TRÌNH WINDOWS FORM VỚI CONTROLS CƠ BẢN.2 HƯỚNG DẪN LÀM QUEN VỚI WINDOWS FORM. 17 BÀI 3: LẬP TRÌNH WINDOWS FORM VỚI GIAO DIỆN MDI.
26 BÀI 4: LẬP TRÌNH VỚI CƠ SỞ DỮ LIỆU SỬ DỤNG ENTITY FRAMEWORK. 35 BÀI 5: TỔ CHỨC DỰ ÁN VỚI ENTITY FRAMEWORK. 51 BÀI 6: ÔN TẬP VÀ KIỂM TRA. 62 II HƯỚNG DẪN HƯỚNG DẪN MÔ TẢ MÔN HỌC Lập trình C# trên Windows là một trong những môn học nhằm cung cấp kiến thức cơ bản cho những ai muốn xây dựng được ứng dụng trên môi trường trên hệ điều hành Windows.
Môn học này cung cấp những kiến thức cơ bản, tổng quan về công nghệ mới của Microsoft: .Net Framework, lập trình hướng đối tượng trên .Net, cũng như giới thiệu bộ thư viện .Net mà cung cấp sẵn (LINQ, Entity framework…), sinh viên có thể tạo giao diện ứng dụng có kết nối các hệ cơ sở dữ liệu (SQL Server). Từ đó sinh viên có thể bước đầu có thể xây dựng những ứng dụng tin học hóa, hỗ trợ các doanh nghiệp trong việc quản lý hàng hóa, nhân sự, mua bán, v. NỘI DUNG THỰC HÀNH Bài 1. Tổng quan ngôn ngữ C# trên ứng dụng Console: Bài này cung cấp cho học viên làm quen với ngôn ngữ C#.
Với phương pháp lập trình hướng đối tượng, sử dụng thư viện LINQ để giúp truy vấn nhanh chóng. Lập trình với ứng dụng giao diện Windows Form với các control cơ bản. Học viên được thiết kế giao diện, làm quen với các controls như: TextBox, Button, ComboBox, RadioButton, DataGridView…Bên cạnh đó việc viết code cho các event trên giao diện người dùng. Lập trình với giao diện MDI: Giúp học viên tìm hiểu thêm 1 số controls nâng cao trong Windows Form như MenuStrip, ToolStrip, Timer.
Sử dụng EntityFrameWork để kết nối với cơ sở dữ liệu SQL Server: Học viên được hướng dẫn cách sử dụng mô hình Code First trên EntityFrameWork với hướng tiếp cận có sẵn cơ sở dữ liệu. Tổ chức dự án: Hướng dẫn cách tạo dự án theo mô hình 3 lớp từ đó cung cấp sự phân chia rõ ràng giữa các thành phần trong ứng dụng, tạo điều kiện thuận lợi cho việc bảo trì, mở rộng và quản lý dự án. Nó giúp tăng tính linh hoạt, đồng nhất và tái sử dụng code, cũng như hỗ trợ việc phát triển đa nền tảng. Bài 6: Bài kiểm tra kết thúc thực hành giúp đánh giá quá trình học tập của học viên.
HƯỚNG DẪN III KIẾN THỨC TIỀN ĐỀ Môn học Lập trinh C# trên Windows đòi hỏi sinh viên có nền tảng về Lập trình C, và lập trình hướng đối tượng. YÊU CẦU MÔN HỌC Người học phải dự học đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà. CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học. Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc nội dung bài học.
Kết thúc mỗi ý của bài học, người đọc trả lời câu hỏi ôn tập và kết thúc toàn bộ bài học, người đọc làm các bài tập. PHƯƠNG PHÁP ĐÁNH GIÁ THỰC HÀNH Môn học được đánh giá: Điểm thực hành: Điểm trung bình các bài thực hành hàng tuần - Hình thức tham gia và làm bài tập trên các buổi thực hành trên lớp / ở nhà theo yêu cầu của giáo viên. BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# 1 BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# 1.1 MỤC TIÊU - Hướng dẫn sinh viên làm quen với ngôn ngữ lập trình C#: qua việc viết các ứng dụng - Console trong Visual Studio. - Xây dựng các lớp, tạo đối tượng, truy xuất các phương thức, … - Soạn thảo mã nguồn, biên dịch, debug, thực thi chương trình… - Kế thừa trong lập trình hướng đối tượng trên C#.
- Tìm hiểu về sử dụng thư viện LINQ của .NET - Khuyến khích sinh viên thực hiện đúng chuẩn coding C# ( C# Coding Convention) - Kiểu dữ liệu: bool, decimal, double, float, int, string, DateTime, bool?, decimal?, double?, float?, int?, long?, DateTime?, object, var, dynamic… - Chuyển đổi/ép kiểu dữ liệu: as,is, Thư viện Convert - Vòng lặp: for, foreach, while, do…while và Lệnh điều khiển break, continue, return - Một số phương thức của thư viện Console Console.WriteLine(); // Xuất ra màn hình có xuống dòng Console.ReadLine(); // Đọc chuỗi từ bàn phím cho đến khi gặp ký tự xuống dòng Console.ReadKey(); // Dừng màn hình để xem kết quả. - Coding Convention C#: Đưa ra các quy ước khi coding với ngôn ngữ lập trình C#, với các quy tắc này giúp tiết kiệm thời gian rất trong quá trình phát triển và bảo trì phần mềm. 2 BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# Ví dụ: Đặt tên class dùng danh từ, đối với phương thức dùng động từ … Tên biến, tên phương thức thể hiện được ý nghĩa Nên comment những đoạn code khó hiểu hoặc có chức năng đặc biệt 1.2 BÀI TẬP Bài tập 1: Viết chương trình trò chơi đoán số được mô tả như sau: - Máy tính sẽ phát sinh ngẫu nhiên một số có 3 chữ số từ 100 đến 999 - Người chơi sẽ đoán số này bằng cách nhập vào một số có 3 chữ số. - Sau mỗi lần đoán, máy tính sẽ phản hồi dựa trên số đã đoán của người chơi: Dấu '+' được sử dụng để chỉ ra rằng một chữ số trong số đoán của người chơi là chính xác và nằm ở đúng vị trí tương ứng.
Dấu '?' được sử dụng để chỉ ra rằng một chữ số trong số đoán của người chơi là chính xác, nhưng nằm ở một vị trí khác so với vị trí tương ứng trong số mà máy tính đã phát sinh. Các vị trí còn lại sẽ không có phản hồi nào. Trường hợp có các số đoán có chữ số trùng nhau thì máy tính vẫn phản hồi ở tất cả các vị trí số đã đoán. - Thông báo chiến thắng/thất bại sau 7 lần đoán tối đa ? Ví dụ các phản hồi của máy tính: Máy tính đã phát sinh số 123 - Ngươi chơi đoán: 111.
Kết quả phản hồi: +?? - Người chới đoán: 325. Kết quả phản hồi: ?+ - Người chơi đoán: 249. Kết quả phần hồi: ? - Người chơi đoán: 490. Kết quả phần hồi: - Người chơi đoán: 212.
Kết quả phản hồi: ??? - Người chơi đoán: 212. Kết quả phản hồi: ??? - Người chơi đoán: 123. Kết quả phản hồi: +++ BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# 3 Minh họa: Hướng dẫn: - Sử dụng một số biến như sau: targetNumber: Số máy tính đã phát sinh- targetString: Biểu diễn chuỗi số từ targetNumber. attempt: Số lần đoán của người chơi.
MAX_GUESS = 7 là số lần đoán tối đa; guess: Chuỗi số mà người chơi đoán. feedback: Chuỗi phản hồi từ máy tính dựa trên đoán của người chơi. - Sử dụng một vòng lặp while khi chưa đoán đúng hoặc hết lượt đoán Trong vòng lặp, yêu cầu người chơi nhập số đoán và gọi hàm GetFeedback để lấy phản hồi từ máy tính dựa trên số đoán và số cần đoán. - Hàm GetFeedback lặp qua từng chữ số targetString và so sánh chúng với chữ số tương ứng trong số đoán guess.
Trả về chuỗi feedback với các ký tự + và ? tương ứng với số đúng vị trí và số sai vị trí. - Sau khi đoán đúng số hoăc vòng lặp kết thúc và hiển thị thông báo với số lần đoán để kết thúc trò chơi. Bước 1: Tạo project mới, có template Console App (.NET Framework), ngôn ngữ C# với tên Lab01-01, trong Visual Studio 2022 /2019 4 BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# Bước 2: Viết chương trình ở trong hàm Main, trong Program.cs BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# 5 Bài tập 2A: Viết chương trình menu cho phép người dùng quản lý sinh viên. Biết rằng mỗi sinh viên có (mã số, họ tên, khoa và điểm trung bình).
Các chức năng menu: 1 – Thêm sinh viên 2 – Xuất danh sách sinh viên 0 - Thoát Hướng Dẫn Bước 1: Thêm project mới Lab01-02 trong cùng solution ở bài tập 1. (Visual Studio cho phép có nhiều projects trong cùng 1 solution. Để Run project thì click phải chọn Set as Startup Project) Bước 2: Tạo lớp Student: Khai báo thuộc tính, phương thức (Right Click vào Lab01- 02 Project, chọn Add/ Class đặt tên là Student. Các Propery và Constructor nên sử dụng tools để sinh tự động (Quick actions and Refactorings…) class Student { //1.
Field private string studentID; private string fullName; private float averageScore; private string faculty; //2. Property public string StudentID { get => studentID; set => studentID = value; } public string FullName { get => fullName; set => fullName = value; } public float AverageScore { get => averageScore; set => averageScore = value; } public string Faculty { get => faculty; set => faculty = value; } //3.Constructor public Student() 6 BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# { } public Student(string studentID, string fullName, float averageScore, string faculty) { this.studentID = studentID; this.fullName = fullName; this.averageScore = averageScore; this. Methods public void Input() { Console.Write("Nhập MSSV:"); StudentID = Console.Write("Nhập Họ tên Sinh viên:"); FullName = Console.Write("Nhập Điểm TB:"); AverageScore = float.ReadLine()); //ép sang kiểu float Console.Write("Nhập Khoa:"); Faculty = Console.WriteLine("MSSV:{0} Họ Tên:{1} Khoa:{2} ĐiêmTB:{3}", this.AverageScore); } } Bước 3: Viết code trong hàm Main() để tạo menu List<Student> studentList = new List<Student>(); bool exit = false; while (!exit) { Console. Thêm sinh viên"); Console.
Hiển thị danh sách sinh viên"); Console.Write("Chọn chuc nang (0-2): "); string choice = Console.ReadLine(); switch (choice) { case "1": AddStudent(studentList); break; case "2": DisplayStudentList(studentList); break; case "0": exit = true; Console.WriteLine("Kết thúc chương trình."); break; default: Console.WriteLine("Tùy chọn không hợp lệ. Vui lòng chọn lại."); BÀI 1: ỨNG DỤNG CONSOLE NGÔN NGỮ C# 7 break; } Console.Show(); } } Bài tập 2B: Tiếp tục bài tập 2 thực hiện các menu chức năng sau: 3 - Xuất ra thông tin của các SV đều thuộc khoa “CNTT” 4 - Xuất ra thông tin sinh viên có điểm TB lớn hơn bằng 5. 5 - Xuất ra danh sách sinh viên được sắp xếp theo điểm trung bình tăng dần 6 - Xuất ra danh sách sinh viên có điểm TB lớn hơn bằng 5 và thuộc khoa “CNTT” 7- Xuất ra danh sách sinh viên có điểm trung bình cao nhất và thuộc khoa “CNTT” 8- Hãy cho biết số lượng của từng xếp loại trong danh sách? Biết rằng theo thang điểm 10.