Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 165 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
165
Dung lượng
4,78 MB
Nội dung
ỦY BAN NHÂN DÂN TP HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH HỌC PHẦN: LẬP TRÌNH ỨNG DỤNG NGÀNH/NGHỀ: CƠNG NGHỆ THƠNG TIN TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: /QĐ-CNTĐ-CN Ngày tháng….năm của……………………………… Năm 2019 Lời Giới Thiệu Giáo trình Lập trình ứng dụng nhằm trang bị cho sinh viên kiến thức ngơn ngữ lập trình C#, tư lập trình kỹ thuật cần thiết lập trình để sinh viên xây dựng ứng dụng phần mềm C# Thông qua hoạt động học tập sinh viên hồn thiện dần tư lập trình thói quen tn thủ qui định mơi trường lập trình chun nghiệp Giáo trình gồm có chương sau: Chương 1: Tổng quan lập trình ứng dụng Chương 2: Nền tảng C# Chương 3: Lập trình hướng đối tượng C# Chương 4: Lập trình ứng dụng Windows Forms Chương 5: Sử dụng ADO.NET Chương 6: Mơ hình lớp i MỤC LỤC Chương Tổng quan lập trình ứng dụng 1.1 Tổng quan lập trình ứng dụng 1.2 Tổng quan NET Framework 1.3 Kiến trúc NET Framework 1.3.1 Common Language Runtime (CLR) 1.3.2 Thư viện lớp NET Framework 1.4 Biên dịch MSIL 1.5 Giới thiệu ứng dụng loại Windows Application Chương NỀN TẢNG C# CƠ BẢN 2.1 Kiểu liệu 2.1.1 Các kiểu liệu c# 2.1.2 Khai báo biến khởi tạo giá trị 2.2 Toán tử biểu thức 2.3 Câu lệnh điều khiển 11 2.3.1 Cấu trúc rẽ nhánh 11 2.3.2 Cấu trúc switch 13 2.3.3 Cấu trúc lặp 15 2.4 Kiểu mảng 21 2.4.1 Khái niệm mảng chiều: 21 2.4.2 Đặc điểm mảng: 21 2.4.3 Cú pháp chung khai báo mảng: 21 2.4.4 Khởi tạo giá trị cho mảng 22 2.4.5 Sử dụng mảng 22 2.4.6 Một số phương thức đặt trưng cho mảng chiều 22 2.4.7 Cách duyệt mảng chiều 22 2.4.8 Ví dụ mảng chiều 22 2.5 Collections 24 ii 2.5.1 Một số Collections thông dụng 25 2.5.2 Sử dụng phương thức thuộc tính có lớp ArrayList 25 2.5.3 Một số ví dụ 27 2.6 Xử lý chuỗi 31 2.7 Xử lý ngoại lệ 34 2.7.1 Xử lý ngoại lệ (Exception) 34 2.7.2 Cú pháp chung xử lý ngoại lệ 34 2.7.3 Lớp Exception C# 35 2.7.4 Một số lớp Exception kế thừa từ lớp SystemException 35 2.8 Đọc ghi tập tin 39 2.8.1 Đọc tập tin 39 2.8.2 Ghi tập tin 39 2.9 Bài tập 43 Chương Lập trình hướng đối tượng C# 45 3.1 Tổng quan lập trình hướng đối tượng 46 3.2 Đối tượng 46 3.3 Lớp đối tượng 46 3.4 Các đặc trưng 46 3.5 Định nghĩa lớp đối tượng 47 3.6 Xây dựng lớp C# 48 3.7 Bài tập áp dụng 49 3.8 Bài tập 59 Chương Lập trình windows forms 62 4.1 Giới thiệu thành phần Windows FoRmS 62 4.2 Các thành phần Windows Forms 62 4.3 Những đặc điểm Windows Forms 63 4.3.1 Một số phương thức Form 66 4.3.2 Một số kiện Form (Form Event) 67 4.4 Các điều khiển chuẩn 68 Button Control 68 Label Control 69 iii TextBox Control 69 CheckBox Control 70 RadioButton Control 71 ListBox Control 72 CheckListBox 76 ComboBox Control 77 GroupBox, Panel 78 PictureBox 79 ImageList 80 4.5 Điều khiển đặc biệt 81 DateTimePicker MonthCalender 81 ListView 81 TreeView 87 4.6 Điều khiển menu 88 4.6.1 Một số thuộc tính Menu 89 4.6.2 Tạo ContextMenu 89 4.7 Sử dụng hộp thoại 91 4.7.1 Hộp thoại màu ColorDialog 91 4.7.2 Hộp thoại Font 92 4.7.3 Hộp thoại OpenDialog SaveDialog 94 4.7.4 Hộp thoại MessageBox 98 4.8 Unit test Function test 99 4.8.1 Kiểm tra đơn vị (Unit test): 99 4.8.2 Kiểm tra chức (Function test): 100 4.9 Bài tập 102 Chương Sử dụng ADO.NET 114 5.1 Giới thiệu 115 5.2 Kiến trúc tổng quan ADO.NET 116 5.3 Tổng quan mơ hình xử lý liệu ADO.NET 118 5.3.1 Mơ hình Kết nối 118 5.3.2 Mơ hình Ngắt Kết nối 119 iv 5.4 Làm việc với lớp ADO.NET 121 5.4.1 Lớp Connection 121 5.4.2 Đối tượng Command 123 5.4.3 Đối tượng DataAdapter 124 5.5 Thực thi StoredProcedure (thủ tục lưu trữ sẵn) với đối tượng Command 127 5.6 Bài tập 134 Chương Mơ hình lớp 137 6.1 Giới thiệu tổng quan mô hình lớp 137 6.2 Xây dựng ứng dụng theo mơ hình lớp 138 6.3 Bài tập 158 v CHƯƠNG TỔNG QUAN VỀ LẬP TRÌNH ỨNG DỤNG 1.1 Tổng quan lập trình ứng dụng Ngơn ngữ lập trình C# ngơn ngữ lập trình phổ biến thứ sau Java, PHP Python với khoảng 31% nhà phát triển sử dụng thường xuyên Đây cộng đồng lớn thứ StackOverflow với 1,1 triệu chủ đề Sự phổ biến giúp thị trường nhân C# phát triển với 17.000 công việc C# vào năm 2017 (Theo thống kê vietnamworks) Nó tạo hội lớn cho nhà lập trình viên Ngơn ngữ C# sử dụng để xây dựng ứng dụng từ đơn giản đến phức tạp với phát triển C# làm việc chủ yếu khung NET (.NET Framework) Đây ngơn ngữ lập trình có khả tạo nhiều ứng dụng mạnh mẽ an toàn cho tảng Windows với thành phần máy chủ, dịch vụ web, ứng dụng di động nhiều khả khác 1.2 Tổng quan NET Framework Microsoft NET công bố lần vào 7/2000 hội nghị Professional Developers’ Conference Orlado Nó gồm hai phần Framework Integrated Development Environment (IDE) Framework cốt lõi tinh hoa NET Đồng thời, tảng mà ứng dụng NET chạy IDE cung cấp môi trường giúp triển khai nhanh chóng ứng dụng NET 1.3 Kiến trúc NET Framework NET Framework có hai thành phần chính: Common Language Runtime (CLR) thư viện lớp NET Framework CLR tảng NET Framework Thư viện lớp, thành phần khác NET Framework tập hợp hướng đối tượng kiểu liệu dùng lại, cho phép phát triển ứng dụng từ ứng dụng truyền thống command-line hay ứng dụng có giao diện đồ họa (GUI) đến ứng dụng cung cấp ASP.NET, Web Form dịch vụ XML Web Trang Lập trình ứng dụng Hình 1.1 Các thành phần NET Framework 1.3.1 Common Language Runtime (CLR) CLR thành phần kết nối phần khác NET Framework với hệ điều hành CLR chương trình viết NET, khơng biên dịch mã máy mà dịch ngơn ngữ trung gian Microsoft Intermediate Language (MSIL) Khi chạy chương trình, CLR dịch MSIL mã máy để thực thi tính năng, đảm bảo ứng dụng khơng chiếm dụng sử dụng tràn lan tài nguyên hệ thống Sau số đặc điểm quan trọng CLR: Là thành phần quan trọng NET Framework Quản lý thực thi managed code tảng kiến trúc NET Quản lý nhớ, quản lý tiến trình (thread), kiểm tra security CLR thiết kế để làm tăng hiệu xuất thực Gần giống Java Virtual Machine (JVM) CLR thúc đẩy cho mã nguồn thực thi mạnh mẽ việc thực thi mã nguồn xác xác nhận mã nguồn Nền tảng việc thực Common Type System (CTS) CTS đảm bảo mã nguồn quản lý tự mơ tả (self- describing) Sự khác Microsoft trình biên dịch ngơn ngữ hãng thứ ba việc tạo mã nguồn quản lý thích hợp với CTS Điều mã nguồn quản lý sử dụng kiểu quản lý khác thể hiện, thúc đẩy nghiêm ngặt việc sử dụng kiểu liệu xác an tồn Trang Lập trình ứng dụng Thêm vào đó, mơi trường quản lý runtime thực việc tự động xử lý layout đối tượng quản lý tham chiếu đến đối tượng, giải phóng chúng chúng khơng cịn sử dụng Việc quản lý nhớ tự động giải hai lỗi chung ứng dụng: thiếu nhớ tham chiếu nhớ không hợp lệ Runtime thiết kế để cải tiến hiệu suất thực Mặc dù CLR cung cấp nhiều tiêu chuẩn dịch vụ runtime, mã nguồn quản lý khơng dịch Có đặc tính gọi Just-in-Time (JIT) biên dịch tất mã nguồn quản lý vào ngôn ngữ máy hệ thống vào lúc mà thực thi Khi đó, trình quản lý nhớ xóa bỏ phân mảnh nhớ gia tăng tham chiếu nhớ cục bộ, kết gia tăng hiệu thực thi 1.3.2 Thư viện lớp NET Framework Thư viện lớp NET Framework tập hợp kiểu liệu dùng lại kết hợp chặt chẽ với Common Language Runtime Thư viện lớp hướng đối tượng cung cấp kiểu liệu mà mã nguồn quản lý dẫn xuất Điều khơng làm cho kiểu liệu NET Framework dễ sử dụng mà làm giảm thời gian liên quan đến việc học đặc tính NET Framework Thêm vào đó, thành phần hãng thứ ba tích hợp với lớp NET Framework Cũng mong đợi người phát triển với thư viện lớp hướng đối tượng, kiểu liệu NET Framework cho phép người phát triển thiết lập nhiều mức độ thơng dụng việc lập trình, bao gồm nhiệm vụ như: quản lý chuỗi, thu thập hay chọn lọc liệu, kết nối với cở liệu, truy cập tập tin Ngồi nhiệm vụ thơng dụng Thư viện lớp đưa vào kiểu liệu để hỗ trợ cho kịch phát triển chun biệt khác Ví dụ người phát triển sử dụng NET Framework để phát triển kiểu ứng dụng dịch vụ sau: Ứng dụng Console Ứng dụng giao diện GUI Windows (Windows Forms) Ứng dụng ASP.NET Dịch vụ XML Web Dịch vụ Windows Trong lớp Windows Forms cung cấp tập hợp lớn kiểu liệu nhằm làm đơn giản việc phát triển ứng dụng GUI chạy Windows Nếu viết Trang Lập trình ứng dụng ứng dụng ASP.NET sử dụng lớp Web Forms thư viện NET Framework 1.4 Biên dịch MSIL Trong NET Framework, chương trình không biên dịch vào tập tin thực thi mà thay vào chúng biên dịch vào tập tin trung gian gọi Microsoft Intermediate Language (MSIL) Những tập tin MSIL tạo từ C# tương tự tập tin MSIL tạo từ ngôn ngữ khác NET, platform không cần biết ngôn ngữ mã nguồn Điều quan trọng yếu CLR chung (common), runtime hỗ trợ phát triển C# VB.NET Hình 1.3 Biên dịch NetFramework Mã nguồn C# biên dịch vào MSIL build project Mã MSIL lưu vào tập tin đĩa Khi chạy chương trình, MSIL biên dịch lần nữa, sử dụng trình biên dịch Just-In-Time (JIT) Kết mã máy thực thi xử lý máy Trình biên dịch JIT tiêu chuẩn thực theo yêu cầu Khi phương thức gọi, trình biên dịch JIT phân tích MSIL tạo sản phẩm mã máy có hiệu cao, mã chạy nhanh Trình biên dịch JIT đủ thơng minh để nhận mã biên dịch, ứng dụng chạy việc biên dịch xảy cần thiết, tức biên dịch mã MSIL chưa biên dịch mã máy Khi ứng dụng NET thực hiện, chúng có xu hướng chạy nhanh nhanh nữa, mã nguồn biên dịch dùng lại Do tất ngôn ngữ NET Framework tạo sản phẩm MSIL giống nhau, nên kết đối tượng tạo từ ngơn ngữ truy cập hay dẫn xuất từ đối tượng ngơn ngữ khác NET Ví dụ, người phát triển tạo lớp sở VB.NET sau dẫn xuất C# cách dễ dàng Trang Lập trình ứng dụng Chức năng: Lớp Database đảm nhiệm việc giao tiếp với sở liệu cho toàn ứng dụng Tất việc tương tác với CSDL liệu diễn nơi ứng dụng thực thơng qua lớp Mục đích: Việc xây dựng lớp nhằm mang lại tính dễ bảo trì tính tiến hóa cho hệ thống Nếu sau cần thay đổi môi trường ứng dụng (sang Oracle, Access, Db2 ) việc chỉnh sửa lớp Database mà không cần quan tâm đến phần cịn lại ứng dụng Lớp Database gồm có thành phần sau: Viết code cho Database.cs sau: Trang 145 Lập trình ứng dụng using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace QLThuvienNTT { class Database { SqlConnection sqlConn; //Doi tuong ket noi CSDL SqlDataAdapter daNV;//Bo dieu phoi du lieu DataSet dsNV; //Doi tuong chhua CSDL giao tiep public Database() { string strCnn = "Data Source=.; Database=QLthuvien; Integrated Security=True"; sqlConn = new SqlConnection(strCnn); } //Phuong thuc de thuc hien cau lenh strSQL truy vân du lieu public DataTable Execute(string sqlStr) { daNV= new SqlDataAdapter(sqlStr, sqlConn); dsNV=new DataSet(); daNV.Fill(dsNV); return dsNV.Tables[0]; Trang 146 Lập trình ứng dụng } //Phuong thuc de thuc hien cac lenh Them, Xoa, Sua public void ExecuteNonQuery(string strSQL) { SqlCommand sqlcmd = new SqlCommand(strSQL, sqlConn); sqlConn.Open(); //Mo ket noi sqlcmd.ExecuteNonQuery();//Lenh hien lenh Them/Xoa/Sua sqlConn.Close();//Dong ket noi } } } Bước : Xây dựng lớp xử lý nghiệp vụ cho Nhân viên: Nhanvien.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace QLThuvienNTT { class Nhanvien { Database dbTV; public Nhanvien() { dbTV = new Database(); Trang 147 Lập trình ứng dụng } public DataTable LayDSNhanvien() { string strSQL = "Select Manhanvien, HoTenNhanVien, Ngaysinh,Diachi,Dienthoai, TenBangcap From Nhanvien N, BANGCAP B Where N.MaBangCap=B.MaBangCap"; DataTable dtNV = dbTV.Execute(strSQL); //Goi phuong thuc truy xuat du lieu return dtNV; } } } Bước 3: Xây dựng lớp xử lý giao diện cho frmNhanVien.cs Thiết kế giao diện sau, đặt tên frmNhanVien Xử lý Code cho frmNhanVien: Trang 148 Lập trình ứng dụng using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace QLThuvienNTT { public partial class frmNhanvien : Form { Nhanvien clsNhanvien = new Nhanvien(); public frmNhanvien() { InitializeComponent(); } void hienthiNhanvien() { DataTable dtNV = clsNhanvien.LayDSNhanvien(); for (int i = 0; i < dtNV.Rows.Count; i++) { ListViewItem lviNhanvien = lsvNhanVien.Items.Add(dtNV.Rows[i][0].ToString()); lviNhanvien.SubItems.Add(dtNV.Rows[i][1].ToString()); lviNhanvien.SubItems.Add(dtNV.Rows[i][2].ToString()); Trang 149 Lập trình ứng dụng lviNhanvien.SubItems.Add(dtNV.Rows[i][3].ToString()); lviNhanvien.SubItems.Add(dtNV.Rows[i][4].ToString()); lviNhanvien.SubItems.Add(dtNV.Rows[i][5].ToString()); } } private void frmNhanvien_Load(object sender, EventArgs e) { hienthiNhanvien(); } } } //Còn tiếp cho kiện khác Việc xử lý phân loại rõ ràng nhiệm vụ xử lý giúp người phát triển chương trình dễ dàng quản lý chương trình Bổ sung code đầy đủ cho lớp Nhanvien.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace QLThuvienNTT { Database dbTV; public Nhanvien() { dbTV = new Database(); Trang 150 Lập trình ứng dụng } public DataTable LayDSNhanvien() { string strSQL = "Select Manhanvien, HoTenNhanVien, Ngaysinh,Diachi,Dienthoai, TenBangcap From Nhanvien N, BANGCAP B Where N.MaBangCap=B.MaBangCap"; DataTable dtNV = dbTV.Execute(strSQL); //Goi phuong thuc truy xuat du lieu return dtNV; } } public DataTable layBangcap() { string strSQL = "Select * from bangcap"; DataTable dtBangcap = db.Execute(strSQL); return dtBangcap; } public void xoaNhanVien(string index_nv) { string sqlXoaNhanvien= "Delete from NhanVien where MaNhanVien = " + index_nv; dbTV.ExecuteNonQuery(sqlXoaNhanvien); } //Thêm nhân viên public void themNhanVien(string ten, string ngaysinh, string diachi, string dienthoai, string index_bc) { Trang 151 Lập trình ứng dụng string sqlThemNV= string.Format("Insert Into NhanVien Values(N'{0}','{1}',N'{2}','{3}',{4})", ten, ngaysinh, diachi, dienthoai, index_bc); dbTV.ExecuteNonQuery(sqlThemNV); } //Cập nhật nhân viên public void capnhatNhanVien(string index_nv, string hoten, string ngaysinh, string diachi, string dienthoai, string index_bc) { //Chuẩn bị câu lẹnh truy vấn string str = string.Format("Update NHANVIEN set HoTenNhanVien = N'{0}', NgaySinh ='{1}',diachi = N'{2}', dienthoai = '{3}', MaBangCap = {4} where MaNhanVien = {5}", hoten, ngaysinh, diachi, dienthoai, index_bc, index_nv); dbTV.ExecuteNonQuery(str); } } } Bổ sung đầy đủ cho code form frmDMNhanvien using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; Trang 152 Lập trình ứng dụng using System.Windows.Forms; namespace QLThuvienNTT { public partial class frmNhanvien : Form { public bool themmoi = false; Nhanvien nv = new Nhanvien(); public frmNhanvien() { InitializeComponent(); } void hienthiNhanvien() { lsvNhanVien.Items.Clear(); DataTable dt = nv.layDSNhanvien(); for (int i = 0; i < dt.Rows.Count; i++) { ListViewItem lvi = lsvNhanVien.Items.Add(dt.Rows[i][0].ToString()); lvi.SubItems.Add(dt.Rows[i][1].ToString()); lvi.SubItems.Add(dt.Rows[i][2].ToString()); lvi.SubItems.Add(dt.Rows[i][3].ToString()); lvi.SubItems.Add(dt.Rows[i][4].ToString()); lvi.SubItems.Add(dt.Rows[i][5].ToString()); } } Trang 153 Lập trình ứng dụng void setNull() { txtHoten.Text = ""; txtDiaChi.Text = ""; txtDienThoai.Text = ""; } void setButton(bool val) { btnThem.Enabled = val; btnXoa.Enabled = val; btnSua.Enabled = val; btnThoat.Enabled = val; btnLuu.Enabled = !val; btnHuy.Enabled = !val; } void hienthiBangcap() { DataTable dt = nv.layBangcap(); cboBangCap.DataSource = dt; cboBangCap.DisplayMember = "TenBangcap"; cboBangCap.ValueMember = "MaBangcap"; } private void frmNhanvien_Load(object sender, EventArgs e) { setNull(); setButton(true); hienthiNhanvien(); Trang 154 Lập trình ứng dụng hienthiBangcap(); } private void lsvNhanVien_SelectedIndexChanged(object sender, EventArgs e) { if (lsvNhanVien.SelectedIndices.Count > 0) { txtHoten.Text = lsvNhanVien.SelectedItems[0].SubItems[1].Text; //Chuyen sang kieu dateTime dtpNgaySinh.Value = DateTime.Parse(lsvNhanVien.SelectedItems[0].SubItems[2].Text); txtDiaChi.Text = lsvNhanVien.SelectedItems[0].SubItems[3].Text; txtDienThoai.Text = lsvNhanVien.SelectedItems[0].SubItems[4].Text; //Tìm vị trí Tên cấp Combobox cboBangCap.SelectedIndex = cboBangCap.FindString(lsvNhanVien.SelectedItems[0].SubItems[5].Text); } } private void btnThem_Click(object sender, EventArgs e) { themmoi = true; setButton(false); Trang 155 Lập trình ứng dụng txtHoten.Focus(); } private void btnSua_Click(object sender, EventArgs e) { if (lsvNhanVien.SelectedIndices.Count > 0) { themmoi = false; setButton(false); } else MessageBox.Show("Bạn phải chọn mẫu tin cập nhật", "Sửa mẫu tin"); } private void btnHuy_Click(object sender, EventArgs e) { setButton(true); } private void btnThoat_Click(object sender, EventArgs e) { Close(); } private void btnXoa_Click(object sender, EventArgs e) Trang 156 Lập trình ứng dụng { if (lsvNhanVien.SelectedIndices.Count > 0) { DialogResult dr = MessageBox.Show("Bạn có xóa khơng?", "Xóa cấp", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { nv.XoaNhanVien( lsvNhanVien.SelectedItems[0].SubItems[0].Text); lsvNhanVien.Items.RemoveAt( lsvNhanVien.SelectedIndices[0]); setNull(); } } else MessageBox.Show("Bạn phải chọn mẩu tin cần xóa"); } private void btnLuu_Click(object sender, EventArgs e) { string = String.Format("{0:MM/dd/yyyy}", dtpNgaySinh.Value); //Định dạng ngày tương ứng với CSDL SQLserver if (themmoi) { nv.themNhanVien(txtHoten.Text, ngay, txtDiaChi.Text, Trang 157 Lập trình ứng dụng txtDienThoai.Text, cboBangCap.SelectedValue.ToString()); MessageBox.Show("Thêm thành công"); } Else { nv.CapNhatNhanVien( lsvNhanVien.SelectedItems[0].SubItems[0].Text, txtHoten.Text, ngay, txtDiaChi.Text, txtDienThoai.Text, cboBangCap.SelectedValue.ToString()); MessageBox.Show("Cập nhật thành công"); } HienthiNhanvien(); setNull(); } } } 6.3 Bài tập HỌC PHẦN LẬP TRÌNH ỨNG DỤNG BÀI TẬP THỰC HÀNH SỐ I Thông tin chung: Mã số tập : BT-LTUD - 06 Hình thức nộp : Nộp qua Moodle môn học Thời hạn nộp : … / … / …… Nội dung: Chương 6: Mô hình lớp Chuẩn đầu cần đạt: L.O.3 Sử dụng Control để thiết kế giao diện chương trình L.O.4 Viết code chuẩn L.O.5 Sử dụng TestCase để kiểm tra phần mềm L.O.6 Hiện thực chương trình vừa nhỏ L.O.7 Rèn luyện kỹ tìm kiếm thơng tin để tự giải vấn đề L.O.8 Tự tổ chức quản lý hoạt động nhóm Bài tập 1: Xây dựng ứng dụng với mơ hình ba lớp cho Form sau ví dụ phần 6.2 sở liệu quản lý thư viện : Trang 158 Lập trình ứng dụng Bài tập 2: Sử dụng CSDL liệu Quản lý bán hàng tập chương xây dựng ứng dụng Quản lý bán hàng với mơ hình lớp Trang 159 ... Giới Thiệu Giáo trình Lập trình ứng dụng nhằm trang bị cho sinh viên kiến thức ngơn ngữ lập trình C#, tư lập trình kỹ thuật cần thiết lập trình để sinh viên xây dựng ứng dụng phần mềm C# Thông qua... Xây dựng ứng dụng theo mơ hình lớp 138 6.3 Bài tập 158 v CHƯƠNG TỔNG QUAN VỀ LẬP TRÌNH ỨNG DỤNG 1.1 Tổng quan lập trình ứng dụng Ngơn ngữ lập trình C# ngơn ngữ lập trình phổ... Trang 40 Lập trình ứng dụng Kết chương trình Ví dụ 2: Sử dụng StreamReader để đọc tập tin Kết chương trình Trang 41 Lập trình ứng dụng Ví dụ 3: Sử dụng StreamWriter để ghi liệu xuống tập tin đọc